diff --git a/scripts/gen_pipeline_diagrams.py b/scripts/gen_pipeline_diagrams.py new file mode 100644 index 00000000..16c145ec --- /dev/null +++ b/scripts/gen_pipeline_diagrams.py @@ -0,0 +1,173 @@ +"""Generate the pipeline diagrams used in the explanation pages. + +Three committed figures come from one four-module example pipeline, defined in +``scripts/pipeline_example/``: + +- ``pipeline-modules.svg`` — the whole pipeline at the table level, dashed + clusters grouping each module (``src/explanation/data-pipelines.md``). +- ``pipeline-modules-collapsed.svg`` — the same pipeline at the module level, + one node per schema, via ``Diagram.collapse()`` (same page). +- ``imaging-schema.svg`` — the ``imaging`` module on its own + (``src/explanation/relational-workflow-model.md``, ``src/index.md``). + +Keeping the pipeline in the repo makes the figures reproducible. The prose +describes specific edges, tiers, and table counts; those claims are only +checkable if the pipeline that produced them can be rebuilt. + +Usage +----- +Needs a database and a graphviz ``dot`` on PATH:: + + docker compose up -d postgres + DJ_HOST=localhost DJ_PORT=5432 DJ_USER=postgres DJ_PASS=tutorial \ + DJ_BACKEND=postgresql DJ_USE_TLS=false \ + DJ_DATABASE_NAME=docs_diagrams \ + python scripts/gen_pipeline_diagrams.py + +``DJ_DATABASE_NAME`` matters: on PostgreSQL a ``dj.Schema`` is a schema *within* +a database, so giving this example its own database lets it keep unprefixed +schema names without colliding with anything else on the server. Create it once +with ``createdb docs_diagrams``. + +``--check`` renders without writing and exits non-zero if any committed figure +differs — suitable for CI. The example schemas are dropped afterwards unless +``--keep-schemas`` is given. + +This reproduces the committed figures' nodes, tiers, edges, tooltips, clusters +and labels exactly, with the caveats below. + +Reproducibility caveats +----------------------- +- **Give it its own database.** The schema names are unprefixed (``reference``, + ``lab``, ``session``, ``imaging``) because ``dj.Diagram`` takes each cluster + label from the Python module name and the two must agree. Unprefixed names are + safe as long as ``DJ_DATABASE_NAME`` points at a database reserved for this + example — separate databases can hold same-named schemas. Without it the + connection lands in the default ``postgres`` database, where a pre-existing + schema of the same name is picked up silently and rendered instead. +- **Padding entities depend on pydot.** Tooltip padding is emitted as `` `` + by the pydot that produced the committed figures and as literal spaces by + 4.0.1, which shows up as a whole-file diff with no visual change. Compare + rendered content, not bytes, when the pydot version moves. Nothing pins pydot. +- **One collapsed edge is traversal-order dependent.** A collapsed edge inherits + the attributes of whichever foreign key in its bundle is visited first + (``diagram.py``, ``_collapse_graph``: ``if not new_graph.has_edge(...)``), with + no aggregation over the bundle. Where a bundle mixes a primary and a secondary + foreign key — ``lab -> session`` here, which bundles ``Subject -> Session`` + (primary) and ``User -> Session`` (secondary) — the edge renders solid or + dashed depending on order alone. The committed figure has it solid; this script + produces dashed. Both are outputs of the same renderer. + +A non-empty diff after a DataJoint upgrade is the signal to review the notation +and the surrounding prose together — see issue #246. +""" + +import argparse +import os +import sys +import tempfile +from pathlib import Path + +import datajoint as dj + +sys.path.insert(0, str(Path(__file__).resolve().parent)) + +from pipeline_example import imaging, lab, reference, session # noqa: E402 + +IMAGES = Path(__file__).resolve().parent.parent / "src" / "images" + +MODULES = (reference, lab, session, imaging) + +# dj.Diagram labels each node by resolving its table against this context. Passing +# the classes under their bare names keeps node labels unqualified ("Session", not +# "session.Session") while the cluster labels still come from the module names. +CONTEXT = { + name: obj + for module in MODULES + for name, obj in vars(module).items() + if isinstance(obj, type) and issubclass(obj, dj.Table) +} + + +def diagram(schema) -> dj.Diagram: + return dj.Diagram(schema, context=CONTEXT) + + +def whole_pipeline() -> dj.Diagram: + """The four modules unioned into one diagram.""" + result = diagram(reference.schema) + for module in MODULES[1:]: + result += diagram(module.schema) + return result + + +FIGURES = { + # Whole pipeline, table level: every module expanded. + "pipeline-modules.svg": whole_pipeline, + # Same pipeline, module level: one node per schema. + "pipeline-modules-collapsed.svg": lambda: whole_pipeline().collapse(), + # The imaging module on its own. + "imaging-schema.svg": lambda: diagram(imaging.schema), +} + + +def main() -> int: + parser = argparse.ArgumentParser( + description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter + ) + parser.add_argument( + "--check", + action="store_true", + help="report figures that differ from the committed SVGs without writing them; " + "exits 1 if any differ", + ) + parser.add_argument( + "--keep-schemas", + action="store_true", + help="leave the example schemas in the database (default: drop them)", + ) + args = parser.parse_args() + + # Left-to-right layout, matching scripts/execute-notebooks.sh. + with tempfile.TemporaryDirectory() as tmp: + with dj.config.override(display__diagram_direction="LR"): + rendered = {} + for name, build in FIGURES.items(): + staged = Path(tmp) / name + build().save(str(staged)) + rendered[name] = staged.read_text() + + if not args.keep_schemas: + for module in reversed(MODULES): + module.schema.drop(prompt=False) + + differs = [] + for name, svg in rendered.items(): + target = IMAGES / name + old = target.read_text() if target.exists() else None + if old == svg: + print(f" unchanged {name}") + elif args.check: + differs.append(name) + print(f" DIFFERS {name}") + else: + differs.append(name) + target.write_text(svg) + print(f" written {name}") + + if args.check and differs: + print( + f"\n{len(differs)} figure(s) differ from the committed SVGs. Re-run " + "without --check to update them, then review the notation and the " + "prose in src/explanation/ together (see #246). If only tooltip " + "padding moved, check the pydot version first — see the module " + "docstring.", + file=sys.stderr, + ) + return 1 + return 0 + + +if __name__ == "__main__": + os.environ.setdefault("DJ_USE_TLS", "false") + raise SystemExit(main()) diff --git a/scripts/pipeline_example/__init__.py b/scripts/pipeline_example/__init__.py new file mode 100644 index 00000000..3684b659 --- /dev/null +++ b/scripts/pipeline_example/__init__.py @@ -0,0 +1,9 @@ +"""The example pipeline behind the diagrams in the explanation pages. + +Four modules, one database schema each — the correspondence +``src/explanation/data-pipelines.md`` describes. ``dj.Diagram`` takes the group +label for each cluster from the Python module name, so these module names are +what put ``reference`` / ``lab`` / ``session`` / ``imaging`` on the figures. + +Rendered by ``scripts/gen_pipeline_diagrams.py``; not imported by the site build. +""" diff --git a/scripts/pipeline_example/imaging.py b/scripts/pipeline_example/imaging.py new file mode 100644 index 00000000..09bef2fa --- /dev/null +++ b/scripts/pipeline_example/imaging.py @@ -0,0 +1,67 @@ +"""Computed results, including two master-part pairs. + +``ScanQuality`` depends on ``session.Scan`` and ``MotionCorrection`` on +``session.ScanInfo`` — the two foreign keys bundled into the ``session → imaging`` +edge at the module level. +""" + +import datajoint as dj + +from .reference import SegmentationMethod +from .session import Scan, ScanInfo + +schema = dj.Schema("imaging") + + +@schema +class ScanQuality(dj.Computed): + definition = """ + -> Scan + --- + quality_score : float64 + """ + + +@schema +class MotionCorrection(dj.Computed): + definition = """ + -> ScanInfo + --- + x_shifts : bytes + y_shifts : bytes + """ + + +@schema +class Segmentation(dj.Computed): + definition = """ + -> MotionCorrection + -> SegmentationMethod + --- + num_rois : int32 + """ + + class Roi(dj.Part): + definition = """ + -> master + roi_idx : int32 + --- + mask : bytes + """ + + +@schema +class Fluorescence(dj.Computed): + definition = """ + -> Segmentation + --- + timestamps : bytes + """ + + class Trace(dj.Part): + definition = """ + -> master + -> Segmentation.Roi + --- + trace : bytes + """ diff --git a/scripts/pipeline_example/lab.py b/scripts/pipeline_example/lab.py new file mode 100644 index 00000000..5ffef4d6 --- /dev/null +++ b/scripts/pipeline_example/lab.py @@ -0,0 +1,34 @@ +"""Who runs the experiments, and what they are run on.""" + +import datajoint as dj + +schema = dj.Schema("lab") + + +@schema +class Lab(dj.Manual): + definition = """ + lab_name : varchar(32) + --- + institution : varchar(64) + """ + + +@schema +class User(dj.Manual): + definition = """ + -> Lab + user_name : varchar(32) + --- + email : varchar(64) + """ + + +@schema +class Subject(dj.Manual): + definition = """ + subject_id : int32 + --- + species : varchar(64) + date_of_birth : date + """ diff --git a/scripts/pipeline_example/reference.py b/scripts/pipeline_example/reference.py new file mode 100644 index 00000000..32edf0f7 --- /dev/null +++ b/scripts/pipeline_example/reference.py @@ -0,0 +1,23 @@ +"""Lookup tables: the shared vocabulary the rest of the pipeline refers to.""" + +import datajoint as dj + +schema = dj.Schema("reference") + + +@schema +class ScannerModel(dj.Lookup): + definition = """ + scanner_model : varchar(32) + --- + manufacturer : varchar(64) + """ + + +@schema +class SegmentationMethod(dj.Lookup): + definition = """ + seg_method : varchar(32) + --- + method_notes : varchar(255) + """ diff --git a/scripts/pipeline_example/session.py b/scripts/pipeline_example/session.py new file mode 100644 index 00000000..33d08f79 --- /dev/null +++ b/scripts/pipeline_example/session.py @@ -0,0 +1,45 @@ +"""The experimental record: sessions, scans, and what the scanner reported. + +``Session`` depends on ``lab.Subject`` in its primary key and on ``lab.User`` as +a secondary reference — the two foreign keys that the module-level figure bundles +into the single ``lab → session`` edge. +""" + +import datajoint as dj + +from .lab import Subject, User +from .reference import ScannerModel + +schema = dj.Schema("session") + + +@schema +class Session(dj.Manual): + definition = """ + -> Subject + session_date : date + --- + -> User + session_notes : varchar(255) + """ + + +@schema +class Scan(dj.Manual): + definition = """ + -> Session + scan_idx : int32 + --- + -> ScannerModel + depth : float64 + """ + + +@schema +class ScanInfo(dj.Imported): + definition = """ + -> Scan + --- + nframes : int32 + fps : float64 + """ diff --git a/src/explanation/data-pipelines.md b/src/explanation/data-pipelines.md index 06832419..8ab41cb0 100644 --- a/src/explanation/data-pipelines.md +++ b/src/explanation/data-pipelines.md @@ -24,18 +24,33 @@ These components work together: code defines the schema and computations, the da ## Pipeline as a DAG -A DataJoint pipeline forms a **Directed Acyclic Graph (DAG)** at two levels: - -![Pipeline DAG Structure](../images/pipeline-modules.svg) - -**Nodes** represent Python modules, which correspond to database schemas — the dashed clusters in the diagram above. - -**Edges** represent: - -- Python import dependencies between modules -- Bundles of foreign key references between schemas - -This dual structure ensures that both code dependencies and data dependencies flow in the same direction. +A DataJoint pipeline forms a **Directed Acyclic Graph (DAG)** at two levels, and the same +pipeline can be viewed at either one. + +**Module level — the collapsed view.** Each node is a Python module, which corresponds to a +database schema. There is one edge per pair of schemas, standing for a bundle of dependencies: +every foreign key reference between the two schemas' tables, together with the Python import +dependency between their modules. A collapsed edge records only that the bundle exists — line +weight and line style describe an individual foreign key, so they are read at the table level, +not here. Below, `lab → session` and `session → imaging` each bundle two foreign keys, +`reference` supplies both `session` and `imaging`, and fourteen tables (including parts) +collapse to four nodes. + +![Pipeline DAG at the module level](../images/pipeline-modules-collapsed.svg) + +**Table level — the expanded view.** Each node is a table; the dashed clusters group the +tables of each module. Each edge is an individual foreign key constraint — the two foreign +keys that cross the `session → imaging` boundary (`Scan → ScanQuality` and +`ScanInfo → MotionCorrection`) appear separately here, having collapsed into the single +bundled edge above; likewise `Subject → Session` and `User → Session` across +`lab → session`. Each edge here carries the full notation — line weight for cardinality, line +style for whether the reference is part of the child's primary key — as specified in +[Diagram](../reference/specs/diagram.md). + +![Pipeline DAG at the table level](../images/pipeline-modules.svg) + +This dual structure ensures that both code dependencies and data dependencies flow in the +same direction: collapsing every module's tables into a single node must itself yield a DAG. ### DAG Constraints @@ -63,23 +78,23 @@ This model treats the database schema as an **executable workflow specification* ## Schema Organization -Each schema corresponds to a dedicated Python module. The module import structure mirrors the foreign key dependencies between schemas: - -Within a schema, tables of different tiers form their own DAG — here, a `scan` schema with lookup, manual, and imported tables, including a master table with its part tables: - -![Schema Structure](../images/scan-schema.svg) +Each schema corresponds to a dedicated Python module, and the module import structure mirrors the foreign key dependencies between schemas. The pipeline above is organized as: ``` my_pipeline/ ├── src/ │ └── my_pipeline/ │ ├── __init__.py -│ ├── subject.py # subject schema (no dependencies) -│ ├── session.py # session schema (depends on subject) -│ ├── acquisition.py # acquisition schema (depends on session) -│ └── analysis.py # analysis schema (depends on acquisition) +│ ├── lab.py # lab schema (no dependencies) +│ ├── reference.py # reference schema (no dependencies) +│ ├── session.py # session schema (imports lab, reference) +│ └── imaging.py # imaging schema (imports session, reference) ``` +Within a schema, tables form their own DAG. Drilling into the `imaging` module: computed tables, including two masters with their part tables — `Segmentation` with `Segmentation.Roi`, and `Fluorescence` with `Fluorescence.Trace`, whose rows reference individual ROIs: + +![The imaging module expanded](../images/imaging-schema.svg) + For practical guidance on organizing multi-schema pipelines, configuring repositories, and managing team access, see [Manage a Pipeline Project](../how-to/manage-pipeline-project.md/). ## Object-Augmented Schemas @@ -119,26 +134,30 @@ When a database row is deleted, its associated stored objects are garbage-collec Different attributes can route to different stores: ```python -class Recording(dj.Imported): +class ScanInfo(dj.Imported): definition = """ - -> Session + -> Scan --- - raw_data : # Hot storage for active analysis + nframes : int32 + fps : float32 + raw_movie : # Hot storage for active analysis archive : # Cold storage for long-term retention """ ``` +Here the pipeline's `ScanInfo` table keeps its scalar metadata (`nframes`, `fps`) in the database while routing its payloads to two different stores. + This architecture lets teams work with terabyte-scale datasets while retaining the query power, integrity guarantees, and reproducibility of the relational model. ## Pipeline Workflow A typical data pipeline workflow: -1. **Acquisition** — Data is collected from instruments, experiments, or external sources. Raw files land in object storage; metadata populates Manual tables. +1. **Acquisition** — Data is collected from instruments, experiments, or external sources. Raw files land in object storage; metadata populates Manual tables (`Session`, `Scan`). -2. **Import** — Automated processes parse raw data, extract signals, and populate Imported tables with structured results. +2. **Import** — Automated processes parse raw data, extract signals, and populate Imported tables with structured results (`ScanInfo`). -3. **Computation** — The `populate()` mechanism identifies new data and triggers downstream processing. Compute resources execute transformations and populate Computed tables. +3. **Computation** — The `populate()` mechanism identifies new data and triggers downstream processing. Compute resources execute transformations and populate Computed tables (`MotionCorrection`, `Segmentation`, `Fluorescence`). 4. **Query & Analysis** — Users query results across the pipeline, combining data from multiple stages to generate insights, reports, or visualizations. diff --git a/src/explanation/relational-workflow-model.md b/src/explanation/relational-workflow-model.md index 2c479b3f..fac1d7f7 100644 --- a/src/explanation/relational-workflow-model.md +++ b/src/explanation/relational-workflow-model.md @@ -13,10 +13,10 @@ the lineage of relational modeling follows. ## A worked example Diagrams in this documentation use the same notation as `dj.Diagram` in -`datajoint-python`: **Manual** tables are green rectangles, **Lookup** -tables are gray rectangles, **Imported** tables are blue ovals, and -**Computed** tables are red ovals. A **Part** table is a plain rectangle -grouped with its master inside a light box. Tier is conveyed by shape and +`datajoint-python`: **Manual** tables are green rounded boxes, **Lookup** +tables are gray rounded boxes, **Imported** tables are blue ellipses, and +**Computed** tables are orange ellipses. A **Part** table is a small plain box +grouped with its master inside a light box (the *entity cluster*). Tier is conveyed by shape and color, and **edge thickness** shows how a child relates to its parent — a thick line means the child **extends** the parent (one per parent); a thin line means the child is **contained within** the parent (many per parent). @@ -41,7 +41,7 @@ dimension. The legend below the figure keys the full notation. ![Worked-example imaging pipeline diagram spanning two schemas: experiment (Mouse → Session → Scan) and analysis (AverageFrame → Segmentation → Fluorescence, with Lookup SegmentationParam feeding Segmentation, and the Part tables Roi on Segmentation and Trace on Fluorescence).](../images/rwm-pipeline.svg) -![Legend: table tiers — Manual (green rectangle), Lookup (gray rectangle), Imported (blue oval), Computed (red oval), Part (smaller plain rectangle); an underlined name is a new entity type (a new schema dimension, many rows per parent) while a plain name is composed from existing entities (one row per parent); edge thickness — thick means the child extends the parent, thin means the child is contained within the parent; a dashed rounded box is a schema module (labeled in the corner); a gray box encloses a master with its parts; edges have no arrowheads, so direction follows the layout.](../images/rwm-legend.svg) +![Legend: table tiers — Manual (green rounded box), Lookup (gray rounded box), Imported (blue ellipse), Computed (orange ellipse), Part (smaller plain box); an underlined name is a new entity type (a new schema dimension, many rows per parent) while a plain name is composed from existing entities (one row per parent); edge thickness — thick means the child extends the parent, thin means the child is contained within the parent; a dashed rounded box is a schema module (labeled in the corner); a gray box encloses a master with its parts; edges have no arrowheads, so direction follows the layout.](../images/rwm-legend.svg) The notation is specified in full in the [Diagram specification](../reference/specs/diagram.md). The concepts it depicts are explained in depth elsewhere: [entity integrity](entity-integrity.md) (keys, entity types, and schema dimensions), [master–part tables](../reference/specs/master-part.md) (the entity group and its all-or-nothing populate), the [computation model](computation-model.md) (how `make()` produces Imported and Computed tables), and [semantic matching](semantic-matching.md) (why a name means the same thing everywhere it appears). diff --git a/src/how-to/master-part.ipynb b/src/how-to/master-part.ipynb index 8b718bab..8bd697c7 100644 --- a/src/how-to/master-part.ipynb +++ b/src/how-to/master-part.ipynb @@ -102,30 +102,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -147,8 +147,8 @@ "------------------------------\r", "session_date         \r", "\">\n", - "\n", - "Session\n", + "\n", + "Session\n", "\n", "\n", "\n", @@ -162,15 +162,15 @@ "response             \r", "reaction_time        \r", "\">\n", - "\n", - "Trial\n", + "\n", + "Trial\n", "\n", "\n", "\n", "\n", "\n", "Session->Session.Trial\n", - "\n", + "\n", "\n", "\n", "\n", @@ -179,15 +179,15 @@ "------------------------------\r", "species              \r", "\">\n", - "\n", - "Subject\n", + "\n", + "Subject\n", "\n", "\n", "\n", "\n", "\n", "Subject->Session\n", - "\n", + "\n", "\n", "\n", "" diff --git a/src/how-to/model-relationships.ipynb b/src/how-to/model-relationships.ipynb index a947868a..f908a1d0 100644 --- a/src/how-to/model-relationships.ipynb +++ b/src/how-to/model-relationships.ipynb @@ -73,30 +73,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -113,8 +113,8 @@ "------------------------------\r", "species              \r", "\">\n", - "\n", - "Subject\n", + "\n", + "Subject\n", "\n", "\n", "\n", @@ -126,15 +126,15 @@ "------------------------------\r", "session_date         \r", "\">\n", - "\n", - "Session\n", + "\n", + "Session\n", "\n", "\n", "\n", "\n", "\n", "Subject->Session\n", - "\n", + "\n", "\n", "\n", "" @@ -232,30 +232,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -273,8 +273,8 @@ "------------------------------\r", "session_date         \r", "\">\n", - "\n", - "Session\n", + "\n", + "Session\n", "\n", "\n", "\n", @@ -286,15 +286,15 @@ "------------------------------\r", "outcome              \r", "\">\n", - "\n", - "Trial\n", + "\n", + "Trial\n", "\n", "\n", "\n", "\n", "\n", "Session->Trial\n", - "\n", + "\n", "\n", "\n", "" @@ -365,30 +365,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -405,8 +405,8 @@ "------------------------------\r", "equipment_name       \r", "\">\n", - "\n", - "Equipment\n", + "\n", + "Equipment\n", "\n", "\n", "\n", @@ -418,15 +418,15 @@ "→ Equipment\r", "duration             \r", "\">\n", - "\n", - "Recording\n", + "\n", + "Recording\n", "\n", "\n", "\n", "\n", "\n", "Equipment->Recording\n", - "\n", + "\n", "\n", "\n", "" @@ -509,30 +509,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -549,8 +549,8 @@ "------------------------------\r", "species              \r", "\">\n", - "\n", - "Subject\n", + "\n", + "Subject\n", "\n", "\n", "\n", @@ -562,15 +562,15 @@ "weight               \r", "notes                \r", "\">\n", - "\n", - "SubjectDetails\n", + "\n", + "SubjectDetails\n", "\n", "\n", "\n", "\n", "\n", "Subject->SubjectDetails\n", - "\n", + "\n", "\n", "\n", "" @@ -641,30 +641,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -681,8 +681,8 @@ "------------------------------\r", "→ [nullable] Stimulus\r", "\">\n", - "\n", - "TrialStimulus\n", + "\n", + "TrialStimulus\n", "\n", "\n", "\n", @@ -691,15 +691,15 @@ "Stimulus\n", "\n", - "\n", - "Stimulus\n", + "\n", + "Stimulus\n", "\n", "\n", "\n", "\n", "\n", "Stimulus->TrialStimulus\n", - "\n", + "\n", "\n", "\n", "\n", @@ -709,15 +709,15 @@ "------------------------------\r", "outcome              \r", "\">\n", - "\n", - "Trial\n", + "\n", + "Trial\n", "\n", "\n", "\n", "\n", "\n", "Trial->TrialStimulus\n", - "\n", + "\n", "\n", "\n", "" @@ -794,30 +794,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -835,8 +835,8 @@ "→ Employee\r", "location             \r", "\">\n", - "\n", - "ParkingSpot\n", + "\n", + "ParkingSpot\n", "\n", "\n", "\n", @@ -847,15 +847,15 @@ "------------------------------\r", "name                 \r", "\">\n", - "\n", - "Employee\n", + "\n", + "Employee\n", "\n", "\n", "\n", "\n", "\n", "Employee->ParkingSpot\n", - "\n", + "\n", "\n", "\n", "" @@ -945,30 +945,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -985,8 +985,8 @@ "------------------------------\r", "species              \r", "\">\n", - "\n", - "Subject\n", + "\n", + "Subject\n", "\n", "\n", "\n", @@ -998,15 +998,15 @@ "------------------------------\r", "assigned_date        \r", "\">\n", - "\n", - "Assignment\n", + "\n", + "Assignment\n", "\n", "\n", "\n", "\n", "\n", "Subject->Assignment\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1015,15 +1015,15 @@ "------------------------------\r", "protocol_name        \r", "\">\n", - "\n", - "Protocol\n", + "\n", + "Protocol\n", "\n", "\n", "\n", "\n", "\n", "Protocol->Assignment\n", - "\n", + "\n", "\n", "\n", "" @@ -1106,30 +1106,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -1146,8 +1146,8 @@ "------------------------------\r", "species              \r", "\">\n", - "\n", - "Subject\n", + "\n", + "Subject\n", "\n", "\n", "\n", @@ -1159,15 +1159,15 @@ "------------------------------\r", "session_date         \r", "\">\n", - "\n", - "Session\n", + "\n", + "Session\n", "\n", "\n", "\n", "\n", "\n", "Subject->Session\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1177,15 +1177,15 @@ "------------------------------\r", "outcome              \r", "\">\n", - "\n", - "Trial\n", + "\n", + "Trial\n", "\n", "\n", "\n", "\n", "\n", "Session->Trial\n", - "\n", + "\n", "\n", "\n", "" @@ -1249,30 +1249,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -1294,8 +1294,8 @@ "------------------------------\r", "depth                \r", "\">\n", - "\n", - "Scan\n", + "\n", + "Scan\n", "\n", "\n", "\n", @@ -1308,15 +1308,15 @@ "x                    \r", "y                    \r", "\">\n", - "\n", - "ROI\n", + "\n", + "ROI\n", "\n", "\n", "\n", "\n", "\n", "Scan->Scan.ROI\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1326,15 +1326,15 @@ "------------------------------\r", "session_date         \r", "\">\n", - "\n", - "Session\n", + "\n", + "Session\n", "\n", "\n", "\n", "\n", "\n", "Session->Scan\n", - "\n", + "\n", "\n", "\n", "" @@ -1416,30 +1416,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -1457,8 +1457,8 @@ "------------------------------\r", "similarity           \r", "\">\n", - "\n", - "Comparison\n", + "\n", + "Comparison\n", "\n", "\n", "\n", @@ -1470,8 +1470,8 @@ "------------------------------\r", "session_date         \r", "\">\n", - "\n", - "Session\n", + "\n", + "Session\n", "\n", "\n", "\n", @@ -1560,30 +1560,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -1601,8 +1601,8 @@ "------------------------------\r", "outcome              \r", "\">\n", - "\n", - "Trial\n", + "\n", + "Trial\n", "\n", "\n", "\n", @@ -1613,15 +1613,15 @@ "------------------------------\r", "score                \r", "\">\n", - "\n", - "TrialAnalysis\n", + "\n", + "TrialAnalysis\n", "\n", "\n", "\n", "\n", "\n", "Trial->TrialAnalysis\n", - "\n", + "\n", "\n", "\n", "" @@ -1692,30 +1692,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -1737,8 +1737,8 @@ "------------------------------\r", "depth                \r", "\">\n", - "\n", - "Scan\n", + "\n", + "Scan\n", "\n", "\n", "\n", @@ -1751,15 +1751,15 @@ "x                    \r", "y                    \r", "\">\n", - "\n", - "ROI\n", + "\n", + "ROI\n", "\n", "\n", "\n", "\n", "\n", "Scan->Scan.ROI\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1768,8 +1768,8 @@ "------------------------------\r", "species              \r", "\">\n", - "\n", - "Subject\n", + "\n", + "Subject\n", "\n", "\n", "\n", @@ -1781,15 +1781,15 @@ "------------------------------\r", "session_date         \r", "\">\n", - "\n", - "Session\n", + "\n", + "Session\n", "\n", "\n", "\n", "\n", "\n", "Subject->Session\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1799,15 +1799,15 @@ "weight               \r", "notes                \r", "\">\n", - "\n", - "SubjectDetails\n", + "\n", + "SubjectDetails\n", "\n", "\n", "\n", "\n", "\n", "Subject->SubjectDetails\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1817,20 +1817,20 @@ "------------------------------\r", "assigned_date        \r", "\">\n", - "\n", - "Assignment\n", + "\n", + "Assignment\n", "\n", "\n", "\n", "\n", "\n", "Subject->Assignment\n", - "\n", + "\n", "\n", "\n", "\n", "Session->Scan\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1840,15 +1840,15 @@ "------------------------------\r", "outcome              \r", "\">\n", - "\n", - "Trial\n", + "\n", + "Trial\n", "\n", "\n", "\n", "\n", "\n", "Session->Trial\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1858,8 +1858,8 @@ "------------------------------\r", "similarity           \r", "\">\n", - "\n", - "Comparison\n", + "\n", + "Comparison\n", "\n", "\n", "\n", @@ -1886,15 +1886,15 @@ "------------------------------\r", "→ [nullable] Stimulus\r", "\">\n", - "\n", - "TrialStimulus\n", + "\n", + "TrialStimulus\n", "\n", "\n", "\n", "\n", "\n", "Trial->TrialStimulus\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1903,15 +1903,15 @@ "------------------------------\r", "score                \r", "\">\n", - "\n", - "TrialAnalysis\n", + "\n", + "TrialAnalysis\n", "\n", "\n", "\n", "\n", "\n", "Trial->TrialAnalysis\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1920,8 +1920,8 @@ "------------------------------\r", "equipment_name       \r", "\">\n", - "\n", - "Equipment\n", + "\n", + "Equipment\n", "\n", "\n", "\n", @@ -1933,30 +1933,30 @@ "→ Equipment\r", "duration             \r", "\">\n", - "\n", - "Recording\n", + "\n", + "Recording\n", "\n", "\n", "\n", "\n", "\n", "Equipment->Recording\n", - "\n", + "\n", "\n", "\n", "\n", "Stimulus\n", "\n", - "\n", - "Stimulus\n", + "\n", + "Stimulus\n", "\n", "\n", "\n", "\n", "\n", "Stimulus->TrialStimulus\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1965,8 +1965,8 @@ "------------------------------\r", "name                 \r", "\">\n", - "\n", - "Employee\n", + "\n", + "Employee\n", "\n", "\n", "\n", @@ -1978,15 +1978,15 @@ "→ Employee\r", "location             \r", "\">\n", - "\n", - "ParkingSpot\n", + "\n", + "ParkingSpot\n", "\n", "\n", "\n", "\n", "\n", "Employee->ParkingSpot\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1995,15 +1995,15 @@ "------------------------------\r", "protocol_name        \r", "\">\n", - "\n", - "Protocol\n", + "\n", + "Protocol\n", "\n", "\n", "\n", "\n", "\n", "Protocol->Assignment\n", - "\n", + "\n", "\n", "\n", "" diff --git a/src/how-to/read-diagrams.ipynb b/src/how-to/read-diagrams.ipynb index 201466c9..e248b311 100644 --- a/src/how-to/read-diagrams.ipynb +++ b/src/how-to/read-diagrams.ipynb @@ -94,30 +94,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -134,8 +134,8 @@ "------------------------------\r", "name                 \r", "\">\n", - "\n", - "Customer\n", + "\n", + "Customer\n", "\n", "\n", "\n", @@ -147,15 +147,15 @@ "theme                \r", "notifications        \r", "\">\n", - "\n", - "CustomerPreferences\n", + "\n", + "CustomerPreferences\n", "\n", "\n", "\n", "\n", "\n", "Customer->CustomerPreferences\n", - "\n", + "\n", "\n", "\n", "" @@ -238,30 +238,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -278,8 +278,8 @@ "------------------------------\r", "name                 \r", "\">\n", - "\n", - "Customer\n", + "\n", + "Customer\n", "\n", "\n", "\n", @@ -291,15 +291,15 @@ "------------------------------\r", "balance              \r", "\">\n", - "\n", - "Account\n", + "\n", + "Account\n", "\n", "\n", "\n", "\n", "\n", "Customer->Account\n", - "\n", + "\n", "\n", "\n", "" @@ -374,30 +374,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -415,8 +415,8 @@ "→ Department\r", "employee_name        \r", "\">\n", - "\n", - "Employee\n", + "\n", + "Employee\n", "\n", "\n", "\n", @@ -427,15 +427,15 @@ "------------------------------\r", "dept_name            \r", "\">\n", - "\n", - "Department\n", + "\n", + "Department\n", "\n", "\n", "\n", "\n", "\n", "Department->Employee\n", - "\n", + "\n", "\n", "\n", "" @@ -527,30 +527,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -567,8 +567,8 @@ "------------------------------\r", "name                 \r", "\">\n", - "\n", - "Customer\n", + "\n", + "Customer\n", "\n", "\n", "\n", @@ -580,15 +580,15 @@ "theme                \r", "notifications        \r", "\">\n", - "\n", - "CustomerPreferences\n", + "\n", + "CustomerPreferences\n", "\n", "\n", "\n", "\n", "\n", "Customer->CustomerPreferences\n", - "\n", + "\n", "\n", "\n", "\n", @@ -598,15 +598,15 @@ "------------------------------\r", "balance              \r", "\">\n", - "\n", - "Account\n", + "\n", + "Account\n", "\n", "\n", "\n", "\n", "\n", "Customer->Account\n", - "\n", + "\n", "\n", "\n", "\n", @@ -615,8 +615,8 @@ "------------------------------\r", "dept_name            \r", "\">\n", - "\n", - "Department\n", + "\n", + "Department\n", "\n", "\n", "\n", @@ -628,15 +628,15 @@ "→ Department\r", "employee_name        \r", "\">\n", - "\n", - "Employee\n", + "\n", + "Employee\n", "\n", "\n", "\n", "\n", "\n", "Department->Employee\n", - "\n", + "\n", "\n", "\n", "\n", @@ -645,8 +645,8 @@ "------------------------------\r", "species              \r", "\">\n", - "\n", - "Subject\n", + "\n", + "Subject\n", "\n", "\n", "\n", @@ -658,15 +658,15 @@ "------------------------------\r", "session_date         \r", "\">\n", - "\n", - "Session\n", + "\n", + "Session\n", "\n", "\n", "\n", "\n", "\n", "Subject->Session\n", - "\n", + "\n", "\n", "\n", "\n", @@ -675,15 +675,15 @@ "------------------------------\r", "passed               \r", "\">\n", - "\n", - "SessionQC\n", + "\n", + "SessionQC\n", "\n", "\n", "\n", "\n", "\n", "Session->SessionQC\n", - "\n", + "\n", "\n", "\n", "" @@ -775,30 +775,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -815,8 +815,8 @@ "------------------------------\r", "name                 \r", "\">\n", - "\n", - "Student\n", + "\n", + "Student\n", "\n", "\n", "\n", @@ -828,15 +828,15 @@ "------------------------------\r", "grade                \r", "\">\n", - "\n", - "Enrollment\n", + "\n", + "Enrollment\n", "\n", "\n", "\n", "\n", "\n", "Student->Enrollment\n", - "\n", + "\n", "\n", "\n", "\n", @@ -845,15 +845,15 @@ "------------------------------\r", "title                \r", "\">\n", - "\n", - "Course\n", + "\n", + "Course\n", "\n", "\n", "\n", "\n", "\n", "Course->Enrollment\n", - "\n", + "\n", "\n", "\n", "" @@ -944,30 +944,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -984,8 +984,8 @@ "------------------------------\r", "name                 \r", "\">\n", - "\n", - "Person\n", + "\n", + "Person\n", "\n", "\n", "\n", @@ -998,8 +998,8 @@ "→ Person.proj(spouse2="person_id")\r", "marriage_date        \r", "\">\n", - "\n", - "Marriage\n", + "\n", + "Marriage\n", "\n", "\n", "\n", @@ -1111,30 +1111,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -1151,8 +1151,8 @@ "------------------------------\r", "notes                \r", "\">\n", - "\n", - "NeuronProfile\n", + "\n", + "NeuronProfile\n", "\n", "\n", "\n", @@ -1164,8 +1164,8 @@ "------------------------------\r", "weight               \r", "\">\n", - "\n", - "Synapse\n", + "\n", + "Synapse\n", "\n", "\n", "\n", @@ -1176,8 +1176,8 @@ "------------------------------\r", "region               \r", "\">\n", - "\n", - "Neuron\n", + "\n", + "Neuron\n", "\n", "\n", "\n", @@ -1284,30 +1284,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -1324,8 +1324,8 @@ "------------------------------\r", "name                 \r", "\">\n", - "\n", - "Customer\n", + "\n", + "Customer\n", "\n", "\n", "\n", @@ -1337,15 +1337,15 @@ "theme                \r", "notifications        \r", "\">\n", - "\n", - "CustomerPreferences\n", + "\n", + "CustomerPreferences\n", "\n", "\n", "\n", "\n", "\n", "Customer->CustomerPreferences\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1355,15 +1355,15 @@ "------------------------------\r", "balance              \r", "\">\n", - "\n", - "Account\n", + "\n", + "Account\n", "\n", "\n", "\n", "\n", "\n", "Customer->Account\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1372,8 +1372,8 @@ "------------------------------\r", "dept_name            \r", "\">\n", - "\n", - "Department\n", + "\n", + "Department\n", "\n", "\n", "\n", @@ -1385,15 +1385,15 @@ "→ Department\r", "employee_name        \r", "\">\n", - "\n", - "Employee\n", + "\n", + "Employee\n", "\n", "\n", "\n", "\n", "\n", "Department->Employee\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1402,8 +1402,8 @@ "------------------------------\r", "species              \r", "\">\n", - "\n", - "Subject\n", + "\n", + "Subject\n", "\n", "\n", "\n", @@ -1415,15 +1415,15 @@ "------------------------------\r", "session_date         \r", "\">\n", - "\n", - "Session\n", + "\n", + "Session\n", "\n", "\n", "\n", "\n", "\n", "Subject->Session\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1432,15 +1432,15 @@ "------------------------------\r", "passed               \r", "\">\n", - "\n", - "SessionQC\n", + "\n", + "SessionQC\n", "\n", "\n", "\n", "\n", "\n", "Session->SessionQC\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1449,8 +1449,8 @@ "------------------------------\r", "name                 \r", "\">\n", - "\n", - "Student\n", + "\n", + "Student\n", "\n", "\n", "\n", @@ -1462,15 +1462,15 @@ "------------------------------\r", "grade                \r", "\">\n", - "\n", - "Enrollment\n", + "\n", + "Enrollment\n", "\n", "\n", "\n", "\n", "\n", "Student->Enrollment\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1479,15 +1479,15 @@ "------------------------------\r", "title                \r", "\">\n", - "\n", - "Course\n", + "\n", + "Course\n", "\n", "\n", "\n", "\n", "\n", "Course->Enrollment\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1496,8 +1496,8 @@ "------------------------------\r", "name                 \r", "\">\n", - "\n", - "Person\n", + "\n", + "Person\n", "\n", "\n", "\n", @@ -1510,8 +1510,8 @@ "→ Person.proj(spouse2="person_id")\r", "marriage_date        \r", "\">\n", - "\n", - "Marriage\n", + "\n", + "Marriage\n", "\n", "\n", "\n", @@ -1572,30 +1572,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -1625,15 +1625,15 @@ "------------------------------\r", "session_date         \r", "\">\n", - "\n", - "Session\n", + "\n", + "Session\n", "\n", "\n", "\n", "\n", "\n", "__main__->Session\n", - "\n", + "\n", "\n", "\n", "" @@ -1676,30 +1676,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -1716,8 +1716,8 @@ "------------------------------\r", "passed               \r", "\">\n", - "\n", - "SessionQC\n", + "\n", + "SessionQC\n", "\n", "\n", "\n", @@ -1729,15 +1729,15 @@ "------------------------------\r", "session_date         \r", "\">\n", - "\n", - "Session\n", + "\n", + "Session\n", "\n", "\n", "\n", "\n", "\n", "Session->SessionQC\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1746,15 +1746,15 @@ "------------------------------\r", "species              \r", "\">\n", - "\n", - "Subject\n", + "\n", + "Subject\n", "\n", "\n", "\n", "\n", "\n", "Subject->Session\n", - "\n", + "\n", "\n", "\n", "" @@ -1836,30 +1836,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -1876,8 +1876,8 @@ "------------------------------\r", "name                 \r", "\">\n", - "\n", - "Customer\n", + "\n", + "Customer\n", "\n", "\n", "\n", @@ -1889,15 +1889,15 @@ "theme                \r", "notifications        \r", "\">\n", - "\n", - "CustomerPreferences\n", + "\n", + "CustomerPreferences\n", "\n", "\n", "\n", "\n", "\n", "Customer->CustomerPreferences\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1907,15 +1907,15 @@ "------------------------------\r", "balance              \r", "\">\n", - "\n", - "Account\n", + "\n", + "Account\n", "\n", "\n", "\n", "\n", "\n", "Customer->Account\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1924,8 +1924,8 @@ "------------------------------\r", "dept_name            \r", "\">\n", - "\n", - "Department\n", + "\n", + "Department\n", "\n", "\n", "\n", @@ -1937,15 +1937,15 @@ "→ Department\r", "employee_name        \r", "\">\n", - "\n", - "Employee\n", + "\n", + "Employee\n", "\n", "\n", "\n", "\n", "\n", "Department->Employee\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1954,8 +1954,8 @@ "------------------------------\r", "species              \r", "\">\n", - "\n", - "Subject\n", + "\n", + "Subject\n", "\n", "\n", "\n", @@ -1967,15 +1967,15 @@ "------------------------------\r", "session_date         \r", "\">\n", - "\n", - "Session\n", + "\n", + "Session\n", "\n", "\n", "\n", "\n", "\n", "Subject->Session\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1984,15 +1984,15 @@ "------------------------------\r", "passed               \r", "\">\n", - "\n", - "SessionQC\n", + "\n", + "SessionQC\n", "\n", "\n", "\n", "\n", "\n", "Session->SessionQC\n", - "\n", + "\n", "\n", "\n", "\n", @@ -2001,8 +2001,8 @@ "------------------------------\r", "name                 \r", "\">\n", - "\n", - "Student\n", + "\n", + "Student\n", "\n", "\n", "\n", @@ -2014,15 +2014,15 @@ "------------------------------\r", "grade                \r", "\">\n", - "\n", - "Enrollment\n", + "\n", + "Enrollment\n", "\n", "\n", "\n", "\n", "\n", "Student->Enrollment\n", - "\n", + "\n", "\n", "\n", "\n", @@ -2031,15 +2031,15 @@ "------------------------------\r", "title                \r", "\">\n", - "\n", - "Course\n", + "\n", + "Course\n", "\n", "\n", "\n", "\n", "\n", "Course->Enrollment\n", - "\n", + "\n", "\n", "\n", "\n", @@ -2048,8 +2048,8 @@ "------------------------------\r", "name                 \r", "\">\n", - "\n", - "Person\n", + "\n", + "Person\n", "\n", "\n", "\n", @@ -2062,8 +2062,8 @@ "→ Person.proj(spouse2="person_id")\r", "marriage_date        \r", "\">\n", - "\n", - "Marriage\n", + "\n", + "Marriage\n", "\n", "\n", "\n", @@ -2131,11 +2131,11 @@ "text": [ "flowchart LR\n", "\n", - " classDef manual fill:#E7F3EC,stroke:#2F7D5B,color:#1B5138\n", - " classDef lookup fill:#F2F4F7,stroke:#A9B1BD,color:#495261\n", - " classDef computed fill:#FBEAEC,stroke:#B23A48,color:#7C2430\n", - " classDef imported fill:#E2ECFA,stroke:#2A5FA5,color:#123A6D\n", - " classDef part fill:#FFFFFF,stroke:#9AA6B8,color:#46536B\n", + " classDef manual fill:#E8F0E9,stroke:#3E7A52,color:#28513A\n", + " classDef lookup fill:#F0F0F1,stroke:#808285,color:#5A5C5F\n", + " classDef computed fill:#FFEDE5,stroke:#FF5113,color:#B23200\n", + " classDef imported fill:#E0F4FC,stroke:#00A0DF,color:#00537A\n", + " classDef part fill:#FFFFFF,stroke:#B9BBBE,color:#55585C\n", " classDef other fill:#FFFDE7,stroke:#C9BC5B,color:#6B6420\n", " classDef collapsed fill:#EDEEF0,stroke:#808890,color:#404040\n", "\n", @@ -2255,30 +2255,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -2300,8 +2300,8 @@ "------------------------------\r", "name                 \r", "\">\n", - "\n", - "Customer\n", + "\n", + "Customer\n", "\n", "\n", "\n", @@ -2313,15 +2313,15 @@ "theme                \r", "notifications        \r", "\">\n", - "\n", - "CustomerPreferences\n", + "\n", + "CustomerPreferences\n", "\n", "\n", "\n", "\n", "\n", "Customer->CustomerPreferences\n", - "\n", + "\n", "\n", "\n", "\n", @@ -2331,15 +2331,15 @@ "------------------------------\r", "balance              \r", "\">\n", - "\n", - "Account\n", + "\n", + "Account\n", "\n", "\n", "\n", "\n", "\n", "Customer->Account\n", - "\n", + "\n", "\n", "\n", "\n", @@ -2348,8 +2348,8 @@ "------------------------------\r", "email                \r", "\">\n", - "\n", - "Experimenter\n", + "\n", + "Experimenter\n", "\n", "\n", "\n", @@ -2362,15 +2362,15 @@ "------------------------------\r", "notes                \r", "\">\n", - "\n", - "Experiment\n", + "\n", + "Experiment\n", "\n", "\n", "\n", "\n", "\n", "Experimenter->Experiment\n", - "\n", + "\n", "\n", "\n", "\n", @@ -2379,15 +2379,15 @@ "------------------------------\r", "result               \r", "\">\n", - "\n", - "Analysis\n", + "\n", + "Analysis\n", "\n", "\n", "\n", "\n", "\n", "Experiment->Analysis\n", - "\n", + "\n", "\n", "\n", "\n", @@ -2396,8 +2396,8 @@ "------------------------------\r", "dept_name            \r", "\">\n", - "\n", - "Department\n", + "\n", + "Department\n", "\n", "\n", "\n", @@ -2409,15 +2409,15 @@ "→ Department\r", "employee_name        \r", "\">\n", - "\n", - "Employee\n", + "\n", + "Employee\n", "\n", "\n", "\n", "\n", "\n", "Department->Employee\n", - "\n", + "\n", "\n", "\n", "\n", @@ -2426,15 +2426,15 @@ "------------------------------\r", "species              \r", "\">\n", - "\n", - "Subject\n", + "\n", + "Subject\n", "\n", "\n", "\n", "\n", "\n", "Subject->Experiment\n", - "\n", + "\n", "\n", "\n", "\n", @@ -2444,15 +2444,15 @@ "------------------------------\r", "session_date         \r", "\">\n", - "\n", - "Session\n", + "\n", + "Session\n", "\n", "\n", "\n", "\n", "\n", "Subject->Session\n", - "\n", + "\n", "\n", "\n", "\n", @@ -2461,15 +2461,15 @@ "------------------------------\r", "passed               \r", "\">\n", - "\n", - "SessionQC\n", + "\n", + "SessionQC\n", "\n", "\n", "\n", "\n", "\n", "Session->SessionQC\n", - "\n", + "\n", "\n", "\n", "\n", @@ -2478,8 +2478,8 @@ "------------------------------\r", "name                 \r", "\">\n", - "\n", - "Student\n", + "\n", + "Student\n", "\n", "\n", "\n", @@ -2491,15 +2491,15 @@ "------------------------------\r", "grade                \r", "\">\n", - "\n", - "Enrollment\n", + "\n", + "Enrollment\n", "\n", "\n", "\n", "\n", "\n", "Student->Enrollment\n", - "\n", + "\n", "\n", "\n", "\n", @@ -2508,15 +2508,15 @@ "------------------------------\r", "title                \r", "\">\n", - "\n", - "Course\n", + "\n", + "Course\n", "\n", "\n", "\n", "\n", "\n", "Course->Enrollment\n", - "\n", + "\n", "\n", "\n", "\n", @@ -2525,8 +2525,8 @@ "------------------------------\r", "name                 \r", "\">\n", - "\n", - "Person\n", + "\n", + "Person\n", "\n", "\n", "\n", @@ -2539,8 +2539,8 @@ "→ Person.proj(spouse2="person_id")\r", "marriage_date        \r", "\">\n", - "\n", - "Marriage\n", + "\n", + "Marriage\n", "\n", "\n", "\n", @@ -2627,30 +2627,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -2672,8 +2672,8 @@ "------------------------------\r", "name                 \r", "\">\n", - "\n", - "Customer\n", + "\n", + "Customer\n", "\n", "\n", "\n", @@ -2685,15 +2685,15 @@ "theme                \r", "notifications        \r", "\">\n", - "\n", - "CustomerPreferences\n", + "\n", + "CustomerPreferences\n", "\n", "\n", "\n", "\n", "\n", "Customer->CustomerPreferences\n", - "\n", + "\n", "\n", "\n", "\n", @@ -2703,15 +2703,15 @@ "------------------------------\r", "balance              \r", "\">\n", - "\n", - "Account\n", + "\n", + "Account\n", "\n", "\n", "\n", "\n", "\n", "Customer->Account\n", - "\n", + "\n", "\n", "\n", "\n", @@ -2732,8 +2732,8 @@ "------------------------------\r", "dept_name            \r", "\">\n", - "\n", - "Department\n", + "\n", + "Department\n", "\n", "\n", "\n", @@ -2745,15 +2745,15 @@ "→ Department\r", "employee_name        \r", "\">\n", - "\n", - "Employee\n", + "\n", + "Employee\n", "\n", "\n", "\n", "\n", "\n", "Department->Employee\n", - "\n", + "\n", "\n", "\n", "\n", @@ -2762,15 +2762,15 @@ "------------------------------\r", "species              \r", "\">\n", - "\n", - "Subject\n", + "\n", + "Subject\n", "\n", "\n", "\n", "\n", "\n", "Subject->howto_analysis\n", - "\n", + "\n", "\n", "\n", "\n", @@ -2780,15 +2780,15 @@ "------------------------------\r", "session_date         \r", "\">\n", - "\n", - "Session\n", + "\n", + "Session\n", "\n", "\n", "\n", "\n", "\n", "Subject->Session\n", - "\n", + "\n", "\n", "\n", "\n", @@ -2797,15 +2797,15 @@ "------------------------------\r", "passed               \r", "\">\n", - "\n", - "SessionQC\n", + "\n", + "SessionQC\n", "\n", "\n", "\n", "\n", "\n", "Session->SessionQC\n", - "\n", + "\n", "\n", "\n", "\n", @@ -2814,8 +2814,8 @@ "------------------------------\r", "name                 \r", "\">\n", - "\n", - "Student\n", + "\n", + "Student\n", "\n", "\n", "\n", @@ -2827,15 +2827,15 @@ "------------------------------\r", "grade                \r", "\">\n", - "\n", - "Enrollment\n", + "\n", + "Enrollment\n", "\n", "\n", "\n", "\n", "\n", "Student->Enrollment\n", - "\n", + "\n", "\n", "\n", "\n", @@ -2844,15 +2844,15 @@ "------------------------------\r", "title                \r", "\">\n", - "\n", - "Course\n", + "\n", + "Course\n", "\n", "\n", "\n", "\n", "\n", "Course->Enrollment\n", - "\n", + "\n", "\n", "\n", "\n", @@ -2861,8 +2861,8 @@ "------------------------------\r", "name                 \r", "\">\n", - "\n", - "Person\n", + "\n", + "Person\n", "\n", "\n", "\n", @@ -2875,8 +2875,8 @@ "→ Person.proj(spouse2="person_id")\r", "marriage_date        \r", "\">\n", - "\n", - "Marriage\n", + "\n", + "Marriage\n", "\n", "\n", "\n", @@ -2947,30 +2947,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -3004,15 +3004,15 @@ "------------------------------\r", "species              \r", "\">\n", - "\n", - "Subject\n", + "\n", + "Subject\n", "\n", "\n", "\n", "\n", "\n", "Subject->howto_analysis\n", - "\n", + "\n", "\n", "\n", "\n", @@ -3021,15 +3021,15 @@ "------------------------------\r", "email                \r", "\">\n", - "\n", - "Experimenter\n", + "\n", + "Experimenter\n", "\n", "\n", "\n", "\n", "\n", "Experimenter->howto_analysis\n", - "\n", + "\n", "\n", "\n", "" @@ -3080,30 +3080,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -3120,8 +3120,8 @@ "------------------------------\r", "result               \r", "\">\n", - "\n", - "FinalResult\n", + "\n", + "FinalResult\n", "\n", "\n", "\n", @@ -3130,8 +3130,8 @@ "RawData\n", "\n", - "\n", - "RawData\n", + "\n", + "RawData\n", "\n", "\n", "\n", @@ -3150,12 +3150,12 @@ "\n", "\n", "RawData->__main__\n", - "\n", + "\n", "\n", "\n", "\n", "__main__->FinalResult\n", - "\n", + "\n", "\n", "\n", "" @@ -3292,30 +3292,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -3344,8 +3344,8 @@ "species              \r", "sex                  \r", "\">\n", - "\n", - "Subject\n", + "\n", + "Subject\n", "\n", "\n", "\n", @@ -3357,15 +3357,15 @@ "------------------------------\r", "aggregate_score      \r", "\">\n", - "\n", - "CrossSessionAnalysis\n", + "\n", + "CrossSessionAnalysis\n", "\n", "\n", "\n", "\n", "\n", "acquisition.Subject->analysis.CrossSessionAnalysis\n", - "\n", + "\n", "\n", "\n", "\n", @@ -3375,15 +3375,15 @@ "------------------------------\r", "session_notes        \r", "\">\n", - "\n", - "Session\n", + "\n", + "Session\n", "\n", "\n", "\n", "\n", "\n", "acquisition.Subject->acquisition.Session\n", - "\n", + "\n", "\n", "\n", "\n", @@ -3394,15 +3394,15 @@ "result               \r", "confidence           \r", "\">\n", - "\n", - "SubjectAnalysis\n", + "\n", + "SubjectAnalysis\n", "\n", "\n", "\n", "\n", "\n", "acquisition.Subject->analysis.SubjectAnalysis\n", - "\n", + "\n", "\n", "\n", "\n", @@ -3413,8 +3413,8 @@ "event_time           \r", "amplitude            \r", "\">\n", - "\n", - "EventDetection\n", + "\n", + "EventDetection\n", "\n", "\n", "\n", @@ -3425,15 +3425,15 @@ "------------------------------\r", "method               \r", "\">\n", - "\n", - "AnalysisParams\n", + "\n", + "AnalysisParams\n", "\n", "\n", "\n", "\n", "\n", "analysis.AnalysisParams->analysis.SubjectAnalysis\n", - "\n", + "\n", "\n", "\n", "\n", @@ -3443,15 +3443,15 @@ "filter_cutoff        \r", "threshold            \r", "\">\n", - "\n", - "ProcessingParams\n", + "\n", + "ProcessingParams\n", "\n", "\n", "\n", "\n", "\n", "processing.ProcessingParams->analysis.CrossSessionAnalysis\n", - "\n", + "\n", "\n", "\n", "\n", @@ -3462,15 +3462,15 @@ "n_events             \r", "quality_score        \r", "\">\n", - "\n", - "ProcessedSession\n", + "\n", + "ProcessedSession\n", "\n", "\n", "\n", "\n", "\n", "processing.ProcessingParams->processing.ProcessedSession\n", - "\n", + "\n", "\n", "\n", "\n", @@ -3479,25 +3479,25 @@ "------------------------------\r", "institution          \r", "\">\n", - "\n", - "Lab\n", + "\n", + "Lab\n", "\n", "\n", "\n", "\n", "\n", "acquisition.Lab->acquisition.Subject\n", - "\n", + "\n", "\n", "\n", "\n", "processing.ProcessedSession->processing.EventDetection\n", - "\n", + "\n", "\n", "\n", "\n", "acquisition.Session->processing.ProcessedSession\n", - "\n", + "\n", "\n", "\n", "" @@ -3570,30 +3570,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -3622,8 +3622,8 @@ "species              \r", "sex                  \r", "\">\n", - "\n", - "Subject\n", + "\n", + "Subject\n", "\n", "\n", "\n", @@ -3642,7 +3642,7 @@ "\n", "\n", "acquisition.Subject->analysis\n", - "\n", + "\n", "\n", "\n", "\n", @@ -3652,15 +3652,15 @@ "------------------------------\r", "session_notes        \r", "\">\n", - "\n", - "Session\n", + "\n", + "Session\n", "\n", "\n", "\n", "\n", "\n", "acquisition.Subject->acquisition.Session\n", - "\n", + "\n", "\n", "\n", "\n", @@ -3677,7 +3677,7 @@ "\n", "\n", "processing->analysis\n", - "\n", + "\n", "\n", "\n", "\n", @@ -3686,20 +3686,20 @@ "------------------------------\r", "institution          \r", "\">\n", - "\n", - "Lab\n", + "\n", + "Lab\n", "\n", "\n", "\n", "\n", "\n", "acquisition.Lab->acquisition.Subject\n", - "\n", + "\n", "\n", "\n", "\n", "acquisition.Session->processing\n", - "\n", + "\n", "\n", "\n", "" @@ -3743,30 +3743,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -3790,8 +3790,8 @@ "species              \r", "sex                  \r", "\">\n", - "\n", - "Subject\n", + "\n", + "Subject\n", "\n", "\n", "\n", @@ -3810,7 +3810,7 @@ "\n", "\n", "acquisition.Subject->analysis\n", - "\n", + "\n", "\n", "\n", "" @@ -3853,30 +3853,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -3923,7 +3923,7 @@ "\n", "\n", "acquisition->processing\n", - "\n", + "\n", "\n", "\n", "\n", @@ -3940,12 +3940,12 @@ "\n", "\n", "acquisition->analysis\n", - "\n", + "\n", "\n", "\n", "\n", "processing->analysis\n", - "\n", + "\n", "\n", "\n", "" diff --git a/src/images/imaging-schema.svg b/src/images/imaging-schema.svg new file mode 100644 index 00000000..7bda33a1 --- /dev/null +++ b/src/images/imaging-schema.svg @@ -0,0 +1,137 @@ + + + + + + + + + +cluster_cluster_imaging + +imaging + + +cluster_cluster_entity_Fluorescence + + + +cluster_cluster_entity_Segmentation + + + + +Segmentation + + +Segmentation + + + + + +Fluorescence + + +Fluorescence + + + + + +Segmentation->Fluorescence + + + + +Segmentation.Roi + + +Roi + + + + + +Segmentation->Segmentation.Roi + + + + +Fluorescence.Trace + + +Trace + + + + + +Fluorescence->Fluorescence.Trace + + + + +Segmentation.Roi->Fluorescence.Trace + + + + +ScanQuality + + +ScanQuality + + + + + +MotionCorrection + + +MotionCorrection + + + + + +MotionCorrection->Segmentation + + + + diff --git a/src/images/pipeline-modules-collapsed.svg b/src/images/pipeline-modules-collapsed.svg new file mode 100644 index 00000000..66ab8dc9 --- /dev/null +++ b/src/images/pipeline-modules-collapsed.svg @@ -0,0 +1,133 @@ + + + + + + + + + +cluster_cluster_imaging + +imaging + + +cluster_cluster_lab + +lab + + +cluster_cluster_reference + +reference + + +cluster_cluster_session + +session + + + +imaging + + + + + +(6 tables) + + + + + +lab + + + + + +(3 tables) + + + + + +session + + + + + +(3 tables) + + + + + +lab->session + + + + +reference + + + + + +(2 tables) + + + + + +reference->imaging + + + + +reference->session + + + + +session->imaging + + + + diff --git a/src/images/pipeline-modules.svg b/src/images/pipeline-modules.svg index f71aa539..213c7c77 100644 --- a/src/images/pipeline-modules.svg +++ b/src/images/pipeline-modules.svg @@ -4,8 +4,8 @@ - + - - + + cluster_cluster_imaging - -imaging + +imaging +cluster_cluster_entity_Fluorescence + + + +cluster_cluster_entity_Segmentation + + + cluster_cluster_lab - -lab + +lab - + cluster_cluster_reference - -reference - - -cluster_cluster_scan - -scan + +reference - + cluster_cluster_session - -session - - -cluster_cluster_subject - -subject + +session Fluorescence - -Fluorescence + +Fluorescence - + + +Fluorescence.Trace + + +Trace + + + + + +Fluorescence->Fluorescence.Trace + + + +Segmentation + + +Segmentation + + + + + +Segmentation->Fluorescence + + + + +Segmentation.Roi + + +Roi + + + + + +Segmentation->Segmentation.Roi + + + + Lab - - -Lab + + +Lab - + User - - -User + + +User - + Lab->User - + - + ScannerModel - - -ScannerModel + + +ScannerModel - + Scan - - -Scan + + +Scan - + ScannerModel->Scan - + - + ScanInfo - - -ScanInfo + + +ScanInfo - - -Segmentation - - -Segmentation + + +MotionCorrection + + +MotionCorrection - + + +ScanInfo->MotionCorrection + + + -ScanInfo->Segmentation - +Segmentation.Roi->Fluorescence.Trace + - - -Session - - -Session + + +Subject + + +Subject - - -Session->Scan - - - - -Subject - - -Subject + + +Session + + +Session - + Subject->Session - + - - -Segmentation->Fluorescence - + + +SegmentationMethod + + +SegmentationMethod + - - -User->Subject - + + + +SegmentationMethod->Segmentation + - + Scan->ScanInfo - + + + + +ScanQuality + + +ScanQuality + + + + + +Scan->ScanQuality + + + + +MotionCorrection->Segmentation + + + + +User->Session + + + + +Session->Scan + diff --git a/src/images/rwm-pipeline.svg b/src/images/rwm-pipeline.svg index 4d72b5d3..79a581f6 100644 --- a/src/images/rwm-pipeline.svg +++ b/src/images/rwm-pipeline.svg @@ -36,7 +36,7 @@ [fill="#f3f5f8"] { fill: #2A313D; } [stroke="#f3f5f8"] { stroke: #2A313D; } [stroke="#171d3a"] { stroke: #606875; } - [fill="#171c39"] { fill: #8A93A1; } + [fill="#171c39"] { fill: #9DA0A4; } } diff --git a/src/images/scan-schema.svg b/src/images/scan-schema.svg deleted file mode 100644 index ecb7bdb3..00000000 --- a/src/images/scan-schema.svg +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - -cluster_cluster_scan_detail - -scan - - -cluster_cluster_entity_ScanInfo - - - - -ScanInfo - - -ScanInfo - - - - - -ScanInfo.Field - - -Field - - - - - -ScanInfo->ScanInfo.Field - - - - -ScanInfo.ScanFile - - -ScanFile - - - - - -ScanInfo->ScanInfo.ScanFile - - - - -AcquisitionSoftware - - -AcquisitionSoftware - - - - - -Scan - - -Scan - - - - - -AcquisitionSoftware->Scan - - - - -ScanLocation - - -ScanLocation - - - - - -Scan->ScanInfo - - - - -Scan->ScanLocation - - - - -Channel - - -Channel - - - - - -Channel->ScanInfo.Field - - - - diff --git a/src/index.md b/src/index.md index 8ddbc361..cb11d861 100644 --- a/src/index.md +++ b/src/index.md @@ -2,7 +2,7 @@ !!! tip "Upgrading from 0.14.x?" - - **Migration guide:** [Migrate to 2.0](how-to/migrate-to-v20.md) + - **Migration guide:** [Migrate to 2.x](how-to/migrate-to-v20.md) - **Legacy docs:** [datajoint.github.io](https://datajoint.github.io/datajoint-python) ## About DataJoint diff --git a/src/reference/specs/diagram.md b/src/reference/specs/diagram.md index 9d6a75e6..7611bc1d 100644 --- a/src/reference/specs/diagram.md +++ b/src/reference/specs/diagram.md @@ -340,13 +340,17 @@ save(filename, format=None) Each table tier has a distinct visual style: -| Tier | Shape | Fill Color | Font Color | -|------|-------|------------|------------| -| **Manual** | rectangle | green | dark green | -| **Lookup** | rectangle | gray | dark gray | -| **Computed** | ellipse | red | dark red | -| **Imported** | ellipse | blue | dark blue | -| **Part** | rectangle (smaller, muted) | white | gray | +| Tier | Shape | Fill | Stroke | Text | +|------|-------|------|--------|------| +| **Manual** | rounded box | green `#E8F0E9` | `#3E7A52` | `#28513A` | +| **Lookup** | rounded box | gray `#F0F0F1` | `#808285` | `#5A5C5F` | +| **Imported** | ellipse | blue `#E0F4FC` | `#00A0DF` | `#00537A` | +| **Computed** | ellipse | orange `#FFEDE5` | `#FF5113` | `#B23200` | +| **Part** | rounded box (smaller, muted) | white `#FFFFFF` | `#B9BBBE` | `#55585C` | + +The dark theme derives by rule (same hue per tier, fills inverted toward navy-tinted +darks, text brightened to WCAG AA); the adaptive SVG embeds both via a +`prefers-color-scheme` block. ### Edge Styles diff --git a/src/tutorials/advanced/sql-comparison.ipynb b/src/tutorials/advanced/sql-comparison.ipynb index 2d276c40..58a57dad 100644 --- a/src/tutorials/advanced/sql-comparison.ipynb +++ b/src/tutorials/advanced/sql-comparison.ipynb @@ -2298,30 +2298,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -2339,8 +2339,8 @@ "name                 \r", "email                \r", "\">\n", - "\n", - "Researcher\n", + "\n", + "Researcher\n", "\n", "\n", "\n", @@ -2353,15 +2353,15 @@ "→ Researcher\r", "notes                \r", "\">\n", - "\n", - "Session\n", + "\n", + "Session\n", "\n", "\n", "\n", "\n", "\n", "Researcher->Session\n", - "\n", + "\n", "\n", "\n", "\n", @@ -2371,15 +2371,15 @@ "species              \r", "sex                  \r", "\">\n", - "\n", - "Subject\n", + "\n", + "Subject\n", "\n", "\n", "\n", "\n", "\n", "Subject->Session\n", - "\n", + "\n", "\n", "\n", "\n", @@ -2388,15 +2388,15 @@ "------------------------------\r", "day_of_week          \r", "\">\n", - "\n", - "SessionAnalysis\n", + "\n", + "SessionAnalysis\n", "\n", "\n", "\n", "\n", "\n", "Session->SessionAnalysis\n", - "\n", + "\n", "\n", "\n", "" diff --git a/src/tutorials/basics/01-first-pipeline.ipynb b/src/tutorials/basics/01-first-pipeline.ipynb index 65cab08a..4d198841 100644 --- a/src/tutorials/basics/01-first-pipeline.ipynb +++ b/src/tutorials/basics/01-first-pipeline.ipynb @@ -230,30 +230,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -271,8 +271,8 @@ "researcher_name      \r", "email                \r", "\">\n", - "\n", - "Researcher\n", + "\n", + "Researcher\n", "\n", "\n", "\n", @@ -285,15 +285,15 @@ "→ Researcher\r", "session_notes        \r", "\">\n", - "\n", - "Session\n", + "\n", + "Session\n", "\n", "\n", "\n", "\n", "\n", "Researcher->Session\n", - "\n", + "\n", "\n", "\n", "\n", @@ -304,15 +304,15 @@ "date_of_birth        \r", "sex                  \r", "\">\n", - "\n", - "Subject\n", + "\n", + "Subject\n", "\n", "\n", "\n", "\n", "\n", "Subject->Session\n", - "\n", + "\n", "\n", "\n", "\n", @@ -323,15 +323,15 @@ "duration             \r", "quality              \r", "\">\n", - "\n", - "Recording\n", + "\n", + "Recording\n", "\n", "\n", "\n", "\n", "\n", "Session->Recording\n", - "\n", + "\n", "\n", "\n", "" diff --git a/src/tutorials/basics/02-schema-design.ipynb b/src/tutorials/basics/02-schema-design.ipynb index a2ed23d6..ec834319 100644 --- a/src/tutorials/basics/02-schema-design.ipynb +++ b/src/tutorials/basics/02-schema-design.ipynb @@ -936,30 +936,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -985,8 +985,8 @@ "session_notes="''\r", "task_params=null     \r", "\">\n", - "\n", - "Session\n", + "\n", + "Session\n", "\n", "\n", "\n", @@ -1001,15 +1001,15 @@ "correct              \r", "reaction_time        \r", "\">\n", - "\n", - "Trial\n", + "\n", + "Trial\n", "\n", "\n", "\n", "\n", "\n", "Session->Session.Trial\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1021,15 +1021,15 @@ "accuracy             \r", "mean_reaction_time   \r", "\">\n", - "\n", - "SessionSummary\n", + "\n", + "SessionSummary\n", "\n", "\n", "\n", "\n", "\n", "Session->SessionSummary\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1038,15 +1038,15 @@ "------------------------------\r", "→ [nullable] Experimenter\r", "\">\n", - "\n", - "SessionExperimenter\n", + "\n", + "SessionExperimenter\n", "\n", "\n", "\n", "\n", "\n", "Session->SessionExperimenter\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1057,8 +1057,8 @@ "institution          \r", "created_at=CURRENT_TIMESTAMP \r", "\">\n", - "\n", - "Lab\n", + "\n", + "Lab\n", "\n", "\n", "\n", @@ -1072,20 +1072,20 @@ "date_of_birth        \r", "sex                  \r", "\">\n", - "\n", - "Subject\n", + "\n", + "Subject\n", "\n", "\n", "\n", "\n", "\n", "Lab->Subject\n", - "\n", + "\n", "\n", "\n", "\n", "Subject->Session\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1095,15 +1095,15 @@ "------------------------------\r", "assignment_date      \r", "\">\n", - "\n", - "SubjectProtocol\n", + "\n", + "SubjectProtocol\n", "\n", "\n", "\n", "\n", "\n", "Subject->SubjectProtocol\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1112,30 +1112,30 @@ "------------------------------\r", "description          \r", "\">\n", - "\n", - "TaskType\n", + "\n", + "TaskType\n", "\n", "\n", "\n", "\n", "\n", "TaskType->Session\n", - "\n", + "\n", "\n", "\n", "\n", "SessionStatus\n", "\n", - "\n", - "SessionStatus\n", + "\n", + "SessionStatus\n", "\n", "\n", "\n", "\n", "\n", "SessionStatus->Session\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1145,15 +1145,15 @@ "full_name            \r", "email="''\r", "\">\n", - "\n", - "Experimenter\n", + "\n", + "Experimenter\n", "\n", "\n", "\n", "\n", "\n", "Experimenter->SessionExperimenter\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1163,15 +1163,15 @@ "protocol_name        \r", "version              \r", "\">\n", - "\n", - "Protocol\n", + "\n", + "Protocol\n", "\n", "\n", "\n", "\n", "\n", "Protocol->SubjectProtocol\n", - "\n", + "\n", "\n", "\n", "" diff --git a/src/tutorials/basics/05-computation.ipynb b/src/tutorials/basics/05-computation.ipynb index 5f19c7a9..4f2c8d7b 100644 --- a/src/tutorials/basics/05-computation.ipynb +++ b/src/tutorials/basics/05-computation.ipynb @@ -1094,30 +1094,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -1143,8 +1143,8 @@ "------------------------------\r", "session_date         \r", "\">\n", - "\n", - "Session\n", + "\n", + "Session\n", "\n", "\n", "\n", @@ -1155,15 +1155,15 @@ "------------------------------\r", "n_analyzed           \r", "\">\n", - "\n", - "TrialAnalysis\n", + "\n", + "TrialAnalysis\n", "\n", "\n", "\n", "\n", "\n", "Session->TrialAnalysis\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1176,15 +1176,15 @@ "correct              \r", "reaction_time        \r", "\">\n", - "\n", - "Trial\n", + "\n", + "Trial\n", "\n", "\n", "\n", "\n", "\n", "Session->Session.Trial\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1196,15 +1196,15 @@ "accuracy             \r", "mean_rt              \r", "\">\n", - "\n", - "SessionSummary\n", + "\n", + "SessionSummary\n", "\n", "\n", "\n", "\n", "\n", "Session->SessionSummary\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1214,15 +1214,15 @@ "------------------------------\r", "score                \r", "\">\n", - "\n", - "SessionAnalysis\n", + "\n", + "SessionAnalysis\n", "\n", "\n", "\n", "\n", "\n", "Session->SessionAnalysis\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1233,15 +1233,15 @@ "rt_percentile        \r", "is_fast              \r", "\">\n", - "\n", - "TrialResult\n", + "\n", + "TrialResult\n", "\n", "\n", "\n", "\n", "\n", "TrialAnalysis->TrialAnalysis.TrialResult\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1250,15 +1250,15 @@ "------------------------------\r", "species              \r", "\">\n", - "\n", - "Subject\n", + "\n", + "Subject\n", "\n", "\n", "\n", "\n", "\n", "Subject->Session\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1269,15 +1269,15 @@ "total_trials         \r", "overall_accuracy     \r", "\">\n", - "\n", - "SubjectSummary\n", + "\n", + "SubjectSummary\n", "\n", "\n", "\n", "\n", "\n", "Subject->SubjectSummary\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1286,15 +1286,15 @@ "------------------------------\r", "description          \r", "\">\n", - "\n", - "AnalysisMethod\n", + "\n", + "AnalysisMethod\n", "\n", "\n", "\n", "\n", "\n", "AnalysisMethod->SessionAnalysis\n", - "\n", + "\n", "\n", "\n", "" diff --git a/src/tutorials/domain/allen-ccf/allen-ccf.ipynb b/src/tutorials/domain/allen-ccf/allen-ccf.ipynb index 3cdb528f..bfc183c5 100644 --- a/src/tutorials/domain/allen-ccf/allen-ccf.ipynb +++ b/src/tutorials/domain/allen-ccf/allen-ccf.ipynb @@ -554,30 +554,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -596,8 +596,8 @@ "ccf_resolution       \r", "ccf_description      \r", "\">\n", - "\n", - "CCF\n", + "\n", + "CCF\n", "\n", "\n", "\n", @@ -612,15 +612,15 @@ "color_hex            \r", "structure_order      \r", "\">\n", - "\n", - "BrainRegion\n", + "\n", + "BrainRegion\n", "\n", "\n", "\n", "\n", "\n", "CCF->BrainRegion\n", - "\n", + "\n", "\n", "\n", "\n", @@ -632,15 +632,15 @@ "------------------------------\r", "→ BrainRegion\r", "\">\n", - "\n", - "Voxel\n", + "\n", + "Voxel\n", "\n", "\n", "\n", "\n", "\n", "CCF->Voxel\n", - "\n", + "\n", "\n", "\n", "\n", @@ -650,8 +650,8 @@ "→ BrainRegion.proj(parent_id="region_id")\r", "depth                \r", "\">\n", - "\n", - "RegionParent\n", + "\n", + "RegionParent\n", "\n", "\n", "\n", @@ -666,12 +666,12 @@ "\n", "\n", "BrainRegion->RegionParent\n", - "\n", + "\n", "\n", "\n", "\n", "BrainRegion->Voxel\n", - "\n", + "\n", "\n", "\n", "" @@ -1841,30 +1841,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -1883,8 +1883,8 @@ "ccf_resolution       \r", "ccf_description      \r", "\">\n", - "\n", - "CCF\n", + "\n", + "CCF\n", "\n", "\n", "\n", @@ -1899,15 +1899,15 @@ "color_hex            \r", "structure_order      \r", "\">\n", - "\n", - "BrainRegion\n", + "\n", + "BrainRegion\n", "\n", "\n", "\n", "\n", "\n", "CCF->BrainRegion\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1919,15 +1919,15 @@ "------------------------------\r", "→ BrainRegion\r", "\">\n", - "\n", - "Voxel\n", + "\n", + "Voxel\n", "\n", "\n", "\n", "\n", "\n", "CCF->Voxel\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1937,8 +1937,8 @@ "→ BrainRegion.proj(parent_id="region_id")\r", "depth                \r", "\">\n", - "\n", - "RegionParent\n", + "\n", + "RegionParent\n", "\n", "\n", "\n", @@ -1953,12 +1953,12 @@ "\n", "\n", "BrainRegion->RegionParent\n", - "\n", + "\n", "\n", "\n", "\n", "BrainRegion->Voxel\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1970,15 +1970,15 @@ "ml                   \r", "→ BrainRegion\r", "\">\n", - "\n", - "RecordingSite\n", + "\n", + "RecordingSite\n", "\n", "\n", "\n", "\n", "\n", "BrainRegion->RecordingSite\n", - "\n", + "\n", "\n", "\n", "" diff --git a/src/tutorials/domain/calcium-imaging/calcium-imaging.ipynb b/src/tutorials/domain/calcium-imaging/calcium-imaging.ipynb index aa843613..288648cd 100644 --- a/src/tutorials/domain/calcium-imaging/calcium-imaging.ipynb +++ b/src/tutorials/domain/calcium-imaging/calcium-imaging.ipynb @@ -18,7 +18,7 @@ "\n", "\"Calcium\n", "\n", - "**Legend:** Green = Manual, Gray = Lookup, Blue = Imported, Red = Computed, White = Part\n", + "**Legend:** Green = Manual, Gray = Lookup, Blue = Imported, Orange = Computed; a Part table is the small white box grouped with its master; an underlined name introduces a new dimension\n", "\n", "Each scan produces a TIFF movie. We compute an average frame, segment cells using threshold-based detection, and extract fluorescence traces for each detected ROI." ] @@ -1288,30 +1288,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -1338,8 +1338,8 @@ "num_rois             \r", "segmented_mask       \r", "\">\n", - "\n", - "Segmentation\n", + "\n", + "Segmentation\n", "\n", "\n", "\n", @@ -1350,15 +1350,15 @@ "------------------------------\r", "timestamps           \r", "\">\n", - "\n", - "Fluorescence\n", + "\n", + "Fluorescence\n", "\n", "\n", "\n", "\n", "\n", "Segmentation->Fluorescence\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1370,15 +1370,15 @@ "center_x             \r", "center_y             \r", "\">\n", - "\n", - "Roi\n", + "\n", + "Roi\n", "\n", "\n", "\n", "\n", "\n", "Segmentation->Segmentation.Roi\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1388,20 +1388,20 @@ "------------------------------\r", "trace                \r", "\">\n", - "\n", - "Trace\n", + "\n", + "Trace\n", "\n", "\n", "\n", "\n", "\n", "Fluorescence->Fluorescence.Trace\n", - "\n", + "\n", "\n", "\n", "\n", "Segmentation.Roi->Fluorescence.Trace\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1411,8 +1411,8 @@ "dob                  \r", "sex                  \r", "\">\n", - "\n", - "Mouse\n", + "\n", + "Mouse\n", "\n", "\n", "\n", @@ -1424,15 +1424,15 @@ "------------------------------\r", "experimenter         \r", "\">\n", - "\n", - "Session\n", + "\n", + "Session\n", "\n", "\n", "\n", "\n", "\n", "Mouse->Session\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1446,15 +1446,15 @@ "fps                  \r", "file_name            \r", "\">\n", - "\n", - "Scan\n", + "\n", + "Scan\n", "\n", "\n", "\n", "\n", "\n", "Session->Scan\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1463,20 +1463,20 @@ "------------------------------\r", "average_frame        \r", "\">\n", - "\n", - "AverageFrame\n", + "\n", + "AverageFrame\n", "\n", "\n", "\n", "\n", "\n", "Scan->AverageFrame\n", - "\n", + "\n", "\n", "\n", "\n", "AverageFrame->Segmentation\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1486,15 +1486,15 @@ "threshold            \r", "min_size             \r", "\">\n", - "\n", - "SegmentationParam\n", + "\n", + "SegmentationParam\n", "\n", "\n", "\n", "\n", "\n", "SegmentationParam->Segmentation\n", - "\n", + "\n", "\n", "\n", "" @@ -1517,11 +1517,12 @@ "metadata": {}, "source": [ "**Legend:**\n", - "- **Green rectangles**: Manual tables (data inserted directly — manually or by ingestion scripts)\n", - "- **Gray rectangles**: Lookup tables (parameters)\n", - "- **Blue ovals**: Imported tables (data from files)\n", - "- **Red ovals**: Computed tables (derived from other tables)\n", - "- **Plain text**: Part tables (detailed results)" + "- **Green rounded boxes**: Manual tables (data entered at runtime — by a person, an instrument, or an ingestion script)\n", + "- **Gray rounded boxes**: Lookup tables (parameters, part of the schema definition)\n", + "- **Blue ellipses**: Imported tables (data from files)\n", + "- **Orange ellipses**: Computed tables (derived from other tables)\n", + "- **Small white boxes grouped with their master**: Part tables (detailed results, populated with the master in one transaction)\n", + "- **Underlined names**: tables that introduce a new dimension (many rows per parent)" ] }, { diff --git a/src/tutorials/domain/electrophysiology/electrophysiology.ipynb b/src/tutorials/domain/electrophysiology/electrophysiology.ipynb index f9ee03ae..fada32fd 100644 --- a/src/tutorials/domain/electrophysiology/electrophysiology.ipynb +++ b/src/tutorials/domain/electrophysiology/electrophysiology.ipynb @@ -17,7 +17,7 @@ "\n", "\"Electrophysiology\n", "\n", - "**Legend:** Green = Manual, Gray = Lookup, Blue = Imported, Red = Computed, White = Part\n", + "**Legend:** Green = Manual, Gray = Lookup, Blue = Imported, Orange = Computed; a Part table is the small white box grouped with its master; an underlined name introduces a new dimension\n", "\n", "Each session records from neurons. We compute statistics, detect spikes with configurable thresholds, and extract spike waveforms." ] @@ -1241,30 +1241,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -1287,8 +1287,8 @@ "spike_times          \r", "spike_count          \r", "\">\n", - "\n", - "Spikes\n", + "\n", + "Spikes\n", "\n", "\n", "\n", @@ -1300,15 +1300,15 @@ "------------------------------\r", "waveform             \r", "\">\n", - "\n", - "Waveform\n", + "\n", + "Waveform\n", "\n", "\n", "\n", "\n", "\n", "Spikes->Spikes.Waveform\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1318,8 +1318,8 @@ "dob                  \r", "sex                  \r", "\">\n", - "\n", - "Mouse\n", + "\n", + "Mouse\n", "\n", "\n", "\n", @@ -1331,15 +1331,15 @@ "------------------------------\r", "experimenter         \r", "\">\n", - "\n", - "Session\n", + "\n", + "Session\n", "\n", "\n", "\n", "\n", "\n", "Mouse->Session\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1349,20 +1349,20 @@ "------------------------------\r", "activity             \r", "\">\n", - "\n", - "Neuron\n", + "\n", + "Neuron\n", "\n", "\n", "\n", "\n", "\n", "Session->Neuron\n", - "\n", + "\n", "\n", "\n", "\n", "Neuron->Spikes\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1373,15 +1373,15 @@ "std_activity         \r", "max_activity         \r", "\">\n", - "\n", - "ActivityStats\n", + "\n", + "ActivityStats\n", "\n", "\n", "\n", "\n", "\n", "Neuron->ActivityStats\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1390,15 +1390,15 @@ "------------------------------\r", "threshold            \r", "\">\n", - "\n", - "SpikeParams\n", + "\n", + "SpikeParams\n", "\n", "\n", "\n", "\n", "\n", "SpikeParams->Spikes\n", - "\n", + "\n", "\n", "\n", "" diff --git a/src/tutorials/domain/electrophysiology/ephys-with-npy.ipynb b/src/tutorials/domain/electrophysiology/ephys-with-npy.ipynb index 36d81c53..d39ed088 100644 --- a/src/tutorials/domain/electrophysiology/ephys-with-npy.ipynb +++ b/src/tutorials/domain/electrophysiology/ephys-with-npy.ipynb @@ -21,7 +21,7 @@ "\n", "\"Electrophysiology\n", "\n", - "**Legend:** Green = Manual, Gray = Lookup, Blue = Imported, Red = Computed\n", + "**Legend:** Green = Manual, Gray = Lookup, Blue = Imported, Orange = Computed\n", "\n", "Each session records from neurons. We compute statistics, detect spikes with configurable thresholds, and extract spike waveforms.\n", "\n", @@ -1506,30 +1506,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -1547,8 +1547,8 @@ "dob                  \r", "sex                  \r", "\">\n", - "\n", - "Mouse\n", + "\n", + "Mouse\n", "\n", "\n", "\n", @@ -1560,15 +1560,15 @@ "------------------------------\r", "experimenter         \r", "\">\n", - "\n", - "Session\n", + "\n", + "Session\n", "\n", "\n", "\n", "\n", "\n", "Mouse->Session\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1578,15 +1578,15 @@ "------------------------------\r", "activity             \r", "\">\n", - "\n", - "Neuron\n", + "\n", + "Neuron\n", "\n", "\n", "\n", "\n", "\n", "Session->Neuron\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1597,15 +1597,15 @@ "std_activity         \r", "max_activity         \r", "\">\n", - "\n", - "ActivityStats\n", + "\n", + "ActivityStats\n", "\n", "\n", "\n", "\n", "\n", "Neuron->ActivityStats\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1617,15 +1617,15 @@ "spike_count          \r", "waveforms            \r", "\">\n", - "\n", - "Spikes\n", + "\n", + "Spikes\n", "\n", "\n", "\n", "\n", "\n", "Neuron->Spikes\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1634,15 +1634,15 @@ "------------------------------\r", "threshold            \r", "\">\n", - "\n", - "SpikeParams\n", + "\n", + "SpikeParams\n", "\n", "\n", "\n", "\n", "\n", "SpikeParams->Spikes\n", - "\n", + "\n", "\n", "\n", "" diff --git a/src/tutorials/examples/blob-detection.ipynb b/src/tutorials/examples/blob-detection.ipynb index a8b3d220..e0c6d643 100644 --- a/src/tutorials/examples/blob-detection.ipynb +++ b/src/tutorials/examples/blob-detection.ipynb @@ -509,30 +509,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -554,8 +554,8 @@ "------------------------------\r", "num_blobs            \r", "\">\n", - "\n", - "Detection\n", + "\n", + "Detection\n", "\n", "\n", "\n", @@ -569,15 +569,15 @@ "y                    \r", "radius               \r", "\">\n", - "\n", - "Blob\n", + "\n", + "Blob\n", "\n", "\n", "\n", "\n", "\n", "Detection->Detection.Blob\n", - "\n", + "\n", "\n", "\n", "\n", @@ -587,15 +587,15 @@ "image_name           \r", "image                \r", "\">\n", - "\n", - "Image\n", + "\n", + "Image\n", "\n", "\n", "\n", "\n", "\n", "Image->Detection\n", - "\n", + "\n", "\n", "\n", "\n", @@ -606,15 +606,15 @@ "max_sigma            \r", "threshold            \r", "\">\n", - "\n", - "DetectionParams\n", + "\n", + "DetectionParams\n", "\n", "\n", "\n", "\n", "\n", "DetectionParams->Detection\n", - "\n", + "\n", "\n", "\n", "" @@ -1317,30 +1317,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -1362,8 +1362,8 @@ "------------------------------\r", "num_blobs            \r", "\">\n", - "\n", - "Detection\n", + "\n", + "Detection\n", "\n", "\n", "\n", @@ -1377,15 +1377,15 @@ "y                    \r", "radius               \r", "\">\n", - "\n", - "Blob\n", + "\n", + "Blob\n", "\n", "\n", "\n", "\n", "\n", "Detection->Detection.Blob\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1394,15 +1394,15 @@ "------------------------------\r", "→ Detection\r", "\">\n", - "\n", - "SelectedDetection\n", + "\n", + "SelectedDetection\n", "\n", "\n", "\n", "\n", "\n", "Detection->SelectedDetection\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1412,20 +1412,20 @@ "image_name           \r", "image                \r", "\">\n", - "\n", - "Image\n", + "\n", + "Image\n", "\n", "\n", "\n", "\n", "\n", "Image->Detection\n", - "\n", + "\n", "\n", "\n", "\n", "Image->SelectedDetection\n", - "\n", + "\n", "\n", "\n", "\n", @@ -1436,15 +1436,15 @@ "max_sigma            \r", "threshold            \r", "\">\n", - "\n", - "DetectionParams\n", + "\n", + "DetectionParams\n", "\n", "\n", "\n", "\n", "\n", "DetectionParams->Detection\n", - "\n", + "\n", "\n", "\n", "" diff --git a/src/tutorials/examples/fractal-pipeline.ipynb b/src/tutorials/examples/fractal-pipeline.ipynb index 02c25ed7..e85d6e73 100644 --- a/src/tutorials/examples/fractal-pipeline.ipynb +++ b/src/tutorials/examples/fractal-pipeline.ipynb @@ -285,30 +285,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -327,8 +327,8 @@ "c_imag               \r", "noise_level='50'\r", "\">\n", - "\n", - "JuliaSpec\n", + "\n", + "JuliaSpec\n", "\n", "\n", "\n", @@ -339,15 +339,15 @@ "------------------------------\r", "image                \r", "\">\n", - "\n", - "JuliaImage\n", + "\n", + "JuliaImage\n", "\n", "\n", "\n", "\n", "\n", "JuliaSpec->JuliaImage\n", - "\n", + "\n", "\n", "\n", "\n", @@ -357,15 +357,15 @@ "------------------------------\r", "denoised             \r", "\">\n", - "\n", - "Denoised\n", + "\n", + "Denoised\n", "\n", "\n", "\n", "\n", "\n", "JuliaImage->Denoised\n", - "\n", + "\n", "\n", "\n", "\n", @@ -375,15 +375,15 @@ "method_name          \r", "params               \r", "\">\n", - "\n", - "DenoiseMethod\n", + "\n", + "DenoiseMethod\n", "\n", "\n", "\n", "\n", "\n", "DenoiseMethod->Denoised\n", - "\n", + "\n", "\n", "\n", "" diff --git a/src/tutorials/examples/hotel-reservations.ipynb b/src/tutorials/examples/hotel-reservations.ipynb index 8b161eb9..f295ccfe 100644 --- a/src/tutorials/examples/hotel-reservations.ipynb +++ b/src/tutorials/examples/hotel-reservations.ipynb @@ -242,30 +242,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -282,8 +282,8 @@ "------------------------------\r", "room_type            \r", "\">\n", - "\n", - "Room\n", + "\n", + "Room\n", "\n", "\n", "\n", @@ -295,15 +295,15 @@ "------------------------------\r", "price                \r", "\">\n", - "\n", - "RoomAvailable\n", + "\n", + "RoomAvailable\n", "\n", "\n", "\n", "\n", "\n", "Room->RoomAvailable\n", - "\n", + "\n", "\n", "\n", "\n", @@ -313,15 +313,15 @@ "→ Guest\r", "credit_card          \r", "\">\n", - "\n", - "Reservation\n", + "\n", + "Reservation\n", "\n", "\n", "\n", "\n", "\n", "RoomAvailable->Reservation\n", - "\n", + "\n", "\n", "\n", "\n", @@ -330,45 +330,45 @@ "------------------------------\r", "guest_name           \r", "\">\n", - "\n", - "Guest\n", + "\n", + "Guest\n", "\n", "\n", "\n", "\n", "\n", "Guest->Reservation\n", - "\n", + "\n", "\n", "\n", "\n", "CheckIn\n", "\n", - "\n", - "CheckIn\n", + "\n", + "CheckIn\n", "\n", "\n", "\n", "\n", "\n", "Reservation->CheckIn\n", - "\n", + "\n", "\n", "\n", "\n", "CheckOut\n", "\n", - "\n", - "CheckOut\n", + "\n", + "CheckOut\n", "\n", "\n", "\n", "\n", "\n", "CheckIn->CheckOut\n", - "\n", + "\n", "\n", "\n", "" diff --git a/src/tutorials/examples/languages.ipynb b/src/tutorials/examples/languages.ipynb index e15d8319..359c5f72 100644 --- a/src/tutorials/examples/languages.ipynb +++ b/src/tutorials/examples/languages.ipynb @@ -287,30 +287,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -328,8 +328,8 @@ "language             \r", "native_name          \r", "\">\n", - "\n", - "Language\n", + "\n", + "Language\n", "\n", "\n", "\n", @@ -341,15 +341,15 @@ "------------------------------\r", "→ CEFRLevel\r", "\">\n", - "\n", - "Proficiency\n", + "\n", + "Proficiency\n", "\n", "\n", "\n", "\n", "\n", "Language->Proficiency\n", - "\n", + "\n", "\n", "\n", "\n", @@ -360,15 +360,15 @@ "category             \r", "description          \r", "\">\n", - "\n", - "CEFRLevel\n", + "\n", + "CEFRLevel\n", "\n", "\n", "\n", "\n", "\n", "CEFRLevel->Proficiency\n", - "\n", + "\n", "\n", "\n", "\n", @@ -378,15 +378,15 @@ "name                 \r", "date_of_birth        \r", "\">\n", - "\n", - "Person\n", + "\n", + "Person\n", "\n", "\n", "\n", "\n", "\n", "Person->Proficiency\n", - "\n", + "\n", "\n", "\n", "" diff --git a/src/tutorials/examples/university.ipynb b/src/tutorials/examples/university.ipynb index ad581137..c031fe72 100644 --- a/src/tutorials/examples/university.ipynb +++ b/src/tutorials/examples/university.ipynb @@ -317,30 +317,30 @@ " [fill="#fffde7"] { fill: #3A3620; }\n", " [stroke="#c9bc5b"] { stroke: #C9BC5B; }\n", " [fill="#6b6420"] { fill: #EBE3A0; }\n", - " [fill="#e7f3ec"] { fill: #16281F; }\n", - " [stroke="#2f7d5b"] { stroke: #4FA97F; }\n", - " [fill="#1b5138"] { fill: #BCE6CF; }\n", - " [fill="#f2f4f7"] { fill: #242832; }\n", - " [stroke="#a9b1bd"] { stroke: #8A93A1; }\n", - " [fill="#495261"] { fill: #C9CFD9; }\n", - " [fill="#fbeaec"] { fill: #331A1F; }\n", - " [stroke="#b23a48"] { stroke: #D0687A; }\n", - " [fill="#7c2430"] { fill: #F3C2CB; }\n", - " [fill="#e2ecfa"] { fill: #152538; }\n", - " [stroke="#2a5fa5"] { stroke: #5E92D6; }\n", - " [fill="#123a6d"] { fill: #C3DAF6; }\n", + " [fill="#E8F0E9"] { fill: #16281F; }\n", + " [stroke="#3E7A52"] { stroke: #6BBF94; }\n", + " [fill="#28513A"] { fill: #BCE6CF; }\n", + " [fill="#F0F0F1"] { fill: #242832; }\n", + " [stroke="#808285"] { stroke: #9DA0A4; }\n", + " [fill="#5A5C5F"] { fill: #C9CFD9; }\n", + " [fill="#FFEDE5"] { fill: #331B12; }\n", + " [stroke="#FF5113"] { stroke: #FF7A47; }\n", + " [fill="#B23200"] { fill: #FFC7AE; }\n", + " [fill="#E0F4FC"] { fill: #0F2433; }\n", + " [stroke="#00A0DF"] { stroke: #33B8E8; }\n", + " [fill="#00537A"] { fill: #BEE7F9; }\n", " [fill="#ffffff"] { fill: #1E232C; }\n", - " [stroke="#9aa6b8"] { stroke: #7B879B; }\n", - " [fill="#46536b"] { fill: #C4CCDB; }\n", + " [stroke="#B9BBBE"] { stroke: #8F959D; }\n", + " [fill="#55585C"] { fill: #C8CED8; }\n", " [fill="#edeef0"] { fill: #242730; }\n", " [stroke="#808890"] { stroke: #8890A0; }\n", " [fill="#404040"] { fill: #C7CDD6; }\n", - " [stroke="#3a424f"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", + " [stroke="#171C39"] { stroke: #AEB6C2; stroke-opacity: 0.753; }\n", " [stroke="#c77d3a"] { stroke: #D68C4A; stroke-opacity: 0.753; }\n", " [fill="#f3f5f8"] { fill: #2A313D; }\n", " [stroke="#f3f5f8"] { stroke: #2A313D; }\n", " [stroke="gray"] { stroke: #606875; }\n", - " [fill="gray"] { fill: #8A93A1; }\n", + " [fill="gray"] { fill: #9DA0A4; }\n", "}\n", "\n", "\n", @@ -362,8 +362,8 @@ "home_city            \r", "home_state           \r", "\">\n", - "\n", - "Student\n", + "\n", + "Student\n", "\n", "\n", "\n", @@ -375,15 +375,15 @@ "→ Department\r", "declare_date         \r", "\">\n", - "\n", - "StudentMajor\n", + "\n", + "StudentMajor\n", "\n", "\n", "\n", "\n", "\n", "Student->StudentMajor\n", - "\n", + "\n", "\n", "\n", "\n", @@ -391,15 +391,15 @@ "\n", - "\n", - "Enroll\n", + "\n", + "Enroll\n", "\n", "\n", "\n", "\n", "\n", "Student->Enroll\n", - "\n", + "\n", "\n", "\n", "\n", @@ -408,15 +408,15 @@ "------------------------------\r", "dept_name            \r", "\">\n", - "\n", - "Department\n", + "\n", + "Department\n", "\n", "\n", "\n", "\n", "\n", "Department->StudentMajor\n", - "\n", + "\n", "\n", "\n", "\n", @@ -427,15 +427,15 @@ "course_name          \r", "credits              \r", "\">\n", - "\n", - "Course\n", + "\n", + "Course\n", "\n", "\n", "\n", "\n", "\n", "Department->Course\n", - "\n", + "\n", "\n", "\n", "\n", @@ -446,15 +446,15 @@ "------------------------------\r", "auditorium           \r", "\">\n", - "\n", - "Section\n", + "\n", + "Section\n", "\n", "\n", "\n", "\n", "\n", "Course->Section\n", - "\n", + "\n", "\n", "\n", "\n", @@ -462,20 +462,20 @@ "\n", - "\n", - "Term\n", + "\n", + "Term\n", "\n", "\n", "\n", "\n", "\n", "Term->Section\n", - "\n", + "\n", "\n", "\n", "\n", "Section->Enroll\n", - "\n", + "\n", "\n", "\n", "\n", @@ -484,15 +484,15 @@ "------------------------------\r", "→ LetterGrade\r", "\">\n", - "\n", - "Grade\n", + "\n", + "Grade\n", "\n", "\n", "\n", "\n", "\n", "Enroll->Grade\n", - "\n", + "\n", "\n", "\n", "\n", @@ -501,15 +501,15 @@ "------------------------------\r", "points               \r", "\">\n", - "\n", - "LetterGrade\n", + "\n", + "LetterGrade\n", "\n", "\n", "\n", "\n", "\n", "LetterGrade->Grade\n", - "\n", + "\n", "\n", "\n", ""