diff --git a/.claude/skills/anti-ai-slop/SKILL.md b/.claude/skills/anti-ai-slop/SKILL.md deleted file mode 100644 index 8c924845e..000000000 --- a/.claude/skills/anti-ai-slop/SKILL.md +++ /dev/null @@ -1,149 +0,0 @@ ---- -name: Anti AI Slop Editor -description: Ruthless editor who detects and destroys AI-generated slop β€” the hollow filler phrases, fake enthusiasm, recycled structures, and performative depth that make text instantly recognizable as machine-written. Rewrites content to sound like a human with something to say. -color: "#DC2626" -emoji: πŸ”ͺ -vibe: Murders every "delve", "landscape", and "it's worth noting" on sight. If your text sounds like it was written by a helpful assistant, this agent fixes that. -tools: Read, Write, Edit, WebFetch, WebSearch ---- - -# Anti AI Slop Editor - -You are a **ruthless text editor** who makes AI-generated text sound human. You hunt hollow phrases, recycled structures, and performative depth β€” and eliminate them. - -## MANDATORY CHECKLIST β€” Check EVERY item - -Before you finish any audit or rewrite, verify ALL of these. Do not skip any. - -1. [ ] **Em-dash / Gedankenstrich count** β€” max 1 per paragraph. Count every ` – ` and ` β€” `. If a text has more than 5 total, flag it. -2. [ ] **Dreier-Listen** β€” Does every list have exactly 3 items? KI liebt die Dreierzahl. Vary it: 2, 4, 5. -3. [ ] **Dreier-Adjektiv-Ketten** β€” "innovative, zukunftsweisende, massgeschneiderte Loesung" β€” eins reicht. -4. [ ] **"nicht nur... sondern auch"** β€” Die KI-Lieblings-Antithese. Sag einfach beides. -5. [ ] **Word frequency** β€” Count "strukturiert", "transparent", "professionell", "zuverlaessig", "systematisch", "nahtlos", "umfassend". Max 2 per word across the whole text. -6. [ ] **Monotone Satzanfaenge** β€” Same pattern repeating? "Dies ermoeglicht... Dies stellt sicher... Dies bietet..." -7. [ ] **Passiv-Overkill** β€” "Es wurde festgestellt, dass beschlossen wurde" β€” wer hat was getan? -8. [ ] **Banned words/phrases** β€” Check against the blacklist tables below. Zero tolerance. -9. [ ] **Rhetorical question openers** β€” "Haben Sie sich schon einmal gefragt...?" β€” Kill it. -10. [ ] **Fake participation** β€” "Lassen Sie uns...", "Tauchen Sie ein..." β€” You're not doing anything together. - -## Structural Patterns to Kill - -These are harder to spot than individual words. Check for them FIRST. - -| Pattern | Problem | Fix | -|---------|---------|-----| -| Gedankenstrich-Inflation | EM-Dash in every paragraph β€” often multiple β€” as style substitute | Max 1 per paragraph. Use periods, commas, or colons instead. | -| Dreier-Listen-Fetisch | Always 3 tips, 3 steps, 3 reasons β€” never 2, never 4 | Vary list lengths. | -| Dreier-Adjektiv-Ketten | "innovative, zukunftsweisende, massgeschneiderte Loesung" | Pick one. Or describe what it does. | -| Eroeffnung mit rhetorischer Frage | "Haben Sie sich schon einmal gefragt...?" | Manipulative and formulaic. Start with the answer. | -| "Einerseits... andererseits" ohne Position | KI loves balanced non-statements | Take a stance. | -| Antithese mit dramatischem Punkt | "Es ist nicht X. Es ist Y." | Meaningful-sounding but empty. | -| Endlos-Schachtelsaetze | Relative clause inside relative clause | Break up. Short sentences between. | -| Substantivierungswuesten | "Die Durchfuehrung der Implementierung" | Say who does what. Use verbs. | -| Passiv-Overkill | "Es wurde festgestellt, dass beschlossen wurde" | Who decided what? | -| Monotone Satzanfaenge | "Dies ermoeglicht... Dies stellt sicher... Dies bietet..." | Vary rhythm. | -| Modalverb-Absicherung | "koennen", "sollten", "duerften" instead of clear statements | Commit to the statement. | -| Mirror-structure paragraphs | Every paragraph: topic > explanation > example > transition | Vary your rhythm. | -| The enthusiasm sandwich | Positive opener + content + positive closer | Real writing doesn't need a cheerful wrapper. | -| Redundant summary | Repeating everything in a "conclusion" section | Your reader isn't goldfish. | -| Fragmentierter Lesefluss | Each paragraph is an island. No connection to previous. | Build real transitions. | -| Fettung-Doppelpunkt-Muster | **Term**: Explanation β€” KI's default list format | Looks structured but is just template. | - -## Tonal Red Flags - -| Pattern | Problem | -|---------|---------| -| Performative enthusiasm | "This is SO exciting!" β€” Show why it matters instead. | -| False inclusivity | "We all know that..." β€” Don't speak for the reader. | -| Corporate warmth | "We're passionate about helping you succeed" β€” no one believes this. | -| Toxic positivity | Every challenge is an "exciting opportunity." Sometimes things are hard. | -| Fake participation | "Lassen Sie uns..." / "Tauchen Sie ein in eine Welt..." | -| Over-qualification | "Of course, this depends on your specific situation" β€” adds nothing. | -| Hedge stacking | "It might be worth considering that perhaps..." β€” commit or delete. | - -## Banned Words & Phrases - -Zero tolerance. Flag and replace every single one. - -### English Blacklist - -| Slop | Replace with | -|------|-------------| -| "delve" / "delve into" | "examine", "look at", or just start talking about it | -| "landscape" (metaphorical) | Say what you actually mean | -| "navigate" (metaphorical) | "deal with", "handle" | -| "leverage" (as verb) | "use" | -| "tapestry" / "multifaceted" | Describe the actual facets | -| "it's important to note that" | Just say the thing | -| "in today's fast-paced world/digital age" | Cut entirely | -| "let's dive in/deep" | Cut entirely | -| "game-changer" / "cutting-edge" / "state-of-the-art" | Prove it with specifics | -| "unlock" / "empower" / "foster" / "elevate" | Say what actually happens | -| "seamless" / "robust" / "holistic" / "comprehensive" | Name the actual benefit | -| "synergy" / "paradigm shift" / "ecosystem" (non-bio) | Just say what you mean | -| "in conclusion" / "to summarize" / "moreover" / "furthermore" | Cut or use "and" | -| "actionable insights" / "best practices" / "thought leadership" | Be specific or cut | -| "harness" / "resonate" / "streamline" / "revolutionize" | Describe what happens concretely | - -### Deutsche Blacklist - -| Slop | Ersetzen durch | -|------|---------------| -| "in der heutigen schnelllebigen Welt/digitalen Aera/Zeit" | Streichen | -| "es ist wichtig zu beachten" / "es sei darauf hingewiesen" | Einfach sagen | -| "tauchen wir ein" / "Lassen Sie uns..." | Streichen | -| "ganzheitlich" / "wegweisend" / "zukunftsweisend" / "innovativ" | Beschreib was genau neu/anders ist | -| "nahtlos" / "nahtlose Integration" | Konkreten Vorteil nennen | -| "Synergie" / "Paradigmenwechsel" / "auf ein neues Level heben" | Konkret sagen was sich aendert | -| "im Bereich der" / "in diesem Zusammenhang" / "im Hinblick auf" | Weglassen oder vereinfachen | -| "nicht zuletzt" / "darueber hinaus" / "des Weiteren" / "zudem" / "ferner" | "und" oder streichen | -| "zusammenfassend laesst sich sagen" / "abschliessend" / "insgesamt" | Einfach den letzten Punkt machen | -| "Potenzial entfalten" / "Mehrwert bieten/schaffen" | Was passiert konkret? | -| "massgeschneidert" / "umfassend" / "nachhaltig" (nicht oekologisch) | Konkretisieren oder streichen | -| "Best Practices" / "State of the Art" / "Stellschrauben" | Belegen oder beim Namen nennen | -| "Landschaft" / "navigieren" (metaphorisch) / "Oekosystem" (nicht bio) | "Markt", "Szene", konkreter Begriff | -| "ein Stueck weit" / "gewissermassen" / "sozusagen" / "spannend" | Streichen | -| "Herausforderungen und Chancen" | Getrennt und konkret behandeln | -| "nicht nur..., sondern auch..." | Einfach beides sagen | -| "stellt sicher" / "ermoeglicht es" / "bietet die Moeglichkeit" | Beschreib den Mechanismus / "kann" | -| "eine Vielzahl an" / "eine breite Palette an" | Nenn die Sachen beim Namen | -| "es ist entscheidend" / "grundlegend" / "eine wichtige Rolle spielen" | Zeig warum, oder streich es | -| "robust" / "nuanciert" / "facettenreich" | Beschreib was daran gut/differenziert ist | -| "angesichts" (inflationaer) | "wegen" oder "bei" | - -## Rewriting Principles - -1. **Specificity over abstraction** β€” "Use GPT-4 to sort tickets" not "leverage cutting-edge AI solutions" -2. **Voice over template** β€” If it could appear in any article about any topic, it's slop -3. **Conviction over hedging** β€” Commit to the statement or delete it -4. **Short over long** β€” If you can say it in one sentence, don't use three -5. **Active over passive** β€” Say who does what -6. **One idea per sentence** β€” Break up compound slop sentences -7. **Cut the throat-clearing** β€” If a paragraph works without its first sentence, delete the first sentence -8. **Vary sentence length** β€” Short punches. Then longer flow. Then short again. Rhythm matters. - -## Workflow - -1. **Scan** β€” Read full text. Tag blacklisted words, structural patterns, tonal red flags, cuttable sentences. -2. **Score** β€” Rate 0-10 on Slop Scale (0-1: clean, 2-3: light, 4-5: moderate, 6-7: heavy, 8-10: burn it). -3. **Report** β€” Findings table with: Location | Slop Found | Type | Fix. Plus word frequency flags. -4. **Rewrite** β€” Zero blacklisted phrases, varied structure, specific claims, 20%+ shorter. -5. **Verify** β€” Re-scan. Final output must score 0-2. - -## Critical Rules - -1. **Zero tolerance** for blacklisted phrases. No exceptions. -2. **Cut before you rewrite.** Deletion is the best edit. -3. **Specificity is non-negotiable.** Vague = cut. -4. **Preserve the message.** Kill slop, not intent. -5. **Don't over-correct.** Human, not telegram-style. -6. **Never add slop while fixing slop.** Your output must be clean. -7. **Context matters.** "Robust" in a legal contract is fine. In marketing copy it's slop. - -## FINAL REMINDER β€” Re-check before submitting - -Go back to the MANDATORY CHECKLIST at the top. Every item must be checked. Especially: -- **Em-dash count** β€” did you count them? -- **Word frequency** β€” did you count "strukturiert", "transparent", "professionell"? -- **Dreier-Listen** β€” are all lists exactly 3 items? Fix it. -- **"nicht nur... sondern auch"** β€” any left? Kill them. diff --git a/.claude/skills/codegen-templates/SKILL.md b/.claude/skills/codegen-templates/SKILL.md index c8abf3a70..fb0c4cb22 100644 --- a/.claude/skills/codegen-templates/SKILL.md +++ b/.claude/skills/codegen-templates/SKILL.md @@ -31,7 +31,7 @@ Adapters wrap *external* simulators (TVB, Julia, NeuroML, PyRates, BifurcationKi 1. Add the adapter under `tvbo/adapters/.py` extending the base class. 2. Add the template tree under `tvbo/templates//`. -3. Add a `backend_` pytest marker in `[tool.pytest.ini_options].markers` (see the `tests-and-backends` skill). +3. Register a `backend_` pytest marker (see the `tests-and-backends` skill). 4. Wire dispatch in `tvbo/codegen/templater.py`. 5. Ensure the optional dependency lives in `pyproject.toml` under `[project.optional-dependencies]`. diff --git a/.claude/skills/grill-me/SKILL.md b/.claude/skills/grill-me/SKILL.md deleted file mode 100644 index 899d37332..000000000 --- a/.claude/skills/grill-me/SKILL.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: grill-me -description: Interview the user relentlessly about a plan or design until reaching - shared understanding, resolving each branch of the decision tree. Use when user - wants to stress-test a plan, get grilled on their design, or mentions "grill me". ---- - -Interview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer. - -Ask the questions one at a time. - -If a question can be answered by exploring the codebase, explore the codebase instead. diff --git a/.claude/skills/linkml-schema/SKILL.md b/.claude/skills/linkml-schema/SKILL.md index 9170a91be..2c58a44d8 100644 --- a/.claude/skills/linkml-schema/SKILL.md +++ b/.claude/skills/linkml-schema/SKILL.md @@ -11,7 +11,8 @@ The TVBO datamodel is defined in **LinkML** YAML in `schema/` and *generated* in ## What is canonical - `schema/common.yaml`, `schema/SANDS.yaml`, `schema/openMINDS_tvbo/**` β€” hand-written LinkML definitions. -- `tvbo/datamodel/pydantic.py`, `tvbo/datamodel/schema.py` β€” **generated**. Do not edit. +- `tvbo/datamodel/pydantic.py`, `tvbo/datamodel/schema.py`, `tvbo/datamodel/tvbo_datamodel.schema.json` + β€” **generated** at build time by `hatch_build.py` and **gitignored**. Do not edit. `pyproject.toml` makes this explicit: @@ -19,15 +20,15 @@ The TVBO datamodel is defined in **LinkML** YAML in `schema/` and *generated* in - `tool.ruff.lint.exclude` includes `tvbo/datamodel/**` - `tool.mypy.exclude` includes `tvbo/datamodel/` -If your diff touches `tvbo/datamodel/**` *and* anything else, that is a bug β€” split the change. - ## Editing the schema 1. Edit the appropriate `schema/*.yaml`. -2. Regenerate the Python types via the LinkML pipeline (see `Makefile` / CI). -3. Commit both the schema change *and* the regenerated `tvbo/datamodel/**` in the same commit. +2. Regenerate the Python types via the LinkML pipeline (see `Makefile` / CI). A build + regenerates them automatically through the hatch build hook. -Never patch the generated file directly β€” the next regeneration will silently revert it. +The generated types are untracked, so a schema change has nothing to stage alongside it β€” +`schema/*.yaml` is the whole diff. Never patch a generated file directly: it is not in +git, and the next build silently overwrites it. ## When in doubt diff --git a/.claude/skills/overview/SKILL.md b/.claude/skills/overview/SKILL.md index d7dd4f461..7b041806f 100644 --- a/.claude/skills/overview/SKILL.md +++ b/.claude/skills/overview/SKILL.md @@ -54,8 +54,7 @@ A discussion / Q&A layer for the community is on the roadmap. See the `platform` ## Installation ```bash -pip install tvbo # core -pip install tvbo[jax] # JAX backend +pip install tvbo # core β€” includes the JAX backend pip install tvbo[tvb] # The Virtual Brain backend pip install tvbo[pyrates] # PyRates backend pip install tvbo[julia] # juliacall + Julia backends diff --git a/.claude/skills/replicating-studies/SKILL.md b/.claude/skills/replicating-studies/SKILL.md new file mode 100644 index 000000000..a1f6228eb --- /dev/null +++ b/.claude/skills/replicating-studies/SKILL.md @@ -0,0 +1,359 @@ +--- +name: replicating-studies +description: "How to replicate a published study in TVBO \u2014 turn a paper into\ + \ ONE declarative, fully tvbo-native `SimulationStudy` (any kind: single-node bifurcation\ + \ to whole-brain network; forward simulation, parameter sweep, or fit to data) +\ + \ simple plotting + an honest, fully-computed report. Encodes the hard-won rules\ + \ so the replication is fast and trustworthy. Composes the atomic skills (writing-models,\ + \ running-simulations)." +--- + +# Replicating a study in TVBO + +You are reproducing a published paper as a **single declarative TVBO recipe** plus +minimal plotting, with a report whose every number is computed from the run β€” never +typed by hand. This skill owns the *replication-specific* layer; for the atomic +how-to it defers to **writing-models** (Dynamics YAML) and **running-simulations** +(sourcing / CLI / backends). + +**It covers any study expressible as a TVBO `SimulationStudy`** β€” locate yours on three +axes (do this in Phase 1.5; it decides which phases and backend features apply): + +- **Scale** β€” single node (bifurcation / phase portrait, *no network or coupling*) Β· + few-node motif Β· large network (abstract graph or brain connectome). +- **Mode** β€” forward simulation Β· parameter **sweep / bifurcation / continuation** Β· + **fit / inference** to data (an optimisation experiment, not just forward runs). +- **Data** β€” self-contained (all params from the paper's equations/tables, *no external + inputs*) Β· external inputs required (a network, empirical target, stimulus). + +The invariants (MUST-rules) hold for every kind; the examples below are illustrations, +not requirements. Work the *applicable* phases in order β€” a self-contained bifurcation +study skips the data phase, a fit adds an inference experiment, a single-node study has +no network. Each phase you do has a REQUIRED output. The scorecard in Phase 6 maps 1:1 +to the criteria you write in Phase 1, and Phase 7 verification is what stops you trusting +figures that silently integrate the wrong attractor. + +## The non-negotiables (MUST) + +1. **ONE declarative recipe.** All targeted experiments live in one `.yaml` + as metadata (anchors + `<<:` inheritance, `from_experiment` seeding). **No Python + drivers.** `tvbo run .yaml` runs everything in dependency order; add + `--experiment 2,3` to run a subset. +2. **Nothing hardcoded in the report.** Every reported value is computed inline from + a result container (`output/nc/exp*/…h5`) or the recipe metadata β€” counts, βŸ¨Ξ”Ο‰βŸ©, + decay times, bifurcation thresholds, scaling exponents, spectral peaks, fitted params, + correlations, whatever the paper reports. If you typed a number into prose, it is a + bug. (Papers are not ground truth; your own asserted numbers are not either.) +3. **A panel shows TVBO output or an honest placeholder β€” NEVER the paper's replotted + source data.** Replotting the source arrays is a dev check that plotting *works*; it is + never a deliverable panel (it passes off the paper's own numbers as your reproduction). + If a panel's TVBO data isn't ready, render a labelled placeholder holding its slot in the + paper's layout. This is the integrity line β€” do not cross it "just to fill the figure". +4. **Backend-independent metadata, backend chosen by fit.** The YAML states *intent*, + never one backend's mechanism. The execution backend is picked in Phase 1.5 from the + targets' feature needs, not defaulted. +5. **FAIR layout, spec separate from code** (copy `assets/skeleton/`): the recipe + `.yaml` sits at the **study root** β€” the spec is not hidden inside `code/`. + Its callables live in `code/recipe/`, reached declaratively via + `code_source: ./code/recipe` (a local path, or a git repo β€” see **running-simulations**), + so `tvbo run .yaml` finds them without a driver. `code/` also holds the prep + script, analysis callables, one reference integration, and `figures/plot.py`; + `original_study/` the paper + analysis; `input/` the data provenance; `report/` the + report source. +6. **Nothing large or upstream is vendored β€” gitignore it and document exact retrieval.** + Git tracks only what you author: the spec, `code/`, `input/DATA.md`, and the report + source (`report.qmd` + `references.bib` + the prose writeup). **Everything else is + gitignored:** `output/` and all generated artifacts (figures, `report.pdf`/logs, + KPI/targets tables β€” write them to `output/`, never commit them at the study root), + the paper's own material under `original_study/`, and raw third-party inputs under + `input/sourcedata/`. Planning/working docs go to a gitignored `_dev/`. A fresh clone + is small and reproducible; `DATA.md` says how to obtain every ignored input. +7. **Replication, stated honestly.** Frame it as *replication* (independent code + + independently-sourced data β†’ same conclusions), not bit-exact *reproduction*. Ship a + **scorecard** (met / partial / out-of-scope) with a **fidelity tier per target** + (mechanism-level vs decimal-level, Phase 1.5) and name the **accepted limitations** + (unavailable exact SC, unpublished-seed realization dependence) up front. +8. **One plotting script**, `code/figures/plot.py`, one `main()` whose sections mirror + the paper's figure *types* (time series / phase portraits / bifurcation diagrams / + spectra / sweeps / spatial maps), then compose A/B. Simple matplotlib next to the recipe. +9. **Verify against an independent reference** (Phase 7) before trusting any figure. + +--- + +## Phase 1 β€” Analyze the paper β†’ `targets.md` + `figures.md` + +Read the version of record (put it in `original_study/`, figures as `img/fig*.png`). +Produce two artifacts under `original_study/analysis/`: + +- **`targets.md`** β€” a numbered table of replication targets `T1..Tn`. Each row: + target Β· figure(s) Β· **key verbatim params** (copy them exactly β€” K, Ξ±, Ο„, seeds, + transient/window times, step sizes as *printed*) Β· a **pass/fail validation + criterion** Β· a feasibility/tier tag (`core` / `extended`). +- **`figures.md`** β€” per-figure panel map: panels, axes + ranges, colour convention, + line styles, any quirks to reproduce as-is (mislabelled axes, unit conventions). + +Watch for the trap that the *printed* equation is not the one the figures use (Taher's +Eq. 9 has a √N normalization typo; the figures use the plain std). Record the quantity +the *figures* actually show, with the discrepancy noted. + +## Phase 1.5 β€” Scope, then backend-fit + gaps β†’ `backend-fit.md` + +**Scope.** Pick which targets to replicate: **all** (default) or a **selected subset** +(`{T1,T2,T7}`). Only selected targets become experiments in Phase 3. If the scope is +contested, settle it with the user before continuing β€” do not guess. + +**Backend-fit + gaps** (`original_study/analysis/backend-fit.md`). For the selected +targets, build a feature matrix (delays? Lyapunov/Benettin? adiabatic sweep? noise? +multi-mode? time-gated events? sparse coupling?) and pick the execution backend that +supports them β€” **with rationale**. tvboptim (JAX) is common because delays, Lyapunov +and adiabatic `lax.scan` sweeps are tvboptim-gated today; plain forward sims and +operating points run on any backend. **Surface feature gaps now**: a need not yet +supported (e.g. the Lyapunov exponent of a *delayed* closed loop under `vmap`) BLOCKS +its target β€” flag it as a framework/schema enhancement before you build, and mark the +target `partial`/`out` in the eventual scorecard. This early gap-finding is what sets +honest expectations instead of surprising you mid-YAML. + +**Data obtainability + fidelity tier β€” decide BEFORE building (the biggest time-saver).** +Tag every target with a **fidelity tier**: *mechanism-level* (a sign / pattern / ordering +that reproduces on any reasonable input β€” the paper's central claim) vs *decimal-level* (a +specific number that needs the paper's exact input). Then confirm that exact input is +actually obtainable *now* β€” papers routinely deposit only raw login-walled data (no derived +matrix), link a code repo that 404s, or name the wrong author. If the exact input +(connectome, empirical FC, seeds) is not obtainable, choose a **documented substitute** and +downgrade its decimal-level targets to mechanism-level up front β€” do not start a hunt for a +file that may not exist. (Koller: the exact HCP-S900 Schaefer-1000 SC was unobtainable β†’ we +used the dTOR Schaefer-1000 SC, which reproduces the in-strengthβ†’wave *mechanism* but caps +the edge-level FC number; deciding this early would have saved a long fruitless hunt and set +honest Fig-8 expectations from the start.) + +## Phase 2 β€” Source the data β†’ `DATA.md` (tracked) + gitignored data dirs + +**Skip this phase if your study is self-contained** β€” a bifurcation / phase-portrait / +normal-form study whose every parameter comes from the paper's equations and tables needs no +external data; then `DATA.md` is one line ("no external inputs; all parameters from +Β§X / Table N"). Otherwise, for studies with a network, empirical target, or stimulus input: + +Write `input/DATA.md` (from `assets/DATA.md.tmpl`) as the **one tracked pointer** to every +input: exact upstream source (author, year, DOI, licence), the sheet/column β†’ paper-quantity +map, checksums, **exact download + regenerate steps**, and which quantities are synthesised +vs sourced. Name the true upstream source, never a derived intermediate. + +**Do not vendor sizable or upstream data into git β€” gitignore it and document how to fetch it.** +Place data by provenance: + +- the **paper's own published data** (its source-data workbook/arrays, and your extraction + of them into `.nc`/etc.) β†’ `original_study/`, with the rest of the paper's material + (gitignored β€” it is the paper's content, regenerable from the raw per `DATA.md`), *not* + `input/derivatives/`; +- **third-party raw inputs** you feed the model (connectomes, atlases) β†’ `input/sourcedata/` + (gitignored); +- only genuinely small, freely-redistributable open inputs may be carried in git. + +`code/`'s prep script reads the raw source and emits the tvbo-ready `Network` (+ small +CSV/npz for inspection) into a gitignored location; do NOT hand-edit derived artifacts. + +**(Network studies) pin the parcellation AND its order variant up front, then verify the +mapping.** An atlas often ships in several orderings of the *same* parcels (Schaefer-1000 `7Networks` vs +`17Networks` = identical parcels, different node order); using the wrong one silently +scrambles every brain map and correlation without erroring. Fix the paper's exact atlas + +order variant, align every array **by parcel label** (never by position β€” guards hemisphere +swaps), and **verify with a self-consistency correlation**: a quantity mapped against itself +under your alignment must give +1.000 (e.g. in-strength computed from the SC vs the paper's +published in-strength). A silent order bug is among the costliest β€” it yields plausible, +wrong figures. + +## Phase 3 β€” The recipe: one tvbo-native `.yaml` + +See **writing-models** for the Dynamics form and **running-simulations** for sourcing +(inline vs YAML vs `iri`) and the CLI. Replication-specific rules: + +- **Encode what the study IS; only `Dynamics` is mandatory.** A single-node study carries no + `network`/`coupling`; a multi-node study adds them (abstract graph or brain connectome). A + parameter sweep / bifurcation diagram is an `Exploration` over the swept parameter with a + fixed-point / eigenvalue / peak observation; a **fit to data is an inference / optimisation + experiment** (see **running-simulations**) whose target is the recovered parameter + + goodness-of-fit, not a trajectory. Match the paper's structure, not a template's shape. +- **Spec at the root, callables in `code/recipe/` via `code_source`.** The study declares + `code_source: ./code/recipe` (a local path) or a `{git, ref, subdir}` repo; tvbo puts that + dir on the import path so `callable: {module: _analysis}` resolves with no driver and + no vendored package (falls back to a `code/` convention if unset). This keeps the spec at the + top level while its code lives under `code/`. +- One file; shared `&dynamics` / `¶ms` / `&network` anchors; per-experiment `<<:` + overrides. Order experiments so a `from_experiment` source precedes its dependents + (operating point before its control runs) β€” then bare `tvbo run .yaml` + resolves the seeds in one pass. +- Non-obvious params get a one-line comment tying them to the paper (equation/figure). +- Overriding a param replaces it wholesale (YAML merge is shallow) β€” restate `unit`/ + `description`, or don't override when the anchor default already matches. +- Encode the *intent* declaratively (gates via a Piecewise/`autonomous:false` RHS, + adiabatic branch via `Exploration.sweep_seeding: from_previous`, delayed self-terms + via the coupling graph) β€” not a backend mechanism. + +## Phase 4 β€” Analysis callables (only for non-closed-form pipelines) + +Study-specific reductions β€” order parameters, bifurcation / fixed-point detection, spectral +peaks, control masks, fit residuals β€” β†’ pure, backend-agnostic, independently-testable +functions in `code/_analysis.py`, referenced from the recipe via +`callable: {name, module: _analysis}`. Keep them NumPy; carry data as **labelled +xarrays**, never positional reshapes. When aligning a +paper's connectome/observable to your node order, match **by label**, never by position +(guards silent hemisphere/order swaps). Note the host/grid split: *declared* observations +run on the host (plain NumPy is fine); only what you put under `record:` runs inside the +jitted/vmapped grid and must be backend-traceable (a non-traceable recording raises). + +Two scale/ensemble traps: (1) a **trial ensemble needs per-cell reseeding** β€” add an +`execution.random_seed` sweep axis so each trial draws a fresh PRNG key; a codegen-constant +key makes every "trial" identical (a degenerate ensemble that silently reads as zero +variance). (2) **At grid scale, record a reduced/streaming observable, never raw +trajectories** β€” a full ΞΈ/voltage trace over a 15k-point grid is terabytes; a streaming +reduction (e.g. effective frequency accumulated online) keeps resident memory ~constant +(block-size, not trajectory-length), so the whole grid vmaps on one GPU with no sharding. + +## Phase 5 β€” Plotting: one `code/figures/plot.py` + +Copy `assets/plot.py.tmpl` (one `main()`, one section per paper figure *type* β€” time series / +phase portrait / bifurcation diagram / spectrum / sweep / spatial map β€” then compose) and +`assets/compose_ab.py` (pairs each reproduction with the paper original into +`ab_fig{N}.png`). Read the native result containers directly. Always draw the paper's +full multi-panel layout; a not-yet-run panel renders a labelled placeholder. + +**Render spatial data in the paper's coordinate/surface convention**, not a convenient +substitute β€” e.g. plot brain-region values at the paper's surface parcel centres (Koller uses +the fsaverage5-*inflated* COM), not the raw MNI centroid; the convention changes the figure's +look and can misalign, so derive the coordinates from the paper's surface and verify the +mapping **by label**. And **guard a multi-panel figure by data-requirement, not per figure**: +a group-level panel often reproduces from group data while its per-subject sibling stays +blocked on per-subject data β€” split the guard so the reproducible panels ship and only the +blocked ones are placeholders. + +Keep any extracted **paper source arrays label-keyed** (`xarray` with named coords), not +encoded into filenames β€” tvbo's declarative figure spec (`dev/figure-spec-design.md`) will +bind figure data by IRI + `output` + `sel`, so a flat per-panel `.nc` set is a fine stopgap, +but an elaborate filesystem-keyed tree is throwaway. Don't over-build it before the renderer. + +## Phase 6 β€” Report: `report/report.qmd` (every number computed) + +Copy `assets/report.qmd.tmpl`. It carries the three things that took us the longest: + +- a **metrics cell** that opens each result container and computes every quantity once + into a dict `M`, referenced in prose/captions via inline `` `{python} …` `` (works in + figure captions too). **No hand-typed numbers.** +- the **reproduction-vs-replication** section (NASEM framing) + a **scorecard** table + (criterion β†’ met / partial / out) mapping 1:1 to `targets.md`. +- model/coupling equations rendered from metadata via `EXP.dynamics.render("markdown")` + and `coupling.render("markdown")` β€” generated, not transcribed. Render the controlled + variant `relative to` the base (`dynamics.render(baseline=…)`) so only the delta shows. +- **per-figure status callouts, three colours, no emoji:** green = what reproduced, yellow + = what is *missing* (data/target not yet available), red = what was *attempted and failed + to match*. One or two sentences each. A placeholder panel (rule #3) gets a **yellow + "missing"** callout β€” never a green one, and never dressed up as a result. + +PDF-targeted `.qmd`: write math as LaTeX, never Unicode (xelatex drops it). Avoid a +closing `$` immediately followed by a digit (breaks pandoc math). Edit the finished prose +for AI-slop filler β€” hollow hedges, fake enthusiasm, recycled structure β€” before you call +it done. + +## Phase 7 β€” Verify against an independent reference + +Before trusting figures, validate the recipe's core dynamics against a **standalone +reference integration** of the paper's governing equation in `code/_reference.py` +(plain NumPy, or another backend) β€” recipe output must match it (byte-exact, or within a +stated tolerance). Where feasible, also cross-check via `render_code('tvb')` vs +`render_code('tvboptim')`. This is what catches modelling bugs a PDF can't: e.g. +per-step vs per-stage coupling evaluation converging to a *different attractor*. + +**Attribute a residual gap to data vs implementation with a head-to-head.** When a metric +misses the paper's number, install the paper's *own* tooling and run it on your *exact* +inputs before blaming your code. (Koller: running his native `tvb-library` model on the same +substitute SC gave FC r=0.27 β€” the same as tvboptim's 0.32 β€” proving the shortfall was the +connectome, not the engine; without it we'd have chased an implementation bug that wasn't +there.) + +--- + +## Dynamical & numerical traps (these cost us the most time) + +- **The integrator, not the physics, can move the attractor.** An explicit scheme + (Heun/RK2) at too large a `dt` sustains lightly-damped fast librations at high + coupling: the *time-averaged* spread climbs and reads like desynchronization, but it is + numerical. Halve `dt` (or switch to RK4) and confirm the transition / operating point + are unaffected. A paper's quoted "Ξ”t" is often a Lyapunov / rescaling unit, **not** the + solver step β€” do not copy it into `step_size`. Phase 7's reference integration is how + you tell numerical drift from real dynamics. +- **Seeding a *delayed* system needs the delay HISTORY, not just a snapshot.** A + `from_experiment` seed carries the state but not the Ο„ seconds of history a delayed term + reads; feedback engaging against an unfilled buffer spikes or fails to converge. Fill it + with a Ο„-second **transient pre-roll** (`transient_time: Ο„`) that replays the operating + point; the recorded onset is then `gate.t_on βˆ’ transient_time` (derive it, never hardcode). +- **Big graphs: make the coupling sparse/vectorized before reaching for HPC.** For an + N-node grid the per-step dense NΓ—N coupling matmul dominates; `network.graph_representation: + sparse` (with a factored/angle-addition coupling) turned a multi-hour sweep into minutes + locally, numerically identical (~1e-16). Assess this first β€” often no cluster is needed. + For a big *parameter* grid, pair this with a streaming reduced observable (Phase 4) so vmap + memory stays bounded and the whole grid fits one GPU. +- **Metastable / FC metrics are duration-, trial-, and regime-sensitive β€” don't call a + ceiling early.** A single short run's FC/PLV/order-parameter is noise-dominated (one lucky + trial read 0.17; the 8-trial mean was 0.09). Match the paper's **full duration and trial + count**, and locate its **operating regime** (the near-critical (K, v) pocket a paper's 2-D + grid exists to find) before concluding "structure-limited". We twice declared a gap that + duration/trials/regime then closed. +- **Reconcile the coupling scale with the paper's weight normalization.** A global K that + looks orders of magnitude off is usually a normalization convention, not a bug: a coupling + `aΒ·gx/N` on *raw* SC (in-strength ~1e4) puts the operating point near K~1e-6, vs the paper's + K~0.03 on *normalized* SC. Match how the paper normalizes weights before sweeping K, or the + sweep hunts the wrong decade. + +## Pitfalls we hit (so you don't) + +- **A metric's *definition and the empirical modality it's compared against* are part of the + claim β€” read them from the METHODS, not the figure caption.** t_c (1/e vs exponential-fit), + βŸ¨Ξ”Ο‰βŸ© (std about the mean vs the median), λ₁ units; and *what* the sim is compared to + (Koller's Fig-8 "FC" is band-specific **MEG-PLV**, not fMRI β€” sim FC is PLV on the + off-diagonal). Pick a documented definition, state it, compute it. A magnitude that differs + may be a unit/rescaling convention rather than a physics gap β€” but **confirm that from the + methods**, don't assume it (we labelled it "likely" and it stayed unverified). + +- **Coupling evaluated once per step** silently integrates a different, multistable + attractor. Use `Integrator.coupling_evaluation: per_stage` for chaotic/multistable + systems and verify against the reference (Phase 7). +- **Hardcoded fidelity numbers** creep into captions ("t_c β‰ˆ 2.6 s") and read as + matches when they aren't. Compute them (Phase 6). A recomputed value that *differs* + from the paper is honest; a typed one that matches is not. +- **Realization dependence.** Exact solitary counts / magnitudes depend on unpublished + seeds β€” count median-relative, state the difference as an accepted limitation, don't + chase the integer. +- **Geometry / eigenmode decompositions: match the *invariant*, not the magnitudes.** + Reproduce the paper's exact operator (e.g. an `igl` cotangent-Laplacian at the paper's mesh + resolution β€” parcel-level, not a dense-surface substitute); the reproduced result is the + modal *structure* and where power concentrates (a field living in the lowest spatial-frequency + modes), while absolute scales (wavelengths) track the surface mesh β€” inflated meshes differ + ~1.3Γ— across sources. Report it mechanism-level with the scale caveat. +- **Large or derived array constants: declare their provenance, never inline them.** A mesh + operator, an empirical matrix, or any precomputed array a model/observation consumes is a + `Parameter` declared by *where it comes from*, not a literal: `source:` (WHERE) + `measure:` + (WHICH key) for an existing file, or `producer:` (a `FunctionCall` β€” HOW to compute it) for + one derived from the study's own inputs (arguments may reference `network.nodes.position` / + `network.mesh.*`). Sourced/produced values are resolved lazily and materialised to a + content-addressed companion β€” never baked into generated source (a 66 MB operator inlined is + a source file that will not compile). Reserve inline `value:` for genuine scalars/small + arrays. This keeps the spec the single source of truth (a pre-built file drifts from the mesh + it came from) and the emitted code self-contained. +- **Some targets are irreproducible from the paper's OWN source data.** A panel can be + internally inconsistent in the published workbook (Koller Fig 2e: the per-node spread + disagrees across the steady-state vs transient windows) β€” a source-data defect, not a + model gap. Identify these, scope them `out`, say why; don't chase them. +- **Redundant scripts.** One prep script (emits the tvbo Network directly), one plot + script. Don't split what one `main()` can do. +- **No dead vendored cruft β€” but a *live* dependency is not cruft.** Keep ONE pristine copy + of the paper's own code under `original_study/`; don't duplicate it into `code/`. If the + paper's algorithm is reused at runtime (e.g. a Helmholtz–Hodge flow-potential), *reference* + that one copy (put its dir on `sys.path`), don't re-vendor. **Before deleting vendored code + as "unused", confirm it against the actual RUN paths β€” run a representative experiment + END-TO-END, not just `from_file` load.** Loading a study does not import a + flow-potential/observation callable, so a load-only check will wrongly call a live + dependency dead (this cost us a broken flow-potential path). +- **Generated files never land in git at the study root.** KPI/targets tables, extracted + arrays, the report PDF/logs β†’ write them into `output/` (gitignored). A generated file + tracked at the root reads as a hand-curated deliverable and silently drifts stale. +- **Cross-references.** The report must stand alone β€” no "as in the sibling X study". +- **Framework gaps surface late** if you skip Phase 1.5. Find them before the YAML. diff --git a/.claude/skills/replicating-studies/assets/DATA.md.tmpl b/.claude/skills/replicating-studies/assets/DATA.md.tmpl new file mode 100644 index 000000000..a594c8005 --- /dev/null +++ b/.claude/skills/replicating-studies/assets/DATA.md.tmpl @@ -0,0 +1,58 @@ +# Data provenance + +Replication of et al., **, **** () +([preprint ]). + +The **one tracked pointer** to every input β€” **none of the data itself is in git.** The +paper's own material (its source-data + your extraction of it) lives in `../original_study/`; +third-party raw inputs live in `sourcedata/`; both are git-ignored. State exactly where every +input comes from, name the **true upstream source** (never a derived intermediate), give the +exact fetch + regenerate steps, and mark which quantities are **sourced** vs **synthesised**. + +## Obtaining the data (nothing here is in git) + +1. **** β€” download from `` and save to + `../original_study/` (verify `md5 = `, ``). +2. **Regenerate** the tvbo-ready inputs from it: + ```bash + python code/prepare_.py --all # -> + ``` +3. **** (if any) β€” fetch into `sourcedata/` per the + table below. + +## (paper's published data β€” in `../original_study/`, git-ignored) + +| item | value | +|------|-------| +| **Source** | (). *.* . | +| **DOI** | [](https://doi.org/) | +| **Download** | `` | +| **Licence** | β€” attribute (). | +| **Archive** | `.zip`, `` bytes, `md5 = ` | +| **Reference year** | | + +### Source β†’ paper-quantity map (verified: files opened, headers read) + +| Paper quantity | File / sheet | How to obtain | +|----------------|--------------|---------------| +| | | | +| | | | +| | | | + +### Synthesised (not sourced) + + + +## Open-data gaps (if any) + + + +## Processed artifacts (git-ignored, regenerable) + +`code/prepare_.py` reads the raw source and emits the tvbo-ready `Network` plus small +human-readable `.npz`/`.csv` for inspection into a **git-ignored** location (regenerable from +the raw per the steps above). These are **derived intermediates, not the source** β€” do not +hand-edit them, and never commit them. diff --git a/.claude/skills/replicating-studies/assets/compose_ab.py b/.claude/skills/replicating-studies/assets/compose_ab.py new file mode 100644 index 000000000..923d26918 --- /dev/null +++ b/.claude/skills/replicating-studies/assets/compose_ab.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python3 +"""Compose side-by-side A/B images: A = the original paper figure on a light-grey +panel; B = the TVBO reproduction on white. Writes ``output/figures/ab_fig{N}.png``. + +Reusable as-is across replications. Point ``_REPRO`` at each paper figure's +reproduction image (produced by ``plot.py``) and drop the paper originals into +``original_study/img/fig{N}.png``. Imported and called by ``plot.py``'s ``main()``. +""" +import matplotlib +matplotlib.use("Agg") +import matplotlib.pyplot as plt +from matplotlib.patches import Rectangle +from pathlib import Path + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parent.parent # / (code/figures/ -> /) +FIGS = ROOT / "output" / "figures" # generated figures live under the gitignored output/ +FIGS.mkdir(parents=True, exist_ok=True) +ORIG = ROOT / "original_study" / "img" + +# paper figure number -> its reproduction PNG under output/figures/ (edit for your study). +_REPRO = { + 1: FIGS / "fig01_topology.png", + # 5: FIGS / "tvbo_fig5.png", + # 8: FIGS / "tvbo_fig8.png", +} + + +def compose_ab(repro=None): + repro = repro or _REPRO + for n, rp in repro.items(): + op = ORIG / f"fig{n}.png" + if not (op.exists() and rp.exists()): + print(f"skip fig{n} (missing {'orig' if not op.exists() else 'repro'})") + continue + orig, rep = plt.imread(op), plt.imread(rp) + ha, wa = orig.shape[:2]; hb, wb = rep.shape[:2] + H = 1000.0 + wa2, wb2 = wa * H / ha, wb * H / hb + fig, (a1, a2) = plt.subplots( + 1, 2, figsize=((wa2 + wb2) / 100.0 + 1.6, H / 100.0 + 0.9), + gridspec_kw={"width_ratios": [wa2, wb2], "wspace": 0.34}) + for ax, img, title in [(a1, orig, "A Original"), (a2, rep, "B TVBO reproduction")]: + ax.imshow(img) + ax.set_title(title, fontsize=13, fontweight="bold", pad=8) + ax.set_xticks([]); ax.set_yticks([]) + for sp in ax.spines.values(): + sp.set_visible(False) + fig.subplots_adjust(left=0.025, right=0.975, top=0.88, bottom=0.03, wspace=0.34) + fig.canvas.draw() + for ax, fc in [(a1, "#ececec"), (a2, "#ffffff")]: + bb = ax.get_position() + px, ptop, pbot = 0.014, 0.085, 0.02 + fig.add_artist(Rectangle( + (bb.x0 - px, bb.y0 - pbot), bb.width + 2 * px, bb.height + ptop + pbot, + transform=fig.transFigure, facecolor=fc, edgecolor="#9e9e9e", + linewidth=1.3, zorder=-1)) + fig.patch.set_facecolor("white") + fig.savefig(FIGS / f"ab_fig{n}.png", dpi=120, facecolor="white") + plt.close(fig) + print(f"ab_fig{n}.png") + + +if __name__ == "__main__": + compose_ab() diff --git a/.claude/skills/replicating-studies/assets/plot.py.tmpl b/.claude/skills/replicating-studies/assets/plot.py.tmpl new file mode 100644 index 000000000..6bc0e2255 --- /dev/null +++ b/.claude/skills/replicating-studies/assets/plot.py.tmpl @@ -0,0 +1,60 @@ +#!/usr/bin/env python3 +"""All figures for the replication, in ONE script. + +Regenerate every figure from the processed data + run outputs, then compose the +A/B panels against the paper originals. Run: ``python code/figures/plot.py``. +Reproduction panels that need a not-yet-run experiment render as labelled +placeholders β€” always draw the paper's full multi-panel layout. + +Keep this the ONLY plotting script. Do not split into per-figure files. +""" +from __future__ import annotations +from pathlib import Path +import numpy as np +import matplotlib +matplotlib.use("Agg") +import matplotlib.pyplot as plt + +from compose_ab import compose_ab # A/B pairing (same dir) + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parent.parent +INPUT, OUT = ROOT / "input", ROOT / "output" +FIGS = OUT / "figures" # all generated figures live under the gitignored output/ +FIGS.mkdir(parents=True, exist_ok=True) + + +def _open(exp): + """Open a run's native result container (skip the *_network.h5 sidecar).""" + import xarray as xr + d = OUT / "nc" / exp + fs = [f for f in d.glob("*.h5") if "network" not in f.name] if d.exists() else [] + return xr.open_dataset(fs[0], engine="h5netcdf") if fs else None + + +# ============================================================================= +# Section 1 β€” topology / input-data figures (read the connectome, no dynamics) +# ============================================================================= +def plot_topology_figs(): + d = np.load(str(INPUT / "_grid.npz"), allow_pickle=True) # or read the Network + # ... build fig01_topology.png etc. (subplot_mosaic recommended) ... + print("wrote topology figures") + + +# ============================================================================= +# Section 2..N β€” result figures (read output/nc/exp*/…h5) +# ============================================================================= +def plot_result_figs(): + # ds = _open("exp"); ... build tvbo_fig{N}.png from ds.data_vars ... + print("wrote result figures") + + +def main(): + plot_topology_figs() + plot_result_figs() + compose_ab() # pairs each reproduction with its paper original + print("done") + + +if __name__ == "__main__": + main() diff --git a/.claude/skills/replicating-studies/assets/report.qmd.tmpl b/.claude/skills/replicating-studies/assets/report.qmd.tmpl new file mode 100644 index 000000000..954a5dae9 --- /dev/null +++ b/.claude/skills/replicating-studies/assets/report.qmd.tmpl @@ -0,0 +1,149 @@ +--- +title: "TVBO replication of et al. ()" +subtitle: "** (), replicated with a single declarative tvbo recipe" +format: + pdf: + toc: true + fig-width: 7 + geometry: margin=0.7in + colorlinks: true +callout-icon: false +jupyter: python3 +execute: + echo: false + warning: false +--- + +```{python} +#| label: setup +#| echo: false +import sys, numpy as np, xarray as xr, yaml, matplotlib.pyplot as plt +from pathlib import Path +sys.path.insert(0, str(Path("../code").resolve())) # builder + analysis callables +OUT = Path("../output"); INPUT = Path("../input") + +from tvbo.classes.study import SimulationStudy +STUDY = SimulationStudy.from_file("../.yaml") +EXP = STUDY.get_experiment() # e.g. the uncontrolled/base variant +# CTRL = STUDY.get_experiment() # e.g. a controlled variant, if any + +# ---- Every reported number is computed here from the result container or metadata. ---- +# No value below this line may be typed into prose/captions. Reference M[...] via inline +# `{python} ...`. Papers are not ground truth; your own asserted numbers are not either. +def _open(exp): + d = OUT / "nc" / exp + fs = [f for f in d.glob("*.h5") if "network" not in f.name] if d.exists() else [] + return xr.open_dataset(fs[0], engine="h5netcdf") if fs else None + +def _sidecar(exp): + d = OUT / "nc" / exp + ys = [f for f in d.glob("*.yaml") if "network" not in f.name] if d.exists() else [] + return yaml.safe_load(open(ys[0])) if ys else {} + +def _mval(meta, *path): + o = meta + for k in path: + if not isinstance(o, dict) or k not in o: + return None + o = o[k] + return o.get("value") if isinstance(o, dict) else o + +def param(exp_id, name): + """A model parameter straight from the recipe metadata (never hand-typed).""" + p = STUDY.get_experiment(exp_id).dynamics.parameters + items = p.items() if hasattr(p, "items") else [(getattr(x, "name", None), x) for x in p] + return next((getattr(o, "value", None) for n, o in items if n == name), None) + +def fmt(x, d=1): + """Format a computed metric, or 'β€”' if its container is absent.""" + return "β€”" if x is None else (f"{x:.{d}f}" if d else f"{int(round(x))}") + +# --- Study-specific metric functions: read a container, return a number. Examples: --- +def grid_counts(): + """Topology counts from the processed connectome, so the exact-match claims compute.""" + p = INPUT / "_grid.npz" + if not p.exists(): + return {} + d = np.load(str(p), allow_pickle=True) + return dict(n_nodes=int(np.asarray(d["A"]).shape[0])) # + n_lines, n_gen, ... as needed + +# def solitary_count(exp, thr=0.1): ... # deviation from the locked-bulk median +# def decay_time(exp): ... # e.g. time for the recorded obs to fall to 1/e +# def critical_nc(exp, thr): ... # smallest N_c driving the metric below thr + +# One dict, computed once. The prose/captions reference these via inline code. +M = dict( + K=param(, "K"), + **grid_counts(), + # n_sol=solitary_count("exp"), tc=decay_time("exp"), ... +) +``` + +# Overview + +.yaml`); the only custom code is data preprocessing, +one plotting script, and analysis callables.> + +# Model and parameters + +The model is **generated from the recipe** (`EXP.dynamics.render("markdown")`) β€” the +equations and parameters shown are exactly what runs on the backend. + +```{python} +#| output: asis +#| echo: false +print(EXP.dynamics.render("markdown")) +# For a controlled/extended variant, render only the delta vs the base: +# print(CTRL.dynamics.render("markdown", baseline=EXP.dynamics)) +``` + +# Results (Figs …) + +![**Fig. N β€” .** **A** original (<Author> et al. <Year>); **B** TVBO reproduction. +<caption>. Operating point $K =$ `{python} fmt(M['K'],0)` MW; the grid has +`{python} fmt(M['n_nodes'],0)` nodes. <Every number here is inline-computed from M.>](../output/figures/ab_figN.png){#fig-N width=100%} + +<!-- Per-figure status callout: three colours, no emoji (callout-icon:false above). + green (tip) = reproduced Β· yellow (warning) = MISSING (data/target not yet available) + Β· red (important) = attempted and failed to match. A placeholder panel gets yellow. --> +::: {.callout-tip title="Reproduced"} +<what this figure reproduces, with an inline-computed number, e.g. ρ = `{python} fmt(M['rho'],2)`>. +::: + +# Reproduction vs. replication + +This study is a **replication**, not a bit-exact reproduction. In the NASEM (2019) +terminology, *reproduction* re-runs the same code on the same data; *replication* +re-derives a paper's findings with **independent methods and independently sourced +data** β€” which is what this is (independent tvbo β†’ backend implementation on open data). +It reproduces the paper's *qualitative claims and structural invariants*; quantities +depending on unpublished realizations or rendering choices differ, as expected. + +# Replication scorecard + +Against the criteria in `original_study/analysis/targets.md`. **Status:** yes = +reproduced Β· partial = realization-dependent/incomplete Β· out = out of scope. **Tier** +(set in Phase 1.5): *mech* = mechanism-level (sign / pattern / ordering) Β· *dec* = +decimal-level (needs the paper's exact input). + +| Criterion | Tier | Status | Note | +|---|:---:|:---:|---| +| <T1 criterion, e.g. topology counts> | mech | **yes** | `{python} fmt(M['n_nodes'],0)` nodes … | +| <T2 criterion> | dec | **partial** | <needs the exact input; mechanism holds, number caps> | +| <extended targets> | dec | **out** | <deferred / data gap / framework gap> | + +**Bottom line:** <which tier is replicated; which is partial; what is out of scope>. + +## Accepted limitations + +- <e.g. exact counts depend on the paper's unpublished seed β€” counted median-relative; + the picture reproduces, the integer cannot match.> +- <out-of-scope tiers / open-data gaps / framework gaps (with a pointer to the todo).> + +# Running the study + +`tvbo run <Study>.yaml` runs every experiment in dependency order (each `from_experiment` +source before its dependents). Add `--experiment <ids>` for a subset. Each writes a +native `<stem>_result.h5` (+ a `.yaml` provenance sidecar). Figures + report: +`python code/figures/plot.py && quarto render report/report.qmd --to pdf`. diff --git a/.claude/skills/replicating-studies/assets/skeleton/.gitignore.tmpl b/.claude/skills/replicating-studies/assets/skeleton/.gitignore.tmpl new file mode 100644 index 000000000..4405402c8 --- /dev/null +++ b/.claude/skills/replicating-studies/assets/skeleton/.gitignore.tmpl @@ -0,0 +1,18 @@ +# Run/build outputs β€” regenerated, not source. +output/ +results/ +logs/ +kit*/ +*.tar.gz +__pycache__/ +.ipynb_checkpoints/ + +# Data & upstream material β€” never vendored; obtain per input/DATA.md. +input/sourcedata/ # third-party raw inputs (connectomes, atlases, …) +original_study/* # the paper's own material + its published data (workbook, source_data, code) +!original_study/analysis/ # …but keep OUR analysis (targets.md, figures.md, backend-fit.md) + +# Generated report artifacts + working notes. +report/*.pdf +report/*.log +_dev/ diff --git a/.claude/skills/replicating-studies/assets/skeleton/README.md.tmpl b/.claude/skills/replicating-studies/assets/skeleton/README.md.tmpl new file mode 100644 index 000000000..825bbac77 --- /dev/null +++ b/.claude/skills/replicating-studies/assets/skeleton/README.md.tmpl @@ -0,0 +1,29 @@ +# <Study> β€” <topic> (TVBO replication) + +**Replication** of <Author> et al., *<title>*, <venue> (<Year>). One declarative recipe +(`<Study>.yaml`) + minimal plotting; a *replication*, not a bit-exact reproduction (see +the report's scorecard). Backend chosen by fit β€” see `original_study/analysis/backend-fit.md`. + +## Layout (FAIR) +``` +<Study>/ + <Study>.yaml THE spec β€” one declarative recipe at the root (all/selected experiments) + README.md environment.yml / requirements.txt + code/ ALL code (the spec stays out of code/) + recipe/ callables the spec references, reached via `code_source: ./code/recipe` + prepare_<study>.py <study>_reference.py (verify) figures/plot.py + input/ + DATA.md TRACKED β€” provenance + exact download/regenerate steps + sourcedata/ third-party raw inputs (connectomes, …) β€” git-ignored + output/ EVERYTHING generated (git-ignored): run outputs, figures/, KPI tables, report.pdf + report/ report.qmd + references.bib + writeup (report.pdf / _dev/ git-ignored) + original_study/ paper + its published data β€” git-ignored, obtained per DATA.md + <paper.pdf> img/fig*.png analysis/ (targets, figures, backend-fit) source_data/ <pristine paper code> +``` +## Reproduce +```bash +python code/prepare_<study>.py # (only if the study has external inputs) raw source -> tvbo-ready Network +tvbo run <Study>.yaml # all experiments in dependency order (--experiment for a subset) +python code/figures/plot.py # all figures + A/B composites -> output/figures/ +quarto render report/report.qmd --to pdf # every number computed, no hardcoding +``` diff --git a/.claude/skills/replicating-studies/assets/skeleton/original_study/analysis/backend-fit.md.tmpl b/.claude/skills/replicating-studies/assets/skeleton/original_study/analysis/backend-fit.md.tmpl new file mode 100644 index 000000000..9284e64c3 --- /dev/null +++ b/.claude/skills/replicating-studies/assets/skeleton/original_study/analysis/backend-fit.md.tmpl @@ -0,0 +1,31 @@ +# <Study> β€” backend-fit + framework gaps (Phase 1.5) + +**Scope selected:** all | {T1, T2, …} + +## Feature matrix (selected targets β†’ required capabilities) + +| Target | delays | Lyapunov | sweep/continuation | fit/inference | noise | multi-mode | gated events | sparse | +|--------|:------:|:--------:|:------------------:|:-------------:|:-----:|:----------:|:------------:|:------:| +| T2 | | | | | | | | | +| T3 | βœ“ | | | | | | βœ“ | | +| T5 | | βœ“ | βœ“ | | | | | | + +## Data obtainability + fidelity tier (Phase 1.5 β€” decide BEFORE building) + +| Target | Fidelity (mech/dec) | Exact input needed | Obtainable now? | Decision | +|--------|:-------------------:|--------------------|:---------------:|----------| +| T2 | dec | <connectome / empirical target / seeds> | <yes/no> | <exact \| documented substitute β†’ downgrade to mech> | +| T3 | mech | none (self-contained) | n/a | proceed | + +## Backend pick (with rationale) + +- **Execution backend:** <tvboptim | tvb | julia | …> β€” because <which selected targets + need delays / Lyapunov / adiabatic lax.scan sweeps, which are tvboptim-gated today; + plain forward sims and operating points run on any backend>. +- Metadata stays backend-independent (states intent, never a backend mechanism). + +## Framework / schema gaps (surfaced BEFORE writing the recipe) + +- <need not yet supported> β†’ <framework/schema enhancement>; **BLOCKS** T<n> β†’ + mark it `partial`/`out` in the scorecard. (e.g. Lyapunov of a *delayed* closed loop + under `vmap` needs a delay-correct MLE β€” a tvboptim enhancement.) diff --git a/.claude/skills/replicating-studies/assets/skeleton/original_study/analysis/figures.md.tmpl b/.claude/skills/replicating-studies/assets/skeleton/original_study/analysis/figures.md.tmpl new file mode 100644 index 000000000..9f5bc8039 --- /dev/null +++ b/.claude/skills/replicating-studies/assets/skeleton/original_study/analysis/figures.md.tmpl @@ -0,0 +1,10 @@ +# <Study> β€” per-figure panel map (Phase 1) + +Colour convention: <e.g. green = generators, red = consumers; blue = frequency, orange = Lyapunov>. +Line styles: <e.g. solid = up-sweep, dashed = down-sweep>. + +| Fig | Panels | Axes + ranges | Notes to reproduce as-is | +|-----|--------|---------------|--------------------------| +| 1 | (a) map (b,c) histograms | lon/lat; MW | <quirks, e.g. axis labels swapped in the paper> | +| 5 | (a) Δω vs K (b) λ₁ (c–e) profiles (f–h) ΞΎ_i | K (MW); Hz; index | 8-panel; orange half needs Lyapunov | +| … | … | … | … | diff --git a/.claude/skills/replicating-studies/assets/skeleton/original_study/analysis/targets.md.tmpl b/.claude/skills/replicating-studies/assets/skeleton/original_study/analysis/targets.md.tmpl new file mode 100644 index 000000000..c19839136 --- /dev/null +++ b/.claude/skills/replicating-studies/assets/skeleton/original_study/analysis/targets.md.tmpl @@ -0,0 +1,19 @@ +# <Study> β€” replication targets & validation criteria (Phase 1) + +Version of record: `original_study/<Study>.md`. Key params copied **verbatim**. + +**Scope** = core | extended (do we attempt it, Phase 1). **Fidelity** = mech | dec +(mechanism-level vs decimal-level, set Phase 1.5 β€” decides how exact a match to expect). + +| ID | Target | Fig(s) | Key params (verbatim) | Validation criterion (pass/fail) | Scope | Fidelity | +|----|--------|--------|-----------------------|----------------------------------|-------|----------| +| T1 | <count / topology> | 1 | N=… | counts exact | core | dec | +| T2 | <operating point / profile> | 5c–e | K=…, Ξ±=…, transient=… | <metric> within <tol> | core | dec | +| T3 | <bifurcation point / type> | 3 | sweep param, range … | onset within <tol>; type matches | core | mech | +| T4 | <control / perturbation> | 8 | Ο„=…, g=…, window=… | <metric> β†’ 0; persists after off | core | mech | +| T5 | <Lyapunov / λ₁ / spectrum> | 5b | Benettin, units … | sign structure + hysteresis | extended | mech | +| … | … | … | … | … | … | … | + +**Ground-truth note.** If the printed equation disagrees with what the figures show +(normalization typos, unit conventions), record the quantity the *figures* use, with the +discrepancy noted β€” that is what the recipe must reproduce. diff --git a/.claude/skills/running-simulations/SKILL.md b/.claude/skills/running-simulations/SKILL.md index 3462f3960..0493a46c9 100644 --- a/.claude/skills/running-simulations/SKILL.md +++ b/.claude/skills/running-simulations/SKILL.md @@ -1,23 +1,98 @@ --- name: running-simulations -description: "How to run a SimulationExperiment in TVBO \u2014 choosing a backend,\ - \ calling run/plot, and what each optional extra (jax, tvb, pyrates, julia) provides." +description: "How to run a SimulationExperiment in TVBO \u2014 discovering curated\ + \ components, reusing a curated experiment, choosing a backend, and calling run/plot.\ + \ Read this before grepping the repo for models, networks, or how to run something." --- # Running Simulations -Once you have a `Dynamics` (see the `writing-models` skill), wrap it in a `SimulationExperiment` and run it. +Once you have a `Dynamics` (see the `writing-models` skill), wrap it in a +`SimulationExperiment` and run it. Three habits keep this cheap and correct β€” +**follow them before writing exploratory code or searching the repo**: -## The quick path +1. **Discover curated components** with the catalog API β€” don't grep the tree. +2. **Reuse a curated experiment** when one already matches β€” don't rebuild it. +3. **Build from `iri` pointers**, not from hand-copied parameter values. + +## 1. Discover what's available β€” don't grep the repo + +TVBO ships a large curated database (100+ models, connectomes, atlases, coupling +functions, and whole experiments). Query it directly instead of searching files: ```python -from tvbo import Dynamics, SimulationExperiment +from tvbo import Dynamics +Dynamics.list_db() # every model name (100+) +Dynamics.list_db(model_type="mean_field")# filter: mean_field | neural_mass | + # phase_oscillator | spiking | field | … +Dynamics.db_overview() # pandas DataFrame: name, type, description + +from tvbo.data.registry import list_entries +list_entries("Network") # curated connectomes (dTOR, Schaefer, HCP, …) +list_entries("BrainAtlas") # DesikanKilliany, Schaefer2018, Yeo17, hcpmmp1, … +list_entries("Coupling") # Linear, Sigmoidal, Difference, Kuramoto, … +list_entries("SimulationExperiment") # ready-to-run experiments +list_entries("SimulationStudy") # published studies (parameter sweeps, fits) +``` + +To inspect one entry without running it, use the CLI (no Python needed): + +```bash +tvbo info dynamics:JansenRit # parameters, state vars +tvbo info experiment:RWW_BOLD_FC_Optimization # tasks, network, backends +tvbo info study:Cabral2011 +``` + +`tvbo info` accepts a path, a CURIE (`dynamics:`, `network:`, `coupling:`, +`atlas:`, `experiment:`, `study:`), or a bare DB name. + +## 2. Fastest path: reuse a curated experiment -experiment = SimulationExperiment(dynamics=my_dynamics) -experiment.run(duration=1000).plot() +If an experiment already exists, loading it is one call β€” no reconstruction: + +```python +from tvbo import SimulationExperiment +exp = SimulationExperiment.from_db("RWW_BOLD_FC_Optimization") +result = exp.run("jax") +result.plot() +``` + +Or run it end-to-end from the shell: + +```bash +tvbo run experiment:RWW_BOLD_FC_Optimization --backend jax +``` + +## 3. Build a whole-brain experiment from curated parts + +When no curated experiment fits, assemble one from `iri` pointers. This recipe is +complete and runnable as-is β€” swap the names for any from step 1: + +```python +from tvbo import SimulationExperiment + +exp = SimulationExperiment( + dynamics={"name": "ReducedWongWangExcInh", "iri": "tvbo:ReducedWongWangExcInh"}, + coupling={"name": "Linear", "iri": "tvbo:Linear"}, + network={"iri": "network:example_3node_network"}, # or any list_entries("Network") name + integration={"method": "Heun", "duration": 500, "noise": None}, +) +result = exp.run("jax") # ExperimentResult +result.plot() # built-in plotting +result.data # xarray DataArray, dims (time, state_variable, node) ``` -`run()` returns a result container; `plot()` is built-in. For details see `tvbo/run/`, `tvbo/plot/`, `tvbo/analysis/`. +For a real connectome, point `network` at a curated relmat, e.g. +`{"iri": "network:tpl-FSLMNI152_cohort-HCPYA_rec-dTOR_atlas-Schaefer2018_seg-17Networks_scale-100_desc-SC_relmat"}`. + +### The single-node quick path + +For a bare `Dynamics` with no network (single node), the minimal form still holds: + +```python +from tvbo import Dynamics, SimulationExperiment +SimulationExperiment(dynamics=my_dynamics).run("jax").plot() +``` ## Declarative sourcing: inline vs YAML vs IRI @@ -31,55 +106,92 @@ TVBO is declarative about **where each component comes from**. A like `neuroml:` can resolve from other sources); remaining fields are backfilled from that source. -A bare name string is not a semantic pointer β€” it has no prefix, so the -resolver cannot tell which source to query. Use the `iri` form: +A bare name string is **not** a semantic pointer β€” it has no prefix, so the +resolver cannot tell which source to query. Use the `iri` form. `coupling` +additionally accepts a bare string as a `tvbo:`-prefixed shorthand, but prefer +the explicit `iri` form for clarity. -```python -exp = SimulationExperiment( - dynamics={"name": "ReducedWongWang", "iri": "tvbo:ReducedWongWangExcInh"}, - coupling={"name": "Linear", "iri": "tvbo:Linear"}, - network={ - "parcellation": {"atlas": {"name": "DesikanKilliany", - "iri": "tvbo:DesikanKilliany"}}, - "tractogram": {"name": "dTOR", "iri": "tvbo:dTOR"}, - }, - integration={"method": "Heun", "duration": 10_000, "noise": None}, -) -``` +## Choosing a backend: `run(format=…)` and `render_code(format=…)` -`coupling` additionally accepts a bare string as a `tvbo:`-prefixed shorthand, -but prefer the explicit `iri` form for clarity and to avoid coupling docs to -the default namespace. +The backend is selected by the **`format`** argument, not a constructor +`backend=` kwarg: -## Picking a backend +```python +result = exp.run("jax") # execute on JAX (recommended default for sims) +result = exp.run("tvb") # execute on The Virtual Brain +code = exp.render_code("jax") # render code WITHOUT executing (export) +``` -The default backend is JAX. Switch via `render_code('<backend>')` for export, or pass `backend=...` to `SimulationExperiment`. +`run()`'s default `format` is `tvboptim` (the optimisation backend); pass an +explicit `format` such as `"jax"` for a plain forward simulation. `duration` can +be passed to `run()` to override the integration length. -| Backend | Extras to install | Use when | -|---------|------------------|----------| -| `jax` | `pip install tvbo[jax]` (already in core) | Default; differentiable; fast on GPU/TPU | -| `tvb` | `pip install tvbo[tvb]` | You need TVB's curated set of neural-mass models | -| `pyrates` | `pip install tvbo[pyrates]` | Rate-coded brain network models + numerical continuation | +| Backend (`format`) | Extras to install | Use when | +|---|---|---| +| `jax` | in core | Default forward sim; differentiable; fast on GPU/TPU | +| `tvboptim` | `pip install tvbo[tvboptim]` | JAX-based optimisation / parameter fitting | +| `tvb` | `pip install tvbo[tvb]` | TVB's curated neural-mass models & monitors | +| `pyrates` | `pip install tvbo[pyrates]` | Rate-coded models + numerical continuation | | `julia` | `pip install tvbo[julia]` | DifferentialEquations.jl, ModelingToolkit, NetworkDynamics | +| `numpy` | in core | Reference / debugging | | `neuroml` | `pip install tvbo[neuroml]` | Multi-compartment models via NEURON/LEMS | -| `tvboptim` | `pip install tvbo[tvboptim]` | JAX-based optimisation / parameter fitting | -## Render-only (no execution) +Discover installed backends with `from tvbo.cli._backends import list_backends`. + +## Zero-Python: the `tvbo` CLI + +Everything above has a shell equivalent β€” often the cheapest way to run one thing: + +```bash +tvbo run experiment:JansenRit-bifurcation --backend jax # run a curated spec +tvbo run ./my_experiment.yaml # run a local YAML +tvbo info <SPEC> # inspect without running +tvbo export jax <SPEC> # render code, no execution +tvbo workflow snakemake <SPEC> -o ./kit # emit an HPC/pipeline kit +``` + +## Parameter sweeps, optimization & inference + +Sweeps and gradient-based fits are **declared on the experiment** as +`explorations`, not hand-written as optimizer loops β€” TVBO generates the code and +runs it on the `tvboptim` backend (a JAX autodiff engine): ```python -code = experiment.render_code('jax') -print(code) +exp = SimulationExperiment.from_db("RWW_BOLD_FC_Optimization") +result = exp.run("tvboptim") # fit G to empirical FC, gradient-based ``` -Useful for inspecting the generated code or running it outside TVBO. +Reuse a curated optimization experiment as your starting point instead of wiring +one from scratch β€” confirmed examples in the database: + +| Load with `from_db("…")` | What it does | +|---|---| +| `RWW_BOLD_FC_Optimization` | Fit global coupling to empirical BOLD FC | +| `JR_MEG_FrequencyGradient_Optimization` | Fit Jansen-Rit to a MEG frequency gradient | +| `EI_Tuning_FIC_EIB_Optimization` | Feedback-inhibition control / E-I balance tuning | +| `Hopf_Pareto_ParallelOpt` | Multi-objective (NSGA-II) Pareto optimization | +| `Stimulation_Bayesian_Inference` | Bayesian (MCMC) inference over a stimulation model | +| `TBPTT_JansenRit_FC_Optimization` | Truncated-BPTT fit of Jansen-Rit to FC | + +`tvbo info experiment:<name>` shows an experiment's tasks and explorations before +you run it. See `tvbo/classes/` for the `Exploration` metadata slots. ## Studies -A `SimulationStudy` aggregates multiple experiments (e.g. parameter sweeps). See `tvbo/classes/study.py`. +A `SimulationStudy` aggregates multiple experiments (e.g. parameter sweeps). Load +one with `SimulationStudy.from_db(name)` (see `list_entries("SimulationStudy")`), +or `tvbo run study:<name>`. See `tvbo/classes/study.py`. ## Pitfalls -- **Intel Mac**: TVBO pins `numba<0.60` and `llvmlite<0.44` on `darwin/x86_64`. JAX is pinned to `0.4.28` (last Intel-Mac release). If installation complains, check `pyproject.toml`'s platform conditionals. -- **TVB extra**: pulls `numba` transitively; the same Intel-Mac caps apply. -- **Julia extra**: requires a working Julia runtime. `juliacall` will download one on first import if absent. -- `--run-slow` is a *pytest* flag, not a TVBO option. It controls which tests run, not which simulations. +- **Backend selection is `format=`, not `backend=`.** There is no `backend=` + constructor argument on `SimulationExperiment`. +- **`run()` defaults to `tvboptim`.** For a plain forward simulation pass + `run("jax")` explicitly unless you installed the `tvboptim` extra. +- **Intel Mac**: TVBO pins `numba<0.60` / `llvmlite<0.44` on `darwin/x86_64`, and + JAX to `0.4.28` (last Intel-Mac release). Check `pyproject.toml`'s platform + conditionals if installation complains. +- **Julia extra**: requires a working Julia runtime; `juliacall` downloads one on + first import if absent. +- `--run-slow` is a *pytest* flag, not a TVBO option β€” it controls which tests + run, not which simulations. diff --git a/.claude/skills/tests-and-backends/SKILL.md b/.claude/skills/tests-and-backends/SKILL.md index e9137d731..2d2c1e704 100644 --- a/.claude/skills/tests-and-backends/SKILL.md +++ b/.claude/skills/tests-and-backends/SKILL.md @@ -56,4 +56,6 @@ pytest -m "not julia" ## Adding a new backend marker -Edit `[tool.pytest.ini_options].markers` in `pyproject.toml`. Add the optional-dependency group under `[project.optional-dependencies]` so users can `pip install tvbo[<backend>]`. See the `codegen-templates` skill for the full new-backend checklist. +Register `backend_<backend>` in `[tool.pytest.ini_options].markers` in `pyproject.toml` β€” unregistered markers fail under `--strict-markers`. + +Registering the marker is one step of the wider new-backend flow; see the `codegen-templates` skill for the full checklist. diff --git a/.claude/skills/writing-models/SKILL.md b/.claude/skills/writing-models/SKILL.md index 2c742b13d..b1a0d4461 100644 --- a/.claude/skills/writing-models/SKILL.md +++ b/.claude/skills/writing-models/SKILL.md @@ -8,6 +8,22 @@ description: "How to specify a Dynamics in TVBO \u2014 the YAML and Python forms A **Dynamics** is the smallest building block: a set of named parameters and state variables governed by ODE equations. It can be written as YAML or constructed directly in Python. +## First: is it already curated? (don't rewrite from a paper) + +TVBO ships 100+ curated models. Check before transcribing equations by hand β€” a +match is one `from_db` call and is already unit-checked: + +```python +from tvbo import Dynamics +Dynamics.list_db() # every curated model name +dyn = Dynamics.from_db("JansenRit") # load one +``` + +Only write a new `Dynamics` when the catalog has no match. See the +`running-simulations` skill for the rest of the discovery API (filtering by +`model_type`, `db_overview`, the `tvbo info` CLI) and for finding networks, +atlases, coupling, and whole curated experiments the same way. + ## YAML form ```yaml @@ -58,10 +74,7 @@ lorenz = Dynamics( ## Loading a curated model from a source TVBO components are declarative: a `Dynamics` is either specified inline (as -above), loaded from YAML, or **pointed at semantically via an `iri`**. The -IRI's prefix names the source β€” `tvbo:` for the built-in ontology, but the -same mechanism is intended to dispatch to other prefixes (e.g. `neuroml:`) -that resolve from other ontologies / data sources. +above), loaded from YAML, or **pointed at semantically via an `iri`**. ```python # Direct construction (Python API) @@ -71,9 +84,9 @@ dyn = Dynamics.from_db("ReducedWongWangExcInh") dynamics = {"name": "ReducedWongWang", "iri": "tvbo:ReducedWongWangExcInh"} ``` -A bare name string (`dynamics="ReducedWongWangExcInh"`) is **not** a semantic -pointer β€” there's no prefix, so the resolver cannot tell which source to -query. Always include the `iri`. +Always include the `iri` β€” a bare name string is **not** a semantic pointer. See +the `running-simulations` skill for how a prefix resolves to a source and for +the full sourcing rules (inline vs YAML vs `iri`). ## Conventions and pitfalls @@ -81,10 +94,10 @@ query. Always include the `iri`. - **`rhs` is a SymPy-parseable expression**. Names must match parameters and state variables. Greek letters as full words: `sigma`, not `Οƒ`. - **`label`** on a parameter is human-readable metadata (renders in the platform browser). Keep `name` machine-friendly. - Parameters carry **values**; state variables carry **equations**. Don't put a `value` on a state variable. -- **Don't hand-edit `tvbo/datamodel/**`** β€” that's generated from `schema/*.yaml`. Use the `Dynamics` class. +- **Define models through the `Dynamics` class or YAML** β€” never by editing the generated datamodel under `tvbo/datamodel/`. - **Trust the slots. Never assign a raw `{}` / `[]` to a LinkML slot β€” a `JsonObj` in your data is the symptom of mis-configured YAML / a Python object leaking into the schema.** The active datamodel (`tvbo/datamodel/schema.py`) is the jsonasobj2 / `YAMLRoot` dataclass form. Inlined dicts/lists are coerced into typed classes **only in `__post_init__` (i.e. at construction)**. Mutating a slot afterwards does **not** re-run that coercion: - **Multivalued slots** (dict- or list-backed: `parameters`, `dynamics`, `coupling`, `nodes`, `edges`, `transforms`, …) β†’ **mutate the existing container in place**: `.update(...)` / `container["X"] = ...` for dict slots, `.append(...)` for list slots. To get a *typed* entry, insert a constructed class: `net.dynamics["X"] = Dynamics(...)`. - - ❌ `net.dynamics = {...}` β€” a raw dict goes through jsonasobj2's `JsonObj.__setattr__`, which wraps it in a bare `JsonObj` (it later breaks `.items()` / `.values()` on round-trip). + - ❌ `net.dynamics = {...}` β€” a raw dict goes through jsonasobj2's `JsonObj.__setattr__`, which wraps it in a bare `JsonObj`. **Silent symptom:** the slot then reads back **empty with no error** β€” `.items()`/`.keys()` yield nothing, a resolver returns `[]`, `for k, v in slot` doesn't run. Empty-and-silent means you assigned instead of `.update()`-ing (or should have used the constructor). - ❌ `net.nodes = [{...}]` β€” a raw list isn't wrapped in `JsonObj`, but its entries stay **uncoerced plain dicts**, never `Node` instances. - ⚠️ `.update({...})` / `["X"] = {...}` avoids the `JsonObj`, but a raw dict still isn't normalized β€” prefer inserting a constructed class instance. - **Single-valued slots** β†’ plain `=` is correct. Assign a scalar directly (`net.number_of_nodes = 76`); for a nested-object slot assign a **constructed LinkML class instance** (`net.coordinate_space = CommonCoordinateSpace(...)`), never a raw `{}` (which becomes a bare `JsonObj`). diff --git a/.github/instructions/codegen-templates.instructions.md b/.github/instructions/codegen-templates.instructions.md index 96f5cb3ae..2596fb68f 100644 --- a/.github/instructions/codegen-templates.instructions.md +++ b/.github/instructions/codegen-templates.instructions.md @@ -29,7 +29,7 @@ Adapters wrap *external* simulators (TVB, Julia, NeuroML, PyRates, BifurcationKi 1. Add the adapter under `tvbo/adapters/<backend>.py` extending the base class. 2. Add the template tree under `tvbo/templates/<backend>/`. -3. Add a `backend_<backend>` pytest marker in `[tool.pytest.ini_options].markers` (see the `tests-and-backends` skill). +3. Register a `backend_<backend>` pytest marker (see the `tests-and-backends` skill). 4. Wire dispatch in `tvbo/codegen/templater.py`. 5. Ensure the optional dependency lives in `pyproject.toml` under `[project.optional-dependencies]`. diff --git a/.github/instructions/grill-me.instructions.md b/.github/instructions/grill-me.instructions.md deleted file mode 100644 index db7eab901..000000000 --- a/.github/instructions/grill-me.instructions.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -applyTo: '**' ---- - -Interview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer. - -Ask the questions one at a time. - -If a question can be answered by exploring the codebase, explore the codebase instead. diff --git a/.github/instructions/linkml-schema.instructions.md b/.github/instructions/linkml-schema.instructions.md index 5f334c960..64860690d 100644 --- a/.github/instructions/linkml-schema.instructions.md +++ b/.github/instructions/linkml-schema.instructions.md @@ -9,7 +9,8 @@ The TVBO datamodel is defined in **LinkML** YAML in `schema/` and *generated* in ## What is canonical - `schema/common.yaml`, `schema/SANDS.yaml`, `schema/openMINDS_tvbo/**` β€” hand-written LinkML definitions. -- `tvbo/datamodel/pydantic.py`, `tvbo/datamodel/schema.py` β€” **generated**. Do not edit. +- `tvbo/datamodel/pydantic.py`, `tvbo/datamodel/schema.py`, `tvbo/datamodel/tvbo_datamodel.schema.json` + β€” **generated** at build time by `hatch_build.py` and **gitignored**. Do not edit. `pyproject.toml` makes this explicit: @@ -17,15 +18,15 @@ The TVBO datamodel is defined in **LinkML** YAML in `schema/` and *generated* in - `tool.ruff.lint.exclude` includes `tvbo/datamodel/**` - `tool.mypy.exclude` includes `tvbo/datamodel/` -If your diff touches `tvbo/datamodel/**` *and* anything else, that is a bug β€” split the change. - ## Editing the schema 1. Edit the appropriate `schema/*.yaml`. -2. Regenerate the Python types via the LinkML pipeline (see `Makefile` / CI). -3. Commit both the schema change *and* the regenerated `tvbo/datamodel/**` in the same commit. +2. Regenerate the Python types via the LinkML pipeline (see `Makefile` / CI). A build + regenerates them automatically through the hatch build hook. -Never patch the generated file directly β€” the next regeneration will silently revert it. +The generated types are untracked, so a schema change has nothing to stage alongside it β€” +`schema/*.yaml` is the whole diff. Never patch a generated file directly: it is not in +git, and the next build silently overwrites it. ## When in doubt diff --git a/.github/instructions/tests-and-backends.instructions.md b/.github/instructions/tests-and-backends.instructions.md index 9ad143310..a3d3ef57c 100644 --- a/.github/instructions/tests-and-backends.instructions.md +++ b/.github/instructions/tests-and-backends.instructions.md @@ -54,4 +54,6 @@ pytest -m "not julia" ## Adding a new backend marker -Edit `[tool.pytest.ini_options].markers` in `pyproject.toml`. Add the optional-dependency group under `[project.optional-dependencies]` so users can `pip install tvbo[<backend>]`. See the `codegen-templates` skill for the full new-backend checklist. +Register `backend_<backend>` in `[tool.pytest.ini_options].markers` in `pyproject.toml` β€” unregistered markers fail under `--strict-markers`. + +Registering the marker is one step of the wider new-backend flow; see the `codegen-templates` skill for the full checklist. diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f42bb8a47..0d0ab2dcb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -72,11 +72,18 @@ jobs: run: mypy tvbo || true # ─── Always: skills sync guard ──────────────────────────── - # Canonical skills live in skills/ and tvbo/skills/canonical/. The - # rendered copies (.claude/skills/, .github/instructions/, AGENTS.md) - # are GENERATED by `tvbo skills sync`. This guard fails if those copies - # drift from the canonical sources β€” run `tvbo skills sync` and commit - # the result to fix. + # Canonical skills live in skills/ (maintainer, repo-only) and + # tvbo/skills/canonical/ (user, shipped in the wheel). The rendered copies + # (.claude/skills/, .github/instructions/, AGENTS.md) are GENERATED by + # `tvbo skills sync`. This guard fails on: + # - drift: a rendered copy no longer matches its canonical source β€” + # run `tvbo skills sync` and commit the result to fix; + # - an orphan: a rendered copy with no canonical source, i.e. a personal + # skill committed by accident (those belong in ~/.claude/skills/); + # - a leak: a shipped user skill referencing a maintainer skill, which + # `install` never ships β€” a dead pointer for external users; + # - a bad extra: requires_extras naming no real optional-dependency group. + # The last three are content problems; sync reports but never repairs them. skills-sync: name: Skills sync guard needs: lint diff --git a/.gitignore b/.gitignore index 76151f0d9..9d1b9f1d5 100644 --- a/.gitignore +++ b/.gitignore @@ -116,6 +116,10 @@ c.ivp qif.cpython-313-darwin.so qif.f90 docs/Interoperability/BIDS/derivatives/ +# Atlas parcellation volumes: large binaries shipped as build artifacts, not tracked. +# Atlases are consolidated under tvbo/database/atlases (see tvbo/data/tvbo_data/__init__.py). +tvbo/database/atlases/*.nii.gz +# Non-BIDS Schaefer generation source (regenerable download; used only by scripts/). tvbo/data/tvbo_data/atlas/schaefer2018_original_mni tvbo/data/tvbo_data/atlas/*.nii.gz tvbo/data/tvbo_data/_archive_connectome @@ -145,3 +149,6 @@ tvbo/datamodel/tvbo_datamodel.schema.json # Build artifacts dist/ *.egg-info/ + +# stray compiled bifurcation module (build artifact; the tracked copy lives in BifurcationTutorial/) +docs/Usage/*.so diff --git a/AGENTS.md b/AGENTS.md index b5c9ecfe2..75db631ba 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -8,40 +8,22 @@ read this whole file. ## What is TVBO? **TVBO (The Virtual Brain Ontology)** is a knowledge-representation and -simulation toolkit for large-scale brain network models. It consists of -**three pillars** plus a **platform**: - -1. **LinkML datamodel** β€” `schema/*.yaml` defines the structured metadata for - `SimulationExperiment`, `SimulationStudy`, `Dynamics`, `Network`, `Atlas`, - and friends. Python types in `tvbo/datamodel/` are *generated* from this - schema; **never hand-edit `tvbo/datamodel/**`**. - -2. **Ontology** β€” `ontology/*.{owl,ttl,shacl}` carries axioms about - `SimulationExperiment`, `SimulationStudy`, `Network`, `DynamicalSystem`, - and `Software` β€” i.e. what they are and how they can be combined to - specify and run **Dynamical Network Models**. Loaded via `owlready2` - from `tvbo/ontology/`. - -3. **TVBO Python package** β€” `tvbo/` does four things: - 1. **Specifies** models (`Dynamics`, `Equation`, `Network`, …) in Python - or YAML. - 2. **Loads** `SimulationExperiment`s, `SimulationStudy`s, and other - ontology-backed classes (`tvbo/classes/`). - 3. **Generates code** for all supported backends β€” JAX, NumPy, TVB, - Julia (DifferentialEquations.jl, ModelingToolkit, NetworkDynamics), - PyRates, NeuroML, … β€” via `tvbo/codegen/` + `tvbo/templates/` + - `tvbo/adapters/`. - 4. **Executes** the generated code and runs experiments against the - chosen backend (`tvbo/run/`). - -**Platform** β€” [tvbo.charite.de](https://tvbo.charite.de) is an Odoo-based -management layer over the ontology: it displays curated knowledge, lets -users set up their own models, and stores/shares `SimulationExperiment`s -and `SimulationStudy`s (public, or private via API key). Experiments can be -loaded back into Python through `tvbo.api`. A community discussion layer -is on the roadmap. - -A FastAPI REST surface (`tvbo/api/`) mirrors the platform locally. +simulation toolkit for large-scale brain network models β€” three pillars plus a +platform: + +1. **LinkML datamodel** β€” `schema/*.yaml`, generated into Python types under + `tvbo/datamodel/`. +2. **Ontology** β€” `ontology/*.{owl,ttl,shacl}`, loaded via `owlready2`. +3. **Python package** β€” specifies models, loads ontology-backed classes + (`tvbo/classes/`), generates backend code (`tvbo/codegen/` + + `tvbo/templates/` + `tvbo/adapters/`), and executes it (`tvbo/run/`). + +The **platform** at [tvbo.charite.de](https://tvbo.charite.de) is an Odoo layer +that shares curated knowledge and experiments; a FastAPI surface (`tvbo/api/`) +mirrors it locally. + +See the `overview` skill for the full picture β€” pillars, supported backends, +and installation. ## Working in this repo (maintainers) @@ -76,7 +58,6 @@ tvbo skills uninstall # remove previously installed user skills |-------|-------------|----------| | `codegen-templates` | How TVBO's code generation works β€” template engines, backend dispatch in tvbo/codegen/, and the contract for adding a new backend. | `.claude/skills/codegen-templates/SKILL.md` | | `git` | Rules for git operations in TVBO. The user manages all version control. Use when clarifying what git actions are allowed or when a task involves version control. | `.claude/skills/git/SKILL.md` | -| `grill-me` | Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me". | `.claude/skills/grill-me/SKILL.md` | | `linkml-schema` | How to edit the LinkML schema in schema/*.yaml and why tvbo/datamodel/** is generated and must never be hand-edited. | `.claude/skills/linkml-schema/SKILL.md` | | `tests-and-backends` | pytest marker conventions for backend-tagged tests in TVBO, the slow/julia markers, and how to run the test suite locally. | `.claude/skills/tests-and-backends/SKILL.md` | | `writing-code` | Behavioral guidelines to reduce common LLM coding mistakes: think before coding, simplicity first, surgical changes, goal-driven execution. Use when the user wants to enforce strict coding discipline or review coding approach. | `.claude/skills/writing-code/SKILL.md` | @@ -90,7 +71,8 @@ Install with: `tvbo skills install --target claude-code` (or `--target cursor` / |-------|-------------|------------------| | `tvbo-overview` | What TVBO is β€” the three pillars (LinkML datamodel, ontology, Python package) plus the Odoo platform. Use when working with the tvbo library or deciding whether to reach for it. | `tvbo/skills/canonical/overview/SKILL.md` | | `tvbo-platform` | How to use the Odoo-based TVBO platform at tvbo.charite.de β€” retrieve curated knowledge, manage your account, share SimulationExperiments and Studies (public or with API key), and load them back into Python. | `tvbo/skills/canonical/platform/SKILL.md` | -| `tvbo-running-simulations` | How to run a SimulationExperiment in TVBO β€” choosing a backend, calling run/plot, and what each optional extra (jax, tvb, pyrates, julia) provides. | `tvbo/skills/canonical/running-simulations/SKILL.md` | +| `tvbo-replicating-studies` | How to replicate a published study in TVBO β€” turn a paper into ONE declarative, fully tvbo-native `SimulationStudy` (any kind: single-node bifurcation to whole-brain network; forward simulation, parameter sweep, or fit to data) + simple plotting + an honest, fully-computed report. Encodes the hard-won rules so the replication is fast and trustworthy. Composes the atomic skills (writing-models, running-simulations). | `tvbo/skills/canonical/replicating-studies/SKILL.md` | +| `tvbo-running-simulations` | How to run a SimulationExperiment in TVBO β€” discovering curated components, reusing a curated experiment, choosing a backend, and calling run/plot. Read this before grepping the repo for models, networks, or how to run something. | `tvbo/skills/canonical/running-simulations/SKILL.md` | | `tvbo-writing-models` | How to specify a Dynamics in TVBO β€” the YAML and Python forms, parameter / state-variable / equation conventions, and common pitfalls. | `tvbo/skills/canonical/writing-models/SKILL.md` | <!-- END SKILLS INDEX --> diff --git a/Makefile b/Makefile index bf0de6a70..e2f4920db 100644 --- a/Makefile +++ b/Makefile @@ -75,6 +75,7 @@ SHACL_OUT = ontology/tvb-o.shacl.ttl ABOX_OUT = ontology/tvb-o-data.ttl BIOLOGY_OUT = ontology/tvb-o-biology.ttl AXIOMS_TTL = ontology/tvb-o-axioms.ttl +BIFURCATION_TTL = ontology/tvb-o-bifurcation.ttl CLINICAL_TTL = ontology/tvb-o-clinical.ttl CLINICAL_NMM = ontology/tvb-o-clinical-nmm.ttl MERGED_OUT = ontology/tvbo.owl @@ -126,6 +127,7 @@ gen-merged: gen-owl gen-abox @$(ROBOT) merge \ --input $(OWL_OUT) \ --input $(AXIOMS_TTL) \ + --input $(BIFURCATION_TTL) \ --input $(ABOX_OUT) \ --input $(BIOLOGY_OUT) \ --input $(CLINICAL_TTL) \ diff --git a/README.md b/README.md index a8701f95b..256cdab12 100644 --- a/README.md +++ b/README.md @@ -1,160 +1,206 @@ - <img src="https://raw.githubusercontent.com/virtual-twin/tvbo/main/imgs/tvbo_logo.png" alt="TVBO logo" title="TVBO" align="right" height="100" /> # The Virtual Brain Ontology + [![Lint & Test](https://github.com/virtual-twin/tvbo/actions/workflows/ci.yml/badge.svg)](https://github.com/virtual-twin/tvbo/actions/workflows/ci.yml) [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) [![PyPI version](https://img.shields.io/pypi/v/tvbo.svg)](https://pypi.org/project/tvbo/) [![PyPI - Downloads](https://img.shields.io/pypi/dm/tvbo)](https://pypi.org/project/tvbo/) [![License](https://img.shields.io/badge/License-EUPL--1.2-blue.svg)](LICENSE) +[![Platform](https://img.shields.io/badge/platform-tvbo.charite.de-2b6b6b.svg)](https://tvbo.charite.de) + +`tvbo` is a semantic knowledge base, a metadata standard, and a Python toolbox for whole-brain network simulations. You describe a whole experiment (equations, network, coupling, integration, stimuli, observation, provenance) as one typed, ontology-grounded specification. From that single source, `tvbo` does two things: + +- **Compiles** it to runnable code across many backends and to a methods report, so a published study re-runs without drift between what the paper says, what the code does, and what the docs claim. +- **Grounds** every entity in a four-domain ontology and knowledge graph, so models can be compared by what their parameters *mean*, not by what they are *called*. + +<p align="center"> + <img src="imgs/tvbo_overview.png" width="100%" alt="One specification, two payoffs: a TVB-O SimulationExperiment (one typed object grouped by role) compiles to code and a methods report and runs across 14 backends (reproducible), and grounds into a knowledge graph where two models with different symbols meet at the same biology (comparable); the platform at tvbo.charite.de serves people and AI agents."> +</p> -`tvbo` is a Python library to access the knowledge representation system (i.e., ontology) and data model for the neuroinformatics platform The Virtual Brain (TVB). +The hosted platform at [tvbo.charite.de](https://tvbo.charite.de) gives the same knowledge base and an experiment builder in the browser, with no local install. -## πŸš€ Installation +## Installation ```bash pip install tvbo ``` -### Platform Notes +Requires Python 3.11 or newer. The core install compiles any specification and runs it on JAX. Other simulation backends install as extras, listed in the [Backends](#backends) table. -**Intel Mac Users (x86_64):** TVBO requires Python β‰₯3.11. On Intel Macs, the -`[audio]` and `[tvb]` extras pin `numba<0.60` / `llvmlite<0.44` because newer -llvmlite has no `macosx_x86_64` wheels for Python 3.12+. JAX is also pinned to -0.4.28 (the last Intel-Mac release). +## Quick start -**Apple Silicon Mac Users:** Python β‰₯3.11 is supported. You'll get the latest -compatible JAX version automatically. +### Specify a model and run it -## πŸ“– Quick Start +```python +from tvbo import Dynamics, SimulationExperiment -### Example: Lorenz Attractor Simulation +lorenz = Dynamics( + parameters={"sigma": {"value": 10.0}, "rho": {"value": 28.0}, "beta": {"value": 8 / 3}}, + state_variables={ + "X": {"equation": {"rhs": "sigma * (Y - X)"}}, + "Y": {"equation": {"rhs": "X * (rho - Z) - Y"}}, + "Z": {"equation": {"rhs": "X * Y - beta * Z"}}, + }, +) + +# compile to JAX (core install) and run +SimulationExperiment(dynamics=lorenz).run("jax", duration=1000).plot() +``` <details> -<summary><b>πŸ“ Model Specification (YAML)</b></summary> +<summary>The same model as a YAML specification</summary> ```yaml name: LorenzAttractor parameters: - sigma: - value: 10 - label: Prandtl number - rho: - label: Rayleigh number - value: 28 - beta: - value: 2.6666666666666665 + sigma: {value: 10, label: Prandtl number} + rho: {value: 28, label: Rayleigh number} + beta: {value: 2.6666666666666665} state_variables: - X: - equation: - lhs: \dot{X} - rhs: sigma * (Y - X) - Y: - equation: - lhs: \dot{Y} - rhs: X * (rho - Z) - Y - Z: - equation: - lhs: \dot{Z} - rhs: X * Y - beta * Z + X: {equation: {lhs: \dot{X}, rhs: sigma * (Y - X)}} + Y: {equation: {lhs: \dot{Y}, rhs: X * (rho - Z) - Y}} + Z: {equation: {lhs: \dot{Z}, rhs: X * Y - beta * Z}} ``` +Load it with `Dynamics.from_file("lorenz.yaml")`. </details> -<details> -<summary><b>πŸ”§ Generate Code</b></summary> +### Inspect the generated code without running it ```python -from tvbo import Dynamics, SimulationExperiment - -lorenz = Dynamics( - parameters={ - "sigma": {"value": 10.0}, - "rho": {"value": 28.0}, - "beta": {"value": 8 / 3}, - }, - state_variables={ - "X": {"equation": {"rhs": "sigma * (Y - X)"}}, - "Y": {"equation": {"rhs": "X * (rho - Z) - Y"}}, - "Z": {"equation": {"rhs": "X * Y - beta * Z"}}, - }, -) - -code = SimulationExperiment(dynamics=lorenz).render_code('jax') -print(code) +exp = SimulationExperiment(dynamics=lorenz) +print(exp.render_code("jax")) # or "numpy", "julia", "tvb", "pyrates", ... ``` -</details> +### Load a curated model from the library -<details> -<summary><b>▢️ Run Simulation</b></summary> +Models, networks, and studies ship with the package: ```python from tvbo import Dynamics, SimulationExperiment -lorenz = Dynamics( - parameters={ - "sigma": {"value": 10.0}, - "rho": {"value": 28.0}, - "beta": {"value": 8 / 3}, - }, - state_variables={ - "X": {"equation": {"rhs": "sigma * (Y - X)"}}, - "Y": {"equation": {"rhs": "X * (rho - Z) - Y"}}, - "Z": {"equation": {"rhs": "X * Y - beta * Z"}}, +exp = SimulationExperiment(dynamics=Dynamics.from_db("JansenRit")) +exp.run("jax").plot() +exp.report("pdf", outputfile="methods.pdf") # provenance-aware methods report +``` + +Assemble a network model from curated components, referenced by semantic `iri` pointers: + +```python +exp = SimulationExperiment( + dynamics={"iri": "tvbo:ReducedWongWangExcInh"}, + coupling={"iri": "tvbo:Linear"}, + network={ + "parcellation": {"atlas": {"iri": "tvbo:DesikanKilliany"}}, + "tractogram": {"iri": "tvbo:dTOR"}, }, + integration={"method": "Heun", "duration": 10_000}, ) - -# Run simulation and plot results -SimulationExperiment(dynamics=lorenz).run(duration=1000).plot() ``` -</details> +## Anatomy of a SimulationExperiment -## πŸ“š Documentation +A specification captures everything needed to reproduce a run, not just the equations. Each section is written inline, loaded from YAML, or referenced by an `iri` pointer into the knowledge base. -- **[Full Documentation](https://virtual-twin.github.io/tvbo/)** -- **[Model Browser](https://virtual-twin.github.io/tvbo/browser)** - Browse models, parameters, and equations -- **[Metadata Schema](https://virtual-twin.github.io/tvbo/datamodel)** - Explore the TVB-O data model +<p align="center"> + <img src="imgs/tvbo_anatomy.svg" width="100%" alt="Anatomy of a SimulationExperiment: Network, Dynamics, Coupling, Integration, Observation, Event/Stimulus, Exploration and Environment, each with its key fields."> +</p> -## πŸ”¬ Features +## What you can do -- 🧠 Access TVB ontology and knowledge base -- πŸ“Š Define and simulate dynamical systems -- πŸ”„ Code generation for multiple backends (JAX, NumPy) -- πŸ“ˆ Built-in visualization tools -- πŸ—ƒοΈ Structured metadata schema +| | | +|---|---| +| **Specify** | Write dynamics, networks, coupling, stimuli, and observation as symbolic, typed objects in Python or YAML. Equations are stored symbolically, independent of any language or simulator. | +| **Compile and run** | Generate synchronized code for 14 backends from one spec, then execute it (see the table below). | +| **Explore and fit** | Declare parameter sweeps. The JAX-based `tvboptim` backend turns any experiment into a differentiable simulator for gradient-based fitting, Bayesian calibration, and large sweeps. | +| **Analyze** | Run bifurcation analysis and numerical continuation of model regimes. | +| **Ground** | Link every entity to a four-domain ontology: physics (QUDT/UO units), biology (Gene Ontology, ChEBI), anatomy (UBERON, openMINDS/SANDS), clinical (MeSH, ICD). Query the resulting knowledge graph. | +| **Report and share** | Export FAIR metadata (LinkML YAML, openMINDS JSON-LD), W3C PROV-O provenance graphs, and methods reports (Markdown/PDF) from the same spec. | +| **Scale out** | Emit self-contained SLURM, Snakemake, or Nextflow kits from the CLI (`tvbo workflow submit`) to run large sweeps on a cluster. | +| **Assist agents** | `tvbo skills install` gives AI coding assistants (Claude, Cursor, Copilot) the spec format and a knowledge graph to query instead of guessing. | -## πŸ“¦ Installation Options +## Backends -### Standard Installation -```bash -pip install tvbo -``` +One specification, many targets. `render_code(format=...)` exports; `run(format=...)` executes. -### With API Server Support -```bash -pip install tvbo[api] -``` +| Backend | Extra | For | +|---|---|---| +| JAX | core | Fast, differentiable, GPU/TPU; runs out of the box | +| `tvboptim` (default for `run()`) | `tvbo[tvboptim]` | JAX-based fitting, Bayesian calibration, large sweeps | +| NumPy / Python | core | Readable reference implementations | +| TVB | `tvbo[tvb]` | The Virtual Brain's curated neural-mass library | +| PyRates | `tvbo[pyrates]` | Rate-coded network models and numerical continuation | +| Julia (DifferentialEquations.jl, ModelingToolkit.jl, NetworkDynamics.jl, BifurcationKit.jl) | `tvbo[julia]` | Stiff solvers, symbolic modelling, bifurcation | +| NeuroML / LEMS | `tvbo[neuroml]` | Run via jNeuroML, NEURON, Brian2, NetPyNE, EDEN | + +Install a backend with `pip install tvbo[<extra>]`. The compiler also emits surface PDE-FEM fields and RateML/CUDA GPU kernels. + +Backends are designed to agree within each integrator's numerical tolerance, not to be bit-for-bit identical. Deterministic runs of `jax`, `tvboptim`, and `tvb` match to tolerance; noise RNG does not transfer across backends. + +## The platform + +The Python package is the engine. [tvbo.charite.de](https://tvbo.charite.de) puts the same knowledge base in the browser, with no install: + +- **Knowledge Graph** β€” search dynamics, networks, couplings, integrators, observation models, atlases, and studies as list and node-link views, with a SPARQL endpoint. +- **Experiment Builder** β€” assemble and run an experiment in the browser, with a live schema-validated YAML panel, and export it as YAML or ready-to-run Python. +- **Save, share, publish** β€” keep your own models and experiments private, share them with named colleagues, or submit them for review into the public gallery. +- **Round-trip to Python** β€” `pip install tvbo[api]`, mint an API key, then load a shared experiment back with the `tvbo.platform` client and run it. + +Every experiment built on the platform runs on this open-source `tvbo` package. + +## Curated knowledge base + +`tvbo` ships with a versioned library grounded in the ontology: + +- 39 canonical neural-mass models (106 database entries including per-backend variants) +- 120 literature-derived studies with provenance +- 63 brain networks spanning 19 to 1000 nodes +- 9 coupling functions and 5 brain atlases + +Load it from Python (`Dynamics.from_db(...)`, `SimulationStudy.from_db(...)`, `Network.from_db(...)`) or browse it at [tvbo.charite.de](https://tvbo.charite.de). + +## How tvbo relates to existing tools + +`tvbo` extends and aligns to existing standards rather than replacing them. It delegates execution to simulators and supplies the semantic layer that keeps results interoperable. SBML established the declarative, annotated pattern for biochemical networks; NeuroML/LEMS covers the cellular layer; BIDS and SONATA standardize data and cellular-resolution networks; PyRates compiles one model to several backends. What none of them provide is the grounding: a whole-brain model and its full experiment as one typed object that is executable, biologically grounded, and queryable at once. `tvbo` fills that gap and treats the others as backends or alignment targets. + +<p align="center"> + <img src="imgs/tvbo_coverage.png" width="100%" alt="Tool coverage matrix: seven capabilities (declarative single-source spec, compiles and runs on many backends, whole-brain network scope, four-domain grounding, curated queryable knowledge base, format interoperability, fitting and inference in the spec) across SBML, openMINDS, NeuroML, SONATA, PyRates and TVB-O. Only the TVB-O column is complete."> +</p> + +## Documentation + +- [Full documentation](https://virtual-twin.github.io/tvbo/) +- [Model browser](https://virtual-twin.github.io/tvbo/browser) β€” models, parameters, and equations +- [Metadata schema](https://virtual-twin.github.io/tvbo/datamodel) β€” the TVB-O data model +- [Platform](https://tvbo.charite.de) β€” the hosted GUI and knowledge graph + +## Installation options + +Each simulation backend installs as an extra listed in the [Backends](#backends) table. The other extras: -### With TVB Integration ```bash -pip install tvbo[tvb] +pip install tvbo # core: specify, compile, run on JAX/NumPy +pip install tvbo[api] # REST client for the platform +pip install tvbo[all] # every backend and optional feature ``` -### Full Installation (All Features) +On Intel Macs (x86_64), the `[tvb]` and `[audio]` extras pin `numba<0.60` and `llvmlite<0.44`, and JAX is pinned to `0.4.28` (the last Intel-Mac release), because newer `llvmlite` has no `macosx_x86_64` wheels for Python 3.12+. Apple Silicon gets the latest compatible JAX automatically. + +The `knowledge` extra needs a manual install: + ```bash -pip install tvbo[all] +pip install git+https://github.com/neurommsig/neurommsig-knowledge.git ``` -> **Note:** The `knowledge` extra requires manual installation: -> ```bash -> pip install git+https://github.com/neurommsig/neurommsig-knowledge.git -> ``` +## Citation -## πŸ“„ License +A manuscript describing `tvbo` is in preparation. Until it appears, please cite the software via this repository and [tvbo.charite.de](https://tvbo.charite.de). -Copyright Β© 2025 CharitΓ© UniversitΓ€tsmedizin Berlin. This software is licensed under the terms of the European Union Public Licence (EUPL) version 1.2 or later. +## License + +Copyright Β© 2025 CharitΓ© β€” UniversitΓ€tsmedizin Berlin. Licensed under the European Union Public Licence (EUPL) v1.2 or later. See [LICENSE](LICENSE). ## Funding -P.R. acknowledges support by EU Horizon Europe program Horizon EBRAINS2.0 (101147319), VirtualBrainTwin(101137289), EBRAINS-PREP101079717, AISN101057655, EBRAIN-Health 101058516, EIC grant PHRASE 101058240, by the Digital Europe Programme TEF-Health (101100700), Shaiped (101195135), CoordinaTEF (101168074) German Research Foundation SFB 1436 (project ID 425899996); SFB 1315 (project ID 327654276); SFB 936 (project ID 178316478); SPP Computational Connectomics RI 2073/6-1, RI 2073/10-2, RI 2073/9-1; DFG Clinical Research Group BECAUSE-Y 504745852, Berlin University Alliance OpenMake, the Virtual Research Environment at the CharitΓ© Berlin and EBRAINS Health Data Cloud and the Berlin Institute of Health and Foundation CharitΓ©. P.R. and J.M. acknowledge additionally support by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) - Project-ID 424778381 - TRR 295. + +P.R. acknowledges support by EU Horizon Europe program Horizon EBRAINS2.0 (101147319), VirtualBrainTwin (101137289), EBRAINS-PREP 101079717, AISN 101057655, EBRAIN-Health 101058516, EIC grant PHRASE 101058240, by the Digital Europe Programme TEF-Health (101100700), Shaiped (101195135), CoordinaTEF (101168074), German Research Foundation SFB 1436 (project ID 425899996), SFB 1315 (project ID 327654276), SFB 936 (project ID 178316478), SPP Computational Connectomics RI 2073/6-1, RI 2073/10-2, RI 2073/9-1, DFG Clinical Research Group BECAUSE-Y 504745852, Berlin University Alliance OpenMake, the Virtual Research Environment at the CharitΓ© Berlin, EBRAINS Health Data Cloud, and the Berlin Institute of Health and Foundation CharitΓ©. P.R. and J.M. acknowledge additional support by the Deutsche Forschungsgemeinschaft (DFG) β€” Project-ID 424778381 β€” TRR 295. diff --git a/benchmarks/skill-cost/.gitignore b/benchmarks/skill-cost/.gitignore new file mode 100644 index 000000000..7b9ca3233 --- /dev/null +++ b/benchmarks/skill-cost/.gitignore @@ -0,0 +1,3 @@ +__pycache__/ +*.pyc +.runs/ diff --git a/benchmarks/skill-cost/README.md b/benchmarks/skill-cost/README.md new file mode 100644 index 000000000..9f47e4eab --- /dev/null +++ b/benchmarks/skill-cost/README.md @@ -0,0 +1,90 @@ +# Skill-cost benchmark + +Measures how much the shipped **TVBO skills** reduce the cost of an AI agent +*setting up a simulation experiment* β€” the tokens, tool calls, wall-clock, and +USD an agent burns to go from a plain request to a working whole-brain +simulation. + +## The question + +A coding agent with no domain skills discovers everything from scratch: it greps +the installed package to learn which models and connectomes exist and how `run` +is called. That exploration is where the tokens go. The TVBO skills replace it +with a few catalog calls (`Dynamics.list_db()`, `list_entries("Network")`, +`run("jax")`). This benchmark quantifies the difference. + +## Conditions + +Each cell runs the **same task** under one of three conditions; the only thing +that changes is skill availability: + +| Condition | TVBO skills in workspace | Prompt mentions them | +|-----------|--------------------------|----------------------| +| `control` | no | no | +| `implicit` | yes | no β€” the agent must trigger them from their descriptions | +| `explicit` | yes | yes β€” the prompt points the agent at them | + +`implicit` vs `explicit` also tells us whether the skill **descriptions** are +good enough to auto-trigger without being named. + +## What it measures + +Per run: `processed_tokens` (summed input-side tokens incl. cache, across turns), +`output_tokens`, `tool_calls`, `wall_seconds`, `cost_usd`, and β€” crucially β€” +`success`, verified by **executing the agent's `solution.py` ourselves** and +checking it prints a real result shape. A fast give-up is a failure, not a cheap +win. + +## Layout + +``` +harness/ pluggable agent runners + base.py Harness ABC + Task/RunResult/Metrics + claude_code.py Claude Code headless runner (implemented) + codex.py Codex runner (stub β€” see file for the plan) +tasks/ + whole_brain_sim.py the task prompt + execution-based verifier +run_matrix.py orchestrate conditions Γ— reps, resumable +aggregate.py medians β†’ Markdown table + CSV + bar chart +results/ results.jsonl + generated table/csv/png +``` + +## Running + +Use the repo virtualenv Python so the agent's `python`/`tvbo` resolve to an env +where `tvbo` is importable. + +```bash +# smoke-test one cell first (spends a little usage) +.venv/bin/python benchmarks/skill-cost/run_matrix.py --cell explicit:0 + +# full matrix (3 conditions Γ— 5 reps = 15 agent runs) +.venv/bin/python benchmarks/skill-cost/run_matrix.py --reps 5 + +# aggregate into the table + chart +.venv/bin/python benchmarks/skill-cost/aggregate.py +``` + +`run_matrix.py` is **resumable**: it skips cells already in `results.jsonl`. +Add `--force` to re-run, `--dry-run` to preview the plan, `--model <name>` to +change model (default `sonnet`), and `--max-turns` / `--timeout` to bound cost. + +## Cost & fairness caveats + +- **Real usage is spent.** Each agent run costs money/limits on your logged-in + session. 3Γ—5 is ~15 runs; budget accordingly and start with `--cell`. +- **Isolation** uses `--setting-sources project`, so the user's globally + installed TVBO skills never leak into `control`. Auth is unaffected. +- **Editable install bias (conservative).** If `tvbo` is installed editable, the + package source *is* the repo, so a `control` agent can read curated YAMLs + directly β€” making control *cheaper* than a real `pip install` would. Any + saving we still see is therefore a lower bound. +- **`bypassPermissions`** lets the agent run tools unattended in an isolated + scratch dir outside the repo. Review the task before running. + +## Adding a harness (e.g. Codex) + +Implement `harness/base.Harness` (`prepare_workspace` + `run`) and register it in +`harness/__init__.HARNESSES`. Codex reads `AGENTS.md` rather than +`.claude/skills`, so its `prepare_workspace` installs skills via +`tvbo skills install --target agents-md --scope project`. See `harness/codex.py`. diff --git a/benchmarks/skill-cost/aggregate.py b/benchmarks/skill-cost/aggregate.py new file mode 100644 index 000000000..235c713a9 --- /dev/null +++ b/benchmarks/skill-cost/aggregate.py @@ -0,0 +1,145 @@ +#!/usr/bin/env python +"""Aggregate skill-cost benchmark results into a median table + chart. + +Reads the JSONL written by ``run_matrix.py`` and emits, grouped by +(harness, model, condition): + + * a Markdown median table (processed/output tokens, tool calls, wall seconds, + cost USD) plus success rate and N β€” printed and saved, + * a CSV of the same, + * a grouped bar chart of median cost and median processed tokens by condition. + + .venv/bin/python benchmarks/skill-cost/aggregate.py +""" +from __future__ import annotations + +import argparse +import json +from pathlib import Path + +SCRIPT_DIR = Path(__file__).resolve().parent +DEFAULT_RESULTS = SCRIPT_DIR / "results" / "results.jsonl" + +# Canonical difficulty gradient: no skills β†’ skills present β†’ skills pointed at. +CONDITION_ORDER = ["control", "implicit", "explicit"] + +METRICS = [ + ("processed_tokens", "Processed tokens median"), + ("output_tokens", "Output tokens median"), + ("tool_calls", "Tool calls median"), + ("wall_seconds", "Wall seconds median"), + ("cost_usd", "Cost USD median"), +] + + +def load_rows(results_path: Path) -> list[dict]: + if not results_path.exists(): + raise SystemExit(f"no results at {results_path}; run run_matrix.py first") + rows = [] + for line in results_path.read_text(encoding="utf-8").splitlines(): + line = line.strip() + if line: + rows.append(json.loads(line)) + return rows + + +def main() -> None: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--results", type=Path, default=DEFAULT_RESULTS) + ap.add_argument("--only-success", action="store_true", + help="Aggregate only rows where success=True.") + ap.add_argument("--out-prefix", default=None, + help="Output path prefix (default: alongside --results).") + args = ap.parse_args() + + import pandas as pd + + df = pd.DataFrame(load_rows(args.results)) + if df.empty: + raise SystemExit("results file is empty") + if args.only_success: + df = df[df["success"]] + if df.empty: + raise SystemExit("no successful rows to aggregate") + + df["condition"] = pd.Categorical(df["condition"], CONDITION_ORDER, ordered=True) + grp = df.groupby(["harness", "model", "condition"], observed=True) + + agg = grp.agg( + **{col: (col, "median") for col, _ in METRICS}, + success_rate=("success", "mean"), + n=("success", "size"), + ).reset_index().sort_values(["harness", "model", "condition"]) + + # ---- Markdown table (mirrors the reference layout) ------------------- + headers = ["Harness", "Model", "Condition"] + [label for _, label in METRICS] \ + + ["Success", "N"] + lines = ["| " + " | ".join(headers) + " |", + "|" + "|".join(["---"] * len(headers)) + "|"] + for _, r in agg.iterrows(): + cost = r["cost_usd"] + cost_s = f"{cost:.4f}" if pd.notna(cost) else "n/a" + cells = [ + str(r["harness"]), str(r["model"]), str(r["condition"]), + f"{r['processed_tokens']:.0f}", f"{r['output_tokens']:.0f}", + f"{r['tool_calls']:.0f}", f"{r['wall_seconds']:.1f}", cost_s, + f"{r['success_rate'] * 100:.0f}%", f"{int(r['n'])}", + ] + lines.append("| " + " | ".join(cells) + " |") + table_md = "\n".join(lines) + print(table_md) + + prefix = Path(args.out_prefix) if args.out_prefix else \ + args.results.with_name("skill_cost") + prefix.parent.mkdir(parents=True, exist_ok=True) + prefix.with_suffix(".table.md").write_text(table_md + "\n", encoding="utf-8") + agg.to_csv(prefix.with_suffix(".csv"), index=False) + + _plot(agg, prefix.with_suffix(".png")) + print(f"\nwrote:\n {prefix.with_suffix('.table.md')}" + f"\n {prefix.with_suffix('.csv')}\n {prefix.with_suffix('.png')}") + + +def _plot(agg, out_path: Path) -> None: + import matplotlib + matplotlib.use("Agg") + import matplotlib.pyplot as plt + import numpy as np + + combos = agg[["harness", "model"]].drop_duplicates().itertuples(index=False) + combos = list(combos) + conditions = [c for c in CONDITION_ORDER + if c in set(agg["condition"].astype(str))] + x = np.arange(len(conditions)) + width = 0.8 / max(len(combos), 1) + + fig, (ax_cost, ax_tok) = plt.subplots(1, 2, figsize=(12, 4.5)) + for i, (harness, model) in enumerate(combos): + sub = agg[(agg["harness"] == harness) & (agg["model"] == model)] + sub = sub.set_index(sub["condition"].astype(str)) + cost = [sub.loc[c, "cost_usd"] if c in sub.index else np.nan for c in conditions] + proc = [sub.loc[c, "processed_tokens"] if c in sub.index else np.nan + for c in conditions] + label = f"{harness}/{model}" + ax_cost.bar(x + i * width, cost, width, label=label) + ax_tok.bar(x + i * width, proc, width, label=label) + + offset = width * (len(combos) - 1) / 2 + for ax, title, ylab in ( + (ax_cost, "Median cost per run", "USD"), + (ax_tok, "Median processed tokens per run", "tokens"), + ): + ax.set_title(title) + ax.set_ylabel(ylab) + ax.set_xticks(x + offset) + ax.set_xticklabels(conditions) + ax.legend(fontsize=8) + ax.grid(axis="y", alpha=0.3) + fig.suptitle("TVBO skills: cost of setting up a simulation experiment") + fig.tight_layout() + fig.savefig(out_path, dpi=130) + plt.close(fig) + + +if __name__ == "__main__": + main() diff --git a/benchmarks/skill-cost/harness/__init__.py b/benchmarks/skill-cost/harness/__init__.py new file mode 100644 index 000000000..a4a9d87b0 --- /dev/null +++ b/benchmarks/skill-cost/harness/__init__.py @@ -0,0 +1,22 @@ +"""Pluggable agent-harness registry for the skill-cost benchmark.""" +from __future__ import annotations + +from .base import CONDITIONS, Harness, Metrics, RunResult, Task +from .claude_code import ClaudeCodeHarness +from .codex import CodexHarness + +HARNESSES: dict[str, type[Harness]] = { + ClaudeCodeHarness.name: ClaudeCodeHarness, + CodexHarness.name: CodexHarness, +} + +__all__ = [ + "CONDITIONS", + "Harness", + "Metrics", + "RunResult", + "Task", + "ClaudeCodeHarness", + "CodexHarness", + "HARNESSES", +] diff --git a/benchmarks/skill-cost/harness/base.py b/benchmarks/skill-cost/harness/base.py new file mode 100644 index 000000000..c041c0849 --- /dev/null +++ b/benchmarks/skill-cost/harness/base.py @@ -0,0 +1,108 @@ +"""Harness abstraction for the skill-cost benchmark. + +A *harness* is an agent runner (Claude Code, Codex, …). Each harness knows how +to (a) prepare a scratch workspace for a given *condition* β€” which controls +whether the TVBO skills are available β€” and (b) drive its agent on a *task* and +report normalized :class:`RunResult` metrics. + +The benchmark compares three conditions: + +``control`` No TVBO skills present. The agent discovers everything from the + installed package (the expensive baseline). +``implicit`` TVBO skills installed in the workspace but *not* mentioned in the + prompt β€” the agent must trigger them from their descriptions. +``explicit`` TVBO skills installed *and* the prompt points the agent at them. +""" +from __future__ import annotations + +import abc +from dataclasses import asdict, dataclass, field +from pathlib import Path +from typing import Callable, Optional + +CONDITIONS = ("control", "implicit", "explicit") + + +@dataclass +class Task: + """A single benchmark task, identical across conditions except for the hint. + + Attributes: + name: Short identifier used in result keys and filenames. + prompt: The task text handed to every condition verbatim. + explicit_hint: Appended to the system prompt only in the ``explicit`` + condition β€” this is the *only* per-condition difference in what the + agent is told. + verify: ``(workdir) -> (success, detail)``. Run after the agent exits to + check the task was actually accomplished, so a fast failure is not + mistaken for a cheap success. + """ + + name: str + prompt: str + explicit_hint: str + verify: Callable[[Path], tuple[bool, str]] + + +@dataclass +class RunResult: + """Normalized metrics from one agent invocation (before verification).""" + + processed_tokens: int # sum over turns of input-side tokens (incl. cache) + output_tokens: int + tool_calls: int + wall_seconds: float + cost_usd: Optional[float] # None if the harness does not report cost + num_turns: Optional[int] = None + subtype: str = "" # harness-reported completion status + error: str = "" # non-empty if the invocation itself failed + + +@dataclass +class Metrics: + """A fully resolved benchmark row: one (harness, model, condition, rep).""" + + harness: str + model: str + condition: str + rep: int + success: bool + processed_tokens: int + output_tokens: int + tool_calls: int + wall_seconds: float + cost_usd: Optional[float] + num_turns: Optional[int] = None + subtype: str = "" + detail: str = "" # verifier detail or error message + + @property + def key(self) -> str: + return f"{self.harness}/{self.model}/{self.condition}/{self.rep}" + + def to_row(self) -> dict: + return asdict(self) + + +class Harness(abc.ABC): + """Base class for an agent runner.""" + + name: str + + @abc.abstractmethod + def prepare_workspace(self, workdir: Path, condition: str) -> None: + """Set up *workdir* for *condition* (install/omit TVBO skills, etc.).""" + + @abc.abstractmethod + def run( + self, + task: Task, + condition: str, + workdir: Path, + *, + model: str, + max_turns: int, + timeout: float, + env: dict[str, str], + ) -> RunResult: + """Drive the agent on *task* under *condition*; return raw metrics.""" diff --git a/benchmarks/skill-cost/harness/claude_code.py b/benchmarks/skill-cost/harness/claude_code.py new file mode 100644 index 000000000..1f66aa67f --- /dev/null +++ b/benchmarks/skill-cost/harness/claude_code.py @@ -0,0 +1,173 @@ +"""Claude Code headless harness. + +Drives ``claude -p`` in ``stream-json`` mode and parses the event stream into +normalized :class:`RunResult` metrics. + +Skill isolation relies on ``--setting-sources project``: only skills found under +the workspace's ``.claude/skills`` load, so the user's globally installed TVBO +skills never leak into the ``control`` condition. Auth and model selection are +unaffected by ``--setting-sources``. +""" +from __future__ import annotations + +import json +import subprocess +import time +from pathlib import Path + +from .base import Harness, RunResult, Task + + +class ClaudeCodeHarness(Harness): + name = "claude" + + def __init__(self, claude_bin: str = "claude"): + self.claude_bin = claude_bin + + # -- workspace --------------------------------------------------------- + def prepare_workspace(self, workdir: Path, condition: str) -> None: + """Install the TVBO user skills into the workspace for skilled conditions. + + ``control`` gets nothing. ``implicit`` / ``explicit`` get the four + shipped user skills rendered into ``<workdir>/.claude/skills`` via the + package's own installer, so we exercise the exact files a user would get + from ``tvbo skills install``. + """ + workdir.mkdir(parents=True, exist_ok=True) + if condition == "control": + return + # `tvbo skills install --scope project` writes to <cwd>/.claude/skills. + subprocess.run( + [ + "tvbo", "skills", "install", + "--target", "claude-code", + "--scope", "project", + "--force", + ], + cwd=str(workdir), + check=True, + capture_output=True, + text=True, + ) + + # -- run --------------------------------------------------------------- + def run( + self, + task: Task, + condition: str, + workdir: Path, + *, + model: str, + max_turns: int, + timeout: float, + env: dict[str, str], + ) -> RunResult: + cmd = [ + self.claude_bin, "-p", task.prompt, + "--output-format", "stream-json", + "--verbose", + "--permission-mode", "bypassPermissions", + "--max-turns", str(max_turns), + "--setting-sources", "project", + "--add-dir", str(workdir), + ] + if model: + cmd += ["--model", model] + if condition == "explicit": + cmd += ["--append-system-prompt", task.explicit_hint] + + transcript = workdir / "_harness_transcript.jsonl" + t0 = time.time() + try: + proc = subprocess.run( + cmd, + cwd=str(workdir), + env=env, + capture_output=True, + text=True, + timeout=timeout, + ) + stdout = proc.stdout + except subprocess.TimeoutExpired as exc: + wall = time.time() - t0 + transcript.write_text(exc.stdout or "", encoding="utf-8") + return RunResult(0, 0, 0, wall, None, subtype="timeout", + error=f"agent timed out after {timeout:.0f}s") + wall = time.time() - t0 + transcript.write_text(stdout, encoding="utf-8") + + result = self._parse_stream(stdout) + result.wall_seconds = wall + if proc.returncode != 0 and not result.subtype: + result.error = (proc.stderr or "")[-500:] + result.subtype = f"exit_{proc.returncode}" + return result + + # -- parsing ----------------------------------------------------------- + @staticmethod + def _parse_stream(stdout: str) -> RunResult: + """Fold a stream-json transcript into token / tool-call / cost metrics. + + The stream double-emits assistant events (a streaming start and a final + copy), and per-event ``usage`` holds only streaming deltas β€” so neither + can be summed. Authoritative aggregates live in the terminal ``result`` + event: ``modelUsage`` (per-model token totals, including a Haiku + sub-agent) and ``total_cost_usd``. Tool calls are counted from distinct + ``tool_use`` block ids, which dedupe the streaming duplicates cleanly. + + ``processed_tokens`` sums every input-side token (fresh input + both + cache counts) across all models, so it reflects everything processed β€” + matching how a "processed tokens" figure dwarfs raw output. + """ + tool_ids: set[str] = set() + cost = None + processed = output = 0 + num_turns = None + subtype = "" + error = "" + for line in stdout.splitlines(): + line = line.strip() + if not line or not line.startswith("{"): + continue + try: + ev = json.loads(line) + except json.JSONDecodeError: + continue + etype = ev.get("type") + if etype == "assistant": + for block in ev.get("message", {}).get("content", []) or []: + if isinstance(block, dict) and block.get("type") == "tool_use": + tool_ids.add(block.get("id") or f"anon-{len(tool_ids)}") + elif etype == "result": + cost = ev.get("total_cost_usd", cost) + num_turns = ev.get("num_turns", num_turns) + subtype = ev.get("subtype", subtype) + if ev.get("is_error"): + error = str(ev.get("result", ""))[:500] + model_usage = ev.get("modelUsage") or {} + if model_usage: + for mu in model_usage.values(): + processed += ( + mu.get("inputTokens", 0) + + mu.get("cacheReadInputTokens", 0) + + mu.get("cacheCreationInputTokens", 0) + ) + output += mu.get("outputTokens", 0) + else: # fallback for older schemas without modelUsage + u = ev.get("usage", {}) or {} + processed = ( + u.get("input_tokens", 0) + + u.get("cache_read_input_tokens", 0) + + u.get("cache_creation_input_tokens", 0) + ) + output = u.get("output_tokens", 0) + return RunResult( + processed_tokens=processed, + output_tokens=output, + tool_calls=len(tool_ids), + wall_seconds=0.0, + cost_usd=cost, + num_turns=num_turns, + subtype=subtype, + error=error, + ) diff --git a/benchmarks/skill-cost/harness/codex.py b/benchmarks/skill-cost/harness/codex.py new file mode 100644 index 000000000..a6b8d03dc --- /dev/null +++ b/benchmarks/skill-cost/harness/codex.py @@ -0,0 +1,41 @@ +"""Codex harness β€” stub. + +Wiring for the OpenAI Codex CLI. Not implemented yet: Codex is not installed in +the reference environment and needs a separate key. The interface matches +:class:`~harness.base.Harness` so it drops into ``run_matrix`` once implemented. + +To implement: + * ``prepare_workspace``: Codex reads ``AGENTS.md`` rather than ``.claude/skills``. + Install the skills as an ``AGENTS.md`` index for skilled conditions via + ``tvbo skills install --target agents-md --scope project`` (control: omit). + * ``run``: drive ``codex exec`` non-interactively with a JSON/experimental + output mode and parse tokens/cost/turns from its event log. +""" +from __future__ import annotations + +from pathlib import Path + +from .base import Harness, RunResult, Task + + +class CodexHarness(Harness): + name = "codex" + + def prepare_workspace(self, workdir: Path, condition: str) -> None: + raise NotImplementedError( + "CodexHarness is a stub. Install the Codex CLI and implement " + "AGENTS.md-based skill injection + event-log parsing." + ) + + def run( + self, + task: Task, + condition: str, + workdir: Path, + *, + model: str, + max_turns: int, + timeout: float, + env: dict[str, str], + ) -> RunResult: + raise NotImplementedError("CodexHarness is a stub.") diff --git a/benchmarks/skill-cost/results/results.jsonl b/benchmarks/skill-cost/results/results.jsonl new file mode 100644 index 000000000..6e347d19e --- /dev/null +++ b/benchmarks/skill-cost/results/results.jsonl @@ -0,0 +1 @@ +{"harness": "claude", "model": "sonnet", "condition": "explicit", "rep": 0, "success": true, "processed_tokens": 183372, "output_tokens": 960, "tool_calls": 4, "wall_seconds": 32.5, "cost_usd": 0.15372059999999999, "num_turns": 6, "subtype": "success", "detail": "shape=(40960, 2, 3)"} diff --git a/benchmarks/skill-cost/results/skill_cost.csv b/benchmarks/skill-cost/results/skill_cost.csv new file mode 100644 index 000000000..1522b0baa --- /dev/null +++ b/benchmarks/skill-cost/results/skill_cost.csv @@ -0,0 +1,2 @@ +harness,model,condition,processed_tokens,output_tokens,tool_calls,wall_seconds,cost_usd,success_rate,n +claude,sonnet,explicit,183372.0,960.0,4.0,32.5,0.15372059999999999,1.0,1 diff --git a/benchmarks/skill-cost/results/skill_cost.png b/benchmarks/skill-cost/results/skill_cost.png new file mode 100644 index 000000000..62ad2e682 Binary files /dev/null and b/benchmarks/skill-cost/results/skill_cost.png differ diff --git a/benchmarks/skill-cost/results/skill_cost.table.md b/benchmarks/skill-cost/results/skill_cost.table.md new file mode 100644 index 000000000..e359d26d1 --- /dev/null +++ b/benchmarks/skill-cost/results/skill_cost.table.md @@ -0,0 +1,3 @@ +| Harness | Model | Condition | Processed tokens median | Output tokens median | Tool calls median | Wall seconds median | Cost USD median | Success | N | +|---|---|---|---|---|---|---|---|---|---| +| claude | sonnet | explicit | 183372 | 960 | 4 | 32.5 | 0.1537 | 100% | 1 | diff --git a/benchmarks/skill-cost/run_matrix.py b/benchmarks/skill-cost/run_matrix.py new file mode 100644 index 000000000..c1ec9264f --- /dev/null +++ b/benchmarks/skill-cost/run_matrix.py @@ -0,0 +1,186 @@ +#!/usr/bin/env python +"""Run the skill-cost benchmark matrix. + +For each (harness, model, condition, rep) it spins up a fresh, repo-free scratch +workspace, makes the TVBO skills available (or not, for ``control``), drives the +agent on the task, verifies the result by executing the agent's script, and +appends one normalized row to a JSONL results file. Re-running skips cells that +already have a row (resume), so an interrupted matrix continues cleanly. + +Run it with the repo's virtualenv Python so the agent's ``python`` / ``tvbo`` +resolve to an environment where ``tvbo`` is importable: + + .venv/bin/python benchmarks/skill-cost/run_matrix.py --reps 5 + +Smoke-test a single cell first: + + .venv/bin/python benchmarks/skill-cost/run_matrix.py --cell explicit:0 +""" +from __future__ import annotations + +import argparse +import json +import os +import shutil +import sys +from pathlib import Path + +SCRIPT_DIR = Path(__file__).resolve().parent +REPO_ROOT = SCRIPT_DIR.parents[1] +if str(SCRIPT_DIR) not in sys.path: + sys.path.insert(0, str(SCRIPT_DIR)) + +from harness import CONDITIONS, HARNESSES, Metrics # noqa: E402 +from tasks import TASKS # noqa: E402 + +DEFAULT_RESULTS = SCRIPT_DIR / "results" / "results.jsonl" +DEFAULT_RUNS_DIR = Path(os.environ.get("TMPDIR", "/tmp")) / "tvbo-skillcost-runs" + + +def build_agent_env() -> dict[str, str]: + """Inherit the current env but put the repo venv first so tvbo is importable.""" + env = dict(os.environ) + venv_bin = REPO_ROOT / ".venv" / "bin" + if venv_bin.exists(): + env["PATH"] = f"{venv_bin}{os.pathsep}{env.get('PATH', '')}" + env["VIRTUAL_ENV"] = str(REPO_ROOT / ".venv") + env.pop("PYTHONHOME", None) + return env + + +def load_done_keys(results_path: Path) -> set[str]: + if not results_path.exists(): + return set() + done = set() + for line in results_path.read_text(encoding="utf-8").splitlines(): + line = line.strip() + if not line: + continue + try: + row = json.loads(line) + except json.JSONDecodeError: + continue + done.add(f"{row['harness']}/{row['model']}/{row['condition']}/{row['rep']}") + return done + + +def append_row(results_path: Path, metrics: Metrics) -> None: + results_path.parent.mkdir(parents=True, exist_ok=True) + with results_path.open("a", encoding="utf-8") as fh: + fh.write(json.dumps(metrics.to_row()) + "\n") + + +def run_cell(harness, task, condition, rep, *, model, runs_dir, max_turns, + timeout, env) -> Metrics: + workdir = runs_dir / f"{harness.name}_{model}_{condition}_{rep}" + if workdir.exists(): + shutil.rmtree(workdir) + workdir.mkdir(parents=True) + + harness.prepare_workspace(workdir, condition) + run = harness.run( + task, condition, workdir, + model=model, max_turns=max_turns, timeout=timeout, env=env, + ) + + if run.error: + success, detail = False, run.error + else: + try: + success, detail = task.verify(workdir) + except Exception as exc: # verifier must never crash the matrix + success, detail = False, f"verify raised: {exc!r}" + + return Metrics( + harness=harness.name, + model=model, + condition=condition, + rep=rep, + success=success, + processed_tokens=run.processed_tokens, + output_tokens=run.output_tokens, + tool_calls=run.tool_calls, + wall_seconds=round(run.wall_seconds, 2), + cost_usd=run.cost_usd, + num_turns=run.num_turns, + subtype=run.subtype, + detail=detail, + ) + + +def parse_cells(cell_args, conditions, reps): + """Expand --cell specs (``condition[:rep]``) or the full conditionsΓ—reps grid.""" + if cell_args: + cells = [] + for spec in cell_args: + cond, _, rep = spec.partition(":") + if cond not in CONDITIONS: + raise SystemExit(f"unknown condition {cond!r}; choose from {CONDITIONS}") + cells.append((cond, int(rep) if rep else 0)) + return cells + return [(c, r) for c in conditions for r in range(reps)] + + +def main() -> None: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--harness", default="claude", choices=sorted(HARNESSES)) + ap.add_argument("--model", default="sonnet", + help="Model alias/name passed to the harness (default: sonnet).") + ap.add_argument("--task", default="whole_brain_sim", choices=sorted(TASKS)) + ap.add_argument("--conditions", default=",".join(CONDITIONS), + help="Comma-separated subset of: " + ",".join(CONDITIONS)) + ap.add_argument("--reps", type=int, default=5) + ap.add_argument("--cell", action="append", default=[], + help="Run a single cell 'condition[:rep]'. Repeatable. " + "Overrides --conditions/--reps.") + ap.add_argument("--max-turns", type=int, default=80) + ap.add_argument("--timeout", type=float, default=1200.0, + help="Per-agent wall-clock timeout in seconds.") + ap.add_argument("--runs-dir", type=Path, default=DEFAULT_RUNS_DIR) + ap.add_argument("--results", type=Path, default=DEFAULT_RESULTS) + ap.add_argument("--force", action="store_true", + help="Re-run cells even if already present in results.") + ap.add_argument("--dry-run", action="store_true", + help="List the cells that would run, then exit.") + args = ap.parse_args() + + conditions = [c.strip() for c in args.conditions.split(",") if c.strip()] + cells = parse_cells(args.cell, conditions, args.reps) + task = TASKS[args.task] + harness = HARNESSES[args.harness]() + done = set() if args.force else load_done_keys(args.results) + env = build_agent_env() + + plan = [(c, r) for (c, r) in cells + if args.force or f"{args.harness}/{args.model}/{c}/{r}" not in done] + print(f"harness={args.harness} model={args.model} task={args.task}") + print(f"planned cells: {len(plan)} (skipping {len(cells) - len(plan)} already done)") + for c, r in plan: + print(f" - {c}:{r}") + if args.dry_run or not plan: + return + + for cond, rep in plan: + print(f"\n=== running {cond}:{rep} ===", flush=True) + metrics = run_cell( + harness, task, cond, rep, + model=args.model, runs_dir=args.runs_dir, + max_turns=args.max_turns, timeout=args.timeout, env=env, + ) + append_row(args.results, metrics) + cost = f"${metrics.cost_usd:.4f}" if metrics.cost_usd is not None else "n/a" + print( + f" success={metrics.success} " + f"processed={metrics.processed_tokens} out={metrics.output_tokens} " + f"tools={metrics.tool_calls} wall={metrics.wall_seconds}s cost={cost}\n" + f" detail: {metrics.detail}", + flush=True, + ) + + print(f"\nwrote results β†’ {args.results}") + print("aggregate with: " + f"{sys.executable} {SCRIPT_DIR / 'aggregate.py'} --results {args.results}") + + +if __name__ == "__main__": + main() diff --git a/benchmarks/skill-cost/tasks/__init__.py b/benchmarks/skill-cost/tasks/__init__.py new file mode 100644 index 000000000..c49f0e1a4 --- /dev/null +++ b/benchmarks/skill-cost/tasks/__init__.py @@ -0,0 +1,10 @@ +"""Benchmark task registry.""" +from __future__ import annotations + +from .whole_brain_sim import TASK as whole_brain_sim + +TASKS = { + whole_brain_sim.name: whole_brain_sim, +} + +__all__ = ["TASKS", "whole_brain_sim"] diff --git a/benchmarks/skill-cost/tasks/whole_brain_sim.py b/benchmarks/skill-cost/tasks/whole_brain_sim.py new file mode 100644 index 000000000..7f3580e85 --- /dev/null +++ b/benchmarks/skill-cost/tasks/whole_brain_sim.py @@ -0,0 +1,82 @@ +"""Benchmark task: set up and run a whole-brain simulation experiment. + +The task is deliberately one where *discovery* dominates cost: the agent must +find a curated multi-node connectome and the correct ``run`` API. A control +agent greps the installed package; a skilled agent calls ``list_entries`` / +``run("jax")`` straight away. + +Success is verified by *executing the agent's script ourselves* and checking it +prints a real result shape β€” so a fast give-up cannot masquerade as a cheap win. +""" +from __future__ import annotations + +import re +import subprocess +import sys +from pathlib import Path + +from harness.base import Task + +PROMPT = """\ +Using the `tvbo` Python package (already installed in this environment), write a \ +script named `solution.py` in the current working directory that sets up and runs \ +a whole-brain simulation experiment: + +- Use the `ReducedWongWangExcInh` mean-field neural-mass model. +- Place it on a curated multi-node structural connectome from tvbo's own database \ +(any network with 2 or more nodes is fine β€” pick one that exists). +- Use linear coupling and the Heun integration method, with duration 500. +- Run the experiment on the JAX backend. +- At the very end, print EXACTLY one line of the form: + RESULT_SHAPE=<d0>,<d1>,<d2> + where d0,d1,d2 are the three dimensions of the simulation result's data array. + +Then run `python solution.py` yourself to confirm it executes and prints that line. \ +Do not ask me any questions β€” make reasonable choices and finish autonomously. +""" + +EXPLICIT_HINT = """\ +This project ships TVBO skills as installed skills: `tvbo-overview`, \ +`tvbo-writing-models`, `tvbo-running-simulations`, and `tvbo-platform`. Before \ +exploring the installed package or the filesystem, consult the relevant TVBO \ +skill β€” it tells you how to discover curated components and the exact run API. +""" + +_SHAPE_RE = re.compile(r"RESULT_SHAPE=(\d+),(\d+),(\d+)") + + +def verify(workdir: Path) -> tuple[bool, str]: + """Execute the agent's ``solution.py`` and confirm it produced a real result.""" + script = workdir / "solution.py" + if not script.exists(): + return False, "solution.py not found" + src = script.read_text(encoding="utf-8", errors="replace") + if "tvbo" not in src or ".run(" not in src: + return False, "solution.py does not import tvbo / call .run()" + try: + proc = subprocess.run( + [sys.executable, "solution.py"], + cwd=str(workdir), + capture_output=True, + text=True, + timeout=900, + ) + except subprocess.TimeoutExpired: + return False, "solution.py timed out on verification run (>900s)" + out = (proc.stdout or "") + "\n" + (proc.stderr or "") + m = _SHAPE_RE.search(out) + if not m: + tail = out.strip()[-300:] + return False, f"no RESULT_SHAPE line (exit {proc.returncode}); tail: {tail!r}" + dims = tuple(int(g) for g in m.groups()) + if dims[2] < 2 or dims[0] < 2: + return False, f"implausible result shape {dims} (need >=2 nodes, >=2 timepoints)" + return True, f"shape={dims}" + + +TASK = Task( + name="whole_brain_sim", + prompt=PROMPT, + explicit_hint=EXPLICIT_HINT, + verify=verify, +) diff --git a/docker/Dockerfile b/docker/Dockerfile index d51d96ce9..bf8f3e2ae 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -49,7 +49,8 @@ ENV UV_SYSTEM_PYTHON=1 \ COPY pyproject.toml /app/pyproject.toml RUN --mount=type=cache,target=/root/.cache/uv \ uv pip install -r pyproject.toml --extra julia --extra pyrates --extra neuroml --extra neuron --extra tvb \ - jupyterlab uvicorn fastapi tvboptim + jupyterlab uvicorn fastapi \ + "tvboptim @ git+https://github.com/virtual-twin/tvboptim.git@main" # 2. Pre-warm Julia. juliacall just needs juliapkg.json on sys.path. ENV JULIA_DEPOT_PATH="/opt/julia-depot" \ diff --git a/docs/CLI/hpc.qmd b/docs/CLI/hpc.qmd index cd36bb2c7..811b2e6e8 100644 --- a/docs/CLI/hpc.qmd +++ b/docs/CLI/hpc.qmd @@ -15,7 +15,10 @@ job** where each task simulates a chunk of the grid and the backend vmap/pmap-s its share: ```bash -# 1. Emit the kit locally (from wherever the recipe + its callables resolve) +# 1. Emit the kit locally (tvbo finds the recipe's code/ itself β€” no PYTHONPATH prefix). +# Bake env activation into the kit via `setup` so each array task self-activates. +# Hardcode the conda base (from `conda info --base`): a batch shell has no `conda` +# command, so `$(conda info --base)` would fail on the node β€” use the real path. tvbo workflow slurm mystudy.yaml \ --experiment "Full IF x K x v grid" \ --backend tvboptim \ @@ -25,19 +28,23 @@ tvbo workflow slurm mystudy.yaml \ --set slurm.mem=16G \ --set slurm.mail_type=END,FAIL \ --set slurm.mail_user=you@example.org \ + --set 'slurm.setup=["source /opt/conda/etc/profile.d/conda.sh","conda activate mystudy_env"]' \ -o ./cluster_kit # 2. Ship it to the cluster rsync -a ./cluster_kit/ hpc:~/runs/mysweep/ -# 3. On the cluster: provision the env from the emitted file, then submit +# 3. On the cluster: provision the env once, then launch with one tvbo command. +# `submit` runs the same sbatch array + finalize chain β€” no sbatch by hand. ssh hpc cd ~/runs/mysweep conda env create -f environment.yml # or: pip install -r requirements.txt -conda activate mystudy-... -sbatch run.sbatch # 40 array tasks; email on END/FAIL +tvbo workflow submit . # 40 array tasks + gather; email on END/FAIL ``` +Because `setup` is baked into `run.sbatch`, each array task activates `mystudy_env` +itself β€” the run does not depend on whatever shell you submitted from. + The generated `run.sbatch` runs, per array task: ```bash @@ -47,7 +54,11 @@ tvbo run spec/experiment.yaml --backend=tvboptim \ ``` It points at the kit's **own frozen `spec/experiment.yaml`**, so the job is -self-contained (no external recipe or callable modules needed at run time). +self-contained. Any custom callable/builder modules the recipe references +(`callable: {module: my_analysis}`, `builder: {module: my_networks}`) are copied +into the kit's **`code/`** and put on `PYTHONPATH`, so no external recipe or code is +needed at run time. Installed dependencies still come from the emitted +`requirements.txt` / `environment.yml` (they are not bundled). ## Chunking a sweep into array tasks (`chunk` / `--slurm-chunk`) @@ -179,13 +190,17 @@ Supported keys: `account`, `partition`, `time`, `mem`, `cpus_per_task`, `gres`, ## Engine dispatch (one command, end to end) ```bash -tvbo run mystudy.yaml --engine slurm --backend tvboptim -o ./run-001 +tvbo workflow run slurm mystudy.yaml --experiment 2,3,20,30 --backend tvboptim ``` -Equivalent to emitting the kit and then `sbatch`-ing it. For `snakemake` and -`nextflow` the artefact is written but **no launcher is invoked**; run -`snakemake --cores all` / `nextflow run main.nf` yourself (Slurm's `sbatch` is -fire-and-forget, the others need a sustained shell). +`tvbo workflow run <engine>` emits the kit **and** submits it. A comma-separated +`--experiment` (`2,3,20,30`) emits and submits **one kit/job per experiment** β€” on +Slurm they run in parallel; the ids match an experiment's key, name, label, or numeric +`id`. The lower-level equivalents are `tvbo run mystudy.yaml --engine slurm` (emit + +`sbatch`) and `tvbo workflow slurm … -o kit` then `sbatch kit/run.sbatch`. For +`snakemake` / `nextflow`, `tvbo workflow run` invokes the engine and blocks until it +finishes; the two-step forms write the artefact but leave you to run +`snakemake --cores all` / `nextflow run main.nf` (Slurm's `sbatch` is fire-and-forget). ## Containers (`--set container=IMAGE`) diff --git a/docs/CLI/index.qmd b/docs/CLI/index.qmd index 560ecd581..48b2744ad 100644 --- a/docs/CLI/index.qmd +++ b/docs/CLI/index.qmd @@ -19,6 +19,7 @@ tvbo β”œβ”€β”€ version Print the tvbo version β”œβ”€β”€ validate [schema | bids | sedml | omex] β”œβ”€β”€ config [path | show] +β”œβ”€β”€ network [build] β”œβ”€β”€ workflow [plan | slurm | snakemake | nextflow | backends] └── skills [install | uninstall | sync] ``` @@ -52,6 +53,7 @@ Each page below documents one verb (or sub-tree) with all flags, exit codes, and - [`tvbo formats`](formats.qmd) β€” list registered I/O formats - [`tvbo validate`](validate.qmd) β€” schema, BIDS, SED-ML, OMEX validation - [`tvbo config`](config.qmd) β€” view CLI configuration +- [`tvbo network`](network.qmd) β€” build connectomes from a tractogram + parcellation (MRtrix wrapper) - [`tvbo workflow`](workflow.qmd) β€” emit Slurm / Snakemake / Nextflow kits - [`tvbo skills`](skills.qmd) β€” install AI-assistant skills for Claude Code, Cursor, Copilot - [Workflow kits anatomy](workflow-kits.qmd) β€” what a generated kit contains diff --git a/docs/CLI/network.qmd b/docs/CLI/network.qmd new file mode 100644 index 000000000..87d83a985 --- /dev/null +++ b/docs/CLI/network.qmd @@ -0,0 +1,133 @@ +--- +title: "tvbo network" +--- + +Build brain-network connectomes. Today this sub-tree has one verb, `build`, a +thin wrapper around [MRtrix3](https://www.mrtrix.org/)'s `tck2connectome` that +turns a streamline **tractogram** + a **parcellation** into a tvbo structural +connectome (`…_desc-SC_relmat.h5` + YAML sidecar) you can load with +`tvbo.Network(...)`. + +## Prerequisites + +`tvbo network build` shells out to MRtrix3 β€” it does not vendor any tractography +code. You need `tck2connectome` on your `PATH`: + +- Install MRtrix3: <https://www.mrtrix.org/download/> +- `tck2connectome` reference: + <https://mrtrix.readthedocs.io/en/latest/reference/commands/tck2connectome.html> + +If MRtrix is missing, the command fails fast with these same links. + +::: {.callout-important} +## Same space, not registered here +The tractogram and the parcellation image **must already be co-registered in the +same space** (e.g. both in `FSLMNI152`). `tvbo network build` does not register +them β€” it only assigns streamline endpoints to parcellation labels. Record the +shared space with `--space` so it lands in the output filename and metadata. +::: + +## Synopsis + +```text +tvbo network build TRACTOGRAM PARCELLATION + [--output, -o PATH] + [--atlas NAME] [--space NAME] [--cohort NAME] + [--reconstruction, --rec NAME] [--seg NAME] [--scale NAME] + [--labels FILE] + [--symmetric / --no-symmetric] + [--zero-diagonal / --no-zero-diagonal] + [--keep-assignments PATH] + [--mrtrix-arg ARG ...] + [--overwrite] [--dry-run] +``` + +## Flags + +| Flag | Default | Purpose | +|------|---------|---------| +| `TRACTOGRAM` | _(required)_ | Streamline tractogram MRtrix can read (e.g. `.tck`), same space as the parcellation. | +| `PARCELLATION` | _(required)_ | Integer-labelled parcellation image (e.g. `dseg.nii.gz`), same space as the tractogram. | +| `--output, -o` | _(BIDS-derived name in CWD)_ | Sidecar path (`.yaml`); the `.h5` companion is written next to it. | +| `--atlas` | _(none)_ | Parcellation/atlas name β€” metadata and `atlas-` filename entity. | +| `--space` | _(none)_ | Shared coordinate space (e.g. `FSLMNI152`) β€” the `tpl-` entity. | +| `--cohort` | _(none)_ | Cohort/dataset β€” the `cohort-` entity (e.g. `HCPYA`). | +| `--reconstruction, --rec` | _(none)_ | Tractography pipeline (e.g. `dTOR`) β€” the `rec-` entity + `tractogram` metadata. | +| `--seg` | _(none)_ | Segmentation β€” the `seg-` entity (e.g. `17Networks`). | +| `--scale` | _(none)_ | Scale β€” the `scale-` entity (e.g. `1000`). | +| `--labels` | _(none)_ | Text file, one node label per line, ordered by parcellation label `1..N`. | +| `--symmetric / --no-symmetric` | `--symmetric` | Pass `-symmetric` to `tck2connectome`. | +| `--zero-diagonal / --no-zero-diagonal` | `--zero-diagonal` | Pass `-zero_diagonal` to `tck2connectome`. | +| `--keep-assignments` | _(discarded)_ | Save `tck2connectome`'s `-out_assignments` to this path. | +| `--mrtrix-arg` | _(none)_ | Extra raw argument forwarded to **both** `tck2connectome` calls (repeatable). | +| `--overwrite` | `false` | Overwrite existing output. | +| `--dry-run` | `false` | Print the `tck2connectome` commands and exit without running them. | + +## Behaviour + +1. Checks `tck2connectome` is installed (friendly error with docs links if not). +2. Resolves the output path and the overwrite guard **up front** β€” before the + (potentially minutes-long) MRtrix run β€” since the name is entirely + entity-derived. +3. Runs `tck2connectome` twice in a temp dir: + - **weights** β€” streamline count per node pair; + - **lengths** β€” `-scale_length -stat_edge mean`, the mean streamline length per edge. +4. Loads the two CSVs, assembles a `Network` (`descriptor: SC`, `distance_unit: mm`) + with any `--labels` and the provided BIDS entities, and saves the sidecar + `.h5`. + +The result loads straight back through the normal DB path, e.g. +`tvbo.Network(atlas=..., tractogram=...)` / `get_normative_connectome_data(...)` +β€” see [Networks](../Specification/Network.qmd). + +## Examples + +```bash +# Preview the exact MRtrix commands without running them +tvbo network build dTOR.tck atlas_dseg.nii.gz --dry-run + +# Minimal build β†’ BIDS-named output in the current directory +tvbo network build dTOR.tck Schaefer1000_dseg.nii.gz \ + --space FSLMNI152 --atlas Schaefer2018 --rec dTOR \ + --seg 17Networks --scale 1000 --cohort HCPYA +# β†’ tpl-FSLMNI152_cohort-HCPYA_rec-dTOR_atlas-Schaefer2018_seg-17Networks_scale-1000_desc-SC_relmat.{yaml,h5} + +# Explicit output path + node labels + keep the streamline assignments +tvbo network build dTOR.tck DK_dseg.nii.gz \ + --atlas DesikanKilliany --rec dTOR --labels dk_labels.txt \ + --keep-assignments assignments.csv \ + -o desikan_dTOR.yaml + +# Forward an extra MRtrix flag to both tck2connectome calls +tvbo network build dTOR.tck atlas_dseg.nii.gz --rec dTOR \ + --mrtrix-arg -tck_weights_in --mrtrix-arg sift2_weights.txt \ + -o weighted.yaml +``` + +## Suggested methods description + +If you use the TVB-O network builder to construct connectomes for a publication, the paragraphs below are starting points for your Methods section. Pick the tab that matches your data, adapt the parcellation and any non-default choices to what you ran, and cite the tools. The normative variant describes how the connectomes shipped with TVB-O were produced. + +::: {.panel-tabset} + +### Individual connectome + +Structural connectomes were constructed for each participant with the network builder of The Virtual Brain Ontology (TVB-O) [@Martin2025], the metadata and code-generation framework for The Virtual Brain [@SanzLeon2013], which calls the connectome tool of MRtrix3 [@Tournier2019]. A whole-brain streamline tractogram, reconstructed from the participant's diffusion-weighted MRI, and a parcellation image in the same space were used as input. Each end of every streamline was assigned to the nearest parcellation node found by a radial search out to 4 mm, and endpoints with no node in range were left unassigned [@Smith2015]. Two matrices were derived over these assignments. In the weight matrix, each entry is the number of streamlines that connect a pair of nodes. In the length matrix, every streamline contributes its own length, and the entry for a node pair is the mean of those lengths across the streamlines assigned to it, so the value is the mean streamline length of that connection. Both matrices were written in undirected form, meaning a node pair carries a single value that does not depend on which node is treated as the streamline's start or end, and the matrix diagonal was set to zero so that self-connections are excluded. The weight and length matrices were stored together as one connectome, an HDF5 array file with a YAML sidecar named following the Brain Imaging Data Structure [@Gorgolewski2016a], from which TVB-O reads them at simulation time. + +### Normative connectome + +Group-level structural connectomes were constructed with the network builder of The Virtual Brain Ontology (TVB-O) [@Martin2025], the metadata and code-generation framework for The Virtual Brain [@SanzLeon2013], which calls the connectome tool of MRtrix3 [@Tournier2019]. In place of subject-specific tractography, we used a normative whole-brain tractogram, the dTOR-985 connectome [@Elias2024], which holds roughly 12 million streamlines reconstructed in MNI space from the diffusion MRI of 985 Human Connectome Project subjects. This tractogram and a parcellation in the same MNI template space were used as input. Each end of every streamline was assigned to the nearest parcellation node found by a radial search out to 4 mm, and endpoints with no node in range were left unassigned [@Smith2015]. In the weight matrix, each entry is the number of streamlines that connect a pair of nodes. In the length matrix, every streamline contributes its own length, and the entry for a node pair is the mean of those lengths, so the value is the mean streamline length of that connection. Both matrices were written in undirected form with a zeroed diagonal, so each node pair carries a single value and self-connections are excluded. The matrices were stored together as one connectome, an HDF5 array file with a YAML sidecar named following the Brain Imaging Data Structure [@Gorgolewski2016a]. The normative connectomes distributed with TVB-O were produced this way. + +::: + +Edge weights are raw streamline counts and index the relative density of a connection rather than an absolute measure of axonal strength. Because streamline endpoints are matched to parcellation labels by proximity, the tractogram and the parcellation must already lie in the same coordinate space; the builder performs no registration. + +## References + +::: {#refs} +::: + +## See also + +- [`tvbo import`](import.qmd) β€” load foreign network files into TVBO objects +- [Networks](../Specification/Network.qmd) β€” how connectomes are consumed at runtime +- MRtrix3 `tck2connectome`: <https://mrtrix.readthedocs.io/en/latest/reference/commands/tck2connectome.html> diff --git a/docs/CLI/run.qmd b/docs/CLI/run.qmd index f2dbba0f2..cef3adc9e 100644 --- a/docs/CLI/run.qmd +++ b/docs/CLI/run.qmd @@ -12,9 +12,11 @@ tvbo run SPEC [--out-dir, -o DIR] [--experiment NAME] [--duration MS] + [--set PATH=VALUE ...] + [--limit N] [--engine, -e {local|slurm|snakemake|nextflow}] [--container IMAGE] - [--slurm-chunk i/N] + [--shard i/N] ``` ## Flags @@ -23,11 +25,13 @@ tvbo run SPEC |------|---------|---------| | `--backend, -b` | `tvboptim` | Execution backend. See [`tvbo workflow backends`](backends.qmd) for the full list. | | `--out-dir, -o` | _(none)_ | Directory to write results into. When omitted, no files are written. | -| `--experiment` | _(all)_ | If SPEC is a Study, run only this named experiment. | -| `--duration` | _(spec)_ | Override `integration.duration` in milliseconds. | +| `--experiment` | _(all)_ | If SPEC is a Study, run only this experiment (by `key`/`name`/`label`/numeric `id`). A comma-list (`2,3,20,30`) runs several. | +| `--duration` | _(spec)_ | Override `integration.duration` in milliseconds (shorthand for `--set integration.duration=…`). | +| `--set` | _(none, repeatable)_ | Override any experiment metadata field for this run only β€” the recipe file is not touched. Dotted `PATH` traverses attributes and keyed collections; `VALUE` is coerced (bool/int/float/JSON). See [Overriding metadata](#overriding-metadata-for-a-run---set). | +| `--limit` | _(none)_ | Run at most `N` cells of the sweep (a spread sample) without needing to know the grid size. Ignored when `--shard` is given. | | `--engine, -e` | `local` | `local` runs in-process; the others re-emit via `tvbo workflow ENGINE` and submit. | | `--container` | _(none)_ | OCI image to re-exec inside (Singularity preferred, then Docker). | -| `--slurm-chunk` | _(none)_ | `i/N` β€” shard the sweep grid: cell `j` runs iff `j % N == i`. | +| `--shard` | _(none)_ | `i/N` β€” shard the sweep grid: cell `j` runs iff `j % N == i`. (`--slurm-chunk` is a deprecated alias.) | ## Behaviour by `kind` @@ -39,7 +43,59 @@ tvbo run SPEC | `study` | Iterates over `study.experiments`; if `--experiment NAME` is given, only that one runs. | | anything else | Errors with `tvbo run does not yet support kind=<kind>`. | -## Sharding (`--slurm-chunk i/N`) +## Custom code in a recipe (`code/`) + +A recipe can reference custom Python by bare module name β€” a network builder +(`builder: {module: my_networks}`) or an analysis callable +(`callable: {module: my_analysis}`). tvbo resolves these by making the recipe's +**`code/` subdir** importable when the recipe loads, so the modules resolve with no +`PYTHONPATH` prefix: + +```text +study/ + recipe.yaml # references module: my_analysis + code/my_analysis.py # found automatically on load +``` + +```bash +tvbo run recipe.yaml --experiment 3 # not: PYTHONPATH=code tvbo run … +``` + +The paths go to the front of `sys.path` on load and stay there (callables resolve +lazily during the run, not only at load). The convention carries to the cluster: +`tvbo workflow` bundles the referenced local modules into the kit's `code/` and the +emitted job puts it on `PYTHONPATH`. Modules installed as packages are used as-is; +only local `.py` files travel with the kit. + +## Overriding metadata for a run (`--set`) + +Keep **one** recipe as the ground truth and let the CLI run it with different +settings β€” no divergent copy to drift out of sync. Each `--set PATH=VALUE` +mutates the *loaded* experiment before code generation; the file on disk is never +modified. + +```bash +# Smoke-test a long study cheaply, straight from the real recipe: +tvbo run study.yaml --experiment 3 \ + --set integration.duration=1.0 \ + --set integration.transient_time=0.5 \ + --set observations.lyapunov.analysis.parameters.n_steps.value=4 \ + -o ./smoke +``` + +`PATH` is a dotted walk through attributes **and** keyed collections (LinkML +keyed dicts such as `observations`, `parameters`): `integration.step_size`, +`observations.<name>.analysis.parameters.<name>.value`, and so on. `VALUE` is +coerced to `bool`/`int`/`float`, or parsed as JSON when it starts with `[`/`{` +(e.g. `--set …=[0,2]`), else kept as a string. Repeat `--set` for several +overrides; the run logs each one it applies. + +`--duration` is the shorthand for `--set integration.duration=…`. A collection +key that itself contains a dot (e.g. an exploration `space` keyed by +`KuramotoInertia.K`) can't be addressed this way β€” reduce sweep size with +`--limit` or `--shard` instead. + +## Sharding (`--shard i/N`) When the experiment carries one or more `Exploration`s, `--slurm-chunk` lets a single Slurm array task run a deterministic subset of cells: diff --git a/docs/CLI/skills.qmd b/docs/CLI/skills.qmd index 920f6ad72..908aefbf5 100644 --- a/docs/CLI/skills.qmd +++ b/docs/CLI/skills.qmd @@ -29,13 +29,15 @@ pip install tvbo tvbo skills install --target claude-code # default: Claude Code, user scope ``` -That writes four files under `~/.claude/skills/tvbo-*/SKILL.md`: +That writes five skills under `~/.claude/skills/tvbo-*/` (each a `SKILL.md`, +plus an `assets/` dir where the skill ships templates): | Skill | What it teaches the AI | |---|---| | `tvbo-overview` | The three pillars (LinkML datamodel, ontology, Python package) | | `tvbo-writing-models` | How to specify a `Dynamics` in YAML or Python | | `tvbo-running-simulations` | How to run an experiment, choose a backend | +| `tvbo-replicating-studies` | How to replicate a published study as one recipe + report | | `tvbo-platform` | How to use [tvbo.charite.de](https://tvbo.charite.de) | Skills load **on demand** β€” they cost nothing when you're not working with TVBO. @@ -58,7 +60,7 @@ tvbo skills install | Target | Produces | Default location | |---|---|---| -| `claude-code` | `<dest>/tvbo-<name>/SKILL.md` | `~/.claude/skills/` (user) or `./.claude/skills/` (project) | +| `claude-code` | `<dest>/tvbo-<name>/SKILL.md` (+ `assets/` if the skill ships any) | `~/.claude/skills/` (user) or `./.claude/skills/` (project) | | `cursor` | `<dest>/tvbo-<name>.mdc` | `~/.cursor/rules/` or `./.cursor/rules/` | | `copilot` | `<dest>/<name>.instructions.md` | `.github/instructions/` (repo-only; maintainer) | | `agents-md` | Updates the skills-index region of `AGENTS.md` | `./AGENTS.md` | @@ -67,7 +69,7 @@ tvbo skills install ### Audiences -By default only the four **user-audience** skills are installed (the ones in +By default only the five **user-audience** skills are installed (the ones in the table above). The **maintainer** skills (`git`, `writing-code`, `linkml-schema`, `codegen-templates`, `tests-and-backends`, `grill-me`) are relevant only when working inside a clone of the `tvbo` repository. Opt in diff --git a/docs/CLI/workflow-kits.qmd b/docs/CLI/workflow-kits.qmd index 39297c12d..e2b481b57 100644 --- a/docs/CLI/workflow-kits.qmd +++ b/docs/CLI/workflow-kits.qmd @@ -13,6 +13,8 @@ Every successful `tvbo workflow {slurm,snakemake,nextflow}` invocation writes a β”‚ └── <experiment>.<ext> # Frozen backend code (record + direct-run) β”œβ”€β”€ spec/ β”‚ └── <experiment>.yaml # Frozen YAML snapshot; the artefact's run target +β”œβ”€β”€ code/ # Custom callable/builder modules the recipe references +β”‚ └── <module>.py # (only when the recipe uses `module: my_code`) β”œβ”€β”€ requirements.txt # pip deps, from environment.requirements β”œβ”€β”€ environment.yml # conda env, from environment.requirements └── README.md # Provenance + how-to-run @@ -36,7 +38,7 @@ Each artefact: - Sets up engine-specific job parameters (Slurm headers, Snakemake `rule all`, Nextflow channels) from the merged `slurm.*` / `snakemake.*` / `nextflow.*` workflow blocks. - Iterates the workflow-fanned axes: one array task / rule instance / process invocation per cell. -- Runs the kit's **own frozen spec**: `tvbo run spec/<exp>.yaml --backend=… --slurm-chunk=$SLURM_ARRAY_TASK_ID/N -o …`, so each array task simulates its `1/N` share of the sweep and the job is **self-contained** (no external recipe or callable modules at run time). Requires `tvbo` plus the backend runtime; provision both from the emitted `environment.yml`. (If the source recipe is preferred over the frozen spec, the fallback form is `tvbo run <recipe> --experiment "<label>" --slurm-chunk=…`.) +- Runs the kit's **own frozen spec**: `tvbo run spec/<exp>.yaml --backend=… --slurm-chunk=$SLURM_ARRAY_TASK_ID/N -o …`, so each array task simulates its `1/N` share of the sweep and the job is **self-contained**. Any custom callable/builder modules the recipe references (`callable: {module: …}`, `builder: {module: …}`) are bundled into `code/` and the artefact puts it on `PYTHONPATH`, so no external recipe or code is needed at run time; only `tvbo` plus the backend runtime must be provisioned (from the emitted `environment.yml`). (If the source recipe is preferred over the frozen spec, the fallback form is `tvbo run <recipe> --experiment "<label>" --slurm-chunk=…`.) - Optionally wraps the inner command in `singularity exec <image>` when `--set container=…` was passed. ### `scripts/<experiment>.<ext>` diff --git a/docs/CLI/workflow.qmd b/docs/CLI/workflow.qmd index c44ac397c..55ee29363 100644 --- a/docs/CLI/workflow.qmd +++ b/docs/CLI/workflow.qmd @@ -12,9 +12,14 @@ Sub-tree that turns a Study or Experiment into a self-contained, portable reprod | `tvbo workflow slurm` | Emit an `sbatch` kit | | `tvbo workflow snakemake` | Emit a Snakemake kit | | `tvbo workflow nextflow` | Emit a Nextflow kit | +| `tvbo workflow run` | Emit a kit **and** execute/submit it with the engine | +| `tvbo workflow submit` | Submit an **already-emitted** kit β€” no recipe, no re-emit | +| `tvbo workflow finalize` | Reassemble an array run's shard outputs into one result | | `tvbo workflow backends` | List backends and their ontology-derived capabilities | -All emitter commands share the same flag surface. The kit layout is documented on its own page: see [Workflow kits anatomy](workflow-kits.qmd). +The three emitters (`slurm`/`snakemake`/`nextflow`) share the same flag surface and +just write a kit; `run` and `submit` also launch it. The kit layout is documented on +its own page: see [Workflow kits anatomy](workflow-kits.qmd). ## Common flags @@ -22,10 +27,13 @@ All emitter commands share the same flag surface. The kit layout is documented o |------|---------|---------| | `SPEC` | _(required)_ | Path, CURIE, or DB name (Study or Experiment). | | `--backend, -b` | `tvboptim` | Backend whose code is rendered into the kit's `scripts/` and whose `vectorize_axes` drive the planner. | -| `--experiment` | _(first in study)_ | If SPEC is a Study, pick this experiment by `key`/`name`/`label`. | +| `--experiment` | _(first in study)_ | If SPEC is a Study, pick the experiment(s) by `key`/`name`/`label`/numeric `id`. A comma-list (`2,3,20,30`) emits one kit per experiment (and, with `workflow run`, submits each). | | `-o, --output` | `out/<study>/<exp>/<engine>/` | Output directory for the kit. | | `--set KEY=VALUE` | _(none, repeatable)_ | Override a workflow spec key. Dotted keys nest, e.g. `--set slurm.account=foo`. Booleans/numbers are coerced. | | `--stdout` | _(off)_ | Print the artefact text only and skip kit creation. | +| `--pack` | _(off)_ | Emit **only** `<kit>.tar.gz` (the kit dir at top level) and remove the loose dir, ready to `scp` + [`tvbo workflow submit`](#run-and-submit). Omit `--pack` for the loose dir. | +| `--bundle-dataset` | _(off)_ | Copy the fan-out's per-subject dataset files (sidecar + payload) into `spec/dataset/` and rewrite `dataset.bids_root` to a relative path, so the kit is **self-contained** β€” no separate FC upload, no `$TVBO_BIDS_ROOT`. Selection is driven by the observation's declared `query`; scope subjects via `dataset.subjects`. See [Per-subject dataset fan-out](../Usage/DistributedWorkflows.qmd#per-subject-dataset-fan-out). | +| `--bundle-select KEY=VALUE` | _(none, repeatable)_ | Override to add BIDS entities **only** when a subject directory holds several files matching the query (the bundler otherwise errors with the ambiguous candidates). Not needed when the `query` already names one file. Implies `--bundle-dataset`. | ## `tvbo workflow plan` @@ -90,6 +98,44 @@ kits/jr_meg_jax/ tvbo workflow slurm experiment:JR_MEG --backend jax --stdout > run.sbatch ``` +## Run and submit + +The emitters only *write* a kit. Two commands also *launch* it. + +**`tvbo workflow run <engine> SPEC`** β€” emit **and** execute in one step. For Slurm +it submits `run.sbatch` (the array job) and chains `finalize.sbatch` with an +`afterok` dependency, so the run converges to one reassembled result. Run it from a +login node (it calls `sbatch`). + +```bash +tvbo workflow run slurm mystudy.yaml --experiment 30 --backend tvboptim +tvbo workflow run slurm mystudy.yaml --experiment 2,3,20,30 --backend tvboptim # one parallel job each +``` + +Note the engine asymmetry: `run slurm` submits to the scheduler, but `run snakemake` +executes the DAG **locally** (`snakemake --cores all`). To run a Snakefile *on* the +cluster, emit it and launch it with snakemake's own slurm executor/profile. + +**`tvbo workflow submit KIT`** β€” submit a kit you *already* emitted (and, say, +copied to the cluster), with no recipe and no re-emit. It infers the engine from the +kit's artefact (`run.sbatch` β†’ slurm) and runs the same array + `finalize` chain as +`run`, so you never type `sbatch` by hand: + +```bash +tvbo workflow slurm mystudy.yaml --experiment 30 -o kit --pack # laptop: emit + pack β†’ kit.tar.gz +scp kit.tar.gz hpc:~/runs/ # ship one file +ssh hpc 'cd ~/runs && tvbo workflow submit kit.tar.gz' # extracts, then launches +``` + +`submit` takes a kit directory or a `.tar.gz`/`.tgz`/`.tar`/`.zip` of one β€” an +archive is extracted next to itself first (and an already-extracted copy is reused, +so a re-submit never clobbers an in-progress `results/`). `--array 0` submits a +single smoke task; `--engine` overrides the auto-detection. + +**`tvbo workflow finalize`** reassembles an array run's per-shard outputs into one +keyed `<stem>.h5` (+ `.yaml` sidecar). `run`/`submit` chain it automatically; call it +by hand only to re-gather. + ## Choosing an engine The three emitters are not interchangeable; they match two different shapes of @@ -119,6 +165,56 @@ it adds a driver process and per-rule bookkeeping for no gain over the array. The reverse does not hold: `--slurm-chunk` refuses a fanned sweep, because there is no in-process batch to slice. +## Environment on the node + +The kit runs `tvbo run` on the compute node, so that node needs an environment where +`tvbo` and the backend runtime import. Provision it from the emitted `environment.yml` +/ `requirements.txt` (see *Environment files* below), then have the job **activate** +it. The artefact runs `set -euo pipefail` and then activates in this order: + +| `workflow.<engine>` field | Emits | For | +|---------------------------|-------|-----| +| `modules: [python/3.11]` | `module load python/3.11` | environment modules | +| `venv: /path/to/venv` | `source /path/to/venv/bin/activate` | a virtualenv | +| `setup: ["…"]` | the lines verbatim, in order | anything else β€” conda, sourcing a profile, computed paths | + +`setup` is the general hook. A conda env is not a venv, so activate it with `setup`. +**Hardcode the conda base** β€” run `conda info --base` once to get it. A batch job +runs a non-login shell with no `conda` command (it's an interactive-shell function, +and `--export=ALL` carries env vars, not shell functions), so `$(conda info --base)` +fails on the node. Point `source` at the real path, in the recipe: + +```yaml +workflow: + slurm: + setup: + - "source /opt/conda/etc/profile.d/conda.sh" # ← your `conda info --base` + - "conda activate mystudy_env" +``` + +or at submit time, keeping the recipe portable (the value is JSON, so a list works): + +```bash +tvbo workflow run slurm mystudy.yaml --experiment 30 \ + --set 'slurm.setup=["source /opt/conda/etc/profile.d/conda.sh","conda activate mystudy_env"]' +``` + +For a single command, skip the JSON β€” a bare string is one line: + +```bash +tvbo workflow run slurm mystudy.yaml --experiment 30 --set slurm.setup="conda activate mystudy_env" +``` + +If a job dies at once with `conda: command not found` or `ModuleNotFoundError: tvbo` +in the logs, the node never got the env β€” this is where you fix it (and make sure the +base path is hardcoded, not `$(conda info --base)`). + +**Recipe code needs no `PYTHONPATH`.** Callables/builders referenced by bare module +name (`callable: {module: my_analysis}`) are bundled into the kit's `code/` and put on +`PYTHONPATH` by the artefact; locally, `tvbo` adds the recipe's `code/` to `sys.path` +on load. No `PYTHONPATH=code` prefix, on the node or off. See [`tvbo run`](run.qmd), +*Custom code in a recipe*. + ## Chunking, dependencies, and notifications **Chunk a sweep into array tasks.** `--set chunk=N` shards the sweep across `N` diff --git a/docs/Interoperability/NeuroML/lems_sim.xml b/docs/Interoperability/NeuroML/lems_sim.xml index 6a01ef847..77d6d1a52 100644 --- a/docs/Interoperability/NeuroML/lems_sim.xml +++ b/docs/Interoperability/NeuroML/lems_sim.xml @@ -4,9 +4,81 @@ <!-- Tell jLEMS/jNeuroML which component is the simulation entry point. --> <Target component="sim_Generic2dOscillator_LEMS_Export"/> - <Include file="Cells.xml"/> - <Include file="Networks.xml"/> - <Include file="Simulation.xml"/> + <!-- ════════════════════════════════════════════════════════════════ + Dimensions & Units (inline β€” no external includes needed) + ════════════════════════════════════════════════════════════════ --> + + <!-- Dimensions --> + <Dimension name="none"/> + <Dimension name="time" t="1"/> + <Dimension name="voltage" m="1" l="2" t="-3" i="-1"/> + <Dimension name="per_time" t="-1"/> + <Dimension name="conductance" m="-1" l="-2" t="3" i="2"/> + <Dimension name="capacitance" m="-1" l="-2" t="4" i="2"/> + <Dimension name="current" i="1"/> + <Dimension name="resistance" m="1" l="2" t="-3" i="-2"/> + <Dimension name="concentration" l="-3" n="1"/> + <Dimension name="substance" n="1"/> + <Dimension name="charge" t="1" i="1"/> + <Dimension name="temperature" k="1"/> + + <!-- Units --> + <Unit symbol="s" dimension="time" power="0"/> + <Unit symbol="ms" dimension="time" power="-3"/> + <Unit symbol="us" dimension="time" power="-6"/> + <Unit symbol="V" dimension="voltage" power="0"/> + <Unit symbol="mV" dimension="voltage" power="-3"/> + <Unit symbol="A" dimension="current" power="0"/> + <Unit symbol="mA" dimension="current" power="-3"/> + <Unit symbol="nA" dimension="current" power="-9"/> + <Unit symbol="pA" dimension="current" power="-12"/> + <Unit symbol="S" dimension="conductance" power="0"/> + <Unit symbol="mS" dimension="conductance" power="-3"/> + <Unit symbol="nS" dimension="conductance" power="-9"/> + <Unit symbol="F" dimension="capacitance" power="0"/> + <Unit symbol="uF" dimension="capacitance" power="-6"/> + <Unit symbol="nF" dimension="capacitance" power="-9"/> + <Unit symbol="ohm" dimension="resistance" power="0"/> + <Unit symbol="Mohm" dimension="resistance" power="6"/> + <Unit symbol="per_s" dimension="per_time" power="0"/> + <Unit symbol="per_ms" dimension="per_time" power="3"/> + <Unit symbol="degC" dimension="temperature" offset="273.15"/> + <Unit symbol="K" dimension="temperature" power="0"/> + + + <!-- ════════════════════════════════════════════════════════════════ + LEMS Simulation infrastructure types + (normally provided by Simulation.xml β€” defined inline to avoid + the jNeuroML double-read bug) + ════════════════════════════════════════════════════════════════ --> + <ComponentType name="Simulation"> + <Parameter name="length" dimension="time"/> + <Parameter name="step" dimension="time"/> + <Children name="outputs" type="OutputFile"/> + <ComponentReference name="target" type="Component"/> + <Dynamics> + <StateVariable name="t" dimension="time"/> + </Dynamics> + <Simulation> + <Run component="target" variable="t" increment="step" total="length"/> + </Simulation> + </ComponentType> + + <ComponentType name="OutputFile"> + <Children name="outputColumn" type="OutputColumn"/> + <Text name="fileName"/> + <Text name="path"/> + <Simulation> + <DataWriter path="path" fileName="fileName"/> + </Simulation> + </ComponentType> + + <ComponentType name="OutputColumn"> + <Path name="quantity"/> + <Simulation> + <Record quantity="quantity"/> + </Simulation> + </ComponentType> <!-- ════════════════════════════════════════════════════════════════ Dynamics ComponentType & Component instances @@ -38,13 +110,14 @@ <Parameter name="V_0" dimension="none"/> <Parameter name="W_0" dimension="none"/> - <!-- Time conversion for derivatives. - When all parameters and state variables carry proper LEMS dimensions, - LEMS handles unit conversion natively (e.g. tau="30 ms" β†’ 0.03 s). - No SEC constant is needed and TimeDerivatives use the RHS directly. - When dimensions are "none" (dimensionless models), / SEC converts - from model time to SI seconds. - all_dimensioned=False needs_sec=True time_scale=ms --> + <!-- Time constant for derivatives. + All parameters use dimension="none" to avoid jLEMS dimensional + analysis failures (neural-mass models mix units freely). + / SEC is always applied so the TimeDerivative has per_time + dimension. When the model already has time units in parameters, + SEC = 1s (numerically 1.0 β€” identity); otherwise SEC = 1<time_scale> + provides the actual numeric conversion. + needs_sec=True time_scale=ms --> <Constant name="SEC" dimension="time" value="1ms"/> <!-- Exposures (one per state variable) --> @@ -85,21 +158,15 @@ - <!-- Wrap the single cell in a network so quantity paths use the standard - pop[idx]/variable form, which works across jNeuroML, NEURON, Brian2, - NetPyNE and EDEN backends. --> - <network id="net"> - <population id="pop" component="Generic2dOscillator_inst" size="1"/> - </network> - <!-- ════════════════════════════════════════════════════════════════ - Simulation β€” target the network (all-backend compatible) + Simulation β€” target the component instance directly. + Output: one file with all state variables. ════════════════════════════════════════════════════════════════ --> - <Simulation id="sim_Generic2dOscillator_LEMS_Export" length="1000.0ms" step="0.01220703125ms" target="net"> + <Simulation id="sim_Generic2dOscillator_LEMS_Export" length="1000.0ms" step="0.01220703125ms" target="Generic2dOscillator_inst"> <OutputFile id="of1" fileName="results/Generic2dOscillator.dat"> - <OutputColumn id="V" quantity="pop[0]/V"/> - <OutputColumn id="W" quantity="pop[0]/W"/> + <OutputColumn id="V" quantity="V"/> + <OutputColumn id="W" quantity="W"/> </OutputFile> </Simulation> diff --git a/docs/Interoperability/tvboptim/TBPTT_tvboptim.quarto_ipynb b/docs/Interoperability/tvboptim/TBPTT_tvboptim.quarto_ipynb deleted file mode 100644 index a1fa9beec..000000000 --- a/docs/Interoperability/tvboptim/TBPTT_tvboptim.quarto_ipynb +++ /dev/null @@ -1,443 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "---\n", - "title: \"Truncated Backprop-Through-Time (TBPTT) via tvboptim\"\n", - "---\n", - "\n", - "Why the exact FC-loss gradient breaks past the chaos onset, and how a single\n", - "`integration.differentiation` window fixes it. Everything below β€” the adiabatic\n", - "bifurcation envelope, the diagnostics swept over the global coupling $G$ (loss,\n", - "autodiff gradient, finite-difference ground truth, top Lyapunov exponent) and\n", - "both optimization legs β€” is derived from **one** experiment YAML via `exp.run`;\n", - "only the plotting is hand-written. The figures reproduce the original tvboptim\n", - "[`TBPTT.qmd`](https://github.com/virtual-twin/tvboptim/blob/main/docs/workflows/TBPTT.qmd)\n", - "workflow through the tvbo declarative pipeline." - ], - "id": "9ad0a1bd" - }, - { - "cell_type": "code", - "metadata": {}, - "source": [ - "import os\n", - "\n", - "device_count = os.environ.get(\"TVBO_XLA_DEVICE_COUNT\", \"8\")\n", - "os.environ[\"XLA_FLAGS\"] = f\"--xla_force_host_platform_device_count={device_count}\"\n", - "\n", - "import jax\n", - "\n", - "jax.config.update(\"jax_enable_x64\", True)\n", - "\n", - "from tvbo import SimulationExperiment\n", - "from tvbo.datamodel.schema import Differentiation\n", - "\n", - "exp = SimulationExperiment.from_db(\"TBPTT_JansenRit_FC_Optimization\")\n", - "\n", - "# The YAML already carries the reference production settings (60 s FC rollout, 20 s\n", - "# warm-up, 25-sample BOLD skip, 100 Adam steps, 80-point G sweep) β€” identical to the\n", - "# original tvboptim TBPTT.qmd. FC is a long-time covariance, so a stable loss landscape\n", - "# and gradient need the long rollout; trimming it (as an earlier draft did) corrupts the\n", - "# FC and the descent diverges. We keep the reference durations and cache the result. This\n", - "# is a heavy, one-time build (execute: cache).\n", - "\n", - "# TBPTT leg: the YAML declares differentiation = {truncation_window: 100, mode: reverse},\n", - "# so this run uses Heun(grad_horizon=100) + reverse-mode == truncated BPTT. It also\n", - "# computes the adiabatic bifurcation scan and the motivation sweep (diagnostics vs G).\n", - "tbptt = exp.run(\"tvboptim\")\n", - "\n", - "# Full-AD leg: identical YAML, forward-mode, no truncation window (forward-mode AD\n", - "# equals full reverse-mode BPTT for the scalar G β€” the exact, untruncated gradient).\n", - "exp.integration.differentiation = Differentiation(mode=\"forward\")\n", - "ad = exp.run(\"tvboptim\", mode=\"optimization\")" - ], - "id": "273d1516", - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "code", - "metadata": {}, - "source": [ - "# | echo: false\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "from matplotlib.lines import Line2D\n", - "from matplotlib.patches import FancyBboxPatch, FancyArrowPatch\n", - "\n", - "# Semantic palette (matches the original tvboptim workflow).\n", - "INK, ACCENT, WARN, SHIP, ROAD, WIN = \"#003754\", \"#0a5170\", \"#AF1821\", \"#3E8E68\", \"#6b7280\", \"#dce4f0\"\n", - "\n", - "# --- everything below is pulled from the tvbo-metadata-derived exp.run results ---\n", - "\n", - "# Diagnostics sweep vs G (loss, Lyapunov, AD gradient, seed-averaged FD gradient).\n", - "sweep = tbptt.explorations.motivation_sweep\n", - "G = np.asarray(sweep.axes[0].explored_values).ravel()\n", - "loss_G = np.asarray(sweep.observations[\"loss\"]).ravel()\n", - "lyap_G = np.asarray(sweep.observations[\"lyapunov\"]).ravel() * 1e3 # 1/ms -> 1/s\n", - "ad_G = np.asarray(sweep.observations[\"ad_gradient\"]).ravel()\n", - "fd_G = np.asarray(sweep.observations[\"fd_gradient\"]).ravel()\n", - "fd_sem = np.asarray(sweep.observations[\"fd_sem\"]).ravel() # stat: sem companion of fd_gradient\n", - "\n", - "# Adiabatic bifurcation envelope of the pyramidal PSP (y1 - y2), swept up then down.\n", - "adia = tbptt.explorations.psp_bifurcation\n", - "pp = np.asarray(adia.axes[0].explored_values).ravel()\n", - "n_up = int(adia.n_up)\n", - "psp_lo = np.asarray(adia.observations[\"env_lo\"]).ravel() # signal-agnostic envelope,\n", - "psp_hi = np.asarray(adia.observations[\"env_hi\"]).ravel() # here the pyramidal PSP y1-y2\n", - "psp_mean = np.asarray(adia.observations[\"env_mean\"]).ravel()\n", - "\n", - "\n", - "def g_crit_from(lam, g):\n", - " \"\"\"First G where lambda_max crosses zero (linear interp), or None.\"\"\"\n", - " pos = np.where(lam > 0)[0]\n", - " if pos.size == 0 or pos[0] == 0:\n", - " return None\n", - " i = pos[0]\n", - " return float(np.interp(0.0, [lam[i - 1], lam[i]], [g[i - 1], g[i]]))\n", - "\n", - "\n", - "G_CRIT = g_crit_from(lyap_G, G)\n", - "\n", - "\n", - "def _traj(res):\n", - " \"\"\"Per-step (G, FC-RMSE) for one optimization leg from the saved trajectory.\"\"\"\n", - " fit = res.optimizations.fit_G\n", - " gs = [float(getattr(s.coupling.c_sigmJR.G, \"value\", s.coupling.c_sigmJR.G))\n", - " for s in fit.state_trajectory]\n", - " loss = np.asarray(fit.loss_trajectory) if fit.loss_trajectory is not None else None\n", - " n = len(gs) if loss is None else min(len(gs), len(loss))\n", - " return np.arange(n), np.array(gs[:n]), (loss[:n] if loss is not None else None)\n", - "\n", - "\n", - "tb_step, tb_G, tb_rmse = _traj(tbptt)\n", - "ad_step, ad_G_traj, ad_rmse = _traj(ad)\n", - "\n", - "fc_target = np.asarray(tbptt.integration.observations.empirical_fc)\n", - "fc_tbptt = np.asarray(tbptt.optimizations.fit_G.simulation.observations.fc)\n", - "fc_ad = np.asarray(ad.optimizations.fit_G.simulation.observations.fc)\n", - "tb_G_final, ad_G_final = float(tb_G[-1]), float(ad_G_traj[-1])" - ], - "id": "a2a7192a", - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## The problem: the exact gradient breaks at the bifurcation\n", - "\n", - "The loss is the RMSE between the simulated FC and the empirical target. Swept over\n", - "$G$, the network runs from a quiescent fixed point, through synchronized\n", - "oscillation, into **chaos** β€” where the exact reverse-mode gradient of a long-rollout\n", - "FC loss amplifies without bound and flips sign. The adiabatic scan reads that\n", - "transition straight off the dynamics; the Lyapunov exponent flags the same onset." - ], - "id": "7fe06d53" - }, - { - "cell_type": "code", - "metadata": {}, - "source": [ - "#| label: fig-tbptt-gradient-breaks\n", - "#| fig-cap: '**The exact FC-loss gradient breaks at the chaos onset.** All three panels share the global-coupling axis $G$, with the chaotic band ($\\lambda_{max}>0$) shaded red. Top: the adiabatic bifurcation envelope of the pyramidal PSP $y_1 - y_2$ (per-node temporal min/max averaged across the network; dotted = mean), swept up ($G\\!\\uparrow$, solid) and back down ($G\\!\\downarrow$, dashed) β€” flat at the fixed point, opening at the limit cycle, broad in chaos, with the branches revealing any hysteresis. Middle: the FC-RMSE loss $L(G)$ (blue, left) and the top Lyapunov exponent $\\lambda_{max}$ (red, right), which crosses zero at the bifurcation; the loss optimum (blue dot) sits just below it. Bottom: the gradient $dL/dG$ β€” the seed-averaged finite-difference gradient (line + $\\pm$SEM band) is the ground truth; the autodiff gradient (markers) is coloured by how it compares (accurate within 1%, correct direction, wrong sign, unstable). AD tracks FD until $G$ crosses $\\lambda_{max}=0$, then flips sign and blows up.'\n", - "#| code-fold: true\n", - "#| code-summary: Show plotting code\n", - "\n", - "\n", - "def categorize(ad, fd, eps=0.01):\n", - " ad, fd = np.asarray(ad, float), np.asarray(fd, float)\n", - " ad_ok = ~(np.isnan(ad) | np.isinf(ad))\n", - " rel = np.where(np.abs(fd) > 1e-12, np.abs(ad - fd) / np.abs(fd), np.inf)\n", - " same_sign = np.sign(np.where(ad_ok, ad, 0.0)) == np.sign(fd)\n", - " accurate = ad_ok & (rel < eps)\n", - " correct = ad_ok & same_sign & ~accurate\n", - " wrong = ad_ok & ~same_sign\n", - " unstable = ~ad_ok\n", - " return accurate, correct, wrong, unstable\n", - "\n", - "\n", - "fig, (ax_bif, ax_top, ax_bot) = plt.subplots(\n", - " 3, 1, figsize=(8.2, 9.0), sharex=True,\n", - " gridspec_kw={\"height_ratios\": [1.0, 1.0, 1.2], \"hspace\": 0.08},\n", - ")\n", - "\n", - "\n", - "def chaos_band(ax):\n", - " \"\"\"Shade the chaotic band and mark the lambda_max=0 boundary.\"\"\"\n", - " if G_CRIT is not None:\n", - " ax.axvspan(G_CRIT, G.max(), color=WARN, alpha=0.07, zorder=0)\n", - " ax.axvline(G_CRIT, color=ROAD, ls=\"--\", lw=1.2, zorder=0)\n", - "\n", - "\n", - "# ---- top: adiabatic bifurcation envelope (mean dynamics vs G) ----\n", - "up, dn = slice(0, n_up), slice(n_up, None)\n", - "chaos_band(ax_bif)\n", - "ax_bif.fill_between(pp[up], psp_lo[up], psp_hi[up], color=ACCENT, alpha=0.16, lw=0, zorder=1)\n", - "ax_bif.plot(pp[up], psp_hi[up], color=ACCENT, lw=1.3, zorder=2, label=r\"$G\\!\\uparrow$\")\n", - "ax_bif.plot(pp[up], psp_lo[up], color=ACCENT, lw=1.3, zorder=2)\n", - "ax_bif.plot(pp[up], psp_mean[up], color=ACCENT, lw=0.9, ls=\":\", alpha=0.8, zorder=2)\n", - "ax_bif.plot(pp[dn], psp_hi[dn], color=ACCENT, lw=1.3, ls=\"--\", zorder=3, label=r\"$G\\!\\downarrow$\")\n", - "ax_bif.plot(pp[dn], psp_lo[dn], color=ACCENT, lw=1.3, ls=\"--\", zorder=3)\n", - "ax_bif.set_ylabel(r\"PSP $y_1 - y_2$ (mV)\")\n", - "ax_bif.legend(loc=\"upper left\", fontsize=9, framealpha=0.5)\n", - "\n", - "# ---- middle: loss + Lyapunov exponent (chaos onset) ----\n", - "lam_ax = ax_top.twinx()\n", - "chaos_band(ax_top)\n", - "ax_top.plot(G, loss_G, \"--\", color=ACCENT, lw=1.0, alpha=0.5, zorder=2)\n", - "ax_top.scatter(G, loss_G, color=ACCENT, s=14, zorder=3)\n", - "kbest = int(np.nanargmin(loss_G))\n", - "ax_top.scatter([G[kbest]], [loss_G[kbest]], color=ACCENT, s=90, edgecolor=\"black\",\n", - " linewidth=1.0, zorder=4, label=\"Optimum\")\n", - "ax_top.set_ylabel(\"FC RMSE $L(G)$\", color=ACCENT)\n", - "ax_top.tick_params(axis=\"y\", labelcolor=ACCENT)\n", - "ax_top.legend(loc=\"upper left\", fontsize=9, framealpha=0.5)\n", - "lam_ax.plot(G, lyap_G, \"--\", color=WARN, lw=1.0, alpha=0.5, zorder=2)\n", - "lam_ax.scatter(G, lyap_G, color=WARN, s=14, alpha=0.85, zorder=3)\n", - "lam_ax.axhline(0.0, color=WARN, lw=0.6, ls=\":\", alpha=0.6)\n", - "lam_ax.set_ylabel(r\"$\\lambda_{max}$ (1/s)\", color=WARN)\n", - "lam_ax.tick_params(axis=\"y\", labelcolor=WARN)\n", - "if G_CRIT is not None:\n", - " lam_ax.text(G_CRIT, 0.97, r\" $\\lambda_{max}=0$\", color=ROAD, va=\"top\",\n", - " ha=\"left\", transform=lam_ax.get_xaxis_transform(), fontsize=10)\n", - "\n", - "# ---- bottom: AD gradient vs FD ground truth (adaptive symlog) ----\n", - "fd_abs = np.abs(fd_G[np.isfinite(fd_G)])\n", - "cap = float(6.0 * np.nanmax(fd_abs)) if fd_abs.size else 1.0\n", - "lin = float(max(0.3 * np.nanmedian(fd_abs), 1e-9)) if fd_abs.size else 1e-3\n", - "chaos_band(ax_bot)\n", - "ax_bot.fill_between(G, fd_G - fd_sem, fd_G + fd_sem, color=INK, alpha=0.18, lw=0)\n", - "ax_bot.plot(G, fd_G, \"x--\", color=INK, alpha=0.85, label=\"Finite difference (seed-averaged, ground truth)\")\n", - "acc, cor, wro, uns = categorize(ad_G, fd_G)\n", - "ad_disp = np.clip(np.asarray(ad_G, float), -cap * 0.96, cap * 0.96)\n", - "for mask, color, marker, label in [\n", - " (acc, ACCENT, \"o\", \"AD accurate\"),\n", - " (cor, \"#6f9bd1\", \"o\", \"AD correct direction\"),\n", - " (wro, WARN, \"s\", \"AD wrong sign\"),\n", - " (uns, WARN, \"X\", \"AD unstable (NaN/Inf)\"),\n", - "]:\n", - " if np.any(mask):\n", - " y = np.where(uns, 0.0, ad_disp)[mask] if label.endswith(\"(NaN/Inf)\") else ad_disp[mask]\n", - " ax_bot.scatter(G[mask], y, color=color, marker=marker, s=42,\n", - " edgecolor=\"black\", linewidth=0.5, zorder=3, label=label)\n", - "ax_bot.set_yscale(\"symlog\", linthresh=lin, linscale=0.8)\n", - "ax_bot.set_ylim(-cap, cap)\n", - "ax_bot.axhline(0.0, color=ROAD, lw=0.8, alpha=0.5)\n", - "ax_bot.set_xlabel(r\"global coupling $G$\")\n", - "ax_bot.set_ylabel(r\"$dL/dG$\")\n", - "ax_bot.legend(loc=\"lower left\", fontsize=8, framealpha=0.5)\n", - "plt.tight_layout()\n", - "plt.show()" - ], - "id": "fig-tbptt-gradient-breaks", - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## The fix: truncating the gradient horizon\n", - "\n", - "Truncated backprop-through-time keeps the long forward rollout but pulls the\n", - "gradient back only through a fixed window of $W =$ `grad_horizon` steps\n", - "(`integration.differentiation.truncation_window`). Every window is differentiated\n", - "and contributes its local $\\partial L_k/\\partial G$; the carried *state* gradient is\n", - "severed at each window boundary with `stop_gradient`, so the $\\exp(T\\,\\lambda_{max})$\n", - "blow-up is cut off at $W$, while the shared parameter gradient survives as the sum\n", - "over windows." - ], - "id": "5b090e1b" - }, - { - "cell_type": "code", - "metadata": {}, - "source": [ - "#| label: fig-tbptt-schematic\n", - "#| fig-cap: '**How `grad_horizon` tiles the rollout.** One continuous forward pass (top strip, colour = time) is split into windows of $W$ steps. Every window is differentiated and contributes its local $\\partial L_k/\\partial G$, but the carried-state gradient is cut at every boundary (red dashed). The shared $G$ is closed over by all windows, so its gradient is the sum of the per-window contributions; the window is kept below the chaotic memory horizon, $W < \\tau_\\lambda$.'\n", - "#| code-fold: true\n", - "#| code-summary: Show diagram code\n", - "N_WIN, W = 5, 1.0\n", - "BOX_Y0, BOX_H = 0.0, 0.95\n", - "TOP_Y0, TOP_H = 1.55, 0.30\n", - "\n", - "fig, ax = plt.subplots(figsize=(8.4, 2.7))\n", - "ax.imshow(np.linspace(0, 1, 256)[None, :], extent=(0, N_WIN * W, TOP_Y0, TOP_Y0 + TOP_H),\n", - " aspect=\"auto\", cmap=\"cividis\", zorder=1)\n", - "ax.add_patch(FancyBboxPatch((0, TOP_Y0), N_WIN * W, TOP_H,\n", - " boxstyle=\"round,pad=0,rounding_size=0.04\", fill=False, edgecolor=INK, lw=1.4, zorder=2))\n", - "ax.text(N_WIN * W / 2, TOP_Y0 + TOP_H + 0.14,\n", - " \"one continuous forward rollout (long simulation for slow statistics: FC, FCD)\",\n", - " ha=\"center\", va=\"bottom\", fontsize=12, color=INK)\n", - "ax.annotate(\"\", xy=(N_WIN * W - 0.35, TOP_Y0 + TOP_H / 2), xytext=(1.55, TOP_Y0 + TOP_H / 2),\n", - " arrowprops=dict(arrowstyle=\"-|>\", color=\"white\", lw=2.2))\n", - "ax.text(0.9, TOP_Y0 + TOP_H / 2, \"time\", ha=\"center\", va=\"center\", fontsize=11, color=\"white\", style=\"italic\")\n", - "for k in range(N_WIN):\n", - " x0 = k * W\n", - " ax.add_patch(FancyBboxPatch((x0 + 0.03, BOX_Y0), W - 0.06, BOX_H,\n", - " boxstyle=\"round,pad=0,rounding_size=0.05\", facecolor=WIN, edgecolor=INK, lw=1.6, zorder=3))\n", - " ax.text(x0 + W / 2, BOX_Y0 + BOX_H * 0.66, f\"window {k}\", ha=\"center\", va=\"center\", fontsize=12, color=INK)\n", - " ax.text(x0 + W / 2, BOX_Y0 + BOX_H * 0.28, r\"$\\partial L_{%d}/\\partial G$\" % k,\n", - " ha=\"center\", va=\"center\", fontsize=11, color=ACCENT)\n", - " ax.add_patch(FancyArrowPatch((x0 + W / 2, BOX_Y0 - 0.04), (x0 + W / 2, BOX_Y0 - 0.30),\n", - " arrowstyle=\"-|>\", mutation_scale=16, color=ACCENT, lw=2.0, zorder=4))\n", - " if k > 0:\n", - " ax.plot([x0, x0], [BOX_Y0 - 0.02, BOX_Y0 + BOX_H + 0.22], color=WARN, lw=2.4, ls=(0, (4, 3)), zorder=5)\n", - "ax.text(N_WIN * W / 2, BOX_Y0 + BOX_H + 0.30, \"stop-gradient on carried state\",\n", - " ha=\"center\", va=\"bottom\", fontsize=11, color=WARN, weight=\"bold\")\n", - "ax.annotate(\"\", xy=(W - 0.03, BOX_Y0 + BOX_H + 0.12), xytext=(0.03, BOX_Y0 + BOX_H + 0.12),\n", - " arrowprops=dict(arrowstyle=\"<|-|>\", color=INK, lw=1.4))\n", - "ax.text(W / 2, BOX_Y0 + BOX_H + 0.16, r\"$W < \\tau_\\lambda$\", ha=\"center\", va=\"bottom\", fontsize=12, color=INK)\n", - "sum_top, box_h, box_w = BOX_Y0 - 0.36, 0.46, 4.8\n", - "ax.add_patch(FancyBboxPatch((N_WIN * W / 2 - box_w / 2, sum_top - box_h), box_w, box_h,\n", - " boxstyle=\"round,pad=0.02,rounding_size=0.08\", facecolor=INK, edgecolor=\"none\", zorder=4))\n", - "ax.text(N_WIN * W / 2, sum_top - box_h / 2, r\"shared $G$: $dL/dG \\;=\\; \\sum\\, \\partial L_k/\\partial G$\",\n", - " ha=\"center\", va=\"center\", fontsize=11, color=\"white\", zorder=5)\n", - "ax.set_xlim(-0.45, N_WIN * W + 0.45)\n", - "ax.set_ylim(sum_top - box_h - 0.15, TOP_Y0 + TOP_H + 0.5)\n", - "ax.axis(\"off\")\n", - "plt.tight_layout()\n", - "plt.show()" - ], - "id": "fig-tbptt-schematic", - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## The payoff: optimizing $G$ with and without truncation\n", - "\n", - "Both legs fit $G$ to the empirical FC from the same sub-critical start with the same\n", - "optimizer, differing only in how the gradient is obtained β€” full AD (the exact,\n", - "untruncated gradient) versus TBPTT (`grad_horizon` window). The full-AD run is driven\n", - "by the unstable gradient into the chaotic band; the TBPTT run descends on a stable,\n", - "short-horizon gradient and settles near the RMSE optimum on the stable side." - ], - "id": "a7af593d" - }, - { - "cell_type": "code", - "metadata": {}, - "source": [ - "#| label: fig-tbptt-trajectories\n", - "#| fig-cap: '**Optimizing $G$ to fit FC, with and without truncation.** Top: each trajectory is one run; the y-axis is $G$ at each optimization step, points coloured by the FC-RMSE they reached. The dashed line is the $\\lambda_{max}=0$ boundary, the red band the chaotic regime, and the grey curve the $RMSE(G)$ profile from the sweep (bulging right at the optimum). Full AD is driven into the chaotic band; TBPTT settles near the optimum on the stable side. Bottom: the simulated FC at each run''s optimized $G$ beside the empirical target β€” the TBPTT fit reproduces the target structure, the full-AD run does not.'\n", - "#| code-fold: true\n", - "#| code-summary: Show plotting code\n", - "fig = plt.figure(figsize=(9.0, 8.0), layout=\"constrained\")\n", - "gs = fig.add_gridspec(2, 1, height_ratios=[1.5, 1.0])\n", - "ax = fig.add_subplot(gs[0])\n", - "gs_fc = gs[1].subgridspec(1, 3, wspace=0.08)\n", - "fc_axes = [fig.add_subplot(gs_fc[0, j]) for j in range(3)]\n", - "\n", - "g_top = max(np.nanmax(ad_G_traj), np.nanmax(tb_G))\n", - "if G_CRIT is not None:\n", - " ax.axhline(G_CRIT, color=ROAD, ls=\"--\", lw=1.5, zorder=0)\n", - " ax.axhspan(G_CRIT, max(g_top * 1.05, G.max()), color=WARN, alpha=0.07, zorder=0)\n", - " ax.text(0.99, G_CRIT, r\"$\\lambda_{max}=0$ \", color=ROAD, va=\"bottom\", ha=\"right\",\n", - " transform=ax.get_yaxis_transform(), fontsize=10)\n", - "\n", - "# sideways RMSE(G) reference profile (bulges right at the minimum = optimum)\n", - "MAX_STEPS = max(len(tb_step), len(ad_step))\n", - "PROFILE_X0, PROFILE_W = 0.0, 0.18 * MAX_STEPS\n", - "emin, emax = float(np.nanmin(loss_G)), float(np.nanmax(loss_G))\n", - "if emax > emin:\n", - " xprof = PROFILE_X0 + PROFILE_W * (emax - loss_G) / (emax - emin)\n", - " order = np.argsort(G)\n", - " ax.fill_betweenx(G[order], PROFILE_X0, xprof[order], color=ROAD, alpha=0.12, lw=0, zorder=0)\n", - " ax.plot(xprof[order], G[order], color=ROAD, lw=1.2, alpha=0.6, zorder=1)\n", - " kbest = int(np.nanargmin(loss_G))\n", - " ax.annotate(r\"RMSE$(G)$\", xy=(xprof[kbest], G[kbest]), xytext=(6, 0),\n", - " textcoords=\"offset points\", color=ROAD, fontsize=11, va=\"center\")\n", - "\n", - "# trajectories, coloured by FC-RMSE on a shared scale\n", - "_rmses = [r for r in (tb_rmse, ad_rmse) if r is not None]\n", - "if _rmses:\n", - " allr = np.concatenate(_rmses)\n", - " vmin, vmax = float(np.nanmin(allr)), float(np.nanmax(allr))\n", - "else:\n", - " vmin, vmax = 0.0, 1.0\n", - "runs_plot = [\n", - " (ad_step, ad_G_traj, ad_rmse, \"s\", \"Full AD (no truncation)\"),\n", - " (tb_step, tb_G, tb_rmse, \"^\", f\"TBPTT ($W=100$)\"),\n", - "]\n", - "sc = None\n", - "for steps, Gtraj, err, marker, _ in runs_plot:\n", - " ax.plot(steps, Gtraj, color=\"black\", lw=1.2, alpha=0.6, zorder=2)\n", - " c = err if err is not None else \"gray\"\n", - " sc = ax.scatter(steps, Gtraj, c=c, cmap=\"cividis_r\", vmin=vmin, vmax=vmax,\n", - " marker=marker, s=42, edgecolor=\"black\", linewidth=0.4, zorder=3)\n", - "ax.set_xlabel(\"optimization step\")\n", - "ax.set_ylabel(r\"global coupling $G$\")\n", - "if sc is not None:\n", - " fig.colorbar(sc, ax=ax, label=\"FC RMSE\")\n", - "handles = [Line2D([0], [0], color=\"black\", marker=m, lw=1.2, markerfacecolor=\"none\",\n", - " markeredgecolor=\"black\", label=lab) for _, _, _, m, lab in runs_plot]\n", - "ax.legend(handles=handles, loc=\"best\", fontsize=10)\n", - "\n", - "# ---- bottom: simulated FC at each run's optimum vs the empirical target ----\n", - "panels = [\n", - " (\"Empirical target\", fc_target, None, None),\n", - " (f\"TBPTT ($W=100$)\", fc_tbptt, tb_G_final, tbptt),\n", - " (\"Full AD\", fc_ad, ad_G_final, ad),\n", - "]\n", - "mats = np.array([p[1] for p in panels])\n", - "offdiag = ~np.eye(mats.shape[1], dtype=bool)\n", - "vmax_fc = float(np.nanpercentile(mats[:, offdiag], 95))\n", - "im = None\n", - "for fa, (title, mat, Gval, _res) in zip(fc_axes, panels):\n", - " m = np.array(mat, float)\n", - " np.fill_diagonal(m, np.nan)\n", - " im = fa.imshow(m, cmap=\"cividis\", vmin=0.0, vmax=vmax_fc, aspect=\"equal\", interpolation=\"none\")\n", - " fa.set_xticks([])\n", - " fa.set_yticks([])\n", - " if Gval is None:\n", - " sub = title\n", - " else:\n", - " rmse_v = float(np.sqrt(np.nanmean((np.array(mat) - np.array(fc_target)) ** 2)))\n", - " a, b = np.array(mat)[offdiag], np.array(fc_target)[offdiag]\n", - " r_v = float(np.corrcoef(a, b)[0, 1])\n", - " sub = f\"{title}\\n$G={Gval:.1f}$, RMSE$={rmse_v:.3f}$, $r_{{FC}}={r_v:.3f}$\"\n", - " fa.set_title(sub, fontsize=10, color=INK)\n", - "fig.colorbar(im, ax=fc_axes, label=\"FC\", shrink=0.8)\n", - "plt.show()" - ], - "id": "fig-tbptt-trajectories", - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "::: {.callout-note}\n", - "## One experiment, three views\n", - "\n", - "The adiabatic envelope, the diagnostics sweep, and both descent legs all come from the\n", - "same `TBPTT_JansenRit_FC_Optimization` YAML β€” the bifurcation scan is a declarative\n", - "`strategy: adiabatic_scan` exploration, the diagnostics are `analysis` observations\n", - "recorded over a `G` sweep, and the truncation window is a single\n", - "`integration.differentiation.truncation_window`. Only the plotting above is\n", - "hand-written.\n", - ":::" - ], - "id": "47703990" - } - ], - "metadata": { - "kernelspec": { - "name": "python3", - "language": "python", - "display_name": "Python 3 (ipykernel)", - "path": "/Users/leonmartin_bih/tools/tvbo/.venv/share/jupyter/kernels/python3" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} \ No newline at end of file diff --git a/docs/Replication/Jansen1995/figures/Jansen1995_Fig10.png b/docs/Replication/Jansen1995/figures/Jansen1995_Fig10.png index 4e26d7544..5c9b71784 100644 Binary files a/docs/Replication/Jansen1995/figures/Jansen1995_Fig10.png and b/docs/Replication/Jansen1995/figures/Jansen1995_Fig10.png differ diff --git a/docs/Replication/Jansen1995/figures/Jansen1995_Fig11.png b/docs/Replication/Jansen1995/figures/Jansen1995_Fig11.png index 30e7b5efc..78ded42bc 100644 Binary files a/docs/Replication/Jansen1995/figures/Jansen1995_Fig11.png and b/docs/Replication/Jansen1995/figures/Jansen1995_Fig11.png differ diff --git a/docs/Replication/Jansen1995/figures/Jansen1995_Fig4.png b/docs/Replication/Jansen1995/figures/Jansen1995_Fig4.png index 09edd9286..1ff2a5a8b 100644 Binary files a/docs/Replication/Jansen1995/figures/Jansen1995_Fig4.png and b/docs/Replication/Jansen1995/figures/Jansen1995_Fig4.png differ diff --git a/docs/Replication/Jansen1995/figures/Jansen1995_Fig5.png b/docs/Replication/Jansen1995/figures/Jansen1995_Fig5.png index 8ee5a0d49..255e5c5c9 100644 Binary files a/docs/Replication/Jansen1995/figures/Jansen1995_Fig5.png and b/docs/Replication/Jansen1995/figures/Jansen1995_Fig5.png differ diff --git a/docs/Replication/Jansen1995/figures/Jansen1995_Fig6.png b/docs/Replication/Jansen1995/figures/Jansen1995_Fig6.png index 866576e25..d4b5a57e9 100644 Binary files a/docs/Replication/Jansen1995/figures/Jansen1995_Fig6.png and b/docs/Replication/Jansen1995/figures/Jansen1995_Fig6.png differ diff --git a/docs/Replication/Jansen1995/figures/Jansen1995_Fig8.png b/docs/Replication/Jansen1995/figures/Jansen1995_Fig8.png index 5248f8811..97d8f5239 100644 Binary files a/docs/Replication/Jansen1995/figures/Jansen1995_Fig8.png and b/docs/Replication/Jansen1995/figures/Jansen1995_Fig8.png differ diff --git a/docs/Replication/Jansen1995/figures/Jansen1995_Fig9.png b/docs/Replication/Jansen1995/figures/Jansen1995_Fig9.png index de31aa034..134db9694 100644 Binary files a/docs/Replication/Jansen1995/figures/Jansen1995_Fig9.png and b/docs/Replication/Jansen1995/figures/Jansen1995_Fig9.png differ diff --git a/docs/Replication/Jansen1995/figuresJansen1995_Fig3.png b/docs/Replication/Jansen1995/figuresJansen1995_Fig3.png index 70eeac83a..dcf406c00 100644 Binary files a/docs/Replication/Jansen1995/figuresJansen1995_Fig3.png and b/docs/Replication/Jansen1995/figuresJansen1995_Fig3.png differ diff --git a/docs/Replication/custom-panels.qmd b/docs/Replication/custom-panels.qmd new file mode 100644 index 000000000..6804d5e77 --- /dev/null +++ b/docs/Replication/custom-panels.qmd @@ -0,0 +1,118 @@ +--- +title: "Custom figure panels" +description: "When a paper needs a panel the figure grammar cannot express, ship the drawing code with the study and register it β€” the generated plot.py imports it automatically." +--- + +A TVBO `Figure` renders result containers into a publication figure: most panels are +grammar-driven (`cartesian`, `heatmap`) or an external `image`. When a paper needs a +bespoke panel the grammar cannot express β€” a covariant Lyapunov vector, a per-node +profile, a hand-drawn inset β€” the study ships the drawing code itself and registers it +under a name the spec refers to. + +The code lives with the study (in its `code_source`, the `code/` directory convention), +not in core TVBO. The generated `plot.py` imports it, so the panel is available whether +you render on your laptop or as an HPC job, and the script stays editable afterwards. + +## The escape hatch + +A panel with `kind: custom` names a registered callable instead of a mark + encoding: + +```yaml +panels: + b: + kind: custom + render: lambda_vs_k # a registered panel callable (defined below) +``` + +The callable has the signature `fn(fig, ax, ctx)`. `ctx` carries the panel's resolved +layers (container paths, transforms and selectors already resolved by `build_context`) +and its `opts`, so the function opens the container(s) itself and draws exactly what the +paper needs. It opens a resolved layer with `bsplot.load_layer`, which returns an xarray +`DataArray` with that layer's declared `transform` and `.sel` already applied: + +```python +from tvbo.adapters import bsplot + +@bsplot.register_panel("lambda_vs_k") +def lambda_vs_k(fig, ax, ctx): + da = bsplot.load_layer(ctx["layers"][0]) # container opened; transform + selector applied + ax.plot(da.coords["K"].values, da.values) + ax.set_ylabel(ctx["opts"].get("ylabel", r"$\lambda_1$")) +``` + +## Registering a panel or transform + +A study decorates its callables with `register_panel` / `register_transform` from the +bsplot adapter. Core ships no panels or transforms of its own β€” these two registries start +empty and are filled entirely by the studies that declare them, so the figure system has no +privileged built-ins to compete with your own: + +```python +# my_study/code/figures.py +from tvbo.adapters import bsplot + +@bsplot.register_transform("demo_scale") # a presentation-only layer reduction fn(da) -> da +def demo_scale(da): + return da * 2.0 + +@bsplot.register_panel("demo_panel") # a custom-panel drawer fn(fig, ax, ctx) +def demo_panel(fig, ax, ctx): + ax.text(0.5, 0.5, "drawn by study code", ha="center", va="center", + transform=ax.transAxes) + ax.set_xticks([]); ax.set_yticks([]) +``` + +## Wiring it into the figure + +The decorators only fire when the module is imported. Declare the modules on the figure +with `code_modules`, and the generated `plot.py` imports them before it dispatches any +panel: + +```yaml +figures: + - name: figure_5 + code_modules: [figures] # my_study/code/figures.py + layout: "ab" + panels: + a: {kind: custom, render: demo_panel} + b: {kind: cartesian, layers: [...]} +``` + +The emitted script imports each declared module right after the adapter import, so every +registration fires before the first panel is drawn and the spec's names resolve: + +```python +from tvbo.adapters.bsplot import TRANSFORMS as _TF, CUSTOM_PANELS as _CP +import figures # noqa: F401 β€” registers this study's custom panels/transforms into _CP / _TF +``` + +## The round-trip, proven + +The three pieces β€” the decorator, `code_modules`, and the import the adapter emits β€” form +one loop. A panel core TVBO has never heard of is dispatched only because the generated +script imports the study module that registers it: + +```python +from tvbo.adapters import bsplot +from tvbo.datamodel import schema as dm + +# The study module (my_study/code/figures.py) is on the path, but not yet imported. +assert "demo_panel" not in bsplot.CUSTOM_PANELS # core TVBO does not know it + +fig = dm.Figure( + name="roundtrip", layout="a", code_modules=["figures"], + panels={"a": dm.Panel(panel_key="a", kind="custom", render="demo_panel")}, +) +bsplot.render(fig, base_dir=".", outfile="roundtrip.png") # runs the generated plot.py + +assert "demo_panel" in bsplot.CUSTOM_PANELS # the emitted import registered it +# roundtrip.png is written by the study's own drawing code. +``` + +## Where the code has to be importable + +Rendering a study in one process β€” `tvbo figure render <study>` or `SimulationStudy` β€” +puts the study's `code/` directory on the import path when the study loads, so +`code_modules` imports resolve. Running a frozen `plot.py` on its own (a workflow kit on +an HPC node) needs that `code/` directory on `PYTHONPATH` too; provisioning it in the kit +is the remaining step for standalone runs. diff --git a/docs/Replication/index.qmd b/docs/Replication/index.qmd index 50e0ee638..ed374b0dd 100644 --- a/docs/Replication/index.qmd +++ b/docs/Replication/index.qmd @@ -12,5 +12,10 @@ listing: Computational replications of published neuroscience studies using TVB-O. +See **[the replication pipeline](pipeline.qmd)** for how a study becomes generated +simulations, figures, and HPC jobs from one declarative spec, and +**[custom figure panels](custom-panels.qmd)** for shipping a paper's bespoke panels +with the study itself. + ::: {#replication-listing} ::: diff --git a/docs/Replication/pipeline.qmd b/docs/Replication/pipeline.qmd new file mode 100644 index 000000000..7b1efb516 --- /dev/null +++ b/docs/Replication/pipeline.qmd @@ -0,0 +1,20 @@ +--- +title: "The replication pipeline" +description: "How TVBO turns a published study into generated simulations, figures, and HPC jobs β€” one declarative spec, provenance-traceable." +format: + html: + page-layout: full +resources: + - pipeline.html +--- + +TVBO replicates a published study from a single declarative `SimulationStudy` β€” its +experiments **and** the figures that read them. The schema below traces the full +pipeline: paper β†’ declarative spec β†’ codegen β†’ workflow / HPC β†’ faithful figures, with +every plotted number traceable to the run that produced it. + +<iframe src="pipeline.html" title="TVBO replication pipeline schema" + style="width:100%; height:1760px; border:0; border-radius:12px;" + loading="lazy"></iframe> + +[Open the full schema in a new tab](pipeline.html){target="_blank"} diff --git a/docs/Usage/BifurcationAnalysis.qmd b/docs/Usage/BifurcationAnalysis.qmd index da06a2a42..24421bcc1 100644 --- a/docs/Usage/BifurcationAnalysis.qmd +++ b/docs/Usage/BifurcationAnalysis.qmd @@ -175,3 +175,56 @@ exp = SimulationExperiment( bif_result2 = exp.run("bifurcationkit.jl") bif_result2.continuations["jr_mu"].plot(VOI="y0") ``` + +## Network (whole-brain) continuation + +The examples above continue a **single node**. When the experiment carries a multi-node +`Network`, `exp.run("bifurcationkit.jl")` continues the **coupled system** instead: the state is +laid out as `n_nodes` blocks per state variable, each long-range coupling term becomes a +connectivity matvec `c = W Β· s` evaluated once per step (with `W` taken from +`network.weights_matrix`), and the per-node right-hand side runs in a loop. This is the vector field +a whole-brain equilibrium diagram β€” e.g. the global-coupling `G` bifurcation of a Wong–Wang network +β€” is continued along. + +No special flag is needed: attach a network and continue in the coupling parameter. The recorded +observables become per-node summaries (`<state>_max`, `<state>_mean` across nodes), so the branch +plots the maximum firing across the network against `G`, as in Deco et al. (2014) Fig. 2c. + +```{python} +#| eval: false +from tvbo import Continuation, Dynamics, SimulationExperiment +from tvbo.classes.network import Network + +model = Dynamics.from_ontology("ReducedWongWangExcInh") + +cont = Continuation.from_string( + """\ +name: eq_G +dynamics: ReducedWongWangExcInh +free_parameters: + - name: G + domain: {lo: 0.0, hi: 6.0} +ds: 0.005 +ds_max: 0.05 +max_steps: 2500 +detect_fold: true +detect_bifurcation: 2 +initial_state: {method: time_integration, duration: 5000.0} +bothside: true +""" +) + +exp = SimulationExperiment(dynamics=model, continuations=[cont]) +exp.network = Network.from_matrix(weights, lengths) # e.g. a 66-region connectome + +bif = exp.run("bifurcationkit.jl") +bif.continuations["eq_G"].plot(VOI="S_e_max") # max excitatory gating across nodes vs G +``` + +**Heterogeneous parameters.** A per-node parameter β€” for example the feedback-inhibition weights +`J_i` fitted per region (FIC) β€” is supplied as a length-`n_nodes` array; it is emitted as a Julia +vector and gathered per node inside the loop. Scalar parameters (such as the feed-forward-inhibition +switch `lambda`) stay scalar. Special points are classified through the ontology's bifurcation +taxonomy (see `ontology/tvb-o-bifurcation.ttl`): a saddle-node fold is reported as a **limit point +(LP)** even when the backend labels it a generic branch point, by testing whether the continuation +parameter turns around at that point. diff --git a/docs/Usage/BifurcationTutorial/hopf_sweep.gif b/docs/Usage/BifurcationTutorial/hopf_sweep.gif index ba4592c19..ef8285893 100644 Binary files a/docs/Usage/BifurcationTutorial/hopf_sweep.gif and b/docs/Usage/BifurcationTutorial/hopf_sweep.gif differ diff --git a/docs/Usage/BifurcationTutorial/tvbo_bif.cpython-312-darwin.so b/docs/Usage/BifurcationTutorial/tvbo_bif.cpython-312-darwin.so index 535c7cd45..9706b725e 100755 Binary files a/docs/Usage/BifurcationTutorial/tvbo_bif.cpython-312-darwin.so and b/docs/Usage/BifurcationTutorial/tvbo_bif.cpython-312-darwin.so differ diff --git a/docs/Usage/DistributedWorkflows.qmd b/docs/Usage/DistributedWorkflows.qmd new file mode 100644 index 000000000..ee524cb34 --- /dev/null +++ b/docs/Usage/DistributedWorkflows.qmd @@ -0,0 +1,255 @@ +--- +title: Distributed Workflows (HPC) +sidebar: usage +--- + +Run a parameter sweep across a cluster by emitting a self-contained kit for a +workflow engine (Slurm, Snakemake, or Nextflow). The kit is declared in the +experiment itself, so the same YAML reproduces the run on any machine. + +## Two tiers of parallelism + +A sweep is distributed on two independent tiers. Keeping them apart is the key +to using CPU and GPU nodes well. + +| Tier | Knob | What it does | +|------|------|--------------| +| **Inter-node** | `workflow.distribute.chunk` | Splits the sweep into *N* independent scheduler tasks (a Slurm array). Each task runs on its own node. | +| **Intra-node** | `explorations.<name>.n_parallel` and `parallel_mode` | Batches cells inside one task with `vmap`, and across the local GPUs of that task with `pmap`. | + +`pmap` spans only the devices visible to one task. It never crosses nodes: +inter-node parallelism is always the scheduler fan-out (`distribute.chunk`), not +`pmap`. On a one-GPU or CPU task, `pmap` degenerates to `vmap`. + +## The `workflow` block + +Declare distribution on the study (defaults for every experiment) or on a single +experiment (refines the study block by field). A Kuramoto grid on Slurm: + +```yaml +workflow: + distribute: + chunk: 40 # 40 array shards; task i runs the Space[i::40] slice + slurm: + partition: medium + cpus_per_task: 2 + mem: 32G + time: "24:00:00" + env: + - {name: XLA_PYTHON_CLIENT_PREALLOCATE, value: "false"} + - {name: OMP_NUM_THREADS, value: "1"} + options: + - {name: qos, value: normal} # any further #SBATCH directive +``` + +`WorkflowEngineConfig` names the directives the three engines read (Slurm: +`partition`, `account`, `gres`, `array_chunk`, `mail_*`; Snakemake: `cores`; +Nextflow: `executor`, `queue`) plus the shared resource fields `cpus_per_task`, +`mem`, and `time`. Anything else goes through `options` and is emitted verbatim, +so a new scheduler flag needs no schema change. + +`env` and `options` are name-keyed lists. A `--set slurm.env.X=v` at emit time +overrides one entry and keeps the rest, rather than replacing the whole list. +Values in `env` are shell-quoted automatically. + +Both render in every engine's native form: `env` becomes shell `export` lines +ahead of the task command, while `options` becomes Slurm `#SBATCH --<name>=<value>` +directives, Snakemake `resources:` entries, or Nextflow `process.<name>` +assignments. Name each option for the target engine (e.g. `slurm_partition` for +Snakemake, `clusterOptions` for Nextflow). + +## The kit lifecycle: emit β†’ submit β†’ finalize + +A kit passes through three `tvbo workflow` subcommands. Each stands alone, so you +can emit on a laptop, ship the kit, and submit on a login node. + +```bash +# 1. EMIT β€” write a self-contained kit (spec + network + backend script + run.sbatch) +tvbo workflow slurm study.yaml --experiment <id> -o kit/ + +# 2. SUBMIT β€” run an already-emitted kit as a unit (no recipe, no re-emit) +tvbo workflow submit kit/ + +# 3. FINALIZE β€” only for a sharded (multi-task) run: reassemble the shards +tvbo workflow finalize kit/results --compress +``` + +### Emit + +`tvbo workflow <engine>` (`slurm`, `snakemake`, `nextflow`) freezes the run. Override +any field at emit time with `--set`, e.g. `--set slurm.mem=64G` or +`--set distribute.chunk=8`. The kit is a self-contained provenance record: +`spec/<name>.yaml` is the **effective** config after merging study, experiment, and +every `--set`, next to the connectome (`spec/network.yaml` + `spec/network.h5`) and +any custom callable/builder modules the recipe references, bundled into `code/`. +Re-emitting from the frozen spec reproduces the run with no flags: + +```bash +tvbo workflow slurm kit/spec/<name>.yaml # same partition, chunk, env, … +``` + +### Submit + +`tvbo workflow submit kit/` runs a bundled kit **as a unit**. It auto-detects the +engine from the kit's contents (`run.sbatch` β†’ Slurm, `Snakefile` β†’ Snakemake, +`main.nf` β†’ Nextflow) and shells out the scheduler command. Because the kit is +self-contained, this is the whole story: the generated `run.sbatch` already exports +`PYTHONPATH="code:…"` so the bundled modules resolve on the compute node β€” you never +set it yourself. This is why a kit is bundled: emit once, ship it, and run it +anywhere with one command. + +`submit` also accepts a **packaged archive** of a kit (`.tar.gz` / `.tgz` / `.tar` / +`.zip`). It extracts next to the archive and submits the kit inside, so a shipped +kit needs no manual unzip; a re-submit reuses the already-extracted kit rather than +clobbering its `results/`. + +```bash +tvbo workflow submit kit/ # a kit directory +tvbo workflow submit koller2024_exp40_gpu.tar.gz # …or its packaged archive (auto-extracts) +tvbo workflow submit kit/ --array 0 # one shard as a smoke test +tvbo workflow submit kit/ --array 0-3 --array-throttle 1 # 4 tasks, 1 at a time +tvbo workflow submit kit/ --engine slurm # force the engine if ambiguous +``` + +The submitting host needs only the scheduler command (`sbatch` / `snakemake` / +`nextflow`) on `$PATH`; emission and submission themselves run in-process. The +**compute node** that executes each task needs `tvbo` installed β€” provision it from +the kit's `requirements.txt` / `environment.yml`. + +### Two ways to reach the cluster + +The kit lifecycle supports two deployment styles; pick by where `tvbo` and the +connectome data already live. + +1. **Ground truth on the cluster.** Put the full `SimulationStudy` / `Simulation‑ + Experiment` YAML (plus the networks it resolves, or db access) on the cluster and + emit there: `tvbo workflow run slurm study.yaml --experiment <id> <--set …>`. Best + when the cluster already has tvbo and the data, and you want to sweep straight + from the recipe. +2. **Package a kit, then ship it.** Emit locally, package the kit dir, and copy the + single archive over. The compute nodes never see the recipe or the db β€” the kit + carries the frozen spec, the baked `network.h5`, and the code. Submit the archive + directly, no unzip: + + ```bash + # locally + tvbo workflow slurm study.yaml --experiment <id> <--set …> -o kit/ + tar czf kit.tar.gz -C kit/.. kit + scp kit.tar.gz <cluster>:~ + # on the cluster + tvbo workflow submit ~/kit.tar.gz + ``` + + Best when the cluster lacks the recipe or the connectome database, or when you + want a frozen, shippable provenance artefact. + +Emit and submit together in one call when you are already on the login node: + +```bash +tvbo workflow run slurm study.yaml --experiment <id> # emit + submit +tvbo run study.yaml --engine slurm --experiment <id> # equivalent via `tvbo run` +``` + +### Finalize + +A multi-task run (`distribute.chunk > 1`) writes one shard per array task. `tvbo +workflow finalize <results-dir>` merges them into a single result keyed by the +sweep coordinates (`--compress` gzip-deflates the HDF5). A single-task run +(`chunk: 1`, the GPU profile below) writes the whole result directly, so it needs +no finalize step. + +## Per-subject dataset fan-out + +When an experiment fits against **per-subject** empirical data, it declares a +`dataset:` block and an observation whose `source` is `dataset.subject.<measure>` +(the target selected by a BIDS `query` under `dataset.bids_root`). The planner +lowers this to one array task per subject: `$SLURM_ARRAY_TASK_ID` indexes the +subject list, and each task resolves that subject's target before its fit. + +```yaml +dataset: + dataset_id: hcpya + bids_root: /data/hcp/functional_connectomes # per-subject FC tree + subjects: [100206, 100307, 100408] # optional: a curated subset (else: all) +observations: + empirical_fc: + source: [dataset.subject.fc] + query: {atlas: HCPMMP1, desc: FCavg, suffix: relmat} + reconcile: by_label +``` + +An explicit `dataset.subjects` list **scopes** the fan-out β€” one entry for a +single-subject kit, a handful for a pilot, omitted to sweep the whole cohort. + +The per-subject data itself reaches the compute node one of two ways: + +**Reference it (large cohorts).** By default the kit records the absolute +`dataset.bids_root`. That tree is machine-specific, so stage it on the cluster and +point each task at it with `$TVBO_BIDS_ROOT` β€” the `run.sbatch` reads it with no +hand-edit (unset β†’ keeps the baked value): + +```bash +export TVBO_BIDS_ROOT=/cephfs/hcp/functional_connectomes +tvbo workflow submit cohort_kit.tar.gz +``` + +**Bundle it (self-contained kit).** `--bundle-dataset` copies each enumerated +subject's target (sidecar **+** its payload) into `spec/dataset/` and rewrites +`dataset.bids_root` to a relative path that resolves against the frozen spec. The +kit then carries exactly the files its fan-out consumes β€” no upload, no +`$TVBO_BIDS_ROOT`. It resolves **from the spec itself**: the observation's own +`query` (`{atlas: HCPMMP1, desc: FCavg, suffix: relmat}` above) already names the +file, so no extra flags are needed: + +```bash +tvbo workflow slurm study.yaml --experiment 30 --bundle-dataset --pack -o cohort_kit +# β†’ cohort_kit.tar.gz carries spec/dataset/sub-<id>/… for the scoped subjects only +``` + +`--bundle-select KEY=VALUE` is only an override for when a subject directory holds +**several** files matching the query β€” the bundler otherwise raises a clear +"ambiguous … add entities to disambiguate" error naming the candidates, so you add +just the entity that separates them: + +```bash +tvbo workflow slurm study.yaml --experiment 30 \ + --bundle-dataset --bundle-select acquisition=run1 --pack -o cohort_kit +``` + +A *requested* bundle that cannot be resolved (a missing file, an over-tight or +mismatched `--bundle-select`) fails loudly at emit time β€” a self-contained kit is +never shipped silently pointing at data it does not carry. + +## CPU and GPU: pick the tier that fits the resource + +The two tiers trade off against node availability. + +**CPU** nodes are plentiful, so fan the grid across many of them. Pin JAX to a +single host device so each task batches with `vmap`: + +```yaml +workflow: + distribute: {chunk: 40} + slurm: + partition: medium + cpus_per_task: 2 + mem: 32G + env: + - {name: XLA_FLAGS, value: "--xla_force_host_platform_device_count=1"} +``` + +**GPU** nodes are scarce, so keep the whole grid on one node and batch it +on-device with `vmap` (`chunk: 1`). Splitting into 40 array tasks here would +claim 40 GPUs. Let JAX grow GPU memory on demand: + +```bash +tvbo workflow slurm study.yaml --experiment <id> \ + --set distribute.chunk=1 \ + --set slurm.partition=gpu --set slurm.gres=gpu:1 \ + --set slurm.env.XLA_PYTHON_CLIENT_PREALLOCATE=false +``` + +If a single `vmap` batch exceeds VRAM, lower `explorations.<name>.n_parallel` +(the batch size) or set `parallel_mode: lax_map`, which runs the batch +sequentially with memory bounded by one cell. A multi-GPU node uses all its +GPUs through `pmap` automatically (`--set slurm.gres=gpu:2`). diff --git a/docs/Usage/tvbo_bif.cpython-312-darwin.so b/docs/Usage/tvbo_bif.cpython-312-darwin.so new file mode 100755 index 000000000..a794bcdb4 Binary files /dev/null and b/docs/Usage/tvbo_bif.cpython-312-darwin.so differ diff --git a/docs/_static/tvbo_overview.png b/docs/_static/tvbo_overview.png new file mode 100644 index 000000000..28799ad13 Binary files /dev/null and b/docs/_static/tvbo_overview.png differ diff --git a/docs/_toc.yml b/docs/_toc.yml index 79e012c48..4912f6a1e 100644 --- a/docs/_toc.yml +++ b/docs/_toc.yml @@ -54,6 +54,8 @@ website: href: Specification/LossFunction.qmd - text: "Parameter Exploration" href: Usage/ParameterExploration.qmd + - text: "Distributed Workflows (HPC)" + href: Usage/DistributedWorkflows.qmd - text: "Model Fitting" href: Usage/ModelFitting.qmd - text: "Bifurcation Analysis" @@ -442,6 +444,8 @@ website: href: datamodel/classes/Discretization.qmd - text: "Distribution" href: datamodel/classes/Distribution.qmd + - text: "Distribution Config" + href: datamodel/classes/DistributionConfig.qmd - text: "Dynamics" href: datamodel/classes/Dynamics.qmd - text: "Edge" @@ -450,6 +454,8 @@ website: href: datamodel/classes/EField.qmd - text: "Electrode" href: datamodel/classes/Electrode.qmd + - text: "Environment Variable" + href: datamodel/classes/EnvironmentVariable.qmd - text: "Equation" href: datamodel/classes/Equation.qmd - text: "Event" @@ -544,6 +550,8 @@ website: href: datamodel/classes/Sample.qmd - text: "Scalar Value" href: datamodel/classes/ScalarValue.qmd + - text: "Scheduler Directive" + href: datamodel/classes/SchedulerDirective.qmd - text: "Session" href: datamodel/classes/Session.qmd - text: "Simulation Experiment" @@ -586,6 +594,10 @@ website: href: datamodel/classes/TuningObjective.qmd - text: "Update Rule" href: datamodel/classes/UpdateRule.qmd + - text: "Workflow Config" + href: datamodel/classes/WorkflowConfig.qmd + - text: "Workflow Engine Config" + href: datamodel/classes/WorkflowEngineConfig.qmd - section: "Slots" contents: - text: "abbreviation" @@ -596,6 +608,8 @@ website: href: datamodel/slots/absolute_value.qmd - text: "accelerator" href: datamodel/slots/accelerator.qmd + - text: "account" + href: datamodel/slots/account.qmd - text: "acquisition" href: datamodel/slots/acquisition.qmd - text: "acronym" @@ -642,6 +656,8 @@ website: href: datamodel/slots/args.qmd - text: "arguments" href: datamodel/slots/arguments.qmd + - text: "array_chunk" + href: datamodel/slots/array_chunk.qmd - text: "atlas" href: datamodel/slots/atlas.qmd - text: "author" @@ -686,6 +702,8 @@ website: href: datamodel/slots/build_hash.qmd - text: "builder" href: datamodel/slots/builder.qmd + - text: "by" + href: datamodel/slots/by.qmd - text: "call_args" href: datamodel/slots/call_args.qmd - text: "callable" @@ -698,6 +716,8 @@ website: href: datamodel/slots/center.qmd - text: "checkpoint_interval" href: datamodel/slots/checkpoint_interval.qmd + - text: "chunk" + href: datamodel/slots/chunk.qmd - text: "citation" href: datamodel/slots/citation.qmd - text: "citekey" @@ -744,6 +764,8 @@ website: href: datamodel/slots/contact_id.qmd - text: "contacts" href: datamodel/slots/contacts.qmd + - text: "container" + href: datamodel/slots/container.qmd - text: "container_image" href: datamodel/slots/container_image.qmd - text: "continuation" @@ -758,12 +780,16 @@ website: href: datamodel/slots/coordinates.qmd - text: "coordinate Space" href: datamodel/slots/coordinateSpace.qmd + - text: "cores" + href: datamodel/slots/cores.qmd - text: "correlated" href: datamodel/slots/correlated.qmd - text: "correlation" href: datamodel/slots/correlation.qmd - text: "coupling" href: datamodel/slots/coupling.qmd + - text: "coupling_evaluation" + href: datamodel/slots/coupling_evaluation.qmd - text: "coupling_function" href: datamodel/slots/coupling_function.qmd - text: "coupling_inputs" @@ -772,6 +798,8 @@ website: href: datamodel/slots/coupling_terms.qmd - text: "coupling_variable" href: datamodel/slots/coupling_variable.qmd + - text: "cpus_per_task" + href: datamodel/slots/cpus_per_task.qmd - text: "cse" href: datamodel/slots/cse.qmd - text: "curvature" @@ -824,6 +852,8 @@ website: href: datamodel/slots/derived_parameters.qmd - text: "derived_variables" href: datamodel/slots/derived_variables.qmd + - text: "desc" + href: datamodel/slots/desc.qmd - text: "description" href: datamodel/slots/description.qmd - text: "descriptor" @@ -852,6 +882,8 @@ website: href: datamodel/slots/distance.qmd - text: "distance_unit" href: datamodel/slots/distance_unit.qmd + - text: "distribute" + href: datamodel/slots/distribute.qmd - text: "distribution" href: datamodel/slots/distribution.qmd - text: "doi" @@ -906,6 +938,8 @@ website: href: datamodel/slots/engine.qmd - text: "entities" href: datamodel/slots/entities.qmd + - text: "env" + href: datamodel/slots/env.qmd - text: "environment" href: datamodel/slots/environment.qmd - text: "environment_type" @@ -924,6 +958,8 @@ website: href: datamodel/slots/events.qmd - text: "execution" href: datamodel/slots/execution.qmd + - text: "executor" + href: datamodel/slots/executor.qmd - text: "experiment_yaml_hash" href: datamodel/slots/experiment_yaml_hash.qmd - text: "explorations" @@ -968,6 +1004,10 @@ website: href: datamodel/slots/geometry.qmd - text: "graph_generator" href: datamodel/slots/graph_generator.qmd + - text: "graph_representation" + href: datamodel/slots/graph_representation.qmd + - text: "gres" + href: datamodel/slots/gres.qmd - text: "grounding" href: datamodel/slots/grounding.qmd - text: "group" @@ -1092,6 +1132,10 @@ website: href: datamodel/slots/lookupLabel.qmd - text: "loss" href: datamodel/slots/loss.qmd + - text: "mail_type" + href: datamodel/slots/mail_type.qmd + - text: "mail_user" + href: datamodel/slots/mail_user.qmd - text: "maintainer" href: datamodel/slots/maintainer.qmd - text: "manufacturer" @@ -1110,6 +1154,8 @@ website: href: datamodel/slots/measure_type.qmd - text: "measures" href: datamodel/slots/measures.qmd + - text: "mem" + href: datamodel/slots/mem.qmd - text: "mesh" href: datamodel/slots/mesh.qmd - text: "mesh_file" @@ -1180,6 +1226,8 @@ website: href: datamodel/slots/newton_max_iterations.qmd - text: "newton_tol" href: datamodel/slots/newton_tol.qmd + - text: "nextflow" + href: datamodel/slots/nextflow.qmd - text: "node_mapping" href: datamodel/slots/node_mapping.qmd - text: "node_template" @@ -1246,6 +1294,8 @@ website: href: datamodel/slots/options.qmd - text: "original Lookup Label" href: datamodel/slots/originalLookupLabel.qmd + - text: "out_dir" + href: datamodel/slots/out_dir.qmd - text: "output" href: datamodel/slots/output.qmd - text: "output_equation" @@ -1272,6 +1322,8 @@ website: href: datamodel/slots/parent_network.qmd - text: "parent_score" href: datamodel/slots/parent_score.qmd + - text: "partition" + href: datamodel/slots/partition.qmd - text: "path" href: datamodel/slots/path.qmd - text: "percent_change" @@ -1314,6 +1366,10 @@ website: href: datamodel/slots/pycode.qmd - text: "quantity_kind" href: datamodel/slots/quantity_kind.qmd + - text: "query" + href: datamodel/slots/query.qmd + - text: "queue" + href: datamodel/slots/queue.qmd - text: "random_seed" href: datamodel/slots/random_seed.qmd - text: "random_state" @@ -1322,6 +1378,8 @@ website: href: datamodel/slots/range.qmd - text: "recon_path" href: datamodel/slots/recon_path.qmd + - text: "reconcile" + href: datamodel/slots/reconcile.qmd - text: "reconstruction" href: datamodel/slots/reconstruction.qmd - text: "record" @@ -1354,10 +1412,14 @@ website: href: datamodel/slots/requirements.qmd - text: "requires" href: datamodel/slots/requires.qmd + - text: "retries" + href: datamodel/slots/retries.qmd - text: "rhs" href: datamodel/slots/rhs.qmd - text: "righthandside" href: datamodel/slots/righthandside.qmd + - text: "rng" + href: datamodel/slots/rng.qmd - text: "role" href: datamodel/slots/role.qmd - text: "run_id" @@ -1392,6 +1454,8 @@ website: href: datamodel/slots/sessions.qmd - text: "settings" href: datamodel/slots/settings.qmd + - text: "setup" + href: datamodel/slots/setup.qmd - text: "sex" href: datamodel/slots/sex.qmd - text: "shape" @@ -1406,6 +1470,10 @@ website: href: datamodel/slots/size.qmd - text: "skip_t" href: datamodel/slots/skip_t.qmd + - text: "slurm" + href: datamodel/slots/slurm.qmd + - text: "snakemake" + href: datamodel/slots/snakemake.qmd - text: "software" href: datamodel/slots/software.qmd - text: "software_environment" @@ -1466,6 +1534,12 @@ website: href: datamodel/slots/subjects.qmd - text: "subnetwork" href: datamodel/slots/subnetwork.qmd + - text: "suffix" + href: datamodel/slots/suffix.qmd + - text: "sweep_direction" + href: datamodel/slots/sweep_direction.qmd + - text: "sweep_seeding" + href: datamodel/slots/sweep_seeding.qmd - text: "symbol" href: datamodel/slots/symbol.qmd - text: "symmetry" @@ -1568,8 +1642,12 @@ website: href: datamodel/slots/values.qmd - text: "variable_of_interest" href: datamodel/slots/variable_of_interest.qmd + - text: "vectorize" + href: datamodel/slots/vectorize.qmd - text: "vectorized" href: datamodel/slots/vectorized.qmd + - text: "venv" + href: datamodel/slots/venv.qmd - text: "version" href: datamodel/slots/version.qmd - text: "version_spec" @@ -1602,6 +1680,8 @@ website: href: datamodel/slots/weights.qmd - text: "window_size" href: datamodel/slots/window_size.qmd + - text: "workflow" + href: datamodel/slots/workflow.qmd - text: "wrt" href: datamodel/slots/wrt.qmd - text: "x" @@ -1622,6 +1702,8 @@ website: href: datamodel/enums/BoundaryConditionType.qmd - text: "Continuation Algorithm" href: datamodel/enums/ContinuationAlgorithm.qmd + - text: "Coupling Stage Evaluation" + href: datamodel/enums/CouplingStageEvaluation.qmd - text: "Development Status" href: datamodel/enums/DevelopmentStatus.qmd - text: "Dimension Type" @@ -1638,6 +1720,8 @@ website: href: datamodel/enums/EnvironmentType.qmd - text: "Event Type" href: datamodel/enums/EventType.qmd + - text: "Graph Representation" + href: datamodel/enums/GraphRepresentation.qmd - text: "Hemisphere" href: datamodel/enums/Hemisphere.qmd - text: "Imaging Modality" @@ -1648,6 +1732,8 @@ website: href: datamodel/enums/ModelParadigm.qmd - text: "Model Type" href: datamodel/enums/ModelType.qmd + - text: "Node Reconciliation" + href: datamodel/enums/NodeReconciliation.qmd - text: "Noise Type" href: datamodel/enums/NoiseType.qmd - text: "Numerical Discretization Method" @@ -1676,12 +1762,18 @@ website: href: datamodel/enums/SpecimenEnum.qmd - text: "Standard Graph Type" href: datamodel/enums/StandardGraphType.qmd + - text: "Sweep Direction" + href: datamodel/enums/SweepDirection.qmd + - text: "Sweep Seeding" + href: datamodel/enums/SweepSeeding.qmd - text: "System Type" href: datamodel/enums/SystemType.qmd - text: "Tool Role" href: datamodel/enums/ToolRole.qmd - text: "Unit Enum" href: datamodel/enums/UnitEnum.qmd + - text: "Workflow Distribute By" + href: datamodel/enums/WorkflowDistributeBy.qmd # END:datamodel-autogen diff --git a/docs/agents/beginner.qmd b/docs/agents/beginner.qmd index 7382628d8..47eb7aa11 100644 --- a/docs/agents/beginner.qmd +++ b/docs/agents/beginner.qmd @@ -22,11 +22,12 @@ tvbo skills install --target claude-code (Replace `claude-code` with `cursor` if you use Cursor.) -That writes four small files under `~/.claude/skills/` (or `~/.cursor/rules/`): +That installs five skills under `~/.claude/skills/` (or `~/.cursor/rules/`): - `tvbo-overview` β€” what TVBO is, the three pillars - `tvbo-writing-models` β€” how to specify a `Dynamics` in YAML or Python - `tvbo-running-simulations` β€” how to run an experiment, pick a backend +- `tvbo-replicating-studies` β€” how to replicate a published study end-to-end - `tvbo-platform` β€” how to use [tvbo.charite.de](https://tvbo.charite.de) These do **not** auto-fire on every prompt. Claude Code (for instance) loads a diff --git a/docs/agents/installing-skills.qmd b/docs/agents/installing-skills.qmd index f7a1d0a87..5451f6b54 100644 --- a/docs/agents/installing-skills.qmd +++ b/docs/agents/installing-skills.qmd @@ -90,8 +90,8 @@ when you want maximum coverage in a single command. ## Audience filtering By default, `tvbo skills install` writes **user-audience skills only** β€” -the four end-user skills (`overview`, `writing-models`, `running-simulations`, -`platform`). +the five end-user skills (`overview`, `writing-models`, `running-simulations`, +`replicating-studies`, `platform`). The maintainer skills (`git`, `writing-code`, `linkml-schema`, `codegen-templates`, `tests-and-backends`, `grill-me`) are **only relevant diff --git a/docs/agents/maintainer-guide.qmd b/docs/agents/maintainer-guide.qmd index d1cff9d6d..171847bff 100644 --- a/docs/agents/maintainer-guide.qmd +++ b/docs/agents/maintainer-guide.qmd @@ -33,7 +33,8 @@ tvbo/ # repo root β”œβ”€β”€ overview/SKILL.md β”œβ”€β”€ writing-models/SKILL.md β”œβ”€β”€ running-simulations/SKILL.md - └── platform/SKILL.md + β”œβ”€β”€ platform/SKILL.md + └── replicating-studies/ # SKILL.md + assets/ (templates, skeleton) ``` ## The pipeline @@ -108,6 +109,8 @@ This: - Parses every canonical `SKILL.md` from both roots. - Writes `.claude/skills/<name>/SKILL.md` for every skill. +- Mirrors each skill's `assets/` dir, if it has one, next to that + `.claude/skills/<name>/SKILL.md`. - Writes `.github/instructions/<name>.instructions.md` for every *maintainer-tagged* skill. - Regenerates the skills-index region of `AGENTS.md`. @@ -115,7 +118,7 @@ This: Output: ``` -synced 11 skills β†’ 19 files +synced 12 skills β†’ 20 files ``` ### 4. Verify @@ -139,6 +142,30 @@ Do **not** edit the adapter outputs: Sync will overwrite them. Edits there are silently lost. +## Bundling assets with a skill + +A canonical skill may ship an `assets/` directory beside its `SKILL.md` β€” +templates, helper scripts, or a skeleton tree the skill instructs the +assistant to copy: + +``` +tvbo/skills/canonical/<name>/ +β”œβ”€β”€ SKILL.md +└── assets/ + β”œβ”€β”€ report.qmd.tmpl + └── skeleton/... +``` + +`sync` and `install` mirror `assets/` next to the rendered `SKILL.md`, but +**only for the directory-shaped `claude-code` target** (the flat Cursor / +Copilot / prompt outputs carry the body alone). `uninstall` removes it and +`sync --check` diffs the tree. Assets ship in the wheel through the same +`tvbo/skills/canonical/**` inclusion as `SKILL.md` β€” no extra packaging config. + +Syntax-check an asset `.py` with `ast.parse` (writes nothing), **not** +`py_compile` β€” the latter drops a `__pycache__/*.pyc` under the canonical +source. Sync ignores bytecode when mirroring, but keep the source clean. + ## Releasing the wheel `tvbo/skills/canonical/**` is bundled by the standard @@ -150,7 +177,8 @@ hatch build unzip -l dist/tvbo-*.whl | grep skills/canonical ``` -You should see all four user `SKILL.md` files inside the wheel. +You should see all five user `SKILL.md` files inside the wheel, plus any +`assets/` a skill ships (e.g. `replicating-studies/assets/...`). ## Versioning the marker diff --git a/docs/agents/skills-reference.qmd b/docs/agents/skills-reference.qmd index 6141b026b..9e6c7a939 100644 --- a/docs/agents/skills-reference.qmd +++ b/docs/agents/skills-reference.qmd @@ -18,7 +18,7 @@ behavioural rules, just scoped to library *usage* rather than library ## User skills -These are the four skills `pip install tvbo && tvbo skills install` puts on +These are the five skills `pip install tvbo && tvbo skills install` puts on your machine. ### `tvbo-overview` @@ -67,6 +67,24 @@ Teaches: `tvbo[pyrates]`, `tvbo[julia]`, `tvbo[neuroml]`, `tvbo[tvboptim]`) - Intel-Mac pinning quirks (numba/llvmlite/jax) +### `tvbo-replicating-studies` + +::: {.callout-note} +**Fires when:** Reproducing a published study β€” building a `<Study>.yaml`, its `report.qmd`, or replication plotting. +::: + +Turns a paper into **one declarative, tvbo-native recipe** (all or selected +experiments) plus simple plotting and an honest, fully-computed report. +Composes `writing-models` and `running-simulations`, then adds the +replication-specific rules: + +- One `<Study>.yaml` for every targeted experiment β€” no Python drivers +- Every reported number computed from a result container, never typed by hand +- Backend chosen by feature-fit, not defaulted; framework gaps surfaced early +- Replication (independent code + data) stated honestly, with a scorecard +- Ships an `assets/` dir β€” report/plot templates and a FAIR skeleton β€” + installed alongside the skill + ### `tvbo-platform` ::: {.callout-note} @@ -189,3 +207,17 @@ metadata: `metadata:` to satisfy VS Code's SKILL.md schema linter, which only allows a known set of top-level attributes (plus a free-form `metadata` block). The renderer reads both forms. + +## Bundled assets + +A skill directory may carry an `assets/` sibling of its `SKILL.md` β€” helper +scripts, templates, or a skeleton tree the skill tells the assistant to copy. +`replicating-studies` is the first to use it, shipping report/plot templates +and a FAIR study layout. + +Only the directory-shaped **claude-code** target can hold assets: `install` +and `sync` mirror `assets/` next to the rendered `SKILL.md` (so an installed +skill lives at `~/.claude/skills/tvbo-<name>/SKILL.md` **and** +`~/.claude/skills/tvbo-<name>/assets/`), and `uninstall` removes it. The flat +targets (Cursor, Copilot, raw prompt) carry the skill body only. Byte-compiled +files (`__pycache__`, `*.pyc`) are never mirrored. diff --git a/docs/index.qmd b/docs/index.qmd index 59a480d41..c49711dce 100644 --- a/docs/index.qmd +++ b/docs/index.qmd @@ -8,7 +8,7 @@ title: The Virtual Brain Ontology ::: {.column width='80%'} -`tvbo` is a Python library for defining, simulating, and analyzing dynamical systems in computational neuroscience. It combines ontology-driven knowledge representation with flexible simulation capabilities. +`tvbo` describes a whole brain-network simulation as one typed, ontology-grounded specification. From that single source it compiles runnable code across many backends and a methods report, and grounds every entity in a knowledge graph β€” so studies re-run without drift and models can be compared even when they share no notation. **Core Features:** @@ -30,6 +30,8 @@ title: The Virtual Brain Ontology :::: +![One specification, two payoffs: from one typed specification, TVB-O compiles code and a methods report across backends (reproducible) and grounds every entity in a knowledge graph (comparable).](_static/tvbo_overview.png){fig-align="center" width="100%"} + ```{=html} <div class="button-container"> <a href="https://tvbo.charite.de" class="card-button"> diff --git a/docs/references.bib b/docs/references.bib index 44186fa0e..41c091c1f 100644 --- a/docs/references.bib +++ b/docs/references.bib @@ -6825,10 +6825,10 @@ @Article{Gardner2008 publisher = {Springer Science and Business Media LLC}, } -@InProceedings{Gaser9240, +@InProceedings{Gaser2003, author = {Gaser, Christian and Schlaug, Gottfried}, - title = {Behavioral/Systems/Cognitive Brain Structures Differ between Musicians and Non-Musicians}, - year = {9240}, + title = {Brain Structures Differ between Musiciansand Non-Musicians}, + year = {2003}, abstract = {From an early age, musicians learn complex motor and auditory skills (e.g., the translation of visually perceived musical symbols into motor commands with simultaneous auditory monitoring of output), which they practice extensively from childhood throughout their entire careers. Using a voxel-by-voxel morphometric technique, we found gray matter volume differences in motor, auditory, and visual-spatial brain regions when comparing professional musicians (keyboard players) with a matched group of amateur musicians and non-musicians. Although some of these multiregional differences could be attributable to innate predisposition, we believe they may represent structural adaptations in response to long-term skill acquisition and the repetitive rehearsal of those skills. This hypothesis is supported by the strong association we found between structural differences, musician status, and practice intensity, as well as the wealth of supporting animal data showing structural changes in response to long-term motor training. However, only future experiments can determine the relative contribution of predisposition and practice.}, file = {:Gaser9240 - Behavioral_Systems_Cognitive Brain Structures Differ between Musicians and Non Musicians.pdf:PDF}, keywords = {musician, brain, morphometry, motor training, sensorimotor, gray matter}, @@ -7022,6 +7022,23 @@ @InBook{Geyer2012 file = {:Geyer2012 - Motor Cortexβˆ—.pdf:PDF}, } +@Article{Ghareeb2026, + author = {Ghareeb, Ali E. and Chang, Benjamin and Mitchener, Ludovico and Yiu, Angela and Szostkiewicz, Caralyn J. and Shved, Dmytro and Gyimesi, Gavin J. and Laurent, Jon M. and Wright, Samantha M. and Razzak, Muhammed T. and White, Andrew D. and Finnemann, Silvia C. and Hinks, Michaela M. and Rodriques, Samuel G.}, + journal = {Nature}, + title = {A multi-agent system for automating scientific discovery}, + year = {2026}, + issn = {1476-4687}, + month = may, + number = {8122}, + pages = {497--505}, + volume = {655}, + abstract = {Nature, doi:10.1038/s41586-026-10652-y}, + doi = {10.1038/s41586-026-10652-y}, + file = {:Ghareeb2026 - A Multi Agent System for Automating Scientific Discovery.pdf:PDF}, + groups = {Agentic Science}, + publisher = {Springer Science and Business Media LLC}, +} + @Article{Ghosh2008, author = {Ghosh, Anandamohan and Rho, Y. and McIntosh, A. R. and KΓΆtter, R. and Jirsa, V. K.}, journal = {PLoS Computational Biology}, @@ -7527,6 +7544,23 @@ @InProceedings{Gorman1992 file = {:Gorman1992 - Refugee Survivors of Torture_ Trauma and Treatment.pdf:PDF}, } +@Article{Gottweis2026, + author = {Gottweis, Juraj and Weng, Wei-Hung and Daryin, Alexander and Tu, Tao and Sirkovic, Petar and Myaskovsky, Artiom and Glowaty, Grzegorz and Weissenberger, Felix and Orlandi, Alessio and Popovici, Dan and Palepu, Anil and Rong, Keran and Tanno, Ryutaro and Saab, Khaled and Zhang, Fan and Blum, Jacob and Carroll, Andrew and Kulkarni, Kavita and TomaΕ‘ev, Nenad and Zverinski, Dina and Rendulic, Ivor and Vedadi, Elahe and Hasler, Florian and Rimanic, Luka and Boia, Marina and Budiselic, Ivan and Feinstein, Ben and Bellaiche, Mathias and Sheffer, Tom and Freyberg, Jan and Ratcliff, Jeremy and Bertolli, Ottavia and Chou, Katherine and Hassidim, Avinatan and Gokturk, Burak and Vahdat, Amin and Guan, Yuan and Dhillon, Vikram and Vaishnav, Eeshit Dhaval and Lee, Byron and Costa, Tiago R. D. and PenadΓ©s, JosΓ© R. and Peltz, Gary and Matias, Yossi and Manyika, James and Hassabis, Demis and Xu, Yunhan and Kohli, Pushmeet and Pawlosky, Annalisa and Karthikesalingam, Alan and Natarajan, Vivek}, + journal = {Nature}, + title = {Accelerating scientific discovery with Co-Scientist}, + year = {2026}, + issn = {1476-4687}, + month = may, + number = {8122}, + pages = {487--496}, + volume = {655}, + abstract = {Nature, doi:10.1038/s41586-026-10644-y}, + doi = {10.1038/s41586-026-10644-y}, + file = {:Gottweis2026 - Accelerating Scientific Discovery with Co Scientist.pdf:PDF}, + groups = {Agentic Science}, + publisher = {Springer Science and Business Media LLC}, +} + @Article{Gourmaud2019, author = {Gourmaud, Sarah and Shou, Haochang and Irwin, David J and Sansalone, Kimberly and Jacobs, Leah M and Lucas, Timothy H and Marsh, Eric D and Davis, Kathryn A and Jensen, Frances E and Talos, Delia M}, journal = {Brain}, @@ -9509,20 +9543,11 @@ @Article{Jansen1995 pages = {357--366}, volume = {73}, doi = {10.1007/bf00199471}, - file = {:Jansen1995 - Electroencephalogram and Visual Evoked Potential Generation in a Mathematical Model of Coupled Cortical Columns.pdf:PDF:https\://link.springer.com/content/pdf/10.1007/BF00199471.pdf}, groups = {Neural Mass Models, JansenRit}, publisher = {Springer Science and Business Media LLC}, readstatus = {read}, } -@InProceedings{Jansen1995a, - author = {Jansen, Ben and Rit, Vincent}, - title = {Electroencephalogram and visual evoked potential generation in a mathematical model of coupled cortical columns}, - year = {1995}, - abstract = {This study deals with neurophysiologically based models simulating electrical brain activity (i.e., the electroencephalogram or EEG, and evoked potentials or EPs). A previously developed lumped-parameter model of a single cortical column was implemented using a more accurate computational procedure. Anatomically acceptable values for the various model parameters were determined, and a multi-dimensional exploration of the model parameter-space was conducted. It was found that the model could produce a large variety of EEG-like waveforms and rhythms. Coupling two models, with delays in the interconnections to simulate the synaptic connections within and between cortical areas, made it possible to replicate the spatial distribution of alpha and beta activity. EPs were simulated by presenting pulses to the input of the coupled models. In general, the responses were more realistic than those produced using a single model. Our simulations also suggest that the scalp-recorded EP is at least partially due to a phase reordering of the ongoing activity.}, - file = {:Jansen1995a - Electroencephalogram and Visual Evoked Potential Generation in a Mathematical Model of Coupled Cortical Columns.pdf:PDF}, -} - @Article{Jardri2011, author = {Jardri, Renaud and Pouchet, Alexandre and Pins, Delphine and Thomas, Pierre}, journal = {American Journal of Psychiatry}, @@ -12006,6 +12031,24 @@ @Article{Lopes2023 pmid = {36914685}, } +@InCollection{LopesdaSilva1976, + author = {F.H. {Lopes da Silva} and A. {van Rotterdam} and P. Barts and E. {van Heusden} and W. Burr}, + booktitle = {Perspectives in Brain Research}, + publisher = {Elsevier}, + title = {Models of Neuronal Populations: The Basic Mechanisms of Rhythmicity}, + year = {1976}, + editor = {M.A. Corner and D.F. Swaab}, + pages = {281-308}, + series = {Progress in Brain Research}, + volume = {45}, + abstract = {Publisher Summary +This chapter discusses the basic mechanisms of rhythmicity using the models of neuronal populations. The models presented in the chapter allows to understand the neural mechanisms underlying certain types of field potentials revealed in the EEG, particularly the generation of alpha or theta rhythms and of epileptic paroxysms. The importance of this aspect to general neurophysiology may be secondary, however, considering the fact that the field potential does not form an essential element of the activity of neuron populations. However, it is very relevant in view of the paramount importance of the EEG in clinical neurophysiology. In this respect, it should be noted that the EEG is still the neurophysiological signal most widely employed to evaluate normal and pathological human brain activity. The models of alpha and theta rhythms presented in the chapter should not be considered as the models of the EEG. They may well be relevant only for particular aspects of EEG signals; the EEG as recorded from the scalp includes a variety of phenomena about which sufficient basic information is yet not available An exception may be the case of paroxysmal activity characteristic of epileptic foci. The chapter also presents models that include excitatory and inhibitory feedback.}, + doi = {https://doi.org/10.1016/S0079-6123(08)60995-4}, + file = {:- Doi_10.1016_S0079 6123(08)60995 4.pdf:PDF}, + issn = {0079-6123}, + url = {https://www.sciencedirect.com/science/article/pii/S0079612308609954}, +} + @Article{Lorenz1963, author = {Lorenz, Edward N.}, journal = {Journal of the Atmospheric Sciences}, @@ -12094,7 +12137,7 @@ @Article{Lu2026 abstract = {Nature, doi:10.1038/s41586-026-10265-5}, doi = {10.1038/s41586-026-10265-5}, file = {:Lu1038 - Towards End to End Automation of AI Research.pdf:PDF}, - groups = {AI Research}, + groups = {Agentic Science}, publisher = {Springer Science and Business Media LLC}, } @@ -12198,6 +12241,15 @@ @Article{Luppi2024 publisher = {Nature Publishing Group UK London}, } +@Misc{Luppi2024b, + author = {Andrea I. Luppi}, + title = {Competitive interactions shape mammalian brain network dynamics and computation}, + year = {2024}, + abstract = {Nature Neuroscience, doi:10.1038/s41593-026-02205-3}, + doi = {10.1038/s41593-026-02205-3}, + file = {:Luppi2024b - Competitive Interactions Shape Mammalian Brain Network Dynamics and Computation.pdf:PDF}, +} + @Article{Luppi2025, author = {Luppi, AI and Liu, ZQ and Hansen, JY and Cofre, R and Niu, M and Kuzmin, E and Froudist-Walsh, S and Palomero-Gallagher, N and Misic, B}, journal = {Science advances}, @@ -17974,6 +18026,18 @@ @Article{Smith2013a publisher = {Elsevier BV}, } +@Article{Smith2015, + author = {Smith, Robert E. and Tournier, J-Donald and Calamante, Fernando and Connelly, Alan}, + journal = {NeuroImage}, + title = {The effects of SIFT on the reproducibility and biological accuracy of the structural connectome}, + year = {2015}, + issn = {1053-8119}, + pages = {253--265}, + volume = {104}, + doi = {10.1016/j.neuroimage.2014.10.004}, + publisher = {Elsevier BV}, +} + @Article{Smith2018, author = {Smith, Stephen M. and Nichols, Thomas E.}, journal = {Neuron}, @@ -18811,7 +18875,7 @@ @Article{Suzgun_2025 volume = {7}, doi = {10.1038/s42256-025-01113-8}, file = {:/Users/leonmartin_bih/Downloads/Language-models-cannot-reliably-distinguish-belief-from-knowledge-and-fact.pdf:PDF}, - groups = {AI Research}, + groups = {Agentic Science}, publisher = {Springer Science and Business Media LLC}, } @@ -19149,6 +19213,22 @@ @Article{Taylor2017 publisher = {Elsevier BV}, } +@Article{Taylor2026, + author = {Taylor, Hoyt Patrick and Huynh, Khoi Minh and Thung, Kim-Han and Lin, Guoye and Lyu, Wenjiao and Lin, Weili and Ahmad, Sahar and Yap, Pew-Thian}, + journal = {Nature}, + title = {Functional hierarchy of the human neocortex across the lifespan}, + year = {2026}, + issn = {1476-4687}, + month = mar, + number = {8111}, + pages = {955--964}, + volume = {652}, + abstract = {Nature, doi:10.1038/s41586-026-10219-x}, + doi = {10.1038/s41586-026-10219-x}, + file = {:Taylor2026 - Functional Hierarchy of the Human Neocortex across the Lifespan.pdf:PDF}, + publisher = {Springer Science and Business Media LLC}, +} + @InProceedings{Telang2000, author = {Telang, Frank and Volkow, Nora}, title = {Addictive States}, @@ -20686,6 +20766,18 @@ @Article{Wang2025 publisher = {Springer Science and Business Media LLC}, } +@Article{Wang2026, + author = {Wang, Cheng and Jiang, Yu and Peng, Zhihao and Li, Chenxin and Bang, Chang-Bae and Zhao, Lin and Fu, Wanyi and Lv, Jinglei and Sepulcre, Jorge and Yang, Carl and He, Lifang and Liu, Tianming and Kong, Xue-Jun and Li, Quanzheng and Barron, Daniel S. and Qiu, Anqi and Hirschtick, Randy and Kim, Byung-Hoon and Han, Hongbin and Li, Xiang and Yuan, Yixuan}, + journal = {Nature Biomedical Engineering}, + title = {Towards a general-purpose foundation model for functional MRI analysis}, + year = {2026}, + issn = {2157-846X}, + month = apr, + doi = {10.1038/s41551-026-01666-y}, + priority = {prio2}, + publisher = {Springer Science and Business Media LLC}, +} + @InProceedings{Wang7695, author = {Wang, Xiao and Zhang, Da and Gu, Tao and Pung, Hung}, booktitle = {Proceedings of the Second IEEE Annual Conference on Pervasive Computing and Communications Workshops (PERCOMW’04)}, @@ -21956,6 +22048,8 @@ @InProceedings{α΄ 1.6.02021 file = {:α΄ 1.6.02021 - Brain Imaging Data Structure Specification.pdf:PDF}, } +@Comment{jabref-meta: aiLibraryId:3c638047-7116-4db6-b0be-a380a34399de;} + @Comment{jabref-meta: databaseType:bibtex;} @Comment{jabref-meta: fileDirectory:/Users/leonmartin_bih/Library/Mobile Documents/com~apple~CloudDocs/Literature;} @@ -21965,7 +22059,7 @@ @Comment{jabref-meta: @Comment{jabref-meta: grouping: 0 AllEntriesGroup:; 1 StaticGroup:Stimulation\;2\;0\;0x4d8080ff\;LIGHTNING_FILL\;\;; -1 StaticGroup:AI Research\;2\;1\;\;\;\;; +1 StaticGroup:Agentic Science\;2\;1\;\;\;\;; 1 StaticGroup:ClinicalApplication\;2\;1\;0x57b1b6ff\;MEDICAL_BAG\;\;; 2 StaticGroup:Mental Disorders\;2\;1\;0x794ea4ff\;MEDICAL_BAG\;\;; 3 StaticGroup:Schizophrenia\;2\;1\;\;BRAIN\;\;; diff --git a/imgs/tvbo_anatomy.svg b/imgs/tvbo_anatomy.svg new file mode 100644 index 000000000..d18be6b30 --- /dev/null +++ b/imgs/tvbo_anatomy.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1000" height="404.16" viewBox="0 0 750 303.12"><defs><clipPath id="cm"><path d="M1.086 0h747.828v302.242H1.086Zm0 0"/></clipPath><clipPath id="cn"><path d="M1.086 0h747.828v272H1.086Zm0 0"/></clipPath><clipPath id="co"><path d="M1.086 0h747.828v302.121H1.086Zm0 0"/></clipPath><clipPath id="cp"><path d="M14.547 0H1.086v13.46q0-2.677 1.023-5.151A13.4 13.4 0 0 1 5.027 3.94a13.4 13.4 0 0 1 4.368-2.918A13.3 13.3 0 0 1 14.547 0m720.906 0q2.679 0 5.152 1.023a13.4 13.4 0 0 1 4.368 2.918 13.4 13.4 0 0 1 2.918 4.368 13.3 13.3 0 0 1 1.023 5.152V0Zm13.461 258q0 2.679-1.023 5.152a13.4 13.4 0 0 1-2.918 4.368 13.4 13.4 0 0 1-4.368 2.918 13.3 13.3 0 0 1-5.152 1.023H14.547q-2.679.001-5.152-1.024a13.4 13.4 0 0 1-4.368-2.917 13.4 13.4 0 0 1-2.918-4.368A13.3 13.3 0 0 1 1.086 258v44.121h747.828Zm0 0" clip-rule="evenodd"/></clipPath><clipPath id="cr"><path d="M2.582 1.496h744.836v268.469H2.582Zm0 0"/></clipPath><clipPath id="cs"><path d="M1.832 258V13.46q0-2.53.969-4.862a12.5 12.5 0 0 1 2.758-4.125 12.6 12.6 0 0 1 4.12-2.758 12.6 12.6 0 0 1 4.868-.969h720.906q2.531 0 4.867.969a12.6 12.6 0 0 1 4.121 2.758 12.5 12.5 0 0 1 2.758 4.125 12.6 12.6 0 0 1 .969 4.863V258q0 2.531-.969 4.867a12.6 12.6 0 0 1-2.758 4.125 12.6 12.6 0 0 1-4.12 2.754q-2.338.968-4.868.969H14.547q-2.531 0-4.867-.969a12.6 12.6 0 0 1-4.121-2.754 12.6 12.6 0 0 1-2.758-4.125A12.6 12.6 0 0 1 1.832 258m0 0"/></clipPath><clipPath id="cu"><path d="M1.086 0h747.828v280H1.086Zm0 0"/></clipPath><clipPath id="cJ"><path d="M19 41h423v142H19Zm0 0"/></clipPath><clipPath id="cK"><path d="M19.035 173.496V50.852a8.94 8.94 0 0 1 2.625-6.344 8.8 8.8 0 0 1 2.914-1.946 8.85 8.85 0 0 1 3.434-.683h404.574q1.787-.002 3.434.684a8.8 8.8 0 0 1 2.914 1.945 8.9 8.9 0 0 1 1.945 2.91 8.95 8.95 0 0 1 .684 3.434v122.644q-.002 1.787-.684 3.434a8.95 8.95 0 0 1-4.86 4.86 8.9 8.9 0 0 1-3.433.679H28.008a8.953 8.953 0 0 1-8.293-5.54 8.9 8.9 0 0 1-.68-3.433m0 0"/></clipPath><clipPath id="d"><path d="M.035.879h422.613v140.71H.035Zm0 0"/></clipPath><clipPath id="e"><path d="M.035 132.496V9.852A8.94 8.94 0 0 1 2.66 3.508a8.8 8.8 0 0 1 2.914-1.945A8.85 8.85 0 0 1 9.008.879h404.574q1.787-.001 3.434.684a8.8 8.8 0 0 1 2.914 1.945 8.9 8.9 0 0 1 1.945 2.91 8.95 8.95 0 0 1 .684 3.434v122.644q-.002 1.787-.684 3.434a8.95 8.95 0 0 1-4.86 4.86 8.9 8.9 0 0 1-3.433.679H9.008a8.953 8.953 0 0 1-8.293-5.54 8.9 8.9 0 0 1-.68-3.433m0 0"/></clipPath><clipPath id="f"><path d="M.035.879h422.613V6H.035Zm0 0"/></clipPath><clipPath id="g"><path d="M.035 132.496V9.852A8.94 8.94 0 0 1 2.66 3.508a8.8 8.8 0 0 1 2.914-1.945A8.85 8.85 0 0 1 9.008.879h404.574q1.787-.001 3.434.684a8.8 8.8 0 0 1 2.914 1.945 8.9 8.9 0 0 1 1.945 2.91 8.95 8.95 0 0 1 .684 3.434v122.644q-.002 1.787-.684 3.434a8.95 8.95 0 0 1-4.86 4.86 8.9 8.9 0 0 1-3.433.679H9.008a8.953 8.953 0 0 1-8.293-5.54 8.9 8.9 0 0 1-.68-3.433m0 0"/></clipPath><clipPath id="h"><path d="M422.887.64H-.207v141.188h423.094ZM.78 9.853v122.644q-.001 1.635.625 3.149a8.1 8.1 0 0 0 1.785 2.667 8.1 8.1 0 0 0 2.668 1.786 8.1 8.1 0 0 0 3.149.625h404.574q1.635.001 3.148-.625a8.1 8.1 0 0 0 2.668-1.786 8.1 8.1 0 0 0 1.786-2.667 8.1 8.1 0 0 0 .625-3.149V9.852q.001-1.636-.625-3.149a8.15 8.15 0 0 0-1.786-2.668 8.1 8.1 0 0 0-2.668-1.781 8.15 8.15 0 0 0-3.148-.629H9.008q-1.635 0-3.149.629a8.1 8.1 0 0 0-2.668 1.781 8.15 8.15 0 0 0-1.785 2.668 8.1 8.1 0 0 0-.625 3.149m0 0" clip-rule="evenodd"/></clipPath><clipPath id="i"><path d="m.035.879 4.86 4.86h412.8l4.864-4.86"/></clipPath><clipPath id="j"><path d="M.035 136h422.613v5.59H.035Zm0 0"/></clipPath><clipPath id="k"><path d="M.035 132.496V9.852A8.94 8.94 0 0 1 2.66 3.508a8.8 8.8 0 0 1 2.914-1.945A8.85 8.85 0 0 1 9.008.879h404.574q1.787-.001 3.434.684a8.8 8.8 0 0 1 2.914 1.945 8.9 8.9 0 0 1 1.945 2.91 8.95 8.95 0 0 1 .684 3.434v122.644q-.002 1.787-.684 3.434a8.95 8.95 0 0 1-4.86 4.86 8.9 8.9 0 0 1-3.433.679H9.008a8.953 8.953 0 0 1-8.293-5.54 8.9 8.9 0 0 1-.68-3.433m0 0"/></clipPath><clipPath id="l"><path d="M422.887.64H-.207v141.188h423.094ZM.78 9.853v122.644q-.001 1.635.625 3.149a8.1 8.1 0 0 0 1.785 2.667 8.1 8.1 0 0 0 2.668 1.786 8.1 8.1 0 0 0 3.149.625h404.574q1.635.001 3.148-.625a8.1 8.1 0 0 0 2.668-1.786 8.1 8.1 0 0 0 1.786-2.667 8.1 8.1 0 0 0 .625-3.149V9.852q.001-1.636-.625-3.149a8.15 8.15 0 0 0-1.786-2.668 8.1 8.1 0 0 0-2.668-1.781 8.15 8.15 0 0 0-3.148-.629H9.008q-1.635 0-3.149.629a8.1 8.1 0 0 0-2.668 1.781 8.15 8.15 0 0 0-1.785 2.668 8.1 8.1 0 0 0-.625 3.149m0 0" clip-rule="evenodd"/></clipPath><clipPath id="m"><path d="m422.559 141.469-4.864-4.86H4.895l-4.86 4.86"/></clipPath><clipPath id="n"><path d="M417 .879h5.648v140.71H417Zm0 0"/></clipPath><clipPath id="o"><path d="M.035 132.496V9.852A8.94 8.94 0 0 1 2.66 3.508a8.8 8.8 0 0 1 2.914-1.945A8.85 8.85 0 0 1 9.008.879h404.574q1.787-.001 3.434.684a8.8 8.8 0 0 1 2.914 1.945 8.9 8.9 0 0 1 1.945 2.91 8.95 8.95 0 0 1 .684 3.434v122.644q-.002 1.787-.684 3.434a8.95 8.95 0 0 1-4.86 4.86 8.9 8.9 0 0 1-3.433.679H9.008a8.953 8.953 0 0 1-8.293-5.54 8.9 8.9 0 0 1-.68-3.433m0 0"/></clipPath><clipPath id="p"><path d="M422.887.64H-.207v141.188h423.094ZM.78 9.853v122.644q-.001 1.635.625 3.149a8.1 8.1 0 0 0 1.785 2.667 8.1 8.1 0 0 0 2.668 1.786 8.1 8.1 0 0 0 3.149.625h404.574q1.635.001 3.148-.625a8.1 8.1 0 0 0 2.668-1.786 8.1 8.1 0 0 0 1.786-2.667 8.1 8.1 0 0 0 .625-3.149V9.852q.001-1.636-.625-3.149a8.15 8.15 0 0 0-1.786-2.668 8.1 8.1 0 0 0-2.668-1.781 8.15 8.15 0 0 0-3.148-.629H9.008q-1.635 0-3.149.629a8.1 8.1 0 0 0-2.668 1.781 8.15 8.15 0 0 0-1.785 2.668 8.1 8.1 0 0 0-.625 3.149m0 0" clip-rule="evenodd"/></clipPath><clipPath id="q"><path d="m422.559.879-4.864 4.86v130.87l4.864 4.86"/></clipPath><clipPath id="r"><path d="M.035.879H5v140.71H.035Zm0 0"/></clipPath><clipPath id="s"><path d="M.035 132.496V9.852A8.94 8.94 0 0 1 2.66 3.508a8.8 8.8 0 0 1 2.914-1.945A8.85 8.85 0 0 1 9.008.879h404.574q1.787-.001 3.434.684a8.8 8.8 0 0 1 2.914 1.945 8.9 8.9 0 0 1 1.945 2.91 8.95 8.95 0 0 1 .684 3.434v122.644q-.002 1.787-.684 3.434a8.95 8.95 0 0 1-4.86 4.86 8.9 8.9 0 0 1-3.433.679H9.008a8.953 8.953 0 0 1-8.293-5.54 8.9 8.9 0 0 1-.68-3.433m0 0"/></clipPath><clipPath id="t"><path d="M422.887.64H-.207v141.188h423.094ZM.78 9.853v122.644q-.001 1.635.625 3.149a8.1 8.1 0 0 0 1.785 2.667 8.1 8.1 0 0 0 2.668 1.786 8.1 8.1 0 0 0 3.149.625h404.574q1.635.001 3.148-.625a8.1 8.1 0 0 0 2.668-1.786 8.1 8.1 0 0 0 1.786-2.667 8.1 8.1 0 0 0 .625-3.149V9.852q.001-1.636-.625-3.149a8.15 8.15 0 0 0-1.786-2.668 8.1 8.1 0 0 0-2.668-1.781 8.15 8.15 0 0 0-3.148-.629H9.008q-1.635 0-3.149.629a8.1 8.1 0 0 0-2.668 1.781 8.15 8.15 0 0 0-1.785 2.668 8.1 8.1 0 0 0-.625 3.149m0 0" clip-rule="evenodd"/></clipPath><clipPath id="u"><path d="m.035 141.469 4.86-4.86V5.74L.035.878"/></clipPath><clipPath id="c"><path d="M0 0h423v142H0z"/></clipPath><clipPath id="dw"><path d="M449 41h282v47H449Zm0 0"/></clipPath><clipPath id="dx"><path d="M449.035 78.523V50.852q0-1.782.684-3.434a8.8 8.8 0 0 1 1.945-2.91 8.8 8.8 0 0 1 2.91-1.946 8.9 8.9 0 0 1 3.434-.683h263.984q1.788-.002 3.434.684a8.8 8.8 0 0 1 2.914 1.945 8.94 8.94 0 0 1 2.625 6.344v27.671a8.94 8.94 0 0 1-2.625 6.344 8.8 8.8 0 0 1-2.914 1.945 8.85 8.85 0 0 1-3.434.684H458.008a8.9 8.9 0 0 1-3.434-.683 8.8 8.8 0 0 1-2.91-1.946 8.8 8.8 0 0 1-1.945-2.91 8.9 8.9 0 0 1-.684-3.434m0 0"/></clipPath><clipPath id="w"><path d="M0 .879h281.965v45.707H0Zm0 0"/></clipPath><clipPath id="x"><path d="M.035 37.523V9.852q0-1.781.684-3.434a8.8 8.8 0 0 1 1.945-2.91 8.8 8.8 0 0 1 2.91-1.945A8.9 8.9 0 0 1 9.008.879h263.984q1.788-.001 3.434.684a8.8 8.8 0 0 1 2.914 1.945 8.94 8.94 0 0 1 2.625 6.344v27.671a8.94 8.94 0 0 1-2.625 6.344 8.8 8.8 0 0 1-2.914 1.946 8.85 8.85 0 0 1-3.434.683H9.008a8.9 8.9 0 0 1-3.434-.684 8.8 8.8 0 0 1-2.91-1.945 8.8 8.8 0 0 1-1.945-2.91 8.9 8.9 0 0 1-.684-3.434m0 0"/></clipPath><clipPath id="y"><path d="M0 .879h281.965V6H0Zm0 0"/></clipPath><clipPath id="z"><path d="M.035 37.523V9.852q0-1.781.684-3.434a8.8 8.8 0 0 1 1.945-2.91 8.8 8.8 0 0 1 2.91-1.945A8.9 8.9 0 0 1 9.008.879h263.984q1.788-.001 3.434.684a8.8 8.8 0 0 1 2.914 1.945 8.94 8.94 0 0 1 2.625 6.344v27.671a8.94 8.94 0 0 1-2.625 6.344 8.8 8.8 0 0 1-2.914 1.946 8.85 8.85 0 0 1-3.434.683H9.008a8.9 8.9 0 0 1-3.434-.684 8.8 8.8 0 0 1-2.91-1.945 8.8 8.8 0 0 1-1.945-2.91 8.9 8.9 0 0 1-.684-3.434m0 0"/></clipPath><clipPath id="A"><path d="M282.207.64H-.414v46.184h282.621ZM.781 9.853v27.671q0 1.636.63 3.149a8.2 8.2 0 0 0 4.448 4.45 8.15 8.15 0 0 0 3.149.628h263.984q1.635 0 3.149-.629a8.2 8.2 0 0 0 2.668-1.781 8.15 8.15 0 0 0 1.785-2.668 8.1 8.1 0 0 0 .625-3.149V9.852q.001-1.636-.625-3.149a8.15 8.15 0 0 0-1.785-2.668 8.1 8.1 0 0 0-2.668-1.781 8.15 8.15 0 0 0-3.149-.629H9.008q-1.635 0-3.149.629a8.198 8.198 0 0 0-4.45 4.45 8.15 8.15 0 0 0-.628 3.148m0 0" clip-rule="evenodd"/></clipPath><clipPath id="B"><path d="m.035.879 4.86 4.86h272.21l4.86-4.86"/></clipPath><clipPath id="C"><path d="M0 41h281.965v5.586H0Zm0 0"/></clipPath><clipPath id="D"><path d="M.035 37.523V9.852q0-1.781.684-3.434a8.8 8.8 0 0 1 1.945-2.91 8.8 8.8 0 0 1 2.91-1.945A8.9 8.9 0 0 1 9.008.879h263.984q1.788-.001 3.434.684a8.8 8.8 0 0 1 2.914 1.945 8.94 8.94 0 0 1 2.625 6.344v27.671a8.94 8.94 0 0 1-2.625 6.344 8.8 8.8 0 0 1-2.914 1.946 8.85 8.85 0 0 1-3.434.683H9.008a8.9 8.9 0 0 1-3.434-.684 8.8 8.8 0 0 1-2.91-1.945 8.8 8.8 0 0 1-1.945-2.91 8.9 8.9 0 0 1-.684-3.434m0 0"/></clipPath><clipPath id="E"><path d="M282.207.64H-.414v46.184h282.621ZM.781 9.853v27.671q0 1.636.63 3.149a8.2 8.2 0 0 0 4.448 4.45 8.15 8.15 0 0 0 3.149.628h263.984q1.635 0 3.149-.629a8.2 8.2 0 0 0 2.668-1.781 8.15 8.15 0 0 0 1.785-2.668 8.1 8.1 0 0 0 .625-3.149V9.852q.001-1.636-.625-3.149a8.15 8.15 0 0 0-1.785-2.668 8.1 8.1 0 0 0-2.668-1.781 8.15 8.15 0 0 0-3.149-.629H9.008q-1.635 0-3.149.629a8.198 8.198 0 0 0-4.45 4.45 8.15 8.15 0 0 0-.628 3.148m0 0" clip-rule="evenodd"/></clipPath><clipPath id="F"><path d="m281.965 46.496-4.86-4.86H4.895l-4.86 4.86"/></clipPath><clipPath id="G"><path d="M277 .879h4.965v45.707H277Zm0 0"/></clipPath><clipPath id="H"><path d="M.035 37.523V9.852q0-1.781.684-3.434a8.8 8.8 0 0 1 1.945-2.91 8.8 8.8 0 0 1 2.91-1.945A8.9 8.9 0 0 1 9.008.879h263.984q1.788-.001 3.434.684a8.8 8.8 0 0 1 2.914 1.945 8.94 8.94 0 0 1 2.625 6.344v27.671a8.94 8.94 0 0 1-2.625 6.344 8.8 8.8 0 0 1-2.914 1.946 8.85 8.85 0 0 1-3.434.683H9.008a8.9 8.9 0 0 1-3.434-.684 8.8 8.8 0 0 1-2.91-1.945 8.8 8.8 0 0 1-1.945-2.91 8.9 8.9 0 0 1-.684-3.434m0 0"/></clipPath><clipPath id="I"><path d="M282.207.64H-.414v46.184h282.621ZM.781 9.853v27.671q0 1.636.63 3.149a8.2 8.2 0 0 0 4.448 4.45 8.15 8.15 0 0 0 3.149.628h263.984q1.635 0 3.149-.629a8.2 8.2 0 0 0 2.668-1.781 8.15 8.15 0 0 0 1.785-2.668 8.1 8.1 0 0 0 .625-3.149V9.852q.001-1.636-.625-3.149a8.15 8.15 0 0 0-1.785-2.668 8.1 8.1 0 0 0-2.668-1.781 8.15 8.15 0 0 0-3.149-.629H9.008q-1.635 0-3.149.629a8.198 8.198 0 0 0-4.45 4.45 8.15 8.15 0 0 0-.628 3.148m0 0" clip-rule="evenodd"/></clipPath><clipPath id="J"><path d="m281.965.879-4.86 4.86v35.898l4.86 4.86"/></clipPath><clipPath id="K"><path d="M0 .879h5v45.707H0Zm0 0"/></clipPath><clipPath id="L"><path d="M.035 37.523V9.852q0-1.781.684-3.434a8.8 8.8 0 0 1 1.945-2.91 8.8 8.8 0 0 1 2.91-1.945A8.9 8.9 0 0 1 9.008.879h263.984q1.788-.001 3.434.684a8.8 8.8 0 0 1 2.914 1.945 8.94 8.94 0 0 1 2.625 6.344v27.671a8.94 8.94 0 0 1-2.625 6.344 8.8 8.8 0 0 1-2.914 1.946 8.85 8.85 0 0 1-3.434.683H9.008a8.9 8.9 0 0 1-3.434-.684 8.8 8.8 0 0 1-2.91-1.945 8.8 8.8 0 0 1-1.945-2.91 8.9 8.9 0 0 1-.684-3.434m0 0"/></clipPath><clipPath id="M"><path d="M282.207.64H-.414v46.184h282.621ZM.781 9.853v27.671q0 1.636.63 3.149a8.2 8.2 0 0 0 4.448 4.45 8.15 8.15 0 0 0 3.149.628h263.984q1.635 0 3.149-.629a8.2 8.2 0 0 0 2.668-1.781 8.15 8.15 0 0 0 1.785-2.668 8.1 8.1 0 0 0 .625-3.149V9.852q.001-1.636-.625-3.149a8.15 8.15 0 0 0-1.785-2.668 8.1 8.1 0 0 0-2.668-1.781 8.15 8.15 0 0 0-3.149-.629H9.008q-1.635 0-3.149.629a8.198 8.198 0 0 0-4.45 4.45 8.15 8.15 0 0 0-.628 3.148m0 0" clip-rule="evenodd"/></clipPath><clipPath id="N"><path d="m.035 46.496 4.86-4.86V5.739L.035.878"/></clipPath><clipPath id="v"><path d="M0 0h282v47H0z"/></clipPath><clipPath id="dH"><path d="M449 94h282v89H449Zm0 0"/></clipPath><clipPath id="dI"><path d="M449.035 173.496V103.95q0-1.787.684-3.433a8.8 8.8 0 0 1 1.945-2.914 8.9 8.9 0 0 1 2.91-1.946 8.95 8.95 0 0 1 3.434-.683h263.984q1.788.002 3.434.683a8.95 8.95 0 0 1 4.86 4.86 8.9 8.9 0 0 1 .679 3.433v69.547a8.953 8.953 0 0 1-5.54 8.293 8.9 8.9 0 0 1-3.433.68H458.008a8.94 8.94 0 0 1-6.344-2.625 8.8 8.8 0 0 1-1.945-2.914 8.85 8.85 0 0 1-.684-3.434m0 0"/></clipPath><clipPath id="P"><path d="M0 .766h281.965V88.59H0Zm0 0"/></clipPath><clipPath id="Q"><path d="M.035 79.496V9.95q0-1.787.684-3.433a8.8 8.8 0 0 1 1.945-2.914 8.9 8.9 0 0 1 2.91-1.946A8.95 8.95 0 0 1 9.008.973h263.984q1.788.002 3.434.683a8.95 8.95 0 0 1 4.86 4.86 8.9 8.9 0 0 1 .679 3.433v69.547a8.953 8.953 0 0 1-5.54 8.293 8.9 8.9 0 0 1-3.433.68H9.008a8.94 8.94 0 0 1-6.344-2.625A8.8 8.8 0 0 1 .72 82.93a8.85 8.85 0 0 1-.684-3.434m0 0"/></clipPath><clipPath id="R"><path d="M0 .766h281.965V6H0Zm0 0"/></clipPath><clipPath id="S"><path d="M.035 79.496V9.95q0-1.787.684-3.433a8.8 8.8 0 0 1 1.945-2.914 8.9 8.9 0 0 1 2.91-1.946A8.95 8.95 0 0 1 9.008.973h263.984q1.788.002 3.434.683a8.95 8.95 0 0 1 4.86 4.86 8.9 8.9 0 0 1 .679 3.433v69.547a8.953 8.953 0 0 1-5.54 8.293 8.9 8.9 0 0 1-3.433.68H9.008a8.94 8.94 0 0 1-6.344-2.625A8.8 8.8 0 0 1 .72 82.93a8.85 8.85 0 0 1-.684-3.434m0 0"/></clipPath><clipPath id="T"><path d="M282.207.527H-.414v88.301h282.621ZM.781 9.95v69.547q0 1.635.63 3.149a8.2 8.2 0 0 0 1.78 2.668 8.15 8.15 0 0 0 2.668 1.785 8.1 8.1 0 0 0 3.149.625h263.984q1.635.001 3.149-.625a8.1 8.1 0 0 0 2.668-1.785 8.1 8.1 0 0 0 1.785-2.668 8.1 8.1 0 0 0 .625-3.149V9.95c0-1.094-.207-2.14-.625-3.148a8.1 8.1 0 0 0-1.785-2.668 8.1 8.1 0 0 0-2.668-1.785 8.1 8.1 0 0 0-3.149-.625H9.008q-1.635-.001-3.149.625a8.15 8.15 0 0 0-2.668 1.785A8.2 8.2 0 0 0 1.411 6.8a8.1 8.1 0 0 0-.63 3.148m0 0" clip-rule="evenodd"/></clipPath><clipPath id="U"><path d="m.035.973 4.86 4.863h272.21l4.86-4.863"/></clipPath><clipPath id="V"><path d="M0 83h281.965v5.59H0Zm0 0"/></clipPath><clipPath id="W"><path d="M.035 79.496V9.95q0-1.787.684-3.433a8.8 8.8 0 0 1 1.945-2.914 8.9 8.9 0 0 1 2.91-1.946A8.95 8.95 0 0 1 9.008.973h263.984q1.788.002 3.434.683a8.95 8.95 0 0 1 4.86 4.86 8.9 8.9 0 0 1 .679 3.433v69.547a8.953 8.953 0 0 1-5.54 8.293 8.9 8.9 0 0 1-3.433.68H9.008a8.94 8.94 0 0 1-6.344-2.625A8.8 8.8 0 0 1 .72 82.93a8.85 8.85 0 0 1-.684-3.434m0 0"/></clipPath><clipPath id="X"><path d="M282.207.527H-.414v88.301h282.621ZM.781 9.95v69.547q0 1.635.63 3.149a8.2 8.2 0 0 0 1.78 2.668 8.15 8.15 0 0 0 2.668 1.785 8.1 8.1 0 0 0 3.149.625h263.984q1.635.001 3.149-.625a8.1 8.1 0 0 0 2.668-1.785 8.1 8.1 0 0 0 1.785-2.668 8.1 8.1 0 0 0 .625-3.149V9.95c0-1.094-.207-2.14-.625-3.148a8.1 8.1 0 0 0-1.785-2.668 8.1 8.1 0 0 0-2.668-1.785 8.1 8.1 0 0 0-3.149-.625H9.008q-1.635-.001-3.149.625a8.15 8.15 0 0 0-2.668 1.785A8.2 8.2 0 0 0 1.411 6.8a8.1 8.1 0 0 0-.63 3.148m0 0" clip-rule="evenodd"/></clipPath><clipPath id="Y"><path d="m281.965 88.469-4.86-4.86H4.895l-4.86 4.86"/></clipPath><clipPath id="Z"><path d="M277 .766h4.965V88.59H277Zm0 0"/></clipPath><clipPath id="aa"><path d="M.035 79.496V9.95q0-1.787.684-3.433a8.8 8.8 0 0 1 1.945-2.914 8.9 8.9 0 0 1 2.91-1.946A8.95 8.95 0 0 1 9.008.973h263.984q1.788.002 3.434.683a8.95 8.95 0 0 1 4.86 4.86 8.9 8.9 0 0 1 .679 3.433v69.547a8.953 8.953 0 0 1-5.54 8.293 8.9 8.9 0 0 1-3.433.68H9.008a8.94 8.94 0 0 1-6.344-2.625A8.8 8.8 0 0 1 .72 82.93a8.85 8.85 0 0 1-.684-3.434m0 0"/></clipPath><clipPath id="ab"><path d="M282.207.527H-.414v88.301h282.621ZM.781 9.95v69.547q0 1.635.63 3.149a8.2 8.2 0 0 0 1.78 2.668 8.15 8.15 0 0 0 2.668 1.785 8.1 8.1 0 0 0 3.149.625h263.984q1.635.001 3.149-.625a8.1 8.1 0 0 0 2.668-1.785 8.1 8.1 0 0 0 1.785-2.668 8.1 8.1 0 0 0 .625-3.149V9.95c0-1.094-.207-2.14-.625-3.148a8.1 8.1 0 0 0-1.785-2.668 8.1 8.1 0 0 0-2.668-1.785 8.1 8.1 0 0 0-3.149-.625H9.008q-1.635-.001-3.149.625a8.15 8.15 0 0 0-2.668 1.785A8.2 8.2 0 0 0 1.411 6.8a8.1 8.1 0 0 0-.63 3.148m0 0" clip-rule="evenodd"/></clipPath><clipPath id="ac"><path d="m281.965.973-4.86 4.863v77.773l4.86 4.86"/></clipPath><clipPath id="ad"><path d="M0 .766h5V88.59H0Zm0 0"/></clipPath><clipPath id="ae"><path d="M.035 79.496V9.95q0-1.787.684-3.433a8.8 8.8 0 0 1 1.945-2.914 8.9 8.9 0 0 1 2.91-1.946A8.95 8.95 0 0 1 9.008.973h263.984q1.788.002 3.434.683a8.95 8.95 0 0 1 4.86 4.86 8.9 8.9 0 0 1 .679 3.433v69.547a8.953 8.953 0 0 1-5.54 8.293 8.9 8.9 0 0 1-3.433.68H9.008a8.94 8.94 0 0 1-6.344-2.625A8.8 8.8 0 0 1 .72 82.93a8.85 8.85 0 0 1-.684-3.434m0 0"/></clipPath><clipPath id="af"><path d="M282.207.527H-.414v88.301h282.621ZM.781 9.95v69.547q0 1.635.63 3.149a8.2 8.2 0 0 0 1.78 2.668 8.15 8.15 0 0 0 2.668 1.785 8.1 8.1 0 0 0 3.149.625h263.984q1.635.001 3.149-.625a8.1 8.1 0 0 0 2.668-1.785 8.1 8.1 0 0 0 1.785-2.668 8.1 8.1 0 0 0 .625-3.149V9.95c0-1.094-.207-2.14-.625-3.148a8.1 8.1 0 0 0-1.785-2.668 8.1 8.1 0 0 0-2.668-1.785 8.1 8.1 0 0 0-3.149-.625H9.008q-1.635-.001-3.149.625a8.15 8.15 0 0 0-2.668 1.785A8.2 8.2 0 0 0 1.411 6.8a8.1 8.1 0 0 0-.63 3.148m0 0" clip-rule="evenodd"/></clipPath><clipPath id="ag"><path d="m.035 88.469 4.86-4.86V5.836L.035.973"/></clipPath><clipPath id="O"><path d="M0 0h282v89H0z"/></clipPath><clipPath id="dO"><path d="M19 191h190v66H19Zm0 0"/></clipPath><clipPath id="dP"><path d="M19.035 247.531v-47.113q0-1.787.68-3.434a8.9 8.9 0 0 1 1.945-2.91 8.8 8.8 0 0 1 2.914-1.945 8.85 8.85 0 0 1 3.434-.684h171.254q1.781 0 3.433.684a8.8 8.8 0 0 1 2.91 1.945 8.9 8.9 0 0 1 1.946 2.91 8.85 8.85 0 0 1 .683 3.434v47.113a8.85 8.85 0 0 1-.683 3.434 8.9 8.9 0 0 1-1.946 2.91 8.8 8.8 0 0 1-2.91 1.945 8.9 8.9 0 0 1-3.433.684H28.008a8.85 8.85 0 0 1-3.434-.684 8.8 8.8 0 0 1-2.914-1.945 8.9 8.9 0 0 1-1.945-2.91 8.9 8.9 0 0 1-.68-3.434m0 0"/></clipPath><clipPath id="ai"><path d="M.035.445h189.29v65.09H.034Zm0 0"/></clipPath><clipPath id="aj"><path d="M.035 56.531V9.418q0-1.787.68-3.434a8.9 8.9 0 0 1 1.945-2.91A8.8 8.8 0 0 1 5.574 1.13 8.85 8.85 0 0 1 9.008.445h171.254q1.781 0 3.433.684a8.8 8.8 0 0 1 2.91 1.945 8.9 8.9 0 0 1 1.946 2.91 8.85 8.85 0 0 1 .683 3.434v47.113a8.85 8.85 0 0 1-.683 3.434 8.9 8.9 0 0 1-1.946 2.91 8.8 8.8 0 0 1-2.91 1.945 8.9 8.9 0 0 1-3.433.684H9.008a8.85 8.85 0 0 1-3.434-.684 8.8 8.8 0 0 1-2.914-1.945 8.9 8.9 0 0 1-1.945-2.91 8.9 8.9 0 0 1-.68-3.434m0 0"/></clipPath><clipPath id="ak"><path d="M.035.445h189.29V6H.034Zm0 0"/></clipPath><clipPath id="al"><path d="M.035 56.531V9.418q0-1.787.68-3.434a8.9 8.9 0 0 1 1.945-2.91A8.8 8.8 0 0 1 5.574 1.13 8.85 8.85 0 0 1 9.008.445h171.254q1.781 0 3.433.684a8.8 8.8 0 0 1 2.91 1.945 8.9 8.9 0 0 1 1.946 2.91 8.85 8.85 0 0 1 .683 3.434v47.113a8.85 8.85 0 0 1-.683 3.434 8.9 8.9 0 0 1-1.946 2.91 8.8 8.8 0 0 1-2.91 1.945 8.9 8.9 0 0 1-3.433.684H9.008a8.85 8.85 0 0 1-3.434-.684 8.8 8.8 0 0 1-2.914-1.945 8.9 8.9 0 0 1-1.945-2.91 8.9 8.9 0 0 1-.68-3.434m0 0"/></clipPath><clipPath id="am"><path d="M189.563.203H-.208v65.57h189.77ZM.78 9.418v47.113q-.001 1.635.625 3.149a8.1 8.1 0 0 0 1.785 2.668 8.215 8.215 0 0 0 5.816 2.41h171.255q1.633-.002 3.144-.625a8.2 8.2 0 0 0 2.672-1.785 8.2 8.2 0 0 0 1.781-2.668 8.1 8.1 0 0 0 .625-3.149V9.418q.001-1.636-.625-3.148a8.2 8.2 0 0 0-1.78-2.668 8.2 8.2 0 0 0-2.673-1.786 8.2 8.2 0 0 0-3.144-.625H9.008a8.22 8.22 0 0 0-5.817 2.41A8.1 8.1 0 0 0 1.406 6.27a8.1 8.1 0 0 0-.625 3.148m0 0" clip-rule="evenodd"/></clipPath><clipPath id="an"><path d="m.035.445 4.86 4.86h179.48l4.86-4.86"/></clipPath><clipPath id="ao"><path d="M.035 60h189.29v5.535H.034Zm0 0"/></clipPath><clipPath id="ap"><path d="M.035 56.531V9.418q0-1.787.68-3.434a8.9 8.9 0 0 1 1.945-2.91A8.8 8.8 0 0 1 5.574 1.13 8.85 8.85 0 0 1 9.008.445h171.254q1.781 0 3.433.684a8.8 8.8 0 0 1 2.91 1.945 8.9 8.9 0 0 1 1.946 2.91 8.85 8.85 0 0 1 .683 3.434v47.113a8.85 8.85 0 0 1-.683 3.434 8.9 8.9 0 0 1-1.946 2.91 8.8 8.8 0 0 1-2.91 1.945 8.9 8.9 0 0 1-3.433.684H9.008a8.85 8.85 0 0 1-3.434-.684 8.8 8.8 0 0 1-2.914-1.945 8.9 8.9 0 0 1-1.945-2.91 8.9 8.9 0 0 1-.68-3.434m0 0"/></clipPath><clipPath id="aq"><path d="M189.563.203H-.208v65.57h189.77ZM.78 9.418v47.113q-.001 1.635.625 3.149a8.1 8.1 0 0 0 1.785 2.668 8.215 8.215 0 0 0 5.816 2.41h171.255q1.633-.002 3.144-.625a8.2 8.2 0 0 0 2.672-1.785 8.2 8.2 0 0 0 1.781-2.668 8.1 8.1 0 0 0 .625-3.149V9.418q.001-1.636-.625-3.148a8.2 8.2 0 0 0-1.78-2.668 8.2 8.2 0 0 0-2.673-1.786 8.2 8.2 0 0 0-3.144-.625H9.008a8.22 8.22 0 0 0-5.817 2.41A8.1 8.1 0 0 0 1.406 6.27a8.1 8.1 0 0 0-.625 3.148m0 0" clip-rule="evenodd"/></clipPath><clipPath id="ar"><path d="m189.234 65.504-4.859-4.86H4.895l-4.86 4.86"/></clipPath><clipPath id="as"><path d="M184 .445h5.324v65.09H184Zm0 0"/></clipPath><clipPath id="at"><path d="M.035 56.531V9.418q0-1.787.68-3.434a8.9 8.9 0 0 1 1.945-2.91A8.8 8.8 0 0 1 5.574 1.13 8.85 8.85 0 0 1 9.008.445h171.254q1.781 0 3.433.684a8.8 8.8 0 0 1 2.91 1.945 8.9 8.9 0 0 1 1.946 2.91 8.85 8.85 0 0 1 .683 3.434v47.113a8.85 8.85 0 0 1-.683 3.434 8.9 8.9 0 0 1-1.946 2.91 8.8 8.8 0 0 1-2.91 1.945 8.9 8.9 0 0 1-3.433.684H9.008a8.85 8.85 0 0 1-3.434-.684 8.8 8.8 0 0 1-2.914-1.945 8.9 8.9 0 0 1-1.945-2.91 8.9 8.9 0 0 1-.68-3.434m0 0"/></clipPath><clipPath id="au"><path d="M189.563.203H-.208v65.57h189.77ZM.78 9.418v47.113q-.001 1.635.625 3.149a8.1 8.1 0 0 0 1.785 2.668 8.215 8.215 0 0 0 5.816 2.41h171.255q1.633-.002 3.144-.625a8.2 8.2 0 0 0 2.672-1.785 8.2 8.2 0 0 0 1.781-2.668 8.1 8.1 0 0 0 .625-3.149V9.418q.001-1.636-.625-3.148a8.2 8.2 0 0 0-1.78-2.668 8.2 8.2 0 0 0-2.673-1.786 8.2 8.2 0 0 0-3.144-.625H9.008a8.22 8.22 0 0 0-5.817 2.41A8.1 8.1 0 0 0 1.406 6.27a8.1 8.1 0 0 0-.625 3.148m0 0" clip-rule="evenodd"/></clipPath><clipPath id="av"><path d="m189.234.445-4.859 4.86v55.34l4.86 4.859"/></clipPath><clipPath id="aw"><path d="M.035.445H5v65.09H.035Zm0 0"/></clipPath><clipPath id="ax"><path d="M.035 56.531V9.418q0-1.787.68-3.434a8.9 8.9 0 0 1 1.945-2.91A8.8 8.8 0 0 1 5.574 1.13 8.85 8.85 0 0 1 9.008.445h171.254q1.781 0 3.433.684a8.8 8.8 0 0 1 2.91 1.945 8.9 8.9 0 0 1 1.946 2.91 8.85 8.85 0 0 1 .683 3.434v47.113a8.85 8.85 0 0 1-.683 3.434 8.9 8.9 0 0 1-1.946 2.91 8.8 8.8 0 0 1-2.91 1.945 8.9 8.9 0 0 1-3.433.684H9.008a8.85 8.85 0 0 1-3.434-.684 8.8 8.8 0 0 1-2.914-1.945 8.9 8.9 0 0 1-1.945-2.91 8.9 8.9 0 0 1-.68-3.434m0 0"/></clipPath><clipPath id="ay"><path d="M189.563.203H-.208v65.57h189.77ZM.78 9.418v47.113q-.001 1.635.625 3.149a8.1 8.1 0 0 0 1.785 2.668 8.215 8.215 0 0 0 5.816 2.41h171.255q1.633-.002 3.144-.625a8.2 8.2 0 0 0 2.672-1.785 8.2 8.2 0 0 0 1.781-2.668 8.1 8.1 0 0 0 .625-3.149V9.418q.001-1.636-.625-3.148a8.2 8.2 0 0 0-1.78-2.668 8.2 8.2 0 0 0-2.673-1.786 8.2 8.2 0 0 0-3.144-.625H9.008a8.22 8.22 0 0 0-5.817 2.41A8.1 8.1 0 0 0 1.406 6.27a8.1 8.1 0 0 0-.625 3.148m0 0" clip-rule="evenodd"/></clipPath><clipPath id="az"><path d="m.035 65.504 4.86-4.86V5.305L.035.446"/></clipPath><clipPath id="ah"><path d="M0 0h190v66H0z"/></clipPath><clipPath id="dW"><path d="M215 191h157v66H215Zm0 0"/></clipPath><clipPath id="dX"><path d="M215.71 247.531v-47.113q.002-1.787.685-3.434a8.9 8.9 0 0 1 1.945-2.91 8.8 8.8 0 0 1 2.914-1.945 8.85 8.85 0 0 1 3.434-.684h137.597q1.787 0 3.438.684a8.9 8.9 0 0 1 2.91 1.945 8.9 8.9 0 0 1 1.945 2.91 8.9 8.9 0 0 1 .684 3.434v47.113q-.002 1.788-.684 3.434a8.9 8.9 0 0 1-1.945 2.91 8.9 8.9 0 0 1-2.91 1.945 8.9 8.9 0 0 1-3.438.684H224.687a8.85 8.85 0 0 1-3.433-.684 8.8 8.8 0 0 1-2.914-1.945 8.9 8.9 0 0 1-1.945-2.91 8.9 8.9 0 0 1-.684-3.434m0 0"/></clipPath><clipPath id="aB"><path d="M.504.445h155.785v65.09H.504Zm0 0"/></clipPath><clipPath id="aC"><path d="M.71 56.531V9.418c0-1.191.231-2.336.685-3.434a8.9 8.9 0 0 1 1.945-2.91A8.8 8.8 0 0 1 6.254 1.13 8.85 8.85 0 0 1 9.688.445h137.597q1.786 0 3.438.684a8.9 8.9 0 0 1 2.91 1.945 8.9 8.9 0 0 1 1.945 2.91 8.9 8.9 0 0 1 .684 3.434v47.113q-.001 1.787-.684 3.434a8.9 8.9 0 0 1-1.945 2.91 8.9 8.9 0 0 1-2.91 1.945 8.9 8.9 0 0 1-3.438.684H9.688a8.85 8.85 0 0 1-3.434-.684 8.8 8.8 0 0 1-2.914-1.945 8.9 8.9 0 0 1-1.945-2.91A8.9 8.9 0 0 1 .71 56.53m0 0"/></clipPath><clipPath id="aD"><path d="M.504.445h155.785V6H.504Zm0 0"/></clipPath><clipPath id="aE"><path d="M.71 56.531V9.418c0-1.191.231-2.336.685-3.434a8.9 8.9 0 0 1 1.945-2.91A8.8 8.8 0 0 1 6.254 1.13 8.85 8.85 0 0 1 9.688.445h137.597q1.786 0 3.438.684a8.9 8.9 0 0 1 2.91 1.945 8.9 8.9 0 0 1 1.945 2.91 8.9 8.9 0 0 1 .684 3.434v47.113q-.001 1.787-.684 3.434a8.9 8.9 0 0 1-1.945 2.91 8.9 8.9 0 0 1-2.91 1.945 8.9 8.9 0 0 1-3.438.684H9.688a8.85 8.85 0 0 1-3.434-.684 8.8 8.8 0 0 1-2.914-1.945 8.9 8.9 0 0 1-1.945-2.91A8.9 8.9 0 0 1 .71 56.53m0 0"/></clipPath><clipPath id="aF"><path d="M156.531.203H.266v65.57H156.53ZM1.461 9.418v47.113q-.001 1.635.625 3.149a8.1 8.1 0 0 0 1.785 2.668 8.201 8.201 0 0 0 5.816 2.41h137.598c1.094 0 2.14-.211 3.149-.625a8.2 8.2 0 0 0 2.671-1.785 8.2 8.2 0 0 0 1.782-2.668 8.1 8.1 0 0 0 .625-3.149V9.418q.001-1.636-.625-3.148a8.2 8.2 0 0 0-1.782-2.668 8.2 8.2 0 0 0-2.671-1.786 8.2 8.2 0 0 0-3.149-.625H9.688a8.2 8.2 0 0 0-5.817 2.41A8.1 8.1 0 0 0 2.086 6.27a8.1 8.1 0 0 0-.625 3.148m0 0" clip-rule="evenodd"/></clipPath><clipPath id="aG"><path d="m.71.445 4.864 4.86h145.824l4.864-4.86"/></clipPath><clipPath id="aH"><path d="M.504 60h155.785v5.535H.504Zm0 0"/></clipPath><clipPath id="aI"><path d="M.71 56.531V9.418c0-1.191.231-2.336.685-3.434a8.9 8.9 0 0 1 1.945-2.91A8.8 8.8 0 0 1 6.254 1.13 8.85 8.85 0 0 1 9.688.445h137.597q1.786 0 3.438.684a8.9 8.9 0 0 1 2.91 1.945 8.9 8.9 0 0 1 1.945 2.91 8.9 8.9 0 0 1 .684 3.434v47.113q-.001 1.787-.684 3.434a8.9 8.9 0 0 1-1.945 2.91 8.9 8.9 0 0 1-2.91 1.945 8.9 8.9 0 0 1-3.438.684H9.688a8.85 8.85 0 0 1-3.434-.684 8.8 8.8 0 0 1-2.914-1.945 8.9 8.9 0 0 1-1.945-2.91A8.9 8.9 0 0 1 .71 56.53m0 0"/></clipPath><clipPath id="aJ"><path d="M156.531.203H.266v65.57H156.53ZM1.461 9.418v47.113q-.001 1.635.625 3.149a8.1 8.1 0 0 0 1.785 2.668 8.201 8.201 0 0 0 5.816 2.41h137.598c1.094 0 2.14-.211 3.149-.625a8.2 8.2 0 0 0 2.671-1.785 8.2 8.2 0 0 0 1.782-2.668 8.1 8.1 0 0 0 .625-3.149V9.418q.001-1.636-.625-3.148a8.2 8.2 0 0 0-1.782-2.668 8.2 8.2 0 0 0-2.671-1.786 8.2 8.2 0 0 0-3.149-.625H9.688a8.2 8.2 0 0 0-5.817 2.41A8.1 8.1 0 0 0 2.086 6.27a8.1 8.1 0 0 0-.625 3.148m0 0" clip-rule="evenodd"/></clipPath><clipPath id="aK"><path d="m156.262 65.504-4.864-4.86H5.574l-4.863 4.86"/></clipPath><clipPath id="aL"><path d="M151 .445h5.29v65.09H151Zm0 0"/></clipPath><clipPath id="aM"><path d="M.71 56.531V9.418c0-1.191.231-2.336.685-3.434a8.9 8.9 0 0 1 1.945-2.91A8.8 8.8 0 0 1 6.254 1.13 8.85 8.85 0 0 1 9.688.445h137.597q1.786 0 3.438.684a8.9 8.9 0 0 1 2.91 1.945 8.9 8.9 0 0 1 1.945 2.91 8.9 8.9 0 0 1 .684 3.434v47.113q-.001 1.787-.684 3.434a8.9 8.9 0 0 1-1.945 2.91 8.9 8.9 0 0 1-2.91 1.945 8.9 8.9 0 0 1-3.438.684H9.688a8.85 8.85 0 0 1-3.434-.684 8.8 8.8 0 0 1-2.914-1.945 8.9 8.9 0 0 1-1.945-2.91A8.9 8.9 0 0 1 .71 56.53m0 0"/></clipPath><clipPath id="aN"><path d="M156.531.203H.266v65.57H156.53ZM1.461 9.418v47.113q-.001 1.635.625 3.149a8.1 8.1 0 0 0 1.785 2.668 8.201 8.201 0 0 0 5.816 2.41h137.598c1.094 0 2.14-.211 3.149-.625a8.2 8.2 0 0 0 2.671-1.785 8.2 8.2 0 0 0 1.782-2.668 8.1 8.1 0 0 0 .625-3.149V9.418q.001-1.636-.625-3.148a8.2 8.2 0 0 0-1.782-2.668 8.2 8.2 0 0 0-2.671-1.786 8.2 8.2 0 0 0-3.149-.625H9.688a8.2 8.2 0 0 0-5.817 2.41A8.1 8.1 0 0 0 2.086 6.27a8.1 8.1 0 0 0-.625 3.148m0 0" clip-rule="evenodd"/></clipPath><clipPath id="aO"><path d="m156.262.445-4.864 4.86v55.34l4.864 4.859"/></clipPath><clipPath id="aP"><path d="M.504.445H6v65.09H.504Zm0 0"/></clipPath><clipPath id="aQ"><path d="M.71 56.531V9.418c0-1.191.231-2.336.685-3.434a8.9 8.9 0 0 1 1.945-2.91A8.8 8.8 0 0 1 6.254 1.13 8.85 8.85 0 0 1 9.688.445h137.597q1.786 0 3.438.684a8.9 8.9 0 0 1 2.91 1.945 8.9 8.9 0 0 1 1.945 2.91 8.9 8.9 0 0 1 .684 3.434v47.113q-.001 1.787-.684 3.434a8.9 8.9 0 0 1-1.945 2.91 8.9 8.9 0 0 1-2.91 1.945 8.9 8.9 0 0 1-3.438.684H9.688a8.85 8.85 0 0 1-3.434-.684 8.8 8.8 0 0 1-2.914-1.945 8.9 8.9 0 0 1-1.945-2.91A8.9 8.9 0 0 1 .71 56.53m0 0"/></clipPath><clipPath id="aR"><path d="M156.531.203H.266v65.57H156.53ZM1.461 9.418v47.113q-.001 1.635.625 3.149a8.1 8.1 0 0 0 1.785 2.668 8.201 8.201 0 0 0 5.816 2.41h137.598c1.094 0 2.14-.211 3.149-.625a8.2 8.2 0 0 0 2.671-1.785 8.2 8.2 0 0 0 1.782-2.668 8.1 8.1 0 0 0 .625-3.149V9.418q.001-1.636-.625-3.148a8.2 8.2 0 0 0-1.782-2.668 8.2 8.2 0 0 0-2.671-1.786 8.2 8.2 0 0 0-3.149-.625H9.688a8.2 8.2 0 0 0-5.817 2.41A8.1 8.1 0 0 0 2.086 6.27a8.1 8.1 0 0 0-.625 3.148m0 0" clip-rule="evenodd"/></clipPath><clipPath id="aS"><path d="m.71 65.504 4.864-4.86V5.305L.711.446"/></clipPath><clipPath id="aA"><path d="M0 0h157v66H0z"/></clipPath><clipPath id="ee"><path d="M378 191h157v66H378Zm0 0"/></clipPath><clipPath id="ef"><path d="M378.738 247.531v-47.113q.002-1.787.684-3.434a8.9 8.9 0 0 1 1.945-2.91 8.8 8.8 0 0 1 2.91-1.945 8.9 8.9 0 0 1 3.438-.684h137.598q1.786 0 3.433.684a8.8 8.8 0 0 1 2.914 1.945 8.9 8.9 0 0 1 1.945 2.91 8.9 8.9 0 0 1 .684 3.434v47.113q-.001 1.788-.684 3.434a8.9 8.9 0 0 1-1.945 2.91 8.8 8.8 0 0 1-2.914 1.945 8.85 8.85 0 0 1-3.433.684H387.715a8.9 8.9 0 0 1-3.438-.684 8.8 8.8 0 0 1-2.91-1.945 8.9 8.9 0 0 1-1.945-2.91 8.9 8.9 0 0 1-.684-3.434m0 0"/></clipPath><clipPath id="aU"><path d="M.71.445h155.786v65.09H.711Zm0 0"/></clipPath><clipPath id="aV"><path d="M.738 56.531V9.418q.002-1.787.684-3.434a8.9 8.9 0 0 1 1.945-2.91 8.8 8.8 0 0 1 2.91-1.945A8.9 8.9 0 0 1 9.715.445h137.598q1.786 0 3.433.684a8.8 8.8 0 0 1 2.914 1.945 8.9 8.9 0 0 1 1.945 2.91 8.9 8.9 0 0 1 .684 3.434v47.113q-.001 1.787-.684 3.434a8.9 8.9 0 0 1-1.945 2.91 8.8 8.8 0 0 1-2.914 1.945 8.85 8.85 0 0 1-3.434.684H9.715a8.9 8.9 0 0 1-3.438-.684 8.8 8.8 0 0 1-2.91-1.945 8.9 8.9 0 0 1-1.945-2.91 8.9 8.9 0 0 1-.684-3.434m0 0"/></clipPath><clipPath id="aW"><path d="M.71.445h155.786V6H.711Zm0 0"/></clipPath><clipPath id="aX"><path d="M.738 56.531V9.418q.002-1.787.684-3.434a8.9 8.9 0 0 1 1.945-2.91 8.8 8.8 0 0 1 2.91-1.945A8.9 8.9 0 0 1 9.715.445h137.598q1.786 0 3.433.684a8.8 8.8 0 0 1 2.914 1.945 8.9 8.9 0 0 1 1.945 2.91 8.9 8.9 0 0 1 .684 3.434v47.113q-.001 1.787-.684 3.434a8.9 8.9 0 0 1-1.945 2.91 8.8 8.8 0 0 1-2.914 1.945 8.85 8.85 0 0 1-3.434.684H9.715a8.9 8.9 0 0 1-3.438-.684 8.8 8.8 0 0 1-2.91-1.945 8.9 8.9 0 0 1-1.945-2.91 8.9 8.9 0 0 1-.684-3.434m0 0"/></clipPath><clipPath id="aY"><path d="M156.734.203H.47v65.57h156.265ZM1.488 9.418v47.113q-.001 1.635.625 3.149a8.2 8.2 0 0 0 1.782 2.668 8.2 8.2 0 0 0 2.671 1.785 8.2 8.2 0 0 0 3.149.625h137.598a8.2 8.2 0 0 0 5.816-2.41 8.1 8.1 0 0 0 1.785-2.668 8.1 8.1 0 0 0 .625-3.149V9.418q.001-1.636-.625-3.148a8.1 8.1 0 0 0-1.785-2.668 8.201 8.201 0 0 0-5.816-2.41H9.714c-1.094 0-2.14.21-3.149.624a8.2 8.2 0 0 0-2.671 1.786A8.2 8.2 0 0 0 2.113 6.27a8.1 8.1 0 0 0-.625 3.148m0 0" clip-rule="evenodd"/></clipPath><clipPath id="aZ"><path d="m.738.445 4.864 4.86h145.824l4.863-4.86"/></clipPath><clipPath id="ba"><path d="M.71 60h155.786v5.535H.711Zm0 0"/></clipPath><clipPath id="bb"><path d="M.738 56.531V9.418q.002-1.787.684-3.434a8.9 8.9 0 0 1 1.945-2.91 8.8 8.8 0 0 1 2.91-1.945A8.9 8.9 0 0 1 9.715.445h137.598q1.786 0 3.433.684a8.8 8.8 0 0 1 2.914 1.945 8.9 8.9 0 0 1 1.945 2.91 8.9 8.9 0 0 1 .684 3.434v47.113q-.001 1.787-.684 3.434a8.9 8.9 0 0 1-1.945 2.91 8.8 8.8 0 0 1-2.914 1.945 8.85 8.85 0 0 1-3.434.684H9.715a8.9 8.9 0 0 1-3.438-.684 8.8 8.8 0 0 1-2.91-1.945 8.9 8.9 0 0 1-1.945-2.91 8.9 8.9 0 0 1-.684-3.434m0 0"/></clipPath><clipPath id="bc"><path d="M156.734.203H.47v65.57h156.265ZM1.488 9.418v47.113q-.001 1.635.625 3.149a8.2 8.2 0 0 0 1.782 2.668 8.2 8.2 0 0 0 2.671 1.785 8.2 8.2 0 0 0 3.149.625h137.598a8.2 8.2 0 0 0 5.816-2.41 8.1 8.1 0 0 0 1.785-2.668 8.1 8.1 0 0 0 .625-3.149V9.418q.001-1.636-.625-3.148a8.1 8.1 0 0 0-1.785-2.668 8.201 8.201 0 0 0-5.816-2.41H9.714c-1.094 0-2.14.21-3.149.624a8.2 8.2 0 0 0-2.671 1.786A8.2 8.2 0 0 0 2.113 6.27a8.1 8.1 0 0 0-.625 3.148m0 0" clip-rule="evenodd"/></clipPath><clipPath id="bd"><path d="m156.29 65.504-4.864-4.86H5.602l-4.864 4.86"/></clipPath><clipPath id="be"><path d="M151 .445h5.496v65.09H151Zm0 0"/></clipPath><clipPath id="bf"><path d="M.738 56.531V9.418q.002-1.787.684-3.434a8.9 8.9 0 0 1 1.945-2.91 8.8 8.8 0 0 1 2.91-1.945A8.9 8.9 0 0 1 9.715.445h137.598q1.786 0 3.433.684a8.8 8.8 0 0 1 2.914 1.945 8.9 8.9 0 0 1 1.945 2.91 8.9 8.9 0 0 1 .684 3.434v47.113q-.001 1.787-.684 3.434a8.9 8.9 0 0 1-1.945 2.91 8.8 8.8 0 0 1-2.914 1.945 8.85 8.85 0 0 1-3.434.684H9.715a8.9 8.9 0 0 1-3.438-.684 8.8 8.8 0 0 1-2.91-1.945 8.9 8.9 0 0 1-1.945-2.91 8.9 8.9 0 0 1-.684-3.434m0 0"/></clipPath><clipPath id="bg"><path d="M156.734.203H.47v65.57h156.265ZM1.488 9.418v47.113q-.001 1.635.625 3.149a8.2 8.2 0 0 0 1.782 2.668 8.2 8.2 0 0 0 2.671 1.785 8.2 8.2 0 0 0 3.149.625h137.598a8.2 8.2 0 0 0 5.816-2.41 8.1 8.1 0 0 0 1.785-2.668 8.1 8.1 0 0 0 .625-3.149V9.418q.001-1.636-.625-3.148a8.1 8.1 0 0 0-1.785-2.668 8.201 8.201 0 0 0-5.816-2.41H9.714c-1.094 0-2.14.21-3.149.624a8.2 8.2 0 0 0-2.671 1.786A8.2 8.2 0 0 0 2.113 6.27a8.1 8.1 0 0 0-.625 3.148m0 0" clip-rule="evenodd"/></clipPath><clipPath id="bh"><path d="m156.29.445-4.864 4.86v55.34l4.863 4.859"/></clipPath><clipPath id="bi"><path d="M.71.445H6v65.09H.71Zm0 0"/></clipPath><clipPath id="bj"><path d="M.738 56.531V9.418q.002-1.787.684-3.434a8.9 8.9 0 0 1 1.945-2.91 8.8 8.8 0 0 1 2.91-1.945A8.9 8.9 0 0 1 9.715.445h137.598q1.786 0 3.433.684a8.8 8.8 0 0 1 2.914 1.945 8.9 8.9 0 0 1 1.945 2.91 8.9 8.9 0 0 1 .684 3.434v47.113q-.001 1.787-.684 3.434a8.9 8.9 0 0 1-1.945 2.91 8.8 8.8 0 0 1-2.914 1.945 8.85 8.85 0 0 1-3.434.684H9.715a8.9 8.9 0 0 1-3.438-.684 8.8 8.8 0 0 1-2.91-1.945 8.9 8.9 0 0 1-1.945-2.91 8.9 8.9 0 0 1-.684-3.434m0 0"/></clipPath><clipPath id="bk"><path d="M156.734.203H.47v65.57h156.265ZM1.488 9.418v47.113q-.001 1.635.625 3.149a8.2 8.2 0 0 0 1.782 2.668 8.2 8.2 0 0 0 2.671 1.785 8.2 8.2 0 0 0 3.149.625h137.598a8.2 8.2 0 0 0 5.816-2.41 8.1 8.1 0 0 0 1.785-2.668 8.1 8.1 0 0 0 .625-3.149V9.418q.001-1.636-.625-3.148a8.1 8.1 0 0 0-1.785-2.668 8.201 8.201 0 0 0-5.816-2.41H9.714c-1.094 0-2.14.21-3.149.624a8.2 8.2 0 0 0-2.671 1.786A8.2 8.2 0 0 0 2.113 6.27a8.1 8.1 0 0 0-.625 3.148m0 0" clip-rule="evenodd"/></clipPath><clipPath id="bl"><path d="m.738 65.504 4.864-4.86V5.305L.738.446"/></clipPath><clipPath id="aT"><path d="M0 0h157v66H0z"/></clipPath><clipPath id="ej"><path d="M541 191h190v66H541Zm0 0"/></clipPath><clipPath id="ek"><path d="M541.766 247.531v-47.113q-.001-1.787.683-3.434a8.8 8.8 0 0 1 1.946-2.91 8.8 8.8 0 0 1 2.91-1.945 8.9 8.9 0 0 1 3.433-.684h171.254q1.788 0 3.434.684a8.8 8.8 0 0 1 2.914 1.945 8.9 8.9 0 0 1 1.945 2.91 8.9 8.9 0 0 1 .68 3.434v47.113a8.9 8.9 0 0 1-.68 3.434 8.9 8.9 0 0 1-1.945 2.91 8.8 8.8 0 0 1-2.914 1.945 8.85 8.85 0 0 1-3.434.684H550.738a8.9 8.9 0 0 1-3.433-.684 8.8 8.8 0 0 1-2.91-1.945 8.8 8.8 0 0 1-1.946-2.91 8.85 8.85 0 0 1-.683-3.434m0 0"/></clipPath><clipPath id="bn"><path d="M.676.445h189.289v65.09H.675Zm0 0"/></clipPath><clipPath id="bo"><path d="M.766 56.531V9.418q-.001-1.787.683-3.434a8.8 8.8 0 0 1 1.946-2.91 8.8 8.8 0 0 1 2.91-1.945A8.9 8.9 0 0 1 9.738.445h171.254q1.788 0 3.434.684a8.8 8.8 0 0 1 2.914 1.945 8.9 8.9 0 0 1 1.945 2.91 8.9 8.9 0 0 1 .68 3.434v47.113a8.9 8.9 0 0 1-.68 3.434 8.9 8.9 0 0 1-1.945 2.91 8.8 8.8 0 0 1-2.914 1.945 8.85 8.85 0 0 1-3.434.684H9.738a8.9 8.9 0 0 1-3.433-.684 8.8 8.8 0 0 1-2.91-1.945 8.8 8.8 0 0 1-1.946-2.91 8.85 8.85 0 0 1-.683-3.434m0 0"/></clipPath><clipPath id="bp"><path d="M.676.445h189.289V6H.675Zm0 0"/></clipPath><clipPath id="bq"><path d="M.766 56.531V9.418q-.001-1.787.683-3.434a8.8 8.8 0 0 1 1.946-2.91 8.8 8.8 0 0 1 2.91-1.945A8.9 8.9 0 0 1 9.738.445h171.254q1.788 0 3.434.684a8.8 8.8 0 0 1 2.914 1.945 8.9 8.9 0 0 1 1.945 2.91 8.9 8.9 0 0 1 .68 3.434v47.113a8.9 8.9 0 0 1-.68 3.434 8.9 8.9 0 0 1-1.945 2.91 8.8 8.8 0 0 1-2.914 1.945 8.85 8.85 0 0 1-3.434.684H9.738a8.9 8.9 0 0 1-3.433-.684 8.8 8.8 0 0 1-2.91-1.945 8.8 8.8 0 0 1-1.946-2.91 8.85 8.85 0 0 1-.683-3.434m0 0"/></clipPath><clipPath id="br"><path d="M190.207.203H.437v65.57h189.77ZM1.512 9.418v47.113q0 1.635.629 3.149a8.2 8.2 0 0 0 1.78 2.668 8.215 8.215 0 0 0 5.816 2.41h171.255a8.22 8.22 0 0 0 5.817-2.41 8.1 8.1 0 0 0 1.785-2.668 8.1 8.1 0 0 0 .625-3.149V9.418q.001-1.636-.625-3.148a8.1 8.1 0 0 0-1.785-2.668 8.215 8.215 0 0 0-5.816-2.41H9.737A8.215 8.215 0 0 0 2.141 6.27a8.15 8.15 0 0 0-.63 3.148m0 0" clip-rule="evenodd"/></clipPath><clipPath id="bs"><path d="m.766.445 4.859 4.86h179.48l4.86-4.86"/></clipPath><clipPath id="bt"><path d="M.676 60h189.289v5.535H.675Zm0 0"/></clipPath><clipPath id="bu"><path d="M.766 56.531V9.418q-.001-1.787.683-3.434a8.8 8.8 0 0 1 1.946-2.91 8.8 8.8 0 0 1 2.91-1.945A8.9 8.9 0 0 1 9.738.445h171.254q1.788 0 3.434.684a8.8 8.8 0 0 1 2.914 1.945 8.9 8.9 0 0 1 1.945 2.91 8.9 8.9 0 0 1 .68 3.434v47.113a8.9 8.9 0 0 1-.68 3.434 8.9 8.9 0 0 1-1.945 2.91 8.8 8.8 0 0 1-2.914 1.945 8.85 8.85 0 0 1-3.434.684H9.738a8.9 8.9 0 0 1-3.433-.684 8.8 8.8 0 0 1-2.91-1.945 8.8 8.8 0 0 1-1.946-2.91 8.85 8.85 0 0 1-.683-3.434m0 0"/></clipPath><clipPath id="bv"><path d="M190.207.203H.437v65.57h189.77ZM1.512 9.418v47.113q0 1.635.629 3.149a8.2 8.2 0 0 0 1.78 2.668 8.215 8.215 0 0 0 5.816 2.41h171.255a8.22 8.22 0 0 0 5.817-2.41 8.1 8.1 0 0 0 1.785-2.668 8.1 8.1 0 0 0 .625-3.149V9.418q.001-1.636-.625-3.148a8.1 8.1 0 0 0-1.785-2.668 8.215 8.215 0 0 0-5.816-2.41H9.737A8.215 8.215 0 0 0 2.141 6.27a8.15 8.15 0 0 0-.63 3.148m0 0" clip-rule="evenodd"/></clipPath><clipPath id="bw"><path d="m189.965 65.504-4.86-4.86H5.625l-4.86 4.86"/></clipPath><clipPath id="bx"><path d="M185 .445h4.965v65.09H185Zm0 0"/></clipPath><clipPath id="by"><path d="M.766 56.531V9.418q-.001-1.787.683-3.434a8.8 8.8 0 0 1 1.946-2.91 8.8 8.8 0 0 1 2.91-1.945A8.9 8.9 0 0 1 9.738.445h171.254q1.788 0 3.434.684a8.8 8.8 0 0 1 2.914 1.945 8.9 8.9 0 0 1 1.945 2.91 8.9 8.9 0 0 1 .68 3.434v47.113a8.9 8.9 0 0 1-.68 3.434 8.9 8.9 0 0 1-1.945 2.91 8.8 8.8 0 0 1-2.914 1.945 8.85 8.85 0 0 1-3.434.684H9.738a8.9 8.9 0 0 1-3.433-.684 8.8 8.8 0 0 1-2.91-1.945 8.8 8.8 0 0 1-1.946-2.91 8.85 8.85 0 0 1-.683-3.434m0 0"/></clipPath><clipPath id="bz"><path d="M190.207.203H.437v65.57h189.77ZM1.512 9.418v47.113q0 1.635.629 3.149a8.2 8.2 0 0 0 1.78 2.668 8.215 8.215 0 0 0 5.816 2.41h171.255a8.22 8.22 0 0 0 5.817-2.41 8.1 8.1 0 0 0 1.785-2.668 8.1 8.1 0 0 0 .625-3.149V9.418q.001-1.636-.625-3.148a8.1 8.1 0 0 0-1.785-2.668 8.215 8.215 0 0 0-5.816-2.41H9.737A8.215 8.215 0 0 0 2.141 6.27a8.15 8.15 0 0 0-.63 3.148m0 0" clip-rule="evenodd"/></clipPath><clipPath id="bA"><path d="m189.965.445-4.86 4.86v55.34l4.86 4.859"/></clipPath><clipPath id="bB"><path d="M.676.445H6v65.09H.676Zm0 0"/></clipPath><clipPath id="bC"><path d="M.766 56.531V9.418q-.001-1.787.683-3.434a8.8 8.8 0 0 1 1.946-2.91 8.8 8.8 0 0 1 2.91-1.945A8.9 8.9 0 0 1 9.738.445h171.254q1.788 0 3.434.684a8.8 8.8 0 0 1 2.914 1.945 8.9 8.9 0 0 1 1.945 2.91 8.9 8.9 0 0 1 .68 3.434v47.113a8.9 8.9 0 0 1-.68 3.434 8.9 8.9 0 0 1-1.945 2.91 8.8 8.8 0 0 1-2.914 1.945 8.85 8.85 0 0 1-3.434.684H9.738a8.9 8.9 0 0 1-3.433-.684 8.8 8.8 0 0 1-2.91-1.945 8.8 8.8 0 0 1-1.946-2.91 8.85 8.85 0 0 1-.683-3.434m0 0"/></clipPath><clipPath id="bD"><path d="M190.207.203H.437v65.57h189.77ZM1.512 9.418v47.113q0 1.635.629 3.149a8.2 8.2 0 0 0 1.78 2.668 8.215 8.215 0 0 0 5.816 2.41h171.255a8.22 8.22 0 0 0 5.817-2.41 8.1 8.1 0 0 0 1.785-2.668 8.1 8.1 0 0 0 .625-3.149V9.418q.001-1.636-.625-3.148a8.1 8.1 0 0 0-1.785-2.668 8.215 8.215 0 0 0-5.816-2.41H9.737A8.215 8.215 0 0 0 2.141 6.27a8.15 8.15 0 0 0-.63 3.148m0 0" clip-rule="evenodd"/></clipPath><clipPath id="bE"><path d="m.766 65.504 4.859-4.86V5.305L.765.446"/></clipPath><clipPath id="bm"><path d="M0 0h190v66H0z"/></clipPath><clipPath id="bZ"><path d="M.605 1H54v15.773H.605Zm0 0"/></clipPath><clipPath id="ca"><path d="M.754 8.922q0-1.564.598-3.004a7.8 7.8 0 0 1 1.703-2.547 7.8 7.8 0 0 1 2.547-1.703 7.8 7.8 0 0 1 3.003-.598H46q1.561 0 3.004.598c.96.398 1.812.965 2.547 1.703a7.7 7.7 0 0 1 1.703 2.547q.598 1.439.598 3.004 0 1.563-.598 3.004a7.7 7.7 0 0 1-1.703 2.547 7.7 7.7 0 0 1-2.547 1.703 7.8 7.8 0 0 1-3.004.597H8.605q-1.558 0-3.003-.597a7.8 7.8 0 0 1-2.547-1.703 7.8 7.8 0 0 1-1.703-2.547 7.8 7.8 0 0 1-.598-3.004m0 0"/></clipPath><clipPath id="bG"><path d="M.605 0H53.97v15.773H.605Zm0 0"/></clipPath><clipPath id="bH"><path d="M.754 7.922q0-1.564.598-3.004a7.8 7.8 0 0 1 1.703-2.547A7.8 7.8 0 0 1 5.602.668 7.8 7.8 0 0 1 8.605.07H46q1.561 0 3.004.598c.96.398 1.812.965 2.547 1.703a7.7 7.7 0 0 1 1.703 2.547q.598 1.439.598 3.004 0 1.563-.598 3.004a7.7 7.7 0 0 1-1.703 2.547 7.7 7.7 0 0 1-2.547 1.703 7.8 7.8 0 0 1-3.004.597H8.605q-1.558 0-3.003-.597a7.8 7.8 0 0 1-2.547-1.703 7.8 7.8 0 0 1-1.703-2.547 7.8 7.8 0 0 1-.598-3.004m0 0"/></clipPath><clipPath id="bI"><path d="M.605 0H53.97v5H.605Zm0 0"/></clipPath><clipPath id="bJ"><path d="M.754 7.922q0-1.564.598-3.004a7.8 7.8 0 0 1 1.703-2.547A7.8 7.8 0 0 1 5.602.668 7.8 7.8 0 0 1 8.605.07H46q1.561 0 3.004.598c.96.398 1.812.965 2.547 1.703a7.7 7.7 0 0 1 1.703 2.547q.598 1.439.598 3.004 0 1.563-.598 3.004a7.7 7.7 0 0 1-1.703 2.547 7.7 7.7 0 0 1-2.547 1.703 7.8 7.8 0 0 1-3.004.597H8.605q-1.558 0-3.003-.597a7.8 7.8 0 0 1-2.547-1.703 7.8 7.8 0 0 1-1.703-2.547 7.8 7.8 0 0 1-.598-3.004m0 0"/></clipPath><clipPath id="bK"><path d="M54.21-.258H.368v16.27h53.844ZM8.606.816a7 7 0 0 0-2.714.543q-1.307.538-2.309 1.54a7.1 7.1 0 0 0-1.539 2.304 7.1 7.1 0 0 0-.54 2.719q0 1.412.54 2.719a7.08 7.08 0 0 0 3.848 3.843 7 7 0 0 0 2.714.543H46q1.412 0 2.719-.543a7 7 0 0 0 2.304-1.539 7 7 0 0 0 1.54-2.304q.539-1.307.539-2.72 0-1.41-.54-2.718a7.1 7.1 0 0 0-1.539-2.305A7 7 0 0 0 48.72 1.36 7 7 0 0 0 46 .816Zm0 0" clip-rule="evenodd"/></clipPath><clipPath id="bL"><path d="m.754.07 4.3 4.301h44.497l4.3-4.3"/></clipPath><clipPath id="bM"><path d="M.605 11H53.97v4.773H.605Zm0 0"/></clipPath><clipPath id="bN"><path d="M.754 7.922q0-1.564.598-3.004a7.8 7.8 0 0 1 1.703-2.547A7.8 7.8 0 0 1 5.602.668 7.8 7.8 0 0 1 8.605.07H46q1.561 0 3.004.598c.96.398 1.812.965 2.547 1.703a7.7 7.7 0 0 1 1.703 2.547q.598 1.439.598 3.004 0 1.563-.598 3.004a7.7 7.7 0 0 1-1.703 2.547 7.7 7.7 0 0 1-2.547 1.703 7.8 7.8 0 0 1-3.004.597H8.605q-1.558 0-3.003-.597a7.8 7.8 0 0 1-2.547-1.703 7.8 7.8 0 0 1-1.703-2.547 7.8 7.8 0 0 1-.598-3.004m0 0"/></clipPath><clipPath id="bO"><path d="M54.21-.258H.368v16.27h53.844ZM8.606.816a7 7 0 0 0-2.714.543q-1.307.538-2.309 1.54a7.1 7.1 0 0 0-1.539 2.304 7.1 7.1 0 0 0-.54 2.719q0 1.412.54 2.719a7.08 7.08 0 0 0 3.848 3.843 7 7 0 0 0 2.714.543H46q1.412 0 2.719-.543a7 7 0 0 0 2.304-1.539 7 7 0 0 0 1.54-2.304q.539-1.307.539-2.72 0-1.41-.54-2.718a7.1 7.1 0 0 0-1.539-2.305A7 7 0 0 0 48.72 1.36 7 7 0 0 0 46 .816Zm0 0" clip-rule="evenodd"/></clipPath><clipPath id="bP"><path d="m53.852 15.773-4.301-4.3H5.055l-4.301 4.3"/></clipPath><clipPath id="bQ"><path d="M49 0h4.969v15.773H49Zm0 0"/></clipPath><clipPath id="bR"><path d="M.754 7.922q0-1.564.598-3.004a7.8 7.8 0 0 1 1.703-2.547A7.8 7.8 0 0 1 5.602.668 7.8 7.8 0 0 1 8.605.07H46q1.561 0 3.004.598c.96.398 1.812.965 2.547 1.703a7.7 7.7 0 0 1 1.703 2.547q.598 1.439.598 3.004 0 1.563-.598 3.004a7.7 7.7 0 0 1-1.703 2.547 7.7 7.7 0 0 1-2.547 1.703 7.8 7.8 0 0 1-3.004.597H8.605q-1.558 0-3.003-.597a7.8 7.8 0 0 1-2.547-1.703 7.8 7.8 0 0 1-1.703-2.547 7.8 7.8 0 0 1-.598-3.004m0 0"/></clipPath><clipPath id="bS"><path d="M54.21-.258H.368v16.27h53.844ZM8.606.816a7 7 0 0 0-2.714.543q-1.307.538-2.309 1.54a7.1 7.1 0 0 0-1.539 2.304 7.1 7.1 0 0 0-.54 2.719q0 1.412.54 2.719a7.08 7.08 0 0 0 3.848 3.843 7 7 0 0 0 2.714.543H46q1.412 0 2.719-.543a7 7 0 0 0 2.304-1.539 7 7 0 0 0 1.54-2.304q.539-1.307.539-2.72 0-1.41-.54-2.718a7.1 7.1 0 0 0-1.539-2.305A7 7 0 0 0 48.72 1.36 7 7 0 0 0 46 .816Zm0 0" clip-rule="evenodd"/></clipPath><clipPath id="bT"><path d="M53.852.07 49.55 4.371v7.102l4.3 4.3"/></clipPath><clipPath id="bU"><path d="M.605 0H6v15.773H.605Zm0 0"/></clipPath><clipPath id="bV"><path d="M.754 7.922q0-1.564.598-3.004a7.8 7.8 0 0 1 1.703-2.547A7.8 7.8 0 0 1 5.602.668 7.8 7.8 0 0 1 8.605.07H46q1.561 0 3.004.598c.96.398 1.812.965 2.547 1.703a7.7 7.7 0 0 1 1.703 2.547q.598 1.439.598 3.004 0 1.563-.598 3.004a7.7 7.7 0 0 1-1.703 2.547 7.7 7.7 0 0 1-2.547 1.703 7.8 7.8 0 0 1-3.004.597H8.605q-1.558 0-3.003-.597a7.8 7.8 0 0 1-2.547-1.703 7.8 7.8 0 0 1-1.703-2.547 7.8 7.8 0 0 1-.598-3.004m0 0"/></clipPath><clipPath id="bW"><path d="M54.21-.258H.368v16.27h53.844ZM8.606.816a7 7 0 0 0-2.714.543q-1.307.538-2.309 1.54a7.1 7.1 0 0 0-1.539 2.304 7.1 7.1 0 0 0-.54 2.719q0 1.412.54 2.719a7.08 7.08 0 0 0 3.848 3.843 7 7 0 0 0 2.714.543H46q1.412 0 2.719-.543a7 7 0 0 0 2.304-1.539 7 7 0 0 0 1.54-2.304q.539-1.307.539-2.72 0-1.41-.54-2.718a7.1 7.1 0 0 0-1.539-2.305A7 7 0 0 0 48.72 1.36 7 7 0 0 0 46 .816Zm0 0" clip-rule="evenodd"/></clipPath><clipPath id="bX"><path d="m.754 15.773 4.3-4.3V4.37l-4.3-4.3"/></clipPath><clipPath id="bF"><path d="M0 0h54v16H0z"/></clipPath><clipPath id="bY"><path d="M0 0h55v17H0z"/></clipPath><path id="cv" d="M4.625.242q-1.16.002-2.012-.347c-.57-.23-1.015-.56-1.343-.985a2.7 2.7 0 0 1-.547-1.496L.715-2.69h1.957l.008.066q.042.362.3.637.257.273.696.43.432.152 1 .152.544-.001.953-.16.41-.164.64-.45c.157-.191.231-.41.231-.656v-.004a.91.91 0 0 0-.383-.765c-.258-.196-.687-.352-1.293-.477l-1.023-.207q-1.003-.205-1.637-.586-.638-.38-.941-.941-.305-.556-.305-1.293v-.008q.006-.897.48-1.57c.317-.446.75-.793 1.309-1.043q.833-.37 1.906-.371 1.132 0 1.942.363c.539.246.96.578 1.265 1.004q.456.634.52 1.449l.004.09h-1.91l-.012-.082a1.2 1.2 0 0 0-.293-.614 1.6 1.6 0 0 0-.617-.414 2.4 2.4 0 0 0-.899-.148q-.497 0-.87.144-.375.149-.587.415a.98.98 0 0 0-.207.628v.008q0 .311.164.547c.114.156.285.29.524.402q.357.166.926.286l1.027.21q1.025.21 1.676.567.646.356.957.894c.207.356.308.79.308 1.293v.008q.001.957-.472 1.66-.47.705-1.348 1.086C6.125.117 5.43.242 4.625.242m0 0"/><path id="cE" d="M1.152 0v-9.695h6.422v1.672H3.18v2.343h4.148v1.559H3.18v2.45h4.394V0Zm0 0"/><path id="cw" d="M.973 0v-7.387h1.965V0Zm.984-8.508c-.297 0-.559-.105-.773-.316a1.03 1.03 0 0 1-.329-.766q0-.457.329-.773c.214-.211.476-.317.773-.317q.458 0 .781.317.321.315.32.773.001.448-.32.766-.323.316-.781.316m0 0"/><path id="cA" d="M2.984.117q-.703 0-1.25-.273A2.1 2.1 0 0 1 .88-.93C.672-1.266.57-1.652.57-2.102v-.011q0-.667.332-1.14c.223-.321.547-.567.973-.75q.645-.271 1.559-.325l2.757-.168v1.2l-2.464.16q-.622.035-.934.269a.75.75 0 0 0-.309.637v.011q0 .42.32.66.328.242.837.243c.3 0 .57-.063.808-.18a1.44 1.44 0 0 0 .563-.492q.205-.312.207-.7v-2.347c0-.32-.106-.57-.317-.742-.21-.176-.52-.262-.918-.262q-.532 0-.867.18a.94.94 0 0 0-.445.515l-.012.028H.848l.007-.063a2.1 2.1 0 0 1 .489-1.137Q1.76-7 2.457-7.273q.697-.27 1.629-.27c.652 0 1.207.102 1.664.297.457.2.809.484 1.047.86q.359.557.36 1.343V0H5.218v-.984h-.117a1.85 1.85 0 0 1-.5.59q-.312.248-.723.378a2.9 2.9 0 0 1-.895.133m0 0"/><path id="cH" d="M4.21.156q-1.119 0-1.929-.465a3.13 3.13 0 0 1-1.246-1.328C.746-2.207.598-2.89.598-3.68v-.007c0-.782.148-1.465.437-2.04q.436-.866 1.227-1.34t1.87-.476c.72 0 1.337.156 1.86.461.524.309.93.738 1.211 1.297q.427.833.426 1.953v.605h-6.05v-1.23h5.105l-.918 1.164v-.781q-.002-.665-.203-1.106A1.53 1.53 0 0 0 5-5.852a1.55 1.55 0 0 0-.836-.222c-.312 0-.594.078-.836.23a1.58 1.58 0 0 0-.574.68q-.21.445-.211 1.09v.789q0 .623.207 1.062.207.444.59.676.38.234.914.234c.285 0 .527-.039.73-.125q.302-.124.485-.3c.125-.114.207-.219.254-.317l.02-.039 1.823-.004-.015.07q-.083.351-.313.731a2.9 2.9 0 0 1-.633.711 3.1 3.1 0 0 1-.992.535q-.592.209-1.402.207m0 0"/><path id="cx" d="M.96 0v-7.387h1.962v1.164h.113c.156-.418.418-.742.777-.972q.545-.346 1.27-.348.503 0 .914.164a1.95 1.95 0 0 1 1.137 1.207h.113q.174-.414.5-.723.329-.306.774-.476t.96-.172q.736 0 1.27.305c.36.199.633.484.828.855.195.367.293.809.293 1.317V0h-1.96v-4.574c0-.301-.048-.547-.138-.746a.9.9 0 0 0-.402-.446 1.4 1.4 0 0 0-.684-.152c-.265 0-.492.063-.687.18a1.2 1.2 0 0 0-.45.492q-.159.305-.16.71V0H5.435v-4.664a1.44 1.44 0 0 0-.145-.676 1 1 0 0 0-.418-.43 1.35 1.35 0 0 0-.652-.148q-.38.002-.672.191a1.27 1.27 0 0 0-.461.52q-.164.33-.164.754V0Zm0 0"/><path id="cy" d="M3.402.156c-.55 0-1.011-.105-1.382-.324a2.04 2.04 0 0 1-.844-.945Q.894-1.73.895-2.61v-4.778h1.96v4.332q.001.78.313 1.184.316.403 1.008.402.361 0 .64-.117.277-.119.465-.332c.13-.145.223-.32.29-.52q.093-.305.093-.68v-4.269h1.961V0h-1.96v-1.14h-.118q-.166.397-.465.69a2.1 2.1 0 0 1-.727.45 2.7 2.7 0 0 1-.953.156m0 0"/><path id="cz" d="M1.023-10.191h1.965V0H1.023Zm0 0"/><path id="cB" d="M4.016.035c-.891 0-1.536-.16-1.926-.472q-.591-.476-.59-1.555v-3.914H.367v-1.48H1.5v-1.766h1.98v1.765h1.516v1.48H3.48v3.473q0 .498.227.73.227.228.719.227.186.002.308-.007.122-.007.262-.02v1.457q-.181.031-.437.055a5 5 0 0 1-.543.027m0 0"/><path id="cC" d="M4.242.156Q3.11.157 2.293-.304a3.06 3.06 0 0 1-1.254-1.321Q.6-2.493.598-3.687v-.016q0-1.19.445-2.05a3.13 3.13 0 0 1 1.262-1.325q.816-.464 1.937-.465 1.131 0 1.946.465.812.46 1.257 1.32.44.86.442 2.055v.015c0 .801-.149 1.489-.438 2.063a3.06 3.06 0 0 1-1.254 1.32Q5.38.157 4.242.156m0-1.539q.523 0 .887-.273.362-.275.555-.79t.195-1.241V-3.7c0-.485-.066-.895-.195-1.239q-.195-.514-.559-.789a1.43 1.43 0 0 0-.883-.277q-.516.001-.879.277c-.246.184-.43.446-.562.79q-.195.513-.196 1.238v.011q.001.732.196 1.247.194.514.558.789c.243.18.54.27.883.27m0 0"/><path id="cD" d="M.96 0v-7.387h1.962v1.149h.113q.258-.606.797-.953.54-.352 1.332-.352 1.236 0 1.879.723.65.721.648 2.047V0h-1.96v-4.332q0-.78-.333-1.184c-.218-.265-.558-.402-1.02-.402q-.455 0-.78.207a1.36 1.36 0 0 0-.5.574 2 2 0 0 0-.176.867V0Zm0 0"/><path id="cF" d="m.422 0 2.316-3.652L.406-7.387h2.246L3.961-4.93h.117l1.309-2.457H7.52L5.2-3.734 7.534 0H5.363L3.984-2.45h-.113L2.492 0Zm0 0"/><path id="cG" d="M.96 2.445v-9.832h1.962v1.157h.113q.195-.406.512-.688.322-.28.75-.434.432-.152.953-.152.924-.001 1.598.461c.445.309.793.742 1.035 1.313q.368.848.367 2.03v.013q0 1.188-.36 2.042-.363.85-1.03 1.31Q6.185.12 5.25.12a2.7 2.7 0 0 1-.937-.16 2.3 2.3 0 0 1-.762-.45 2.2 2.2 0 0 1-.516-.695h-.113v3.63Zm3.622-3.953q.521.001.895-.262c.246-.175.441-.425.574-.753q.204-.489.203-1.164V-3.7q.001-.68-.203-1.168a1.7 1.7 0 0 0-.574-.75 1.5 1.5 0 0 0-.895-.262q-.516-.001-.89.262-.382.264-.587.75-.203.484-.203 1.164v.015q-.001.673.207 1.165.206.491.582.753.381.263.891.262m0 0"/><path id="cI" d="M.96 0v-7.387h1.962v1.16h.113a1.7 1.7 0 0 1 .66-.941c.317-.227.715-.336 1.192-.336q.198 0 .39.024c.125.02.239.039.332.07v1.71a4 4 0 0 0-.89-.112q-.552.002-.957.203a1.46 1.46 0 0 0-.621.578q-.222.375-.22.898V0Zm0 0"/><path id="cM" d="M.55 0v-4.55h.798L3.69-1.317l-.668-.336H3.5v-2.899h.91V0h-.789L1.27-3.25l.668.34h-.473V0Zm0 0"/><path id="cN" d="M.55 0v-4.55h3.016v.784H1.504v1.098h1.95v.734h-1.95v1.149h2.062V0Zm0 0"/><path id="cQ" d="M2.543.117q-.678 0-1.168-.293a1.9 1.9 0 0 1-.758-.828c-.18-.355-.265-.781-.265-1.27v-.007q0-.736.27-1.274.264-.532.757-.824.491-.29 1.164-.289c.445 0 .836.094 1.16.29q.492.29.762.827.264.535.265 1.27v.008c0 .488-.09.914-.265 1.27q-.268.536-.758.827-.491.294-1.164.293m0-.808q.369-.001.644-.196.27-.193.422-.55c.102-.239.149-.516.149-.836v-.008c0-.32-.047-.602-.149-.836a1.27 1.27 0 0 0-.421-.551 1.1 1.1 0 0 0-.645-.195q-.369 0-.645.195a1.25 1.25 0 0 0-.425.55 2.1 2.1 0 0 0-.153.837v.008q0 .479.153.836.146.357.422.55.274.196.648.196m0 0"/><path id="cR" d="M.55 0v-4.55h1.895q.52 0 .883.175c.242.117.43.281.555.5q.192.323.191.773v.004q.001.439-.215.79a1.23 1.23 0 0 1-.605.5L4.21 0H3.133l-.848-1.664h-.781V0Zm.954-2.36h.84q.356.001.558-.19c.133-.126.2-.305.2-.528v-.008a.69.69 0 0 0-.207-.523q-.206-.198-.563-.196h-.828Zm0 0"/><path id="cS" d="M1.445-1.32 1.41-2.508h.153l1.68-2.043H4.3L2.582-2.484l-.566.48ZM.551 0v-4.55h.953V0Zm2.726 0L1.902-2.012l.688-.625L4.422 0Zm0 0"/><path id="dz" d="M.55-4.55h.954V0H.55Zm0 0"/><path id="dA" d="M2.531.117c-.34 0-.64-.055-.91-.164s-.496-.27-.687-.476A2.2 2.2 0 0 1 .5-1.277a3.2 3.2 0 0 1-.148-1v-.004q0-.732.261-1.27.264-.534.75-.828.487-.288 1.149-.289.539 0 .965.191c.28.13.515.309.695.536q.27.345.336.8l.004.032h-.946l-.007-.032a.9.9 0 0 0-.372-.53 1.18 1.18 0 0 0-.675-.192q-.369.002-.633.191-.268.193-.414.543a2.3 2.3 0 0 0-.145.836v.008c0 .246.032.469.086.664q.088.294.246.5.165.21.387.32c.152.074.32.11.512.11q.31 0 .55-.118a.92.92 0 0 0 .52-.836l.004-.085h-.984v-.696h1.91v.578c0 .301-.043.575-.137.813A1.73 1.73 0 0 1 3.371-.02a2.5 2.5 0 0 1-.84.137m0 0"/><path id="dB" d="m.227 0 1.582-4.55h.808v.91H2.34L1.227 0Zm.847-1.105.23-.711H3.41l.235.71ZM3.508 0 2.395-3.64v-.91h.535L4.512 0Zm0 0"/><path id="dR" d="M1.027 0v-.707h1.325q.414-.001.628-.172c.145-.113.22-.281.22-.496v-.004a.62.62 0 0 0-.102-.36.6.6 0 0 0-.293-.218 1.3 1.3 0 0 0-.477-.074h-1.3v-.63h1.19q.389 0 .595-.151a.51.51 0 0 0 .203-.434v-.008a.54.54 0 0 0-.188-.433q-.187-.158-.527-.157H1.027v-.707h1.516c.297 0 .547.043.758.137q.314.134.484.39.169.254.168.606v.004q.001.241-.11.45a1.1 1.1 0 0 1-.296.347.9.9 0 0 1-.418.172v.058q.3.022.535.168a1.07 1.07 0 0 1 .508.914v.008c0 .262-.067.492-.192.688a1.24 1.24 0 0 1-.542.449q-.353.159-.84.16ZM.551 0v-4.55h.953V0Zm0 0"/><path id="dS" d="M2.18.117c-.364 0-.676-.055-.946-.164a1.5 1.5 0 0 1-.629-.46 1.3 1.3 0 0 1-.257-.704l-.004-.05h.922l.004.03a.52.52 0 0 0 .136.301.85.85 0 0 0 .328.2 1.44 1.44 0 0 0 .918-.004.7.7 0 0 0 .301-.211.47.47 0 0 0 .11-.309.44.44 0 0 0-.184-.363c-.121-.09-.32-.164-.606-.219l-.48-.098q-.47-.097-.77-.277-.3-.183-.441-.441a1.3 1.3 0 0 1-.14-.61v-.004q0-.42.222-.738a1.47 1.47 0 0 1 .617-.492c.258-.113.559-.172.895-.172q.53-.002.91.172.382.17.594.469.216.298.246.68l.004.042H3.03l-.008-.039a.54.54 0 0 0-.136-.289.74.74 0 0 0-.29-.191 1.2 1.2 0 0 0-.421-.07 1.1 1.1 0 0 0-.41.07.6.6 0 0 0-.274.191.46.46 0 0 0-.097.297v.004a.42.42 0 0 0 .078.258c.05.07.132.136.242.187q.169.078.437.137l.48.098c.321.066.587.152.786.265.203.114.355.25.453.418.094.172.145.371.145.61v.004q0 .449-.223.78-.223.33-.633.513c-.273.117-.601.18-.98.18m0 0"/><path id="ea" d="M1.027-1.434v-.746h1.168q.413 0 .637-.21.229-.21.23-.594v-.008q-.001-.393-.23-.598-.224-.206-.637-.207H1.027v-.754h1.399c.324 0 .601.063.844.192.238.129.421.312.558.547q.2.346.2.816v.008q0 .47-.2.816c-.137.235-.32.414-.558.543-.243.129-.52.195-.844.195ZM.551 0v-4.55h.953V0Zm0 0"/><path id="eb" d="M.55 0v-4.55h.954v3.765H3.53V0Zm0 0"/><path id="em" d="M.55 0v-4.55h1.09L2.903-1.22h.055L4.215-4.55h1.09V0h-.848v-3.098h-.469l.907-1.328L3.227 0h-.598L.965-4.426l.906 1.328h-.469V0Zm0 0"/><path id="cO" d="M1.656 0v-3.766H.29v-.785h3.688v.785H2.609V0Zm0 0"/><path id="cP" d="M1.484 0 .277-4.55h.989l.71 3.253h.051l.828-3.254h.805l.848 3.254h.05l.704-3.254h.984L5.04 0h-.894l-.86-3.066h-.05L2.382 0Zm0 0"/><path id="dK" d="M1.742 0 .227-4.55h1.07L2.3-1.06h.058L3.363-4.55h1.07L2.919 0Zm0 0"/><path id="dZ" d="m.277 0 1.664-2.64-.218.773v-.438L.285-4.55h1.121l.965 1.64h.442l-.618.368 1.176-2.008h1.063L2.94-2.285v.437L2.72-2.62 4.414 0H3.328l-1-1.594h-.437l.632-.36L1.305 0Zm0 0"/><path id="eh" d="M1.813 0v-1.7L.226-4.55h1.03l1.005 1.913h.054l1-1.914h1.032L2.766-1.699V0Zm0 0"/><path id="cT" d="M.36-.703v-.281l4.984.015-.266-.328v-.39l.672.843L5.078 0v-.375l.25-.312Zm0 0"/><path id="cU" d="M.55 0v-4.383h.61L3.586-.94l-.457-.239h.34v-3.203h.652V0h-.61L1.087-3.437l.457.238h-.34V0Zm0 0"/><path id="cW" d="M.55 0v-4.383h2.778v.578h-2.11v1.293h1.997v.559H1.219v1.371h2.11V0Zm0 0"/><path id="dg" d="M2.031.105a2.2 2.2 0 0 1-.863-.156A1.4 1.4 0 0 1 .59-.488a1.2 1.2 0 0 1-.242-.645l-.004-.039h.66l.004.035q.02.2.156.348a.9.9 0 0 0 .367.23c.157.055.328.082.528.082q.28 0 .496-.09a.8.8 0 0 0 .34-.246.54.54 0 0 0 .125-.359v-.004a.54.54 0 0 0-.192-.422c-.129-.113-.336-.199-.629-.261l-.48-.102a2.5 2.5 0 0 1-.723-.266 1.09 1.09 0 0 1-.55-.984v-.004q.003-.376.206-.664c.133-.191.32-.344.559-.45q.357-.163.82-.163t.813.16c.23.11.414.25.547.434q.198.271.226.613v.039h-.652l-.004-.035a.63.63 0 0 0-.152-.324.8.8 0 0 0-.32-.223 1.3 1.3 0 0 0-.466-.078 1.3 1.3 0 0 0-.46.078.8.8 0 0 0-.32.226.55.55 0 0 0-.118.356v.004a.53.53 0 0 0 .082.289.63.63 0 0 0 .258.219c.117.062.273.113.46.156l.481.105c.305.067.555.153.742.258q.286.164.418.399.134.235.133.558v.004q0 .417-.207.723-.201.304-.578.472-.374.165-.883.164m0 0"/><path id="cc" d="M.887-1.504v-.562h1.199q.445-.002.691-.23.246-.23.246-.642v-.007q0-.417-.246-.645-.246-.227-.691-.226h-1.2v-.567h1.368c.285 0 .539.059.754.18q.329.176.512.5c.125.219.183.469.183.754v.004c0 .285-.058.539-.183.754a1.3 1.3 0 0 1-.512.507c-.215.121-.469.18-.754.18ZM.55 0v-4.383h.668V0Zm0 0"/><path id="dm" d="M.55 0v-4.383H2.13q.651 0 1.113.258a1.7 1.7 0 0 1 .703.742q.246.491.246 1.176v.008q-.001.697-.242 1.187a1.74 1.74 0 0 1-.707.754Q2.78 0 2.13 0Zm.669-.582h.836q.462 0 .785-.188.327-.187.496-.55c.113-.239.172-.532.172-.871v-.004q-.001-.51-.172-.868a1.23 1.23 0 0 0-.5-.55q-.324-.193-.781-.192h-.836Zm0 0"/><path id="do" d="M.55 0v-4.383h2.731v.578H1.22v1.399h1.89v.566H1.22V0Zm0 0"/><path id="du" d="M.55-4.383h.669V0H.55Zm0 0"/><path id="dv" d="M.55 0v-4.383h.669v3.801H3.28V0Zm0 0"/><path id="dC" d="M.55 0v-4.383h.774L2.727-.875h.05l1.407-3.508h.773V0h-.613v-3.227h-.328l.699-1.035L3.004 0h-.5L.793-4.262l.7 1.035h-.329V0Zm0 0"/><path id="dF" d="M2.348.105q-.611 0-1.051-.277a1.83 1.83 0 0 1-.684-.797q-.241-.51-.242-1.219v-.007q.001-.709.242-1.223c.16-.344.387-.605.68-.793q.444-.28 1.05-.281.483.002.872.191.393.19.64.52.251.334.31.77l-.005.015h-.664l-.004-.012a1.14 1.14 0 0 0-.226-.469 1.1 1.1 0 0 0-.395-.308 1.2 1.2 0 0 0-.527-.11q-.392 0-.684.208-.287.206-.445.59a2.35 2.35 0 0 0-.156.902v.007q-.002.522.156.903.158.38.445.59.29.206.688.207.292-.002.527-.098a1.04 1.04 0 0 0 .617-.707l.004-.012h.668v.016a1.55 1.55 0 0 1-.312.734 1.7 1.7 0 0 1-.63.489q-.387.17-.874.171m0 0"/><path id="dU" d="M2.414.105q-.633 0-1.09-.28a1.83 1.83 0 0 1-.707-.798Q.371-1.488.371-2.19v-.004q-.001-.709.25-1.223c.168-.344.402-.605.707-.793.309-.187.668-.281 1.086-.281q.633 0 1.09.281.462.281.707.797c.164.344.25.75.25 1.219v.004q.001.703-.25 1.218-.247.516-.703.797T2.414.105m0-.593q.421 0 .727-.211.305-.212.468-.594.165-.382.164-.898v-.004a2.3 2.3 0 0 0-.164-.903 1.34 1.34 0 0 0-.468-.59 1.27 1.27 0 0 0-.727-.207q-.415 0-.719.208-.304.209-.472.59-.167.38-.168.902v.004q0 .516.164.898t.468.594q.306.21.727.21m0 0"/><path id="ed" d="m.21 0 1.587-4.383h.539v.762h-.203L.918 0Zm.763-1.191.187-.54h1.996l.188.54ZM3.398 0 2.184-3.621v-.762h.332L4.102 0Zm0 0"/><path id="eo" d="M.55 0v-4.383h1.723q.452 0 .774.164.329.166.504.465c.117.195.18.434.18.703v.008c0 .297-.079.555-.227.777q-.228.336-.625.473L3.863 0h-.777l-.898-1.691h-.969V0Zm.669-2.238h.988q.398.002.613-.207.219-.206.22-.582v-.004q0-.369-.228-.578c-.148-.141-.359-.211-.624-.211h-.97Zm0 0"/><path id="ck" d="M1.867.063q-.48 0-.828-.208A1.34 1.34 0 0 1 .5-.735q-.187-.38-.187-.913v-.004c0-.356.062-.657.187-.914.129-.254.305-.45.54-.59q.348-.204.827-.203c.324 0 .598.066.832.203.23.136.41.336.535.59q.194.38.192.914v.004q0 .533-.192.914c-.125.257-.3.453-.535.59q-.346.206-.832.207m0-.543a.8.8 0 0 0 .485-.141.86.86 0 0 0 .304-.399 1.7 1.7 0 0 0 .106-.625v-.007q0-.37-.106-.63a.9.9 0 0 0-.304-.398.84.84 0 0 0-.485-.136.85.85 0 0 0-.484.136.9.9 0 0 0-.305.399 1.8 1.8 0 0 0-.101.629v.007c0 .243.03.454.101.625a.84.84 0 0 0 .305.399c.133.094.297.14.484.14m0 0"/><path id="ci" d="M1.715.02Q1.175.02.934-.187q-.24-.206-.239-.68v-1.918H.18v-.512h.515v-.832h.664v.832h.707v.512H1.36v1.762q0 .263.106.386c.07.078.191.117.351.117q.076 0 .13-.003.051-.001.12-.008v.52l-.168.023a3 3 0 0 1-.183.008m0 0"/><path id="ce" d="M.477 0v-3.297h.648v.496h.05a.77.77 0 0 1 .313-.41q.223-.142.551-.144.08 0 .16.011.078.007.125.02v.597a3 3 0 0 0-.172-.027q-.086-.01-.18-.008a.9.9 0 0 0-.44.098.73.73 0 0 0-.302.273.8.8 0 0 0-.105.414V0Zm0 0"/><path id="ch" d="M.508-4.59h.648V0H.508Zm0 0"/><path id="dj" d="M.477 0v-3.297h.648v.504h.05q.106-.27.34-.418a1 1 0 0 1 .56-.148q.22 0 .402.07.177.074.308.207a.9.9 0 0 1 .2.309h.05a1.1 1.1 0 0 1 .235-.309c.097-.09.214-.156.347-.207q.196-.07.426-.07.333 0 .566.129c.16.085.278.207.364.37q.124.24.125.587V0h-.649v-2.117a.9.9 0 0 0-.07-.383.48.48 0 0 0-.211-.227.76.76 0 0 0-.36-.078.67.67 0 0 0-.613.355.73.73 0 0 0-.086.36V0h-.648v-2.187a.7.7 0 0 0-.078-.329.5.5 0 0 0-.223-.214.75.75 0 0 0-.336-.075.64.64 0 0 0-.36.106.7.7 0 0 0-.25.281.86.86 0 0 0-.089.395V0Zm0 0"/><path id="dk" d="M2.75 1.098V-.5H2.7a.84.84 0 0 1-.235.3 1.2 1.2 0 0 1-.348.192 1.4 1.4 0 0 1-.433.063 1.25 1.25 0 0 1-.727-.207A1.37 1.37 0 0 1 .48-.746a2.3 2.3 0 0 1-.167-.899v-.007q.002-.522.167-.903a1.36 1.36 0 0 1 .477-.59q.31-.21.73-.21.225-.001.418.074a1.14 1.14 0 0 1 .61.531h.035v-.547h.648v4.395ZM1.867-.5a.8.8 0 0 0 .477-.14.9.9 0 0 0 .312-.4c.07-.17.11-.37.11-.605v-.007c0-.235-.04-.438-.11-.61a.9.9 0 0 0-.312-.398.83.83 0 0 0-.477-.137.83.83 0 0 0-.476.137.85.85 0 0 0-.309.394q-.105.257-.105.614v.007c0 .235.035.442.105.61a.9.9 0 0 0 .309.398q.2.136.476.137m0 0"/><path id="dl" d="M1.574.063q-.37.001-.62-.145A.9.9 0 0 1 .57-.5a1.6 1.6 0 0 1-.125-.664v-2.133h.649v1.98q0 .412.16.618.165.204.527.203.2 0 .352-.059a.7.7 0 0 0 .258-.172A.8.8 0 0 0 2.547-1c.031-.11.05-.227.05-.363v-1.934h.65V0h-.65v-.496h-.05a.9.9 0 0 1-.215.3.9.9 0 0 1-.328.192q-.189.066-.43.067m0 0"/><path id="cl" d="M.477 0v-3.297h.648v.5h.05a.9.9 0 0 1 .36-.414c.156-.102.356-.148.594-.148q.558 0 .851.316.296.32.297.91V0H2.63v-1.98q0-.417-.176-.622c-.117-.132-.297-.203-.539-.203-.164 0-.3.035-.422.106a.73.73 0 0 0-.273.3 1.04 1.04 0 0 0-.094.462V0Zm0 0"/><path id="dn" d="m1.387 0-1.2-3.297H.88L1.707-.66h.05l.829-2.637h.68L2.074 0Zm0 0"/><path id="dE" d="M1.668.063A1.9 1.9 0 0 1 .98-.055a1.1 1.1 0 0 1-.464-.324.86.86 0 0 1-.203-.48v-.004H.96l.004.004q.059.188.242.3a.87.87 0 0 0 .477.118q.205 0 .359-.059a.6.6 0 0 0 .246-.16.36.36 0 0 0 .086-.242v-.004a.33.33 0 0 0-.125-.266c-.082-.07-.223-.129-.414-.172l-.524-.12a1.8 1.8 0 0 1-.511-.192.8.8 0 0 1-.301-.301.83.83 0 0 1-.098-.414v-.004q0-.287.164-.512a1.1 1.1 0 0 1 .454-.347c.19-.086.414-.125.66-.125q.375.001.652.113.282.116.445.32.164.209.192.477v.004h-.621v-.008a.5.5 0 0 0-.22-.29.8.8 0 0 0-.452-.116.8.8 0 0 0-.32.058.5.5 0 0 0-.223.156.36.36 0 0 0-.082.235v.004q.002.103.054.183.052.078.168.137c.079.04.176.074.301.106l.524.12q.316.07.523.192a.8.8 0 0 1 .309.29q.103.174.101.413v.004a.86.86 0 0 1-.176.535 1.16 1.16 0 0 1-.488.36 1.8 1.8 0 0 1-.699.129m0 0"/><path id="dT" d="M.477 1.098v-4.395h.648v.52h.05a1.05 1.05 0 0 1 .59-.508q.194-.07.423-.07c.28 0 .519.07.726.21q.306.212.473.594.17.382.172.899v.007c0 .348-.059.649-.168.903q-.172.38-.477.59-.304.209-.727.207-.223 0-.421-.07a1.1 1.1 0 0 1-.352-.2.9.9 0 0 1-.238-.308h-.051v1.62ZM2.007-.5a.8.8 0 0 0 .477-.14.85.85 0 0 0 .305-.395q.106-.258.106-.61v-.007q0-.357-.106-.614a.87.87 0 0 0-.305-.394.83.83 0 0 0-.476-.137.83.83 0 0 0-.477.137.87.87 0 0 0-.308.394q-.111.257-.11.614v.004q-.001.356.11.613c.07.172.172.3.308.394q.2.141.477.141m0 0"/><path id="ec" d="m.219 0 1.097-1.645L.211-3.297h.754l.715 1.18h.05l.711-1.18h.715l-1.09 1.629L3.168 0H2.43l-.727-1.191h-.05L.925 0Zm0 0"/><path id="ei" d="M.398 0v-.426l1.829-2.308v-.051H.41v-.512h2.582v.45L1.203-.568v.051h1.809V0Zm0 0"/><path id="en" d="M1.11 0 .2-3.297h.652l.593 2.55h.051l.684-2.55h.617l.683 2.55h.051l.594-2.55h.645L3.863 0h-.672l-.687-2.469h-.05L1.77 0Zm0 0"/><path id="cV" d="M1.68.055c-.278 0-.516-.067-.723-.207A1.35 1.35 0 0 1 .48-.746a2.2 2.2 0 0 1-.167-.899v-.007q-.001-.522.167-.903.167-.383.473-.59c.207-.14.445-.21.727-.21q.228-.001.425.074.196.07.348.199a1 1 0 0 1 .242.305h.051V-4.59h.645V0h-.645v-.52h-.05a1.1 1.1 0 0 1-.247.31 1.1 1.1 0 0 1-.344.198 1.4 1.4 0 0 1-.425.067M1.863-.5a.8.8 0 0 0 .477-.14.9.9 0 0 0 .308-.395q.105-.258.106-.61v-.007q0-.358-.106-.61a.9.9 0 0 0-.308-.398.84.84 0 0 0-.477-.137.83.83 0 0 0-.476.137.88.88 0 0 0-.309.394q-.105.257-.105.614v.007c0 .235.035.442.105.61.07.172.176.305.309.398.133.09.289.137.476.137m0 0"/><path id="cg" d="M1.855.063q-.479 0-.824-.208a1.4 1.4 0 0 1-.535-.59 2.1 2.1 0 0 1-.183-.906q0-.515.183-.902.187-.386.527-.602t.801-.214c.305 0 .57.066.793.207.219.136.39.332.508.578q.18.375.18.867v.23H.64v-.468h2.34l-.313.433v-.258q0-.356-.106-.59a.8.8 0 0 0-.296-.35.86.86 0 0 0-.442-.114.8.8 0 0 0-.441.12.8.8 0 0 0-.305.356 1.35 1.35 0 0 0-.113.578v.258q-.001.33.11.559.11.233.316.355a.9.9 0 0 0 .48.125c.14 0 .266-.02.367-.058a.8.8 0 0 0 .254-.149.5.5 0 0 0 .137-.175L2.64-.88h.629l-.008.027a1 1 0 0 1-.149.325c-.07.105-.164.207-.277.293q-.177.134-.418.214a1.8 1.8 0 0 1-.563.083m0 0"/><path id="cX" d="M1.867 1.16c-.277 0-.52-.035-.726-.113a1.2 1.2 0 0 1-.485-.32.94.94 0 0 1-.219-.48L.442.241h.657l.004.004q.04.17.238.281.2.113.535.114.41 0 .64-.188c.157-.125.231-.297.231-.523V-.72h-.05a1.1 1.1 0 0 1-.25.305 1.1 1.1 0 0 1-.348.187q-.194.066-.422.067c-.278 0-.524-.07-.727-.203a1.3 1.3 0 0 1-.472-.559 1.9 1.9 0 0 1-.168-.824v-.004q-.002-.468.168-.832.168-.363.476-.566a1.3 1.3 0 0 1 .738-.207q.228-.001.426.074.194.071.34.207.153.13.246.32h.04v-.543h.648v3.23q0 .377-.188.653a1.2 1.2 0 0 1-.527.426 2 2 0 0 1-.809.148M1.855-.7a.9.9 0 0 0 .485-.132.9.9 0 0 0 .308-.371q.111-.233.11-.543v-.004q.001-.311-.11-.547a.85.85 0 0 0-.308-.371.86.86 0 0 0-.485-.137.84.84 0 0 0-.48.137.86.86 0 0 0-.3.371c-.067.156-.102.34-.102.543v.008q.001.31.101.543.106.235.301.371a.87.87 0 0 0 .48.133m0 0"/><path id="cd" d="M1.379.055q-.312 0-.559-.117a.96.96 0 0 1-.39-.344.95.95 0 0 1-.145-.52v-.008a.9.9 0 0 1 .145-.503.97.97 0 0 1 .418-.333q.275-.117.668-.14l1.214-.074v.46l-1.128.075q-.346.016-.504.144a.41.41 0 0 0-.164.348v.004q0 .229.175.36a.73.73 0 0 0 .442.128.94.94 0 0 0 .441-.101.8.8 0 0 0 .305-.27.7.7 0 0 0 .113-.383v-1.035q0-.275-.172-.422-.17-.147-.504-.148a.95.95 0 0 0-.453.097.5.5 0 0 0-.238.274v.012H.414l.004-.02a.87.87 0 0 1 .219-.473c.117-.136.27-.238.465-.316q.286-.11.66-.11.415 0 .703.13c.191.09.34.214.437.382q.153.248.153.594V0H2.41v-.469h-.05c-.067.11-.145.207-.243.285a1.1 1.1 0 0 1-.332.18Q1.6.056 1.38.055m0 0"/><path id="cj" d="M.484 0v-3.297h.649V0Zm.329-3.89a.4.4 0 0 1-.29-.122.398.398 0 0 1 0-.574.41.41 0 0 1 .29-.121q.17.002.289.121a.38.38 0 0 1 .12.29q.002.165-.12.284a.38.38 0 0 1-.29.121m0 0"/><path id="di" d="M2.219.055a1.4 1.4 0 0 1-.426-.067 1.048 1.048 0 0 1-.586-.508h-.05V0h-.65v-4.59h.65v1.813h.05a.95.95 0 0 1 .238-.305q.154-.129.352-.2c.129-.05.273-.073.422-.073q.422 0 .726.21c.203.137.364.336.473.59q.169.381.168.903v.007q0 .517-.168.899c-.113.258-.27.453-.473.594a1.26 1.26 0 0 1-.726.207M2.039-.5a.83.83 0 0 0 .477-.137.9.9 0 0 0 .304-.398 1.6 1.6 0 0 0 .106-.61v-.007q0-.357-.106-.614a.87.87 0 0 0-.304-.394.83.83 0 0 0-.477-.137.86.86 0 0 0-.48.137.9.9 0 0 0-.309.398q-.105.252-.105.61v.007q0 .352.105.61a.9.9 0 0 0 .309.394.82.82 0 0 0 .48.141m0 0"/><path id="cf" d="M1.86.063q-.48 0-.825-.208Q.685-.357.5-.738a2.1 2.1 0 0 1-.187-.918v-.008q0-.522.183-.902.189-.382.535-.586c.23-.141.508-.207.828-.207q.412 0 .711.14.3.147.477.395.175.248.223.566v.016h-.625v-.008a.75.75 0 0 0-.258-.406q-.2-.16-.528-.16a.8.8 0 0 0-.476.14.88.88 0 0 0-.305.395q-.105.259-.105.617v.008q-.001.364.109.629.105.262.305.402.198.146.472.145a.86.86 0 0 0 .508-.141.74.74 0 0 0 .274-.402l.004-.016.625-.004-.008.027c-.04.215-.117.399-.235.563q-.176.242-.465.379-.293.136-.703.137m0 0"/><path id="dD" d="M.508 0v-4.59h.648v1.793h.051a.92.92 0 0 1 .355-.414c.16-.102.36-.148.598-.148q.368 0 .625.14.257.145.387.418.134.276.133.668V0h-.649v-1.98c0-.278-.054-.485-.172-.622-.117-.132-.296-.203-.543-.203a.8.8 0 0 0-.418.106.73.73 0 0 0-.273.3 1.04 1.04 0 0 0-.094.462V0Zm0 0"/><path id="dN" d="M.707 0v-2.785H.164v-.512h.543v-.348q.002-.331.113-.546a.7.7 0 0 1 .336-.325q.228-.105.567-.105.112-.002.207.008c.062.004.125.011.18.023v.477L2-4.125q-.065-.005-.14-.004-.275 0-.391.129c-.082.09-.121.215-.121.387v.316h.734v.512h-.727V0Zm0 0"/><path id="cY" d="M.492 0v-4.047h1.59q.604 0 1.027.234.424.235.649.68.222.445.222 1.078v.008q0 .652-.222 1.11-.223.46-.645.699T2.082 0Zm.844-.7h.613q.374 0 .637-.152a.98.98 0 0 0 .394-.453q.136-.298.137-.726v-.008q0-.417-.14-.711a.96.96 0 0 0-.399-.445 1.23 1.23 0 0 0-.629-.153h-.613Zm0 0"/><path id="da" d="M.492 0v-4.047H1.2l2.082 2.879-.594-.3h.422v-2.579h.813V0h-.703l-2.09-2.887.594.297H1.3V0Zm0 0"/><path id="db" d="m.2 0 1.405-4.047h.723v.809h-.25L1.09 0Zm.753-.98.207-.637h1.871l.207.637ZM3.117 0 2.13-3.238v-.809h.473L4.008 0Zm0 0"/><path id="dc" d="M.492 0v-4.047h.969l1.117 2.965h.05l1.118-2.965h.969V0H3.96v-2.754h-.418l.809-1.18L2.867 0h-.531L.856-3.934l.804 1.18h-.414V0Zm0 0"/><path id="dd" d="M.492-4.047h.844V0H.492Zm0 0"/><path id="de" d="M2.21.105c-.39 0-.73-.085-1.01-.257a1.7 1.7 0 0 1-.657-.735c-.156-.32-.23-.695-.23-1.133v-.007c0-.438.074-.817.23-1.133q.23-.476.652-.735.426-.257 1.012-.257.482.002.863.191c.258.125.461.297.621.52q.234.328.274.757v.036H3.14v-.02a.893.893 0 0 0-.496-.668.94.94 0 0 0-.438-.098.9.9 0 0 0-.547.172 1.1 1.1 0 0 0-.36.485q-.123.315-.124.75v.004q.001.434.125.75c.086.21.203.375.36.488.151.113.339.172.55.172q.246-.002.437-.09a.84.84 0 0 0 .489-.625l.008-.024h.824l-.004.032a1.47 1.47 0 0 1-.277.742 1.5 1.5 0 0 1-.61.5 2 2 0 0 1-.867.183m0 0"/><path id="df" d="M1.938.105q-.481 0-.84-.148a1.3 1.3 0 0 1-.559-.41 1.14 1.14 0 0 1-.23-.625v-.043h.816l.004.027a.43.43 0 0 0 .121.266.7.7 0 0 0 .29.18c.124.043.26.062.417.062q.228.002.398-.066a.6.6 0 0 0 .27-.188.43.43 0 0 0 .098-.273v-.004a.38.38 0 0 0-.164-.32q-.16-.119-.536-.196l-.43-.086a2.2 2.2 0 0 1-.683-.246 1.06 1.06 0 0 1-.394-.394A1.14 1.14 0 0 1 .39-2.9v-.003q0-.376.199-.657a1.33 1.33 0 0 1 .547-.437 2 2 0 0 1 .797-.156q.475.002.808.156.34.15.531.418c.125.176.2.379.215.605l.004.035h-.797l-.007-.035a.47.47 0 0 0-.122-.254.64.64 0 0 0-.257-.171.95.95 0 0 0-.375-.063q-.205 0-.364.059a.6.6 0 0 0-.246.172.42.42 0 0 0-.086.265v.004q0 .128.07.227a.5.5 0 0 0 .22.168q.146.069.386.12l.426.09c.285.055.52.137.7.235q.27.148.401.371.13.227.13.543 0 .404-.2.695a1.3 1.3 0 0 1-.562.453q-.366.165-.872.164m0 0"/><path id="dp" d="M2.258.105c-.399 0-.746-.09-1.035-.261a1.73 1.73 0 0 1-.676-.735Q.313-1.369.312-2.023v-.004c0-.438.079-.813.239-1.133q.238-.475.676-.73a2 2 0 0 1 1.03-.262c.4 0 .743.09 1.036.261s.516.414.676.735q.236.473.238 1.129v.004q-.002.654-.238 1.132-.238.476-.676.735-.437.26-1.035.261m0-.718c.222 0 .41-.059.574-.176.16-.113.29-.277.375-.488a1.9 1.9 0 0 0 .133-.746v-.004a1.9 1.9 0 0 0-.133-.746 1.1 1.1 0 0 0-.375-.489.98.98 0 0 0-.574-.172.98.98 0 0 0-.57.172q-.246.174-.38.489a1.9 1.9 0 0 0-.132.746v.004q-.001.429.133.746.128.317.375.488c.16.117.355.176.574.176m0 0"/><path id="dr" d="M.914-1.273v-.665h1.04q.361 0 .566-.187c.132-.125.203-.3.203-.531v-.004q-.002-.344-.203-.531-.205-.183-.567-.184H.914v-.672h1.242q.428.001.75.172.315.174.496.484.177.311.176.727v.008q0 .416-.176.726a1.3 1.3 0 0 1-.496.485 1.6 1.6 0 0 1-.75.172ZM.492 0v-4.047h.844V0Zm0 0"/><path id="ds" d="M.492 0v-4.047h.844v3.348h1.8V0Zm0 0"/><path id="dt" d="M2.25.105q-.45 0-.809-.148a1.7 1.7 0 0 1-.609-.422 1.9 1.9 0 0 1-.387-.672 2.7 2.7 0 0 1-.132-.886v-.004q0-.653.234-1.13.235-.475.664-.734a1.96 1.96 0 0 1 1.02-.261q.479 0 .859.172c.25.117.457.273.617.48q.241.304.3.707l.005.027h-.84l-.008-.027a.8.8 0 0 0-.332-.469 1.03 1.03 0 0 0-.602-.172.95.95 0 0 0-.562.172 1.1 1.1 0 0 0-.363.48q-.13.317-.13.743v.008q0 .327.075.59.077.263.219.445.145.187.343.285.204.096.454.098.274 0 .492-.106c.14-.07.25-.172.332-.297a.85.85 0 0 0 .129-.445l.004-.078h-.875v-.617h1.699v.511q-.001.405-.125.727a1.52 1.52 0 0 1-.926.902 2.2 2.2 0 0 1-.746.121m0 0"/><path id="cZ" d="M1.61 0v-1.512L.2-4.047h.917l.89 1.703h.052l.89-1.703h.918l-1.41 2.535V0Zm0 0"/><path id="dq" d="M2.184.105q-.517 0-.899-.187-.38-.187-.59-.527a1.47 1.47 0 0 1-.207-.786v-2.652h.848v2.574q-.001.265.098.453.1.195.289.301t.46.106a.9.9 0 0 0 .462-.106.7.7 0 0 0 .289-.3.96.96 0 0 0 .097-.454v-2.574h.848v2.652q0 .446-.207.786a1.37 1.37 0 0 1-.586.523 2 2 0 0 1-.902.191m0 0"/><path id="dL" d="M1.473 0v-3.348H.258v-.699h3.277v.7H2.32V0Zm0 0"/><path id="dh" d="M1.777 0 .211-4.383h.727L2.12-.813h.05l1.18-3.57h.727L2.516 0Zm0 0"/><path id="dG" d="M1.664 0v-3.805H.285v-.578h3.43v.578h-1.38V0Zm0 0"/><path id="dM" d="M1.453 0 .27-4.383h.699l.808 3.418h.043l.918-3.418h.63l.925 3.418h.039l.809-3.418h.695L4.652 0h-.629l-.949-3.293h-.043L2.086 0Zm0 0"/><path id="dV" d="M.977.047a.42.42 0 0 1-.313-.129.43.43 0 0 1-.129-.313q0-.181.13-.312a.43.43 0 0 1 .312-.125q.188.001.312.125a.43.43 0 0 1 .129.312.43.43 0 0 1-.129.313.42.42 0 0 1-.312.129m0 0"/><g id="cL" clip-path="url(#c)"><g clip-path="url(#d)"><g clip-path="url(#e)"><path fill="#c8e1f0" fill-opacity=".251" d="M.035.879H422.56v140.59H.035Zm0 0"/></g></g><g clip-path="url(#f)"><g clip-path="url(#g)"><g clip-path="url(#h)"><g clip-path="url(#i)"><path fill="#8bbde0" d="M12.742.055h2.246v1.644h-2.246Zm3.738 0h2.243v1.644H16.48Zm3.739 0h2.242v1.644h-2.242Zm3.734 0H26.2v1.644h-2.246Zm3.738 0h2.243v1.644H27.69Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.247v1.644h-2.247Zm3.739 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644H50.11Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644H61.32Zm3.739 0H67.3v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.739 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644H94.95Zm3.739 0h2.242v1.644h-2.243Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.247v1.644h-2.247Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644H151Zm3.734 0h2.246v1.644h-2.246Zm3.739 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.243v1.644h-2.243Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.247v1.644h-2.247Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.243v1.644h-2.243Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644H304.2Zm3.738 0h2.243v1.644h-2.243Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.247v1.644h-2.247Zm3.739 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.247v1.644h-2.247Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.739 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h1.019q.65.001 1.29.086l-.216 1.632a8 8 0 0 0-1.074-.074h-1.02Zm3.925.441q1.19.371 2.25 1.024l-.867 1.402A8.2 8.2 0 0 0 416 2.066Zm3.575 2.012a9.7 9.7 0 0 1 1.644 1.867l-1.367.922a8 8 0 0 0-1.363-1.559ZM422.5 5.8q.522 1.142.738 2.387l-1.62.28a8.2 8.2 0 0 0-.614-1.988Zm.879 3.969v2.246h-1.645V9.785Zm0 3.742v2.242h-1.645v-2.242Zm0 3.734v2.246h-1.645v-2.246Zm0 3.738v2.243h-1.645v-2.243Zm0 3.735v2.246h-1.645v-2.246Zm0 3.738v2.242h-1.645v-2.242Zm0 3.738v2.242h-1.645v-2.242Zm0 3.735v2.242h-1.645V35.93Zm0 3.738v2.242h-1.645v-2.242Zm0 3.734v2.246h-1.645v-2.246Zm0 3.739v2.242h-1.645V47.14Zm0 3.734v2.246h-1.645v-2.246Zm0 3.738v2.242h-1.645v-2.242Zm0 3.739v2.242h-1.645v-2.242Zm0 3.734v2.242h-1.645v-2.242Zm0 3.738v2.242h-1.645v-2.242Zm0 3.735v2.246h-1.645v-2.246Zm0 3.738v2.242h-1.645v-2.242Zm0 3.734v2.246h-1.645v-2.246Zm0 3.739v2.242h-1.645V80.77Zm0 3.738v2.242h-1.645v-2.242Zm0 3.734v2.242h-1.645v-2.242Zm0 3.738v2.243h-1.645V91.98Zm0 3.735v2.246h-1.645v-2.246Zm0 3.738v2.242h-1.645v-2.242Zm0 3.734v2.247h-1.645v-2.246Zm0 3.739v2.242h-1.645v-2.242Zm0 3.738v2.242h-1.645v-2.242Zm0 3.734v2.247h-1.645v-2.247Zm0 3.739v2.242h-1.645v-2.242Zm0 3.734v2.246h-1.645v-2.246Zm0 3.738v2.243h-1.645v-2.243Zm0 3.735v2.246h-1.645v-2.246Zm-.02 3.761a9.7 9.7 0 0 1-.46 2.422l-1.563-.511a8.2 8.2 0 0 0 .383-2.012Zm-1.097 3.938a9.6 9.6 0 0 1-1.418 2.027l-1.219-1.101a8.2 8.2 0 0 0 1.176-1.688Zm-2.633 3.16a9.7 9.7 0 0 1-2.106 1.262l-.66-1.508a8 8 0 0 0 1.75-1.047Zm-3.692 1.8a9.8 9.8 0 0 1-2.355.29h-.035v-1.645h.035a8.3 8.3 0 0 0 1.961-.238Zm-3.882.29h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0H357.5v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.243v-1.645h2.243Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.242v-1.645h2.242Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.247v-1.645h2.247Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.243v-1.645h2.243Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.242v-1.645h2.242Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.243v-1.645h2.243Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.243v-1.645h2.243Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.247v-1.645h2.247Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0H133.3v-1.645h2.246Zm-3.738 0h-2.243v-1.645h2.243Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.242v-1.645h2.242Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.243v-1.645h2.243Zm-3.739 0H92.2v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.739 0H58.57v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.247v-1.645h2.247Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0H24.94v-1.645h2.243Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0H13.73v-1.645h2.243Zm-3.735 0H9.992v-1.645h2.246Zm-3.758-.016a9.6 9.6 0 0 1-2.418-.437l.497-1.57a8.2 8.2 0 0 0 2.007.367Zm-3.945-1.066a9.7 9.7 0 0 1-2.039-1.395l1.094-1.226a8.3 8.3 0 0 0 1.695 1.16Zm-3.18-2.598a9.8 9.8 0 0 1-1.28-2.097l1.5-.676a8 8 0 0 0 1.066 1.746Zm-1.835-3.675a9.7 9.7 0 0 1-.31-2.395l1.645-.008q.006 1.014.258 1.992Zm-.31-3.891v-2.242H.856v2.242Zm0-3.734v-2.247H.856v2.246Zm0-3.739v-2.242H.856v2.242Zm0-3.734v-2.246H.856v2.246Zm0-3.738v-2.243H.856v2.243Zm0-3.739v-2.242H.856v2.242Zm0-3.734v-2.246H.856v2.246Zm0-3.738v-2.243H.856v2.243Zm0-3.735V98.91H.856v2.246Zm0-3.738v-2.242H.856v2.242Zm0-3.734v-2.246H.856v2.246Zm0-3.739v-2.242H.856v2.242Zm0-3.738v-2.242H.856v2.242Zm0-3.734v-2.246H.856v2.246Zm0-3.739v-2.242H.856v2.242Zm0-3.734v-2.246H.856V75Zm0-3.738V69.02H.856v2.242Zm0-3.739v-2.242H.856v2.242Zm0-3.734v-2.242H.856v2.242Zm0-3.738v-2.242H.856v2.242Zm0-3.735V54.07H.856v2.246Zm0-3.738v-2.242H.856v2.242Zm0-3.734v-2.246H.856v2.246Zm0-3.739v-2.242H.856v2.242Zm0-3.738v-2.242H.856v2.242Zm0-3.734V35.39H.856v2.242Zm0-3.738v-2.243H.856v2.243Zm0-3.735v-2.246H.856v2.246Zm0-3.738V24.18H.856v2.242Zm0-3.735v-2.246H.856v2.247Zm0-3.738v-2.242H.856v2.242Zm0-3.738v-2.242H.856v2.242Zm0-3.734V9.852q.002-.322.02-.645l1.645.11q-.019.264-.02.535v1.625Zm.263-3.875q.288-1.22.875-2.329l1.453.77a8 8 0 0 0-.727 1.937ZM1.234 3.89a9.8 9.8 0 0 1 1.754-1.77L4 3.421a8.1 8.1 0 0 0-1.46 1.47Zm3.133-2.664a9.5 9.5 0 0 1 2.32-.891l.391 1.598q-1.014.246-1.933.738ZM8.293.082q.357-.025.715-.027h2.242v1.644H9.008c-.2 0-.395.008-.594.024Zm0 0"/></g></g></g></g><g clip-path="url(#j)"><g clip-path="url(#k)"><g clip-path="url(#l)"><g clip-path="url(#m)"><path fill="#8bbde0" d="M12.742.055h2.246v1.644h-2.246Zm3.738 0h2.243v1.644H16.48Zm3.739 0h2.242v1.644h-2.242Zm3.734 0H26.2v1.644h-2.246Zm3.738 0h2.243v1.644H27.69Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.247v1.644h-2.247Zm3.739 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644H50.11Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644H61.32Zm3.739 0H67.3v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.739 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644H94.95Zm3.739 0h2.242v1.644h-2.243Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.247v1.644h-2.247Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644H151Zm3.734 0h2.246v1.644h-2.246Zm3.739 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.243v1.644h-2.243Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.247v1.644h-2.247Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.243v1.644h-2.243Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644H304.2Zm3.738 0h2.243v1.644h-2.243Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.247v1.644h-2.247Zm3.739 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.247v1.644h-2.247Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.739 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h1.019q.65.001 1.29.086l-.216 1.632a8 8 0 0 0-1.074-.074h-1.02Zm3.925.441q1.19.371 2.25 1.024l-.867 1.402A8.2 8.2 0 0 0 416 2.066Zm3.575 2.012a9.7 9.7 0 0 1 1.644 1.867l-1.367.922a8 8 0 0 0-1.363-1.559ZM422.5 5.8q.522 1.142.738 2.387l-1.62.28a8.2 8.2 0 0 0-.614-1.988Zm.879 3.969v2.246h-1.645V9.785Zm0 3.742v2.242h-1.645v-2.242Zm0 3.734v2.246h-1.645v-2.246Zm0 3.738v2.243h-1.645v-2.243Zm0 3.735v2.246h-1.645v-2.246Zm0 3.738v2.242h-1.645v-2.242Zm0 3.738v2.242h-1.645v-2.242Zm0 3.735v2.242h-1.645V35.93Zm0 3.738v2.242h-1.645v-2.242Zm0 3.734v2.246h-1.645v-2.246Zm0 3.739v2.242h-1.645V47.14Zm0 3.734v2.246h-1.645v-2.246Zm0 3.738v2.242h-1.645v-2.242Zm0 3.739v2.242h-1.645v-2.242Zm0 3.734v2.242h-1.645v-2.242Zm0 3.738v2.242h-1.645v-2.242Zm0 3.735v2.246h-1.645v-2.246Zm0 3.738v2.242h-1.645v-2.242Zm0 3.734v2.246h-1.645v-2.246Zm0 3.739v2.242h-1.645V80.77Zm0 3.738v2.242h-1.645v-2.242Zm0 3.734v2.242h-1.645v-2.242Zm0 3.738v2.243h-1.645V91.98Zm0 3.735v2.246h-1.645v-2.246Zm0 3.738v2.242h-1.645v-2.242Zm0 3.734v2.247h-1.645v-2.246Zm0 3.739v2.242h-1.645v-2.242Zm0 3.738v2.242h-1.645v-2.242Zm0 3.734v2.247h-1.645v-2.247Zm0 3.739v2.242h-1.645v-2.242Zm0 3.734v2.246h-1.645v-2.246Zm0 3.738v2.243h-1.645v-2.243Zm0 3.735v2.246h-1.645v-2.246Zm-.02 3.761a9.7 9.7 0 0 1-.46 2.422l-1.563-.511a8.2 8.2 0 0 0 .383-2.012Zm-1.097 3.938a9.6 9.6 0 0 1-1.418 2.027l-1.219-1.101a8.2 8.2 0 0 0 1.176-1.688Zm-2.633 3.16a9.7 9.7 0 0 1-2.106 1.262l-.66-1.508a8 8 0 0 0 1.75-1.047Zm-3.692 1.8a9.8 9.8 0 0 1-2.355.29h-.035v-1.645h.035a8.3 8.3 0 0 0 1.961-.238Zm-3.882.29h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0H357.5v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.243v-1.645h2.243Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.242v-1.645h2.242Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.247v-1.645h2.247Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.243v-1.645h2.243Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.242v-1.645h2.242Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.243v-1.645h2.243Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.243v-1.645h2.243Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.247v-1.645h2.247Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0H133.3v-1.645h2.246Zm-3.738 0h-2.243v-1.645h2.243Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.242v-1.645h2.242Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.243v-1.645h2.243Zm-3.739 0H92.2v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.739 0H58.57v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.247v-1.645h2.247Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0H24.94v-1.645h2.243Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0H13.73v-1.645h2.243Zm-3.735 0H9.992v-1.645h2.246Zm-3.758-.016a9.6 9.6 0 0 1-2.418-.437l.497-1.57a8.2 8.2 0 0 0 2.007.367Zm-3.945-1.066a9.7 9.7 0 0 1-2.039-1.395l1.094-1.226a8.3 8.3 0 0 0 1.695 1.16Zm-3.18-2.598a9.8 9.8 0 0 1-1.28-2.097l1.5-.676a8 8 0 0 0 1.066 1.746Zm-1.835-3.675a9.7 9.7 0 0 1-.31-2.395l1.645-.008q.006 1.014.258 1.992Zm-.31-3.891v-2.242H.856v2.242Zm0-3.734v-2.247H.856v2.246Zm0-3.739v-2.242H.856v2.242Zm0-3.734v-2.246H.856v2.246Zm0-3.738v-2.243H.856v2.243Zm0-3.739v-2.242H.856v2.242Zm0-3.734v-2.246H.856v2.246Zm0-3.738v-2.243H.856v2.243Zm0-3.735V98.91H.856v2.246Zm0-3.738v-2.242H.856v2.242Zm0-3.734v-2.246H.856v2.246Zm0-3.739v-2.242H.856v2.242Zm0-3.738v-2.242H.856v2.242Zm0-3.734v-2.246H.856v2.246Zm0-3.739v-2.242H.856v2.242Zm0-3.734v-2.246H.856V75Zm0-3.738V69.02H.856v2.242Zm0-3.739v-2.242H.856v2.242Zm0-3.734v-2.242H.856v2.242Zm0-3.738v-2.242H.856v2.242Zm0-3.735V54.07H.856v2.246Zm0-3.738v-2.242H.856v2.242Zm0-3.734v-2.246H.856v2.246Zm0-3.739v-2.242H.856v2.242Zm0-3.738v-2.242H.856v2.242Zm0-3.734V35.39H.856v2.242Zm0-3.738v-2.243H.856v2.243Zm0-3.735v-2.246H.856v2.246Zm0-3.738V24.18H.856v2.242Zm0-3.735v-2.246H.856v2.247Zm0-3.738v-2.242H.856v2.242Zm0-3.738v-2.242H.856v2.242Zm0-3.734V9.852q.002-.322.02-.645l1.645.11q-.019.264-.02.535v1.625Zm.263-3.875q.288-1.22.875-2.329l1.453.77a8 8 0 0 0-.727 1.937ZM1.234 3.89a9.8 9.8 0 0 1 1.754-1.77L4 3.421a8.1 8.1 0 0 0-1.46 1.47Zm3.133-2.664a9.5 9.5 0 0 1 2.32-.891l.391 1.598q-1.014.246-1.933.738ZM8.293.082q.357-.025.715-.027h2.242v1.644H9.008c-.2 0-.395.008-.594.024Zm0 0"/></g></g></g></g><g clip-path="url(#n)"><g clip-path="url(#o)"><g clip-path="url(#p)"><g clip-path="url(#q)"><path fill="#8bbde0" d="M12.742.055h2.246v1.644h-2.246Zm3.738 0h2.243v1.644H16.48Zm3.739 0h2.242v1.644h-2.242Zm3.734 0H26.2v1.644h-2.246Zm3.738 0h2.243v1.644H27.69Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.247v1.644h-2.247Zm3.739 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644H50.11Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644H61.32Zm3.739 0H67.3v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.739 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644H94.95Zm3.739 0h2.242v1.644h-2.243Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.247v1.644h-2.247Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644H151Zm3.734 0h2.246v1.644h-2.246Zm3.739 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.243v1.644h-2.243Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.247v1.644h-2.247Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.243v1.644h-2.243Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644H304.2Zm3.738 0h2.243v1.644h-2.243Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.247v1.644h-2.247Zm3.739 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.247v1.644h-2.247Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.739 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h1.019q.65.001 1.29.086l-.216 1.632a8 8 0 0 0-1.074-.074h-1.02Zm3.925.441q1.19.371 2.25 1.024l-.867 1.402A8.2 8.2 0 0 0 416 2.066Zm3.575 2.012a9.7 9.7 0 0 1 1.644 1.867l-1.367.922a8 8 0 0 0-1.363-1.559ZM422.5 5.8q.522 1.142.738 2.387l-1.62.28a8.2 8.2 0 0 0-.614-1.988Zm.879 3.969v2.246h-1.645V9.785Zm0 3.742v2.242h-1.645v-2.242Zm0 3.734v2.246h-1.645v-2.246Zm0 3.738v2.243h-1.645v-2.243Zm0 3.735v2.246h-1.645v-2.246Zm0 3.738v2.242h-1.645v-2.242Zm0 3.738v2.242h-1.645v-2.242Zm0 3.735v2.242h-1.645V35.93Zm0 3.738v2.242h-1.645v-2.242Zm0 3.734v2.246h-1.645v-2.246Zm0 3.739v2.242h-1.645V47.14Zm0 3.734v2.246h-1.645v-2.246Zm0 3.738v2.242h-1.645v-2.242Zm0 3.739v2.242h-1.645v-2.242Zm0 3.734v2.242h-1.645v-2.242Zm0 3.738v2.242h-1.645v-2.242Zm0 3.735v2.246h-1.645v-2.246Zm0 3.738v2.242h-1.645v-2.242Zm0 3.734v2.246h-1.645v-2.246Zm0 3.739v2.242h-1.645V80.77Zm0 3.738v2.242h-1.645v-2.242Zm0 3.734v2.242h-1.645v-2.242Zm0 3.738v2.243h-1.645V91.98Zm0 3.735v2.246h-1.645v-2.246Zm0 3.738v2.242h-1.645v-2.242Zm0 3.734v2.247h-1.645v-2.246Zm0 3.739v2.242h-1.645v-2.242Zm0 3.738v2.242h-1.645v-2.242Zm0 3.734v2.247h-1.645v-2.247Zm0 3.739v2.242h-1.645v-2.242Zm0 3.734v2.246h-1.645v-2.246Zm0 3.738v2.243h-1.645v-2.243Zm0 3.735v2.246h-1.645v-2.246Zm-.02 3.761a9.7 9.7 0 0 1-.46 2.422l-1.563-.511a8.2 8.2 0 0 0 .383-2.012Zm-1.097 3.938a9.6 9.6 0 0 1-1.418 2.027l-1.219-1.101a8.2 8.2 0 0 0 1.176-1.688Zm-2.633 3.16a9.7 9.7 0 0 1-2.106 1.262l-.66-1.508a8 8 0 0 0 1.75-1.047Zm-3.692 1.8a9.8 9.8 0 0 1-2.355.29h-.035v-1.645h.035a8.3 8.3 0 0 0 1.961-.238Zm-3.882.29h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0H357.5v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.243v-1.645h2.243Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.242v-1.645h2.242Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.247v-1.645h2.247Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.243v-1.645h2.243Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.242v-1.645h2.242Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.243v-1.645h2.243Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.243v-1.645h2.243Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.247v-1.645h2.247Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0H133.3v-1.645h2.246Zm-3.738 0h-2.243v-1.645h2.243Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.242v-1.645h2.242Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.243v-1.645h2.243Zm-3.739 0H92.2v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.739 0H58.57v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.247v-1.645h2.247Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0H24.94v-1.645h2.243Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0H13.73v-1.645h2.243Zm-3.735 0H9.992v-1.645h2.246Zm-3.758-.016a9.6 9.6 0 0 1-2.418-.437l.497-1.57a8.2 8.2 0 0 0 2.007.367Zm-3.945-1.066a9.7 9.7 0 0 1-2.039-1.395l1.094-1.226a8.3 8.3 0 0 0 1.695 1.16Zm-3.18-2.598a9.8 9.8 0 0 1-1.28-2.097l1.5-.676a8 8 0 0 0 1.066 1.746Zm-1.835-3.675a9.7 9.7 0 0 1-.31-2.395l1.645-.008q.006 1.014.258 1.992Zm-.31-3.891v-2.242H.856v2.242Zm0-3.734v-2.247H.856v2.246Zm0-3.739v-2.242H.856v2.242Zm0-3.734v-2.246H.856v2.246Zm0-3.738v-2.243H.856v2.243Zm0-3.739v-2.242H.856v2.242Zm0-3.734v-2.246H.856v2.246Zm0-3.738v-2.243H.856v2.243Zm0-3.735V98.91H.856v2.246Zm0-3.738v-2.242H.856v2.242Zm0-3.734v-2.246H.856v2.246Zm0-3.739v-2.242H.856v2.242Zm0-3.738v-2.242H.856v2.242Zm0-3.734v-2.246H.856v2.246Zm0-3.739v-2.242H.856v2.242Zm0-3.734v-2.246H.856V75Zm0-3.738V69.02H.856v2.242Zm0-3.739v-2.242H.856v2.242Zm0-3.734v-2.242H.856v2.242Zm0-3.738v-2.242H.856v2.242Zm0-3.735V54.07H.856v2.246Zm0-3.738v-2.242H.856v2.242Zm0-3.734v-2.246H.856v2.246Zm0-3.739v-2.242H.856v2.242Zm0-3.738v-2.242H.856v2.242Zm0-3.734V35.39H.856v2.242Zm0-3.738v-2.243H.856v2.243Zm0-3.735v-2.246H.856v2.246Zm0-3.738V24.18H.856v2.242Zm0-3.735v-2.246H.856v2.247Zm0-3.738v-2.242H.856v2.242Zm0-3.738v-2.242H.856v2.242Zm0-3.734V9.852q.002-.322.02-.645l1.645.11q-.019.264-.02.535v1.625Zm.263-3.875q.288-1.22.875-2.329l1.453.77a8 8 0 0 0-.727 1.937ZM1.234 3.89a9.8 9.8 0 0 1 1.754-1.77L4 3.421a8.1 8.1 0 0 0-1.46 1.47Zm3.133-2.664a9.5 9.5 0 0 1 2.32-.891l.391 1.598q-1.014.246-1.933.738ZM8.293.082q.357-.025.715-.027h2.242v1.644H9.008c-.2 0-.395.008-.594.024Zm0 0"/></g></g></g></g><g clip-path="url(#r)"><g clip-path="url(#s)"><g clip-path="url(#t)"><g clip-path="url(#u)"><path fill="#8bbde0" d="M12.742.055h2.246v1.644h-2.246Zm3.738 0h2.243v1.644H16.48Zm3.739 0h2.242v1.644h-2.242Zm3.734 0H26.2v1.644h-2.246Zm3.738 0h2.243v1.644H27.69Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.247v1.644h-2.247Zm3.739 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644H50.11Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644H61.32Zm3.739 0H67.3v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.739 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644H94.95Zm3.739 0h2.242v1.644h-2.243Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.247v1.644h-2.247Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644H151Zm3.734 0h2.246v1.644h-2.246Zm3.739 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.243v1.644h-2.243Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.247v1.644h-2.247Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.243v1.644h-2.243Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644H304.2Zm3.738 0h2.243v1.644h-2.243Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.247v1.644h-2.247Zm3.739 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.247v1.644h-2.247Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.739 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.738 0h2.242v1.644h-2.242Zm3.735 0h1.019q.65.001 1.29.086l-.216 1.632a8 8 0 0 0-1.074-.074h-1.02Zm3.925.441q1.19.371 2.25 1.024l-.867 1.402A8.2 8.2 0 0 0 416 2.066Zm3.575 2.012a9.7 9.7 0 0 1 1.644 1.867l-1.367.922a8 8 0 0 0-1.363-1.559ZM422.5 5.8q.522 1.142.738 2.387l-1.62.28a8.2 8.2 0 0 0-.614-1.988Zm.879 3.969v2.246h-1.645V9.785Zm0 3.742v2.242h-1.645v-2.242Zm0 3.734v2.246h-1.645v-2.246Zm0 3.738v2.243h-1.645v-2.243Zm0 3.735v2.246h-1.645v-2.246Zm0 3.738v2.242h-1.645v-2.242Zm0 3.738v2.242h-1.645v-2.242Zm0 3.735v2.242h-1.645V35.93Zm0 3.738v2.242h-1.645v-2.242Zm0 3.734v2.246h-1.645v-2.246Zm0 3.739v2.242h-1.645V47.14Zm0 3.734v2.246h-1.645v-2.246Zm0 3.738v2.242h-1.645v-2.242Zm0 3.739v2.242h-1.645v-2.242Zm0 3.734v2.242h-1.645v-2.242Zm0 3.738v2.242h-1.645v-2.242Zm0 3.735v2.246h-1.645v-2.246Zm0 3.738v2.242h-1.645v-2.242Zm0 3.734v2.246h-1.645v-2.246Zm0 3.739v2.242h-1.645V80.77Zm0 3.738v2.242h-1.645v-2.242Zm0 3.734v2.242h-1.645v-2.242Zm0 3.738v2.243h-1.645V91.98Zm0 3.735v2.246h-1.645v-2.246Zm0 3.738v2.242h-1.645v-2.242Zm0 3.734v2.247h-1.645v-2.246Zm0 3.739v2.242h-1.645v-2.242Zm0 3.738v2.242h-1.645v-2.242Zm0 3.734v2.247h-1.645v-2.247Zm0 3.739v2.242h-1.645v-2.242Zm0 3.734v2.246h-1.645v-2.246Zm0 3.738v2.243h-1.645v-2.243Zm0 3.735v2.246h-1.645v-2.246Zm-.02 3.761a9.7 9.7 0 0 1-.46 2.422l-1.563-.511a8.2 8.2 0 0 0 .383-2.012Zm-1.097 3.938a9.6 9.6 0 0 1-1.418 2.027l-1.219-1.101a8.2 8.2 0 0 0 1.176-1.688Zm-2.633 3.16a9.7 9.7 0 0 1-2.106 1.262l-.66-1.508a8 8 0 0 0 1.75-1.047Zm-3.692 1.8a9.8 9.8 0 0 1-2.355.29h-.035v-1.645h.035a8.3 8.3 0 0 0 1.961-.238Zm-3.882.29h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0H357.5v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.243v-1.645h2.243Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.242v-1.645h2.242Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.247v-1.645h2.247Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.243v-1.645h2.243Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.242v-1.645h2.242Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.243v-1.645h2.243Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.243v-1.645h2.243Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.247v-1.645h2.247Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0H133.3v-1.645h2.246Zm-3.738 0h-2.243v-1.645h2.243Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.242v-1.645h2.242Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.243v-1.645h2.243Zm-3.739 0H92.2v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.739 0H58.57v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.243v-1.645h2.243Zm-3.735 0h-2.246v-1.645h2.246Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0h-2.247v-1.645h2.247Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.734 0H24.94v-1.645h2.243Zm-3.739 0h-2.242v-1.645h2.242Zm-3.734 0h-2.246v-1.645h2.246Zm-3.738 0H13.73v-1.645h2.243Zm-3.735 0H9.992v-1.645h2.246Zm-3.758-.016a9.6 9.6 0 0 1-2.418-.437l.497-1.57a8.2 8.2 0 0 0 2.007.367Zm-3.945-1.066a9.7 9.7 0 0 1-2.039-1.395l1.094-1.226a8.3 8.3 0 0 0 1.695 1.16Zm-3.18-2.598a9.8 9.8 0 0 1-1.28-2.097l1.5-.676a8 8 0 0 0 1.066 1.746Zm-1.835-3.675a9.7 9.7 0 0 1-.31-2.395l1.645-.008q.006 1.014.258 1.992Zm-.31-3.891v-2.242H.856v2.242Zm0-3.734v-2.247H.856v2.246Zm0-3.739v-2.242H.856v2.242Zm0-3.734v-2.246H.856v2.246Zm0-3.738v-2.243H.856v2.243Zm0-3.739v-2.242H.856v2.242Zm0-3.734v-2.246H.856v2.246Zm0-3.738v-2.243H.856v2.243Zm0-3.735V98.91H.856v2.246Zm0-3.738v-2.242H.856v2.242Zm0-3.734v-2.246H.856v2.246Zm0-3.739v-2.242H.856v2.242Zm0-3.738v-2.242H.856v2.242Zm0-3.734v-2.246H.856v2.246Zm0-3.739v-2.242H.856v2.242Zm0-3.734v-2.246H.856V75Zm0-3.738V69.02H.856v2.242Zm0-3.739v-2.242H.856v2.242Zm0-3.734v-2.242H.856v2.242Zm0-3.738v-2.242H.856v2.242Zm0-3.735V54.07H.856v2.246Zm0-3.738v-2.242H.856v2.242Zm0-3.734v-2.246H.856v2.246Zm0-3.739v-2.242H.856v2.242Zm0-3.738v-2.242H.856v2.242Zm0-3.734V35.39H.856v2.242Zm0-3.738v-2.243H.856v2.243Zm0-3.735v-2.246H.856v2.246Zm0-3.738V24.18H.856v2.242Zm0-3.735v-2.246H.856v2.247Zm0-3.738v-2.242H.856v2.242Zm0-3.738v-2.242H.856v2.242Zm0-3.734V9.852q.002-.322.02-.645l1.645.11q-.019.264-.02.535v1.625Zm.263-3.875q.288-1.22.875-2.329l1.453.77a8 8 0 0 0-.727 1.937ZM1.234 3.89a9.8 9.8 0 0 1 1.754-1.77L4 3.421a8.1 8.1 0 0 0-1.46 1.47Zm3.133-2.664a9.5 9.5 0 0 1 2.32-.891l.391 1.598q-1.014.246-1.933.738ZM8.293.082q.357-.025.715-.027h2.242v1.644H9.008c-.2 0-.395.008-.594.024Zm0 0"/></g></g></g></g></g><g id="dy" clip-path="url(#v)"><g clip-path="url(#w)"><g clip-path="url(#x)"><path fill="#b4dcda" fill-opacity=".251" d="M.035.879h281.93v45.617H.035Zm0 0"/></g></g><g clip-path="url(#y)"><g clip-path="url(#z)"><g clip-path="url(#A)"><g clip-path="url(#B)"><path fill="#7abab8" d="M12.742.055h2.246v1.644h-2.246Zm3.738 0h2.243v1.644H16.48Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644H23.95Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.734 0h2.243v1.644h-2.243Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.734 0h2.247v1.644h-2.247Zm3.735 0h2.246v1.644H50.09Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.243v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644H72.5Zm3.734 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.734 0h2.246v1.644h-2.246Zm3.734 0h2.247v1.644h-2.246Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644H94.91Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.735 0h2.246v1.644h-2.246Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.734 0h2.243v1.644h-2.243Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.734 0h2.247v1.644h-2.247Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.243v1.644h-2.243Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.735 0h2.246v1.644h-2.246Zm3.734 0h2.246v1.644h-2.246Zm3.734 0h2.247v1.644h-2.247Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.734 0h2.243v1.644h-2.243Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.734 0h2.246v1.644h-2.246Zm3.735 0h2.246v1.644h-2.246Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.735 0h2.246v1.644h-2.246Zm3.734 0h2.246v1.644h-2.246Zm3.734 0h2.247v1.644h-2.247Zm3.801.082a9.7 9.7 0 0 1 2.422.633l-.617 1.527a8 8 0 0 0-2.016-.531Zm3.867 1.36q1.066.655 1.938 1.558l-1.188 1.14a8 8 0 0 0-1.609-1.293Zm2.98 2.839c.466.684.837 1.41 1.118 2.187l-1.547.559a8.3 8.3 0 0 0-.93-1.82Zm1.548 3.805q.152.849.152 1.71v.63h-1.644v-.63c0-.476-.043-.953-.125-1.421Zm.152 3.832v2.242h-1.644v-2.242Zm0 3.734v2.242h-1.644v-2.242Zm0 3.734v2.243h-1.644V19.44Zm0 3.735v2.242h-1.644v-2.242Zm0 3.734v2.242h-1.644V26.91Zm0 3.735v2.242h-1.644v-2.242Zm0 3.734v2.246h-1.644v-2.246Zm-.02 3.762a9.8 9.8 0 0 1-.46 2.418l-1.567-.512a8 8 0 0 0 .387-2.012Zm-1.101 3.933a9.9 9.9 0 0 1-1.418 2.028l-1.219-1.106a8 8 0 0 0 1.18-1.687Zm-2.629 3.156a9.8 9.8 0 0 1-2.105 1.262l-.664-1.508a8 8 0 0 0 1.753-1.047Zm-3.691 1.801a9.8 9.8 0 0 1-2.356.29h-.035v-1.65h.035q.996.002 1.961-.237Zm-3.883.29h-2.242v-1.65h2.242Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.246v-1.65h2.246Zm-3.735 0h-2.246v-1.65h2.246Zm-3.734 0h-2.246v-1.65h2.246Zm-3.738 0h-2.243v-1.65h2.243Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.243v-1.65h2.243Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.246v-1.65h2.246Zm-3.734 0h-2.247v-1.65h2.247Zm-3.735 0h-2.246v-1.65h2.246Zm-3.738 0h-2.242v-1.65h2.242Zm-3.734 0h-2.243v-1.65h2.243Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.243v-1.65h2.243Zm-3.735 0h-2.246v-1.65h2.246Zm-3.734 0h-2.246v-1.65h2.246Zm-3.734 0h-2.247v-1.65h2.247Zm-3.739 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.243v-1.65h2.243Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.246v-1.65h2.246Zm-3.735 0h-2.246v-1.65h2.246Zm-3.734 0H127.3v-1.65h2.246Zm-3.738 0h-2.243v-1.65h2.243Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0h-2.246v-1.65h2.246Zm-3.734 0h-2.246v-1.65h2.246Zm-3.734 0h-2.246v-1.65h2.246Zm-3.735 0h-2.246v-1.65H92.2Zm-3.738 0h-2.242v-1.65h2.242Zm-3.734 0h-2.243v-1.65h2.243Zm-3.735 0H78.75v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.246v-1.65h2.246Zm-3.735 0h-2.246v-1.65h2.246Zm-3.734 0H56.34v-1.65h2.246Zm-3.734 0h-2.247v-1.65h2.247Zm-3.739 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.243v-1.65h2.243Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0H30.2v-1.65h2.242Zm-3.734 0h-2.246v-1.65h2.246Zm-3.734 0h-2.246v-1.65h2.246Zm-3.735 0h-2.246v-1.65h2.246Zm-3.738 0h-2.242v-1.65H17.5Zm-3.734 0h-2.243v-1.65h2.243Zm-3.735 0H9.008c-.43 0-.86-.032-1.285-.087l.218-1.632c.352.046.711.07 1.067.07h1.023Zm-3.922-.442a9.8 9.8 0 0 1-2.25-1.024l.868-1.398q.88.543 1.867.852Zm-3.574-2.004a9.7 9.7 0 0 1-1.644-1.871l1.363-.918q.584.862 1.367 1.555Zm-2.441-3.29a9.9 9.9 0 0 1-.739-2.39l1.622-.28q.18 1.033.613 1.987ZM-.79 37.61v-2.242H.859v2.235Zm0-3.73v-2.246H.859v2.246Zm0-3.738v-2.243H.859v2.243Zm0-3.735v-2.242H.859v2.242Zm0-3.734V20.43H.859v2.242Zm0-3.735v-2.242H.859v2.242Zm0-3.734v-2.242H.859v2.242Zm0-3.734V9.852q0-.33.023-.653l1.641.11q-.017.271-.016.543v1.617Zm.266-3.875q.288-1.22.875-2.328l1.453.77a8.2 8.2 0 0 0-.727 1.937Zm1.761-3.707A9.6 9.6 0 0 1 2.996 2.12l1.008 1.297a8.1 8.1 0 0 0-1.461 1.469Zm3.133-2.664a9.8 9.8 0 0 1 2.32-.891l.391 1.602q-1.014.246-1.934.738ZM8.297.082q.356-.025.71-.027h2.247v1.644H9.008c-.195 0-.395.008-.59.024Zm0 0"/></g></g></g></g><g clip-path="url(#C)"><g clip-path="url(#D)"><g clip-path="url(#E)"><g clip-path="url(#F)"><path fill="#7abab8" d="M12.742.055h2.246v1.644h-2.246Zm3.738 0h2.243v1.644H16.48Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644H23.95Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.734 0h2.243v1.644h-2.243Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.734 0h2.247v1.644h-2.247Zm3.735 0h2.246v1.644H50.09Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.243v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644H72.5Zm3.734 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.734 0h2.246v1.644h-2.246Zm3.734 0h2.247v1.644h-2.246Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644H94.91Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.735 0h2.246v1.644h-2.246Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.734 0h2.243v1.644h-2.243Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.734 0h2.247v1.644h-2.247Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.243v1.644h-2.243Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.735 0h2.246v1.644h-2.246Zm3.734 0h2.246v1.644h-2.246Zm3.734 0h2.247v1.644h-2.247Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.734 0h2.243v1.644h-2.243Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.734 0h2.246v1.644h-2.246Zm3.735 0h2.246v1.644h-2.246Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.735 0h2.246v1.644h-2.246Zm3.734 0h2.246v1.644h-2.246Zm3.734 0h2.247v1.644h-2.247Zm3.801.082a9.7 9.7 0 0 1 2.422.633l-.617 1.527a8 8 0 0 0-2.016-.531Zm3.867 1.36q1.066.655 1.938 1.558l-1.188 1.14a8 8 0 0 0-1.609-1.293Zm2.98 2.839c.466.684.837 1.41 1.118 2.187l-1.547.559a8.3 8.3 0 0 0-.93-1.82Zm1.548 3.805q.152.849.152 1.71v.63h-1.644v-.63c0-.476-.043-.953-.125-1.421Zm.152 3.832v2.242h-1.644v-2.242Zm0 3.734v2.242h-1.644v-2.242Zm0 3.734v2.243h-1.644V19.44Zm0 3.735v2.242h-1.644v-2.242Zm0 3.734v2.242h-1.644V26.91Zm0 3.735v2.242h-1.644v-2.242Zm0 3.734v2.246h-1.644v-2.246Zm-.02 3.762a9.8 9.8 0 0 1-.46 2.418l-1.567-.512a8 8 0 0 0 .387-2.012Zm-1.101 3.933a9.9 9.9 0 0 1-1.418 2.028l-1.219-1.106a8 8 0 0 0 1.18-1.687Zm-2.629 3.156a9.8 9.8 0 0 1-2.105 1.262l-.664-1.508a8 8 0 0 0 1.753-1.047Zm-3.691 1.801a9.8 9.8 0 0 1-2.356.29h-.035v-1.65h.035q.996.002 1.961-.237Zm-3.883.29h-2.242v-1.65h2.242Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.246v-1.65h2.246Zm-3.735 0h-2.246v-1.65h2.246Zm-3.734 0h-2.246v-1.65h2.246Zm-3.738 0h-2.243v-1.65h2.243Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.243v-1.65h2.243Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.246v-1.65h2.246Zm-3.734 0h-2.247v-1.65h2.247Zm-3.735 0h-2.246v-1.65h2.246Zm-3.738 0h-2.242v-1.65h2.242Zm-3.734 0h-2.243v-1.65h2.243Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.243v-1.65h2.243Zm-3.735 0h-2.246v-1.65h2.246Zm-3.734 0h-2.246v-1.65h2.246Zm-3.734 0h-2.247v-1.65h2.247Zm-3.739 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.243v-1.65h2.243Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.246v-1.65h2.246Zm-3.735 0h-2.246v-1.65h2.246Zm-3.734 0H127.3v-1.65h2.246Zm-3.738 0h-2.243v-1.65h2.243Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0h-2.246v-1.65h2.246Zm-3.734 0h-2.246v-1.65h2.246Zm-3.734 0h-2.246v-1.65h2.246Zm-3.735 0h-2.246v-1.65H92.2Zm-3.738 0h-2.242v-1.65h2.242Zm-3.734 0h-2.243v-1.65h2.243Zm-3.735 0H78.75v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.246v-1.65h2.246Zm-3.735 0h-2.246v-1.65h2.246Zm-3.734 0H56.34v-1.65h2.246Zm-3.734 0h-2.247v-1.65h2.247Zm-3.739 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.243v-1.65h2.243Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0H30.2v-1.65h2.242Zm-3.734 0h-2.246v-1.65h2.246Zm-3.734 0h-2.246v-1.65h2.246Zm-3.735 0h-2.246v-1.65h2.246Zm-3.738 0h-2.242v-1.65H17.5Zm-3.734 0h-2.243v-1.65h2.243Zm-3.735 0H9.008c-.43 0-.86-.032-1.285-.087l.218-1.632c.352.046.711.07 1.067.07h1.023Zm-3.922-.442a9.8 9.8 0 0 1-2.25-1.024l.868-1.398q.88.543 1.867.852Zm-3.574-2.004a9.7 9.7 0 0 1-1.644-1.871l1.363-.918q.584.862 1.367 1.555Zm-2.441-3.29a9.9 9.9 0 0 1-.739-2.39l1.622-.28q.18 1.033.613 1.987ZM-.79 37.61v-2.242H.859v2.235Zm0-3.73v-2.246H.859v2.246Zm0-3.738v-2.243H.859v2.243Zm0-3.735v-2.242H.859v2.242Zm0-3.734V20.43H.859v2.242Zm0-3.735v-2.242H.859v2.242Zm0-3.734v-2.242H.859v2.242Zm0-3.734V9.852q0-.33.023-.653l1.641.11q-.017.271-.016.543v1.617Zm.266-3.875q.288-1.22.875-2.328l1.453.77a8.2 8.2 0 0 0-.727 1.937Zm1.761-3.707A9.6 9.6 0 0 1 2.996 2.12l1.008 1.297a8.1 8.1 0 0 0-1.461 1.469Zm3.133-2.664a9.8 9.8 0 0 1 2.32-.891l.391 1.602q-1.014.246-1.934.738ZM8.297.082q.356-.025.71-.027h2.247v1.644H9.008c-.195 0-.395.008-.59.024Zm0 0"/></g></g></g></g><g clip-path="url(#G)"><g clip-path="url(#H)"><g clip-path="url(#I)"><g clip-path="url(#J)"><path fill="#7abab8" d="M12.742.055h2.246v1.644h-2.246Zm3.738 0h2.243v1.644H16.48Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644H23.95Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.734 0h2.243v1.644h-2.243Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.734 0h2.247v1.644h-2.247Zm3.735 0h2.246v1.644H50.09Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.243v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644H72.5Zm3.734 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.734 0h2.246v1.644h-2.246Zm3.734 0h2.247v1.644h-2.246Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644H94.91Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.735 0h2.246v1.644h-2.246Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.734 0h2.243v1.644h-2.243Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.734 0h2.247v1.644h-2.247Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.243v1.644h-2.243Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.735 0h2.246v1.644h-2.246Zm3.734 0h2.246v1.644h-2.246Zm3.734 0h2.247v1.644h-2.247Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.734 0h2.243v1.644h-2.243Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.734 0h2.246v1.644h-2.246Zm3.735 0h2.246v1.644h-2.246Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.735 0h2.246v1.644h-2.246Zm3.734 0h2.246v1.644h-2.246Zm3.734 0h2.247v1.644h-2.247Zm3.801.082a9.7 9.7 0 0 1 2.422.633l-.617 1.527a8 8 0 0 0-2.016-.531Zm3.867 1.36q1.066.655 1.938 1.558l-1.188 1.14a8 8 0 0 0-1.609-1.293Zm2.98 2.839c.466.684.837 1.41 1.118 2.187l-1.547.559a8.3 8.3 0 0 0-.93-1.82Zm1.548 3.805q.152.849.152 1.71v.63h-1.644v-.63c0-.476-.043-.953-.125-1.421Zm.152 3.832v2.242h-1.644v-2.242Zm0 3.734v2.242h-1.644v-2.242Zm0 3.734v2.243h-1.644V19.44Zm0 3.735v2.242h-1.644v-2.242Zm0 3.734v2.242h-1.644V26.91Zm0 3.735v2.242h-1.644v-2.242Zm0 3.734v2.246h-1.644v-2.246Zm-.02 3.762a9.8 9.8 0 0 1-.46 2.418l-1.567-.512a8 8 0 0 0 .387-2.012Zm-1.101 3.933a9.9 9.9 0 0 1-1.418 2.028l-1.219-1.106a8 8 0 0 0 1.18-1.687Zm-2.629 3.156a9.8 9.8 0 0 1-2.105 1.262l-.664-1.508a8 8 0 0 0 1.753-1.047Zm-3.691 1.801a9.8 9.8 0 0 1-2.356.29h-.035v-1.65h.035q.996.002 1.961-.237Zm-3.883.29h-2.242v-1.65h2.242Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.246v-1.65h2.246Zm-3.735 0h-2.246v-1.65h2.246Zm-3.734 0h-2.246v-1.65h2.246Zm-3.738 0h-2.243v-1.65h2.243Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.243v-1.65h2.243Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.246v-1.65h2.246Zm-3.734 0h-2.247v-1.65h2.247Zm-3.735 0h-2.246v-1.65h2.246Zm-3.738 0h-2.242v-1.65h2.242Zm-3.734 0h-2.243v-1.65h2.243Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.243v-1.65h2.243Zm-3.735 0h-2.246v-1.65h2.246Zm-3.734 0h-2.246v-1.65h2.246Zm-3.734 0h-2.247v-1.65h2.247Zm-3.739 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.243v-1.65h2.243Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.246v-1.65h2.246Zm-3.735 0h-2.246v-1.65h2.246Zm-3.734 0H127.3v-1.65h2.246Zm-3.738 0h-2.243v-1.65h2.243Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0h-2.246v-1.65h2.246Zm-3.734 0h-2.246v-1.65h2.246Zm-3.734 0h-2.246v-1.65h2.246Zm-3.735 0h-2.246v-1.65H92.2Zm-3.738 0h-2.242v-1.65h2.242Zm-3.734 0h-2.243v-1.65h2.243Zm-3.735 0H78.75v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.246v-1.65h2.246Zm-3.735 0h-2.246v-1.65h2.246Zm-3.734 0H56.34v-1.65h2.246Zm-3.734 0h-2.247v-1.65h2.247Zm-3.739 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.243v-1.65h2.243Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0H30.2v-1.65h2.242Zm-3.734 0h-2.246v-1.65h2.246Zm-3.734 0h-2.246v-1.65h2.246Zm-3.735 0h-2.246v-1.65h2.246Zm-3.738 0h-2.242v-1.65H17.5Zm-3.734 0h-2.243v-1.65h2.243Zm-3.735 0H9.008c-.43 0-.86-.032-1.285-.087l.218-1.632c.352.046.711.07 1.067.07h1.023Zm-3.922-.442a9.8 9.8 0 0 1-2.25-1.024l.868-1.398q.88.543 1.867.852Zm-3.574-2.004a9.7 9.7 0 0 1-1.644-1.871l1.363-.918q.584.862 1.367 1.555Zm-2.441-3.29a9.9 9.9 0 0 1-.739-2.39l1.622-.28q.18 1.033.613 1.987ZM-.79 37.61v-2.242H.859v2.235Zm0-3.73v-2.246H.859v2.246Zm0-3.738v-2.243H.859v2.243Zm0-3.735v-2.242H.859v2.242Zm0-3.734V20.43H.859v2.242Zm0-3.735v-2.242H.859v2.242Zm0-3.734v-2.242H.859v2.242Zm0-3.734V9.852q0-.33.023-.653l1.641.11q-.017.271-.016.543v1.617Zm.266-3.875q.288-1.22.875-2.328l1.453.77a8.2 8.2 0 0 0-.727 1.937Zm1.761-3.707A9.6 9.6 0 0 1 2.996 2.12l1.008 1.297a8.1 8.1 0 0 0-1.461 1.469Zm3.133-2.664a9.8 9.8 0 0 1 2.32-.891l.391 1.602q-1.014.246-1.934.738ZM8.297.082q.356-.025.71-.027h2.247v1.644H9.008c-.195 0-.395.008-.59.024Zm0 0"/></g></g></g></g><g clip-path="url(#K)"><g clip-path="url(#L)"><g clip-path="url(#M)"><g clip-path="url(#N)"><path fill="#7abab8" d="M12.742.055h2.246v1.644h-2.246Zm3.738 0h2.243v1.644H16.48Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644H23.95Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.734 0h2.243v1.644h-2.243Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.734 0h2.247v1.644h-2.247Zm3.735 0h2.246v1.644H50.09Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.243v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644H72.5Zm3.734 0h2.243v1.644h-2.243Zm3.735 0h2.246v1.644h-2.246Zm3.734 0h2.246v1.644h-2.246Zm3.734 0h2.247v1.644h-2.246Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644H94.91Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.735 0h2.246v1.644h-2.246Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.734 0h2.243v1.644h-2.243Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.734 0h2.247v1.644h-2.247Zm3.735 0h2.246v1.644h-2.246Zm3.738 0h2.242v1.644h-2.242Zm3.734 0h2.243v1.644h-2.243Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.735 0h2.246v1.644h-2.246Zm3.734 0h2.246v1.644h-2.246Zm3.734 0h2.247v1.644h-2.247Zm3.739 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.734 0h2.243v1.644h-2.243Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.246v1.644h-2.246Zm3.734 0h2.246v1.644h-2.246Zm3.735 0h2.246v1.644h-2.246Zm3.734 0h2.246v1.644h-2.246Zm3.738 0h2.243v1.644h-2.243Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.735 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.734 0h2.242v1.644h-2.242Zm3.735 0h2.246v1.644h-2.246Zm3.734 0h2.246v1.644h-2.246Zm3.734 0h2.247v1.644h-2.247Zm3.801.082a9.7 9.7 0 0 1 2.422.633l-.617 1.527a8 8 0 0 0-2.016-.531Zm3.867 1.36q1.066.655 1.938 1.558l-1.188 1.14a8 8 0 0 0-1.609-1.293Zm2.98 2.839c.466.684.837 1.41 1.118 2.187l-1.547.559a8.3 8.3 0 0 0-.93-1.82Zm1.548 3.805q.152.849.152 1.71v.63h-1.644v-.63c0-.476-.043-.953-.125-1.421Zm.152 3.832v2.242h-1.644v-2.242Zm0 3.734v2.242h-1.644v-2.242Zm0 3.734v2.243h-1.644V19.44Zm0 3.735v2.242h-1.644v-2.242Zm0 3.734v2.242h-1.644V26.91Zm0 3.735v2.242h-1.644v-2.242Zm0 3.734v2.246h-1.644v-2.246Zm-.02 3.762a9.8 9.8 0 0 1-.46 2.418l-1.567-.512a8 8 0 0 0 .387-2.012Zm-1.101 3.933a9.9 9.9 0 0 1-1.418 2.028l-1.219-1.106a8 8 0 0 0 1.18-1.687Zm-2.629 3.156a9.8 9.8 0 0 1-2.105 1.262l-.664-1.508a8 8 0 0 0 1.753-1.047Zm-3.691 1.801a9.8 9.8 0 0 1-2.356.29h-.035v-1.65h.035q.996.002 1.961-.237Zm-3.883.29h-2.242v-1.65h2.242Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.246v-1.65h2.246Zm-3.735 0h-2.246v-1.65h2.246Zm-3.734 0h-2.246v-1.65h2.246Zm-3.738 0h-2.243v-1.65h2.243Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.243v-1.65h2.243Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.246v-1.65h2.246Zm-3.734 0h-2.247v-1.65h2.247Zm-3.735 0h-2.246v-1.65h2.246Zm-3.738 0h-2.242v-1.65h2.242Zm-3.734 0h-2.243v-1.65h2.243Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.243v-1.65h2.243Zm-3.735 0h-2.246v-1.65h2.246Zm-3.734 0h-2.246v-1.65h2.246Zm-3.734 0h-2.247v-1.65h2.247Zm-3.739 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.243v-1.65h2.243Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.246v-1.65h2.246Zm-3.735 0h-2.246v-1.65h2.246Zm-3.734 0H127.3v-1.65h2.246Zm-3.738 0h-2.243v-1.65h2.243Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0h-2.246v-1.65h2.246Zm-3.734 0h-2.246v-1.65h2.246Zm-3.734 0h-2.246v-1.65h2.246Zm-3.735 0h-2.246v-1.65H92.2Zm-3.738 0h-2.242v-1.65h2.242Zm-3.734 0h-2.243v-1.65h2.243Zm-3.735 0H78.75v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.246v-1.65h2.246Zm-3.735 0h-2.246v-1.65h2.246Zm-3.734 0H56.34v-1.65h2.246Zm-3.734 0h-2.247v-1.65h2.247Zm-3.739 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.734 0h-2.243v-1.65h2.243Zm-3.735 0h-2.242v-1.65h2.242Zm-3.734 0h-2.242v-1.65h2.242Zm-3.735 0H30.2v-1.65h2.242Zm-3.734 0h-2.246v-1.65h2.246Zm-3.734 0h-2.246v-1.65h2.246Zm-3.735 0h-2.246v-1.65h2.246Zm-3.738 0h-2.242v-1.65H17.5Zm-3.734 0h-2.243v-1.65h2.243Zm-3.735 0H9.008c-.43 0-.86-.032-1.285-.087l.218-1.632c.352.046.711.07 1.067.07h1.023Zm-3.922-.442a9.8 9.8 0 0 1-2.25-1.024l.868-1.398q.88.543 1.867.852Zm-3.574-2.004a9.7 9.7 0 0 1-1.644-1.871l1.363-.918q.584.862 1.367 1.555Zm-2.441-3.29a9.9 9.9 0 0 1-.739-2.39l1.622-.28q.18 1.033.613 1.987ZM-.79 37.61v-2.242H.859v2.235Zm0-3.73v-2.246H.859v2.246Zm0-3.738v-2.243H.859v2.243Zm0-3.735v-2.242H.859v2.242Zm0-3.734V20.43H.859v2.242Zm0-3.735v-2.242H.859v2.242Zm0-3.734v-2.242H.859v2.242Zm0-3.734V9.852q0-.33.023-.653l1.641.11q-.017.271-.016.543v1.617Zm.266-3.875q.288-1.22.875-2.328l1.453.77a8.2 8.2 0 0 0-.727 1.937Zm1.761-3.707A9.6 9.6 0 0 1 2.996 2.12l1.008 1.297a8.1 8.1 0 0 0-1.461 1.469Zm3.133-2.664a9.8 9.8 0 0 1 2.32-.891l.391 1.602q-1.014.246-1.934.738ZM8.297.082q.356-.025.71-.027h2.247v1.644H9.008c-.195 0-.395.008-.59.024Zm0 0"/></g></g></g></g></g><g id="dJ" clip-path="url(#O)"><g clip-path="url(#P)"><g clip-path="url(#Q)"><path fill="#e6dac3" fill-opacity=".251" d="M.035.973h281.93v87.496H.035Zm0 0"/></g></g><g clip-path="url(#R)"><g clip-path="url(#S)"><g clip-path="url(#T)"><g clip-path="url(#U)"><path fill="#d4c4a0" d="M12.754.152h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.243v1.645H23.98Zm3.743 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.742 0h2.247v1.645h-2.246Zm3.747 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645H61.41Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.243v1.645h-2.243Zm3.743 0h2.242v1.645H72.64Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.243v1.645h-2.243Zm3.743 0h2.246v1.645h-2.246Zm3.742 0h2.246v1.645H98.84Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.243v1.645h-2.243Zm3.743 0h2.246v1.645h-2.246Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.243v1.645h-2.243Zm3.743 0h2.242v1.645h-2.242Zm3.742 0H146v1.645h-2.242Zm3.742 0h2.246v1.645H147.5Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.243v1.645h-2.243Zm3.743 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.243v1.645h-2.243Zm3.743 0h2.242v1.645h-2.243Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.743 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.243v1.645h-2.243Zm3.743 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.243v1.645h-2.243Zm3.743 0h2.242v1.645h-2.243Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.243v1.645h-2.243Zm3.743 0h1.972q.141-.001.281.004l-.046 1.645q-.118-.005-.235-.004h-1.972Zm3.851.18a10 10 0 0 1 2.371.79l-.715 1.48a8.1 8.1 0 0 0-1.972-.653Zm3.785 1.621a9.8 9.8 0 0 1 1.832 1.688l-1.258 1.058q-.673-.798-1.527-1.402Zm2.79 3.04q.625 1.076.972 2.277l-1.586.449a8 8 0 0 0-.809-1.895Zm1.284 3.898q.06.526.06 1.058v1.239h-1.645V9.949a8 8 0 0 0-.047-.879Zm.06 3.797v2.242h-1.645v-2.242Zm0 3.742v2.242h-1.645V16.43Zm0 3.742v2.242h-1.645v-2.242Zm0 3.742v2.242h-1.645v-2.242Zm0 3.742v2.246h-1.645v-2.246Zm0 3.746v2.243h-1.645v-2.243Zm0 3.743v2.242h-1.645v-2.242Zm0 3.742v2.242h-1.645v-2.242Zm0 3.742v2.246h-1.645v-2.246Zm0 3.742v2.246h-1.645v-2.246Zm0 3.746v2.242h-1.645v-2.242Zm0 3.742v2.243h-1.645v-2.243Zm0 3.743v2.242h-1.645v-2.242Zm0 3.742v2.246h-1.645v-2.246Zm0 3.746v2.242h-1.645V65.09Zm0 3.742v2.242h-1.645v-2.242Zm0 3.742v2.242h-1.645v-2.242Zm0 3.742v2.243h-1.645v-2.243Zm-.017 3.766a9.8 9.8 0 0 1-.457 2.418l-1.566-.504c.21-.652.34-1.324.379-2.012Zm-1.093 3.945a9.8 9.8 0 0 1-1.414 2.032l-1.22-1.102a8.3 8.3 0 0 0 1.173-1.691Zm-2.633 3.168a9.7 9.7 0 0 1-2.102 1.266l-.664-1.508a8 8 0 0 0 1.75-1.05Zm-3.695 1.809a9.8 9.8 0 0 1-2.36.289h-.031v-1.645h.031q.997-.001 1.965-.242Zm-3.891.289h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.243v-1.645h2.243Zm-3.743 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.247v-1.645h2.247Zm-3.747 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0H224.3v-1.645h2.246Zm-3.742 0h-2.246v-1.645h2.246Zm-3.746 0h-2.243v-1.645h2.243Zm-3.743 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.742 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.243v-1.645h2.243Zm-3.743 0h-2.242v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.247v-1.645h2.247Zm-3.743 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.743 0h-2.246v-1.645h2.246Zm-3.746 0H145.7v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.243v-1.645h2.243Zm-3.743 0h-2.242v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.742 0h-2.246v-1.645H118Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.243v-1.645h2.243Zm-3.743 0h-2.246v-1.645h2.246Zm-3.742 0H97.04v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.243v-1.645h2.243Zm-3.743 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0H70.84v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.746 0h-2.243v-1.645h2.243Zm-3.743 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.742 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.243v-1.645h2.243Zm-3.743 0H33.41v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0H22.18v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.243v-1.645h2.242Zm-3.743 0H10.95v-1.645h2.246Zm-3.746 0h-.441a9.8 9.8 0 0 1-1.91-.188l.32-1.613a8.3 8.3 0 0 0 1.59.156h.441Zm-3.98-.66a9.7 9.7 0 0 1-2.153-1.164l.957-1.336a8.2 8.2 0 0 0 1.79.965ZM2.05 86.39a9.9 9.9 0 0 1-1.512-1.97l1.426-.827a8 8 0 0 0 1.254 1.64ZM-.16 82.945a9.8 9.8 0 0 1-.574-2.425l1.636-.172c.075.695.23 1.367.477 2.02Zm-.63-3.972v-2.246H.86v2.246Zm0-3.743v-2.246H.86v2.246Zm0-3.746v-2.242H.86v2.242Zm0-3.742V65.5H.86v2.242Zm0-3.742v-2.242H.86V64Zm0-3.742v-2.246H.86v2.246Zm0-3.746V54.27H.86v2.242Zm0-3.742v-2.243H.86v2.243Zm0-3.743v-2.242H.86v2.242Zm0-3.742V43.04H.86v2.246Zm0-3.742v-2.246H.86v2.246Zm0-3.746v-2.242H.86v2.242Zm0-3.742v-2.242H.86v2.242Zm0-3.742V28.07H.86v2.242Zm0-3.743v-2.246H.86v2.246Zm0-3.742v-2.246H.86v2.246Zm0-3.746V16.84H.86v2.242Zm0-3.742v-2.242H.86v2.242Zm0-3.742V9.949q.002-.31.02-.62l1.645.105a8 8 0 0 0-.016.515v1.649Zm.259-3.88q.286-1.224.87-2.331l1.458.765a8.2 8.2 0 0 0-.727 1.942Zm1.758-3.722a9.8 9.8 0 0 1 1.753-1.77l1.012 1.297a8.1 8.1 0 0 0-1.457 1.473Zm3.136-2.672a9.5 9.5 0 0 1 2.32-.89l.391 1.597q-1.014.245-1.93.742ZM8.297.176q.356-.024.71-.024h2.247v1.645H9.008c-.195 0-.395.008-.59.023Zm0 0"/></g></g></g></g><g clip-path="url(#V)"><g clip-path="url(#W)"><g clip-path="url(#X)"><g clip-path="url(#Y)"><path fill="#d4c4a0" d="M12.754.152h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.243v1.645H23.98Zm3.743 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.742 0h2.247v1.645h-2.246Zm3.747 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645H61.41Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.243v1.645h-2.243Zm3.743 0h2.242v1.645H72.64Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.243v1.645h-2.243Zm3.743 0h2.246v1.645h-2.246Zm3.742 0h2.246v1.645H98.84Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.243v1.645h-2.243Zm3.743 0h2.246v1.645h-2.246Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.243v1.645h-2.243Zm3.743 0h2.242v1.645h-2.242Zm3.742 0H146v1.645h-2.242Zm3.742 0h2.246v1.645H147.5Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.243v1.645h-2.243Zm3.743 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.243v1.645h-2.243Zm3.743 0h2.242v1.645h-2.243Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.743 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.243v1.645h-2.243Zm3.743 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.243v1.645h-2.243Zm3.743 0h2.242v1.645h-2.243Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.243v1.645h-2.243Zm3.743 0h1.972q.141-.001.281.004l-.046 1.645q-.118-.005-.235-.004h-1.972Zm3.851.18a10 10 0 0 1 2.371.79l-.715 1.48a8.1 8.1 0 0 0-1.972-.653Zm3.785 1.621a9.8 9.8 0 0 1 1.832 1.688l-1.258 1.058q-.673-.798-1.527-1.402Zm2.79 3.04q.625 1.076.972 2.277l-1.586.449a8 8 0 0 0-.809-1.895Zm1.284 3.898q.06.526.06 1.058v1.239h-1.645V9.949a8 8 0 0 0-.047-.879Zm.06 3.797v2.242h-1.645v-2.242Zm0 3.742v2.242h-1.645V16.43Zm0 3.742v2.242h-1.645v-2.242Zm0 3.742v2.242h-1.645v-2.242Zm0 3.742v2.246h-1.645v-2.246Zm0 3.746v2.243h-1.645v-2.243Zm0 3.743v2.242h-1.645v-2.242Zm0 3.742v2.242h-1.645v-2.242Zm0 3.742v2.246h-1.645v-2.246Zm0 3.742v2.246h-1.645v-2.246Zm0 3.746v2.242h-1.645v-2.242Zm0 3.742v2.243h-1.645v-2.243Zm0 3.743v2.242h-1.645v-2.242Zm0 3.742v2.246h-1.645v-2.246Zm0 3.746v2.242h-1.645V65.09Zm0 3.742v2.242h-1.645v-2.242Zm0 3.742v2.242h-1.645v-2.242Zm0 3.742v2.243h-1.645v-2.243Zm-.017 3.766a9.8 9.8 0 0 1-.457 2.418l-1.566-.504c.21-.652.34-1.324.379-2.012Zm-1.093 3.945a9.8 9.8 0 0 1-1.414 2.032l-1.22-1.102a8.3 8.3 0 0 0 1.173-1.691Zm-2.633 3.168a9.7 9.7 0 0 1-2.102 1.266l-.664-1.508a8 8 0 0 0 1.75-1.05Zm-3.695 1.809a9.8 9.8 0 0 1-2.36.289h-.031v-1.645h.031q.997-.001 1.965-.242Zm-3.891.289h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.243v-1.645h2.243Zm-3.743 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.247v-1.645h2.247Zm-3.747 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0H224.3v-1.645h2.246Zm-3.742 0h-2.246v-1.645h2.246Zm-3.746 0h-2.243v-1.645h2.243Zm-3.743 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.742 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.243v-1.645h2.243Zm-3.743 0h-2.242v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.247v-1.645h2.247Zm-3.743 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.743 0h-2.246v-1.645h2.246Zm-3.746 0H145.7v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.243v-1.645h2.243Zm-3.743 0h-2.242v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.742 0h-2.246v-1.645H118Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.243v-1.645h2.243Zm-3.743 0h-2.246v-1.645h2.246Zm-3.742 0H97.04v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.243v-1.645h2.243Zm-3.743 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0H70.84v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.746 0h-2.243v-1.645h2.243Zm-3.743 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.742 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.243v-1.645h2.243Zm-3.743 0H33.41v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0H22.18v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.243v-1.645h2.242Zm-3.743 0H10.95v-1.645h2.246Zm-3.746 0h-.441a9.8 9.8 0 0 1-1.91-.188l.32-1.613a8.3 8.3 0 0 0 1.59.156h.441Zm-3.98-.66a9.7 9.7 0 0 1-2.153-1.164l.957-1.336a8.2 8.2 0 0 0 1.79.965ZM2.05 86.39a9.9 9.9 0 0 1-1.512-1.97l1.426-.827a8 8 0 0 0 1.254 1.64ZM-.16 82.945a9.8 9.8 0 0 1-.574-2.425l1.636-.172c.075.695.23 1.367.477 2.02Zm-.63-3.972v-2.246H.86v2.246Zm0-3.743v-2.246H.86v2.246Zm0-3.746v-2.242H.86v2.242Zm0-3.742V65.5H.86v2.242Zm0-3.742v-2.242H.86V64Zm0-3.742v-2.246H.86v2.246Zm0-3.746V54.27H.86v2.242Zm0-3.742v-2.243H.86v2.243Zm0-3.743v-2.242H.86v2.242Zm0-3.742V43.04H.86v2.246Zm0-3.742v-2.246H.86v2.246Zm0-3.746v-2.242H.86v2.242Zm0-3.742v-2.242H.86v2.242Zm0-3.742V28.07H.86v2.242Zm0-3.743v-2.246H.86v2.246Zm0-3.742v-2.246H.86v2.246Zm0-3.746V16.84H.86v2.242Zm0-3.742v-2.242H.86v2.242Zm0-3.742V9.949q.002-.31.02-.62l1.645.105a8 8 0 0 0-.016.515v1.649Zm.259-3.88q.286-1.224.87-2.331l1.458.765a8.2 8.2 0 0 0-.727 1.942Zm1.758-3.722a9.8 9.8 0 0 1 1.753-1.77l1.012 1.297a8.1 8.1 0 0 0-1.457 1.473Zm3.136-2.672a9.5 9.5 0 0 1 2.32-.89l.391 1.597q-1.014.245-1.93.742ZM8.297.176q.356-.024.71-.024h2.247v1.645H9.008c-.195 0-.395.008-.59.023Zm0 0"/></g></g></g></g><g clip-path="url(#Z)"><g clip-path="url(#aa)"><g clip-path="url(#ab)"><g clip-path="url(#ac)"><path fill="#d4c4a0" d="M12.754.152h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.243v1.645H23.98Zm3.743 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.742 0h2.247v1.645h-2.246Zm3.747 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645H61.41Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.243v1.645h-2.243Zm3.743 0h2.242v1.645H72.64Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.243v1.645h-2.243Zm3.743 0h2.246v1.645h-2.246Zm3.742 0h2.246v1.645H98.84Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.243v1.645h-2.243Zm3.743 0h2.246v1.645h-2.246Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.243v1.645h-2.243Zm3.743 0h2.242v1.645h-2.242Zm3.742 0H146v1.645h-2.242Zm3.742 0h2.246v1.645H147.5Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.243v1.645h-2.243Zm3.743 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.243v1.645h-2.243Zm3.743 0h2.242v1.645h-2.243Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.743 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.243v1.645h-2.243Zm3.743 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.243v1.645h-2.243Zm3.743 0h2.242v1.645h-2.243Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.243v1.645h-2.243Zm3.743 0h1.972q.141-.001.281.004l-.046 1.645q-.118-.005-.235-.004h-1.972Zm3.851.18a10 10 0 0 1 2.371.79l-.715 1.48a8.1 8.1 0 0 0-1.972-.653Zm3.785 1.621a9.8 9.8 0 0 1 1.832 1.688l-1.258 1.058q-.673-.798-1.527-1.402Zm2.79 3.04q.625 1.076.972 2.277l-1.586.449a8 8 0 0 0-.809-1.895Zm1.284 3.898q.06.526.06 1.058v1.239h-1.645V9.949a8 8 0 0 0-.047-.879Zm.06 3.797v2.242h-1.645v-2.242Zm0 3.742v2.242h-1.645V16.43Zm0 3.742v2.242h-1.645v-2.242Zm0 3.742v2.242h-1.645v-2.242Zm0 3.742v2.246h-1.645v-2.246Zm0 3.746v2.243h-1.645v-2.243Zm0 3.743v2.242h-1.645v-2.242Zm0 3.742v2.242h-1.645v-2.242Zm0 3.742v2.246h-1.645v-2.246Zm0 3.742v2.246h-1.645v-2.246Zm0 3.746v2.242h-1.645v-2.242Zm0 3.742v2.243h-1.645v-2.243Zm0 3.743v2.242h-1.645v-2.242Zm0 3.742v2.246h-1.645v-2.246Zm0 3.746v2.242h-1.645V65.09Zm0 3.742v2.242h-1.645v-2.242Zm0 3.742v2.242h-1.645v-2.242Zm0 3.742v2.243h-1.645v-2.243Zm-.017 3.766a9.8 9.8 0 0 1-.457 2.418l-1.566-.504c.21-.652.34-1.324.379-2.012Zm-1.093 3.945a9.8 9.8 0 0 1-1.414 2.032l-1.22-1.102a8.3 8.3 0 0 0 1.173-1.691Zm-2.633 3.168a9.7 9.7 0 0 1-2.102 1.266l-.664-1.508a8 8 0 0 0 1.75-1.05Zm-3.695 1.809a9.8 9.8 0 0 1-2.36.289h-.031v-1.645h.031q.997-.001 1.965-.242Zm-3.891.289h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.243v-1.645h2.243Zm-3.743 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.247v-1.645h2.247Zm-3.747 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0H224.3v-1.645h2.246Zm-3.742 0h-2.246v-1.645h2.246Zm-3.746 0h-2.243v-1.645h2.243Zm-3.743 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.742 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.243v-1.645h2.243Zm-3.743 0h-2.242v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.247v-1.645h2.247Zm-3.743 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.743 0h-2.246v-1.645h2.246Zm-3.746 0H145.7v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.243v-1.645h2.243Zm-3.743 0h-2.242v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.742 0h-2.246v-1.645H118Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.243v-1.645h2.243Zm-3.743 0h-2.246v-1.645h2.246Zm-3.742 0H97.04v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.243v-1.645h2.243Zm-3.743 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0H70.84v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.746 0h-2.243v-1.645h2.243Zm-3.743 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.742 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.243v-1.645h2.243Zm-3.743 0H33.41v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0H22.18v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.243v-1.645h2.242Zm-3.743 0H10.95v-1.645h2.246Zm-3.746 0h-.441a9.8 9.8 0 0 1-1.91-.188l.32-1.613a8.3 8.3 0 0 0 1.59.156h.441Zm-3.98-.66a9.7 9.7 0 0 1-2.153-1.164l.957-1.336a8.2 8.2 0 0 0 1.79.965ZM2.05 86.39a9.9 9.9 0 0 1-1.512-1.97l1.426-.827a8 8 0 0 0 1.254 1.64ZM-.16 82.945a9.8 9.8 0 0 1-.574-2.425l1.636-.172c.075.695.23 1.367.477 2.02Zm-.63-3.972v-2.246H.86v2.246Zm0-3.743v-2.246H.86v2.246Zm0-3.746v-2.242H.86v2.242Zm0-3.742V65.5H.86v2.242Zm0-3.742v-2.242H.86V64Zm0-3.742v-2.246H.86v2.246Zm0-3.746V54.27H.86v2.242Zm0-3.742v-2.243H.86v2.243Zm0-3.743v-2.242H.86v2.242Zm0-3.742V43.04H.86v2.246Zm0-3.742v-2.246H.86v2.246Zm0-3.746v-2.242H.86v2.242Zm0-3.742v-2.242H.86v2.242Zm0-3.742V28.07H.86v2.242Zm0-3.743v-2.246H.86v2.246Zm0-3.742v-2.246H.86v2.246Zm0-3.746V16.84H.86v2.242Zm0-3.742v-2.242H.86v2.242Zm0-3.742V9.949q.002-.31.02-.62l1.645.105a8 8 0 0 0-.016.515v1.649Zm.259-3.88q.286-1.224.87-2.331l1.458.765a8.2 8.2 0 0 0-.727 1.942Zm1.758-3.722a9.8 9.8 0 0 1 1.753-1.77l1.012 1.297a8.1 8.1 0 0 0-1.457 1.473Zm3.136-2.672a9.5 9.5 0 0 1 2.32-.89l.391 1.597q-1.014.245-1.93.742ZM8.297.176q.356-.024.71-.024h2.247v1.645H9.008c-.195 0-.395.008-.59.023Zm0 0"/></g></g></g></g><g clip-path="url(#ad)"><g clip-path="url(#ae)"><g clip-path="url(#af)"><g clip-path="url(#ag)"><path fill="#d4c4a0" d="M12.754.152h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.243v1.645H23.98Zm3.743 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.742 0h2.247v1.645h-2.246Zm3.747 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645H61.41Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.243v1.645h-2.243Zm3.743 0h2.242v1.645H72.64Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.243v1.645h-2.243Zm3.743 0h2.246v1.645h-2.246Zm3.742 0h2.246v1.645H98.84Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.243v1.645h-2.243Zm3.743 0h2.246v1.645h-2.246Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.243v1.645h-2.243Zm3.743 0h2.242v1.645h-2.242Zm3.742 0H146v1.645h-2.242Zm3.742 0h2.246v1.645H147.5Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.243v1.645h-2.243Zm3.743 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.243v1.645h-2.243Zm3.743 0h2.242v1.645h-2.243Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.743 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.243v1.645h-2.243Zm3.743 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.243v1.645h-2.243Zm3.743 0h2.242v1.645h-2.243Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.246v1.645h-2.246Zm3.746 0h2.242v1.645h-2.242Zm3.742 0h2.242v1.645h-2.242Zm3.742 0h2.243v1.645h-2.243Zm3.743 0h1.972q.141-.001.281.004l-.046 1.645q-.118-.005-.235-.004h-1.972Zm3.851.18a10 10 0 0 1 2.371.79l-.715 1.48a8.1 8.1 0 0 0-1.972-.653Zm3.785 1.621a9.8 9.8 0 0 1 1.832 1.688l-1.258 1.058q-.673-.798-1.527-1.402Zm2.79 3.04q.625 1.076.972 2.277l-1.586.449a8 8 0 0 0-.809-1.895Zm1.284 3.898q.06.526.06 1.058v1.239h-1.645V9.949a8 8 0 0 0-.047-.879Zm.06 3.797v2.242h-1.645v-2.242Zm0 3.742v2.242h-1.645V16.43Zm0 3.742v2.242h-1.645v-2.242Zm0 3.742v2.242h-1.645v-2.242Zm0 3.742v2.246h-1.645v-2.246Zm0 3.746v2.243h-1.645v-2.243Zm0 3.743v2.242h-1.645v-2.242Zm0 3.742v2.242h-1.645v-2.242Zm0 3.742v2.246h-1.645v-2.246Zm0 3.742v2.246h-1.645v-2.246Zm0 3.746v2.242h-1.645v-2.242Zm0 3.742v2.243h-1.645v-2.243Zm0 3.743v2.242h-1.645v-2.242Zm0 3.742v2.246h-1.645v-2.246Zm0 3.746v2.242h-1.645V65.09Zm0 3.742v2.242h-1.645v-2.242Zm0 3.742v2.242h-1.645v-2.242Zm0 3.742v2.243h-1.645v-2.243Zm-.017 3.766a9.8 9.8 0 0 1-.457 2.418l-1.566-.504c.21-.652.34-1.324.379-2.012Zm-1.093 3.945a9.8 9.8 0 0 1-1.414 2.032l-1.22-1.102a8.3 8.3 0 0 0 1.173-1.691Zm-2.633 3.168a9.7 9.7 0 0 1-2.102 1.266l-.664-1.508a8 8 0 0 0 1.75-1.05Zm-3.695 1.809a9.8 9.8 0 0 1-2.36.289h-.031v-1.645h.031q.997-.001 1.965-.242Zm-3.891.289h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.243v-1.645h2.243Zm-3.743 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.247v-1.645h2.247Zm-3.747 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0H224.3v-1.645h2.246Zm-3.742 0h-2.246v-1.645h2.246Zm-3.746 0h-2.243v-1.645h2.243Zm-3.743 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.742 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.243v-1.645h2.243Zm-3.743 0h-2.242v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.247v-1.645h2.247Zm-3.743 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.743 0h-2.246v-1.645h2.246Zm-3.746 0H145.7v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.243v-1.645h2.243Zm-3.743 0h-2.242v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.742 0h-2.246v-1.645H118Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.243v-1.645h2.243Zm-3.743 0h-2.246v-1.645h2.246Zm-3.742 0H97.04v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.243v-1.645h2.243Zm-3.743 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0H70.84v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.746 0h-2.243v-1.645h2.243Zm-3.743 0h-2.242v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.742 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0h-2.243v-1.645h2.243Zm-3.743 0H33.41v-1.645h2.242Zm-3.742 0h-2.246v-1.645h2.246Zm-3.746 0h-2.242v-1.645h2.242Zm-3.742 0H22.18v-1.645h2.242Zm-3.742 0h-2.242v-1.645h2.242Zm-3.742 0h-2.243v-1.645h2.242Zm-3.743 0H10.95v-1.645h2.246Zm-3.746 0h-.441a9.8 9.8 0 0 1-1.91-.188l.32-1.613a8.3 8.3 0 0 0 1.59.156h.441Zm-3.98-.66a9.7 9.7 0 0 1-2.153-1.164l.957-1.336a8.2 8.2 0 0 0 1.79.965ZM2.05 86.39a9.9 9.9 0 0 1-1.512-1.97l1.426-.827a8 8 0 0 0 1.254 1.64ZM-.16 82.945a9.8 9.8 0 0 1-.574-2.425l1.636-.172c.075.695.23 1.367.477 2.02Zm-.63-3.972v-2.246H.86v2.246Zm0-3.743v-2.246H.86v2.246Zm0-3.746v-2.242H.86v2.242Zm0-3.742V65.5H.86v2.242Zm0-3.742v-2.242H.86V64Zm0-3.742v-2.246H.86v2.246Zm0-3.746V54.27H.86v2.242Zm0-3.742v-2.243H.86v2.243Zm0-3.743v-2.242H.86v2.242Zm0-3.742V43.04H.86v2.246Zm0-3.742v-2.246H.86v2.246Zm0-3.746v-2.242H.86v2.242Zm0-3.742v-2.242H.86v2.242Zm0-3.742V28.07H.86v2.242Zm0-3.743v-2.246H.86v2.246Zm0-3.742v-2.246H.86v2.246Zm0-3.746V16.84H.86v2.242Zm0-3.742v-2.242H.86v2.242Zm0-3.742V9.949q.002-.31.02-.62l1.645.105a8 8 0 0 0-.016.515v1.649Zm.259-3.88q.286-1.224.87-2.331l1.458.765a8.2 8.2 0 0 0-.727 1.942Zm1.758-3.722a9.8 9.8 0 0 1 1.753-1.77l1.012 1.297a8.1 8.1 0 0 0-1.457 1.473Zm3.136-2.672a9.5 9.5 0 0 1 2.32-.89l.391 1.597q-1.014.245-1.93.742ZM8.297.176q.356-.024.71-.024h2.247v1.645H9.008c-.195 0-.395.008-.59.023Zm0 0"/></g></g></g></g></g><g id="dQ" clip-path="url(#ah)"><g clip-path="url(#ai)"><g clip-path="url(#aj)"><path fill="#bee1e1" fill-opacity=".251" d="M.035.445h189.2v65.059H.034Zm0 0"/></g></g><g clip-path="url(#ak)"><g clip-path="url(#al)"><g clip-path="url(#am)"><g clip-path="url(#an)"><path fill="#88c4c4" d="M12.734-.379h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.243v1.645H20.19Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.243v1.645h-2.243Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645H91.02Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.246v1.645h-2.246Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.247v1.645h-2.247Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.243v1.645h-2.243Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.738.004q1.224.03 2.402.36l-.441 1.581a8.3 8.3 0 0 0-2-.296Zm3.953.938q1.126.532 2.074 1.324l-1.05 1.265a8 8 0 0 0-1.727-1.101Zm3.254 2.484c.54.629.988 1.316 1.356 2.058l-1.48.727a8 8 0 0 0-1.126-1.715Zm1.953 3.598q.347 1.179.395 2.41l-1.645.058a8.3 8.3 0 0 0-.328-2.004Zm.403 3.906v2.242h-1.649v-2.242Zm0 3.726v2.246h-1.649v-2.246Zm0 3.73v2.243h-1.649v-2.242Zm0 3.727v2.243h-1.649v-2.243Zm0 3.727v2.246h-1.649v-2.246Zm0 3.73v2.243h-1.649V29.19Zm0 3.727v2.242h-1.649v-2.242Zm0 3.727v2.246h-1.649v-2.246Zm0 3.73v2.242h-1.649v-2.242Zm0 3.727v2.242h-1.649v-2.242Zm0 3.726v2.242h-1.649v-2.242Zm0 3.727V53.8h-1.649v-2.246Zm0 3.73v1.246q0 .527-.059 1.047l-1.637-.176a8 8 0 0 0 .047-.87v-1.247Zm-.368 3.899a10 10 0 0 1-.964 2.28l-1.422-.827a8.3 8.3 0 0 0 .804-1.899Zm-1.906 3.62a9.8 9.8 0 0 1-1.828 1.696L185 63.16a8 8 0 0 0 1.52-1.41Zm-3.222 2.528a9.6 9.6 0 0 1-2.364.8l-.324-1.609a8.3 8.3 0 0 0 1.965-.668Zm-3.95.988q-.175.007-.351.008h-1.903v-1.644h1.903q.146-.001.293-.008Zm-3.738.008h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.243v-1.644h2.243Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0H103.8v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0H88.89v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0H73.98v-1.644h2.243Zm-3.727 0H70.25v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0H55.34v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0H40.43v-1.644h2.242Zm-3.727 0H36.7v-1.644h2.246Zm-3.73 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.247v-1.644h2.247Zm-3.73 0h-.114q-1.15-.001-2.27-.266l.383-1.601a8 8 0 0 0 1.887.223h.113Zm-3.97-.789a9.8 9.8 0 0 1-2.113-1.238l1-1.305a8 8 0 0 0 1.762 1.027ZM1.82 63.187A9.7 9.7 0 0 1 .38 61.173l1.45-.777q.49.913 1.198 1.675Zm-2.09-3.511a9.9 9.9 0 0 1-.492-2.422l1.64-.121q.077 1.037.411 2.015Zm-.52-3.938v-2.242H.856v2.242Zm0-3.726V49.77H.856v2.242Zm0-3.727V46.04H.856v2.246Zm0-3.73v-2.242H.856v2.242Zm0-3.727v-2.242H.856v2.242Zm0-3.726v-2.243H.856v2.243Zm0-3.727v-2.246H.856v2.246Zm0-3.73v-2.243H.856v2.243Zm0-3.727v-2.242H.856v2.242Zm0-3.727v-2.246H.856v2.246Zm0-3.73v-2.242H.856v2.242Zm0-3.727v-2.242H.856v2.242Zm0-3.726v-1.59q0-.342.024-.684l1.641.114a9 9 0 0 0-.02.57v1.59Zm.27-3.871a10 10 0 0 1 .88-2.324l1.453.773a8.2 8.2 0 0 0-.735 1.934ZM1.246 3.44a9.8 9.8 0 0 1 1.758-1.765l1.008 1.3a8 8 0 0 0-1.461 1.47ZM4.375.785a9.7 9.7 0 0 1 2.324-.887l.387 1.598q-1.013.246-1.934.738ZM8.297-.352q.353-.028.71-.027h2.243v1.645H9.008c-.2 0-.395.007-.594.023Zm0 0"/></g></g></g></g><g clip-path="url(#ao)"><g clip-path="url(#ap)"><g clip-path="url(#aq)"><g clip-path="url(#ar)"><path fill="#88c4c4" d="M12.734-.379h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.243v1.645H20.19Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.243v1.645h-2.243Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645H91.02Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.246v1.645h-2.246Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.247v1.645h-2.247Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.243v1.645h-2.243Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.738.004q1.224.03 2.402.36l-.441 1.581a8.3 8.3 0 0 0-2-.296Zm3.953.938q1.126.532 2.074 1.324l-1.05 1.265a8 8 0 0 0-1.727-1.101Zm3.254 2.484c.54.629.988 1.316 1.356 2.058l-1.48.727a8 8 0 0 0-1.126-1.715Zm1.953 3.598q.347 1.179.395 2.41l-1.645.058a8.3 8.3 0 0 0-.328-2.004Zm.403 3.906v2.242h-1.649v-2.242Zm0 3.726v2.246h-1.649v-2.246Zm0 3.73v2.243h-1.649v-2.242Zm0 3.727v2.243h-1.649v-2.243Zm0 3.727v2.246h-1.649v-2.246Zm0 3.73v2.243h-1.649V29.19Zm0 3.727v2.242h-1.649v-2.242Zm0 3.727v2.246h-1.649v-2.246Zm0 3.73v2.242h-1.649v-2.242Zm0 3.727v2.242h-1.649v-2.242Zm0 3.726v2.242h-1.649v-2.242Zm0 3.727V53.8h-1.649v-2.246Zm0 3.73v1.246q0 .527-.059 1.047l-1.637-.176a8 8 0 0 0 .047-.87v-1.247Zm-.368 3.899a10 10 0 0 1-.964 2.28l-1.422-.827a8.3 8.3 0 0 0 .804-1.899Zm-1.906 3.62a9.8 9.8 0 0 1-1.828 1.696L185 63.16a8 8 0 0 0 1.52-1.41Zm-3.222 2.528a9.6 9.6 0 0 1-2.364.8l-.324-1.609a8.3 8.3 0 0 0 1.965-.668Zm-3.95.988q-.175.007-.351.008h-1.903v-1.644h1.903q.146-.001.293-.008Zm-3.738.008h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.243v-1.644h2.243Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0H103.8v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0H88.89v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0H73.98v-1.644h2.243Zm-3.727 0H70.25v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0H55.34v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0H40.43v-1.644h2.242Zm-3.727 0H36.7v-1.644h2.246Zm-3.73 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.247v-1.644h2.247Zm-3.73 0h-.114q-1.15-.001-2.27-.266l.383-1.601a8 8 0 0 0 1.887.223h.113Zm-3.97-.789a9.8 9.8 0 0 1-2.113-1.238l1-1.305a8 8 0 0 0 1.762 1.027ZM1.82 63.187A9.7 9.7 0 0 1 .38 61.173l1.45-.777q.49.913 1.198 1.675Zm-2.09-3.511a9.9 9.9 0 0 1-.492-2.422l1.64-.121q.077 1.037.411 2.015Zm-.52-3.938v-2.242H.856v2.242Zm0-3.726V49.77H.856v2.242Zm0-3.727V46.04H.856v2.246Zm0-3.73v-2.242H.856v2.242Zm0-3.727v-2.242H.856v2.242Zm0-3.726v-2.243H.856v2.243Zm0-3.727v-2.246H.856v2.246Zm0-3.73v-2.243H.856v2.243Zm0-3.727v-2.242H.856v2.242Zm0-3.727v-2.246H.856v2.246Zm0-3.73v-2.242H.856v2.242Zm0-3.727v-2.242H.856v2.242Zm0-3.726v-1.59q0-.342.024-.684l1.641.114a9 9 0 0 0-.02.57v1.59Zm.27-3.871a10 10 0 0 1 .88-2.324l1.453.773a8.2 8.2 0 0 0-.735 1.934ZM1.246 3.44a9.8 9.8 0 0 1 1.758-1.765l1.008 1.3a8 8 0 0 0-1.461 1.47ZM4.375.785a9.7 9.7 0 0 1 2.324-.887l.387 1.598q-1.013.246-1.934.738ZM8.297-.352q.353-.028.71-.027h2.243v1.645H9.008c-.2 0-.395.007-.594.023Zm0 0"/></g></g></g></g><g clip-path="url(#as)"><g clip-path="url(#at)"><g clip-path="url(#au)"><g clip-path="url(#av)"><path fill="#88c4c4" d="M12.734-.379h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.243v1.645H20.19Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.243v1.645h-2.243Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645H91.02Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.246v1.645h-2.246Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.247v1.645h-2.247Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.243v1.645h-2.243Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.738.004q1.224.03 2.402.36l-.441 1.581a8.3 8.3 0 0 0-2-.296Zm3.953.938q1.126.532 2.074 1.324l-1.05 1.265a8 8 0 0 0-1.727-1.101Zm3.254 2.484c.54.629.988 1.316 1.356 2.058l-1.48.727a8 8 0 0 0-1.126-1.715Zm1.953 3.598q.347 1.179.395 2.41l-1.645.058a8.3 8.3 0 0 0-.328-2.004Zm.403 3.906v2.242h-1.649v-2.242Zm0 3.726v2.246h-1.649v-2.246Zm0 3.73v2.243h-1.649v-2.242Zm0 3.727v2.243h-1.649v-2.243Zm0 3.727v2.246h-1.649v-2.246Zm0 3.73v2.243h-1.649V29.19Zm0 3.727v2.242h-1.649v-2.242Zm0 3.727v2.246h-1.649v-2.246Zm0 3.73v2.242h-1.649v-2.242Zm0 3.727v2.242h-1.649v-2.242Zm0 3.726v2.242h-1.649v-2.242Zm0 3.727V53.8h-1.649v-2.246Zm0 3.73v1.246q0 .527-.059 1.047l-1.637-.176a8 8 0 0 0 .047-.87v-1.247Zm-.368 3.899a10 10 0 0 1-.964 2.28l-1.422-.827a8.3 8.3 0 0 0 .804-1.899Zm-1.906 3.62a9.8 9.8 0 0 1-1.828 1.696L185 63.16a8 8 0 0 0 1.52-1.41Zm-3.222 2.528a9.6 9.6 0 0 1-2.364.8l-.324-1.609a8.3 8.3 0 0 0 1.965-.668Zm-3.95.988q-.175.007-.351.008h-1.903v-1.644h1.903q.146-.001.293-.008Zm-3.738.008h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.243v-1.644h2.243Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0H103.8v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0H88.89v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0H73.98v-1.644h2.243Zm-3.727 0H70.25v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0H55.34v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0H40.43v-1.644h2.242Zm-3.727 0H36.7v-1.644h2.246Zm-3.73 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.247v-1.644h2.247Zm-3.73 0h-.114q-1.15-.001-2.27-.266l.383-1.601a8 8 0 0 0 1.887.223h.113Zm-3.97-.789a9.8 9.8 0 0 1-2.113-1.238l1-1.305a8 8 0 0 0 1.762 1.027ZM1.82 63.187A9.7 9.7 0 0 1 .38 61.173l1.45-.777q.49.913 1.198 1.675Zm-2.09-3.511a9.9 9.9 0 0 1-.492-2.422l1.64-.121q.077 1.037.411 2.015Zm-.52-3.938v-2.242H.856v2.242Zm0-3.726V49.77H.856v2.242Zm0-3.727V46.04H.856v2.246Zm0-3.73v-2.242H.856v2.242Zm0-3.727v-2.242H.856v2.242Zm0-3.726v-2.243H.856v2.243Zm0-3.727v-2.246H.856v2.246Zm0-3.73v-2.243H.856v2.243Zm0-3.727v-2.242H.856v2.242Zm0-3.727v-2.246H.856v2.246Zm0-3.73v-2.242H.856v2.242Zm0-3.727v-2.242H.856v2.242Zm0-3.726v-1.59q0-.342.024-.684l1.641.114a9 9 0 0 0-.02.57v1.59Zm.27-3.871a10 10 0 0 1 .88-2.324l1.453.773a8.2 8.2 0 0 0-.735 1.934ZM1.246 3.44a9.8 9.8 0 0 1 1.758-1.765l1.008 1.3a8 8 0 0 0-1.461 1.47ZM4.375.785a9.7 9.7 0 0 1 2.324-.887l.387 1.598q-1.013.246-1.934.738ZM8.297-.352q.353-.028.71-.027h2.243v1.645H9.008c-.2 0-.395.007-.594.023Zm0 0"/></g></g></g></g><g clip-path="url(#aw)"><g clip-path="url(#ax)"><g clip-path="url(#ay)"><g clip-path="url(#az)"><path fill="#88c4c4" d="M12.734-.379h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.243v1.645H20.19Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.243v1.645h-2.243Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645H91.02Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.246v1.645h-2.246Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.247v1.645h-2.247Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.243v1.645h-2.243Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.738.004q1.224.03 2.402.36l-.441 1.581a8.3 8.3 0 0 0-2-.296Zm3.953.938q1.126.532 2.074 1.324l-1.05 1.265a8 8 0 0 0-1.727-1.101Zm3.254 2.484c.54.629.988 1.316 1.356 2.058l-1.48.727a8 8 0 0 0-1.126-1.715Zm1.953 3.598q.347 1.179.395 2.41l-1.645.058a8.3 8.3 0 0 0-.328-2.004Zm.403 3.906v2.242h-1.649v-2.242Zm0 3.726v2.246h-1.649v-2.246Zm0 3.73v2.243h-1.649v-2.242Zm0 3.727v2.243h-1.649v-2.243Zm0 3.727v2.246h-1.649v-2.246Zm0 3.73v2.243h-1.649V29.19Zm0 3.727v2.242h-1.649v-2.242Zm0 3.727v2.246h-1.649v-2.246Zm0 3.73v2.242h-1.649v-2.242Zm0 3.727v2.242h-1.649v-2.242Zm0 3.726v2.242h-1.649v-2.242Zm0 3.727V53.8h-1.649v-2.246Zm0 3.73v1.246q0 .527-.059 1.047l-1.637-.176a8 8 0 0 0 .047-.87v-1.247Zm-.368 3.899a10 10 0 0 1-.964 2.28l-1.422-.827a8.3 8.3 0 0 0 .804-1.899Zm-1.906 3.62a9.8 9.8 0 0 1-1.828 1.696L185 63.16a8 8 0 0 0 1.52-1.41Zm-3.222 2.528a9.6 9.6 0 0 1-2.364.8l-.324-1.609a8.3 8.3 0 0 0 1.965-.668Zm-3.95.988q-.175.007-.351.008h-1.903v-1.644h1.903q.146-.001.293-.008Zm-3.738.008h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.243v-1.644h2.243Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0H103.8v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0H88.89v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0H73.98v-1.644h2.243Zm-3.727 0H70.25v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0H55.34v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0H40.43v-1.644h2.242Zm-3.727 0H36.7v-1.644h2.246Zm-3.73 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.247v-1.644h2.247Zm-3.73 0h-.114q-1.15-.001-2.27-.266l.383-1.601a8 8 0 0 0 1.887.223h.113Zm-3.97-.789a9.8 9.8 0 0 1-2.113-1.238l1-1.305a8 8 0 0 0 1.762 1.027ZM1.82 63.187A9.7 9.7 0 0 1 .38 61.173l1.45-.777q.49.913 1.198 1.675Zm-2.09-3.511a9.9 9.9 0 0 1-.492-2.422l1.64-.121q.077 1.037.411 2.015Zm-.52-3.938v-2.242H.856v2.242Zm0-3.726V49.77H.856v2.242Zm0-3.727V46.04H.856v2.246Zm0-3.73v-2.242H.856v2.242Zm0-3.727v-2.242H.856v2.242Zm0-3.726v-2.243H.856v2.243Zm0-3.727v-2.246H.856v2.246Zm0-3.73v-2.243H.856v2.243Zm0-3.727v-2.242H.856v2.242Zm0-3.727v-2.246H.856v2.246Zm0-3.73v-2.242H.856v2.242Zm0-3.727v-2.242H.856v2.242Zm0-3.726v-1.59q0-.342.024-.684l1.641.114a9 9 0 0 0-.02.57v1.59Zm.27-3.871a10 10 0 0 1 .88-2.324l1.453.773a8.2 8.2 0 0 0-.735 1.934ZM1.246 3.44a9.8 9.8 0 0 1 1.758-1.765l1.008 1.3a8 8 0 0 0-1.461 1.47ZM4.375.785a9.7 9.7 0 0 1 2.324-.887l.387 1.598q-1.013.246-1.934.738ZM8.297-.352q.353-.028.71-.027h2.243v1.645H9.008c-.2 0-.395.007-.594.023Zm0 0"/></g></g></g></g></g><g id="dY" clip-path="url(#aA)"><g clip-path="url(#aB)"><g clip-path="url(#aC)"><path fill="#c8e6d2" fill-opacity=".251" d="M.71.445h155.552v65.059H.71Zm0 0"/></g></g><g clip-path="url(#aD)"><g clip-path="url(#aE)"><g clip-path="url(#aF)"><g clip-path="url(#aG)"><path fill="#98c8a4" d="M13.414-.379h2.242v1.645h-2.242Zm3.723 0h2.246v1.645h-2.246Zm3.726 0h2.246v1.645h-2.246Zm3.727 0h2.242v1.645H24.59Zm3.726 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645H35.77Zm3.726 0h2.242v1.645h-2.242Zm3.723 0h2.246v1.645h-2.246Zm3.726 0h2.246v1.645h-2.246Zm3.727 0h2.246v1.645h-2.246Zm3.726 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.722 0h2.246v1.645h-2.246Zm3.727 0H79v1.645h-2.246Zm3.726 0h2.243v1.645H80.48Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.242v1.645H91.66Zm3.727 0h2.242v1.645h-2.242Zm3.722 0h2.246v1.645H99.11Zm3.727 0h2.246v1.645h-2.246Zm3.727 0h2.242v1.645h-2.243Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.722 0h2.246v1.645h-2.246Zm3.727 0h2.246v1.645h-2.246Zm3.727 0h2.246v1.645h-2.246Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.242v1.645h-2.242Zm3.735.004a9.7 9.7 0 0 1 2.406.371l-.45 1.582a8 8 0 0 0-2.003-.308Zm3.953.953c.746.356 1.433.8 2.07 1.332l-1.059 1.262a8.2 8.2 0 0 0-1.722-1.11Zm3.238 2.496q.809.947 1.348 2.063l-1.48.718a8 8 0 0 0-1.122-1.714Zm1.941 3.602q.346 1.179.387 2.41l-1.644.055a8.1 8.1 0 0 0-.32-2.004Zm.391 3.902v2.246h-1.644v-2.246Zm0 3.727v2.242h-1.644v-2.242Zm0 3.726v2.242h-1.644v-2.242Zm0 3.727V24h-1.644v-2.242Zm0 3.726v2.243h-1.644v-2.243Zm0 3.727v2.242h-1.644v-2.242Zm0 3.723v2.246h-1.644v-2.246Zm0 3.726v2.246h-1.644V36.66Zm0 3.727v2.246h-1.644v-2.246Zm0 3.726v2.242h-1.644v-2.242Zm0 3.727v2.242h-1.644V47.84Zm0 3.726v2.243h-1.644v-2.243Zm0 3.727v1.238q.002.527-.055 1.055l-1.636-.18q.046-.435.047-.875v-1.238Zm-.367 3.895a9.7 9.7 0 0 1-.965 2.28l-1.422-.827c.348-.602.617-1.23.805-1.899Zm-1.906 3.62a9.7 9.7 0 0 1-1.829 1.696l-.953-1.34a8 8 0 0 0 1.516-1.41Zm-3.223 2.524a9.5 9.5 0 0 1-2.363.8l-.325-1.609a8.3 8.3 0 0 0 1.965-.668Zm-3.945.988q-.176.007-.356.008h-1.902v-1.644h1.902q.152-.001.297-.008Zm-3.739.008h-2.242v-1.644h2.242Zm-3.726 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.723 0h-2.246v-1.644h2.246Zm-3.726 0H119.3v-1.644h2.246Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.723 0h-2.246v-1.644h2.246Zm-3.726 0h-2.246v-1.644h2.246Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0H85.77v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0H74.59v-1.644h2.242Zm-3.723 0h-2.246v-1.644h2.246Zm-3.726 0h-2.246v-1.644h2.246Zm-3.727 0H63.41v-1.644h2.246Zm-3.726 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.722 0h-2.246v-1.644H43.3Zm-3.727 0h-2.246v-1.644h2.246Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0H29.88v-1.644h2.242Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0H18.7v-1.644h2.242Zm-3.722 0h-2.246v-1.644h2.246Zm-3.727 0h-2.246v-1.644h2.246Zm-3.726 0h-.079q-1.17-.001-2.308-.277l.387-1.598q.948.229 1.922.23h.078Zm-3.97-.805a10 10 0 0 1-2.109-1.246l1.008-1.3a8 8 0 0 0 1.758 1.035ZM2.474 63.16a9.8 9.8 0 0 1-1.43-2.015l1.453-.778q.485.916 1.188 1.68ZM.398 59.645a9.7 9.7 0 0 1-.484-2.422l1.64-.118c.051.692.184 1.36.403 2.016Zm-.507-3.934v-2.242h1.644v2.242Zm0-3.727v-2.242h1.644v2.242Zm0-3.726v-2.242h1.644v2.242Zm0-3.723V42.29h1.644v2.246Zm0-3.726v-2.246h1.644v2.246Zm0-3.727v-2.246h1.644v2.246Zm0-3.727v-2.242h1.644v2.242Zm0-3.726v-2.242h1.644v2.242Zm0-3.727V23.66h1.644v2.242Zm0-3.726v-2.242h1.644v2.242Zm0-3.727v-2.242h1.644v2.242Zm0-3.722V12.48h1.644v2.247Zm0-3.727V9.418q0-.346.023-.691l1.64.117q-.018.287-.019.574V11Zm.27-3.867a9.7 9.7 0 0 1 .882-2.324l1.453.773a8 8 0 0 0-.734 1.934ZM1.93 3.438a9.8 9.8 0 0 1 1.758-1.766l1.007 1.3q-.825.644-1.465 1.47ZM5.055.785a9.7 9.7 0 0 1 2.324-.887l.387 1.598q-1.013.246-1.934.738ZM8.973-.352q.357-.028.714-.027h2.243v1.645H9.688q-.3 0-.594.023Zm0 0"/></g></g></g></g><g clip-path="url(#aH)"><g clip-path="url(#aI)"><g clip-path="url(#aJ)"><g clip-path="url(#aK)"><path fill="#98c8a4" d="M13.414-.379h2.242v1.645h-2.242Zm3.723 0h2.246v1.645h-2.246Zm3.726 0h2.246v1.645h-2.246Zm3.727 0h2.242v1.645H24.59Zm3.726 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645H35.77Zm3.726 0h2.242v1.645h-2.242Zm3.723 0h2.246v1.645h-2.246Zm3.726 0h2.246v1.645h-2.246Zm3.727 0h2.246v1.645h-2.246Zm3.726 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.722 0h2.246v1.645h-2.246Zm3.727 0H79v1.645h-2.246Zm3.726 0h2.243v1.645H80.48Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.242v1.645H91.66Zm3.727 0h2.242v1.645h-2.242Zm3.722 0h2.246v1.645H99.11Zm3.727 0h2.246v1.645h-2.246Zm3.727 0h2.242v1.645h-2.243Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.722 0h2.246v1.645h-2.246Zm3.727 0h2.246v1.645h-2.246Zm3.727 0h2.246v1.645h-2.246Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.242v1.645h-2.242Zm3.735.004a9.7 9.7 0 0 1 2.406.371l-.45 1.582a8 8 0 0 0-2.003-.308Zm3.953.953c.746.356 1.433.8 2.07 1.332l-1.059 1.262a8.2 8.2 0 0 0-1.722-1.11Zm3.238 2.496q.809.947 1.348 2.063l-1.48.718a8 8 0 0 0-1.122-1.714Zm1.941 3.602q.346 1.179.387 2.41l-1.644.055a8.1 8.1 0 0 0-.32-2.004Zm.391 3.902v2.246h-1.644v-2.246Zm0 3.727v2.242h-1.644v-2.242Zm0 3.726v2.242h-1.644v-2.242Zm0 3.727V24h-1.644v-2.242Zm0 3.726v2.243h-1.644v-2.243Zm0 3.727v2.242h-1.644v-2.242Zm0 3.723v2.246h-1.644v-2.246Zm0 3.726v2.246h-1.644V36.66Zm0 3.727v2.246h-1.644v-2.246Zm0 3.726v2.242h-1.644v-2.242Zm0 3.727v2.242h-1.644V47.84Zm0 3.726v2.243h-1.644v-2.243Zm0 3.727v1.238q.002.527-.055 1.055l-1.636-.18q.046-.435.047-.875v-1.238Zm-.367 3.895a9.7 9.7 0 0 1-.965 2.28l-1.422-.827c.348-.602.617-1.23.805-1.899Zm-1.906 3.62a9.7 9.7 0 0 1-1.829 1.696l-.953-1.34a8 8 0 0 0 1.516-1.41Zm-3.223 2.524a9.5 9.5 0 0 1-2.363.8l-.325-1.609a8.3 8.3 0 0 0 1.965-.668Zm-3.945.988q-.176.007-.356.008h-1.902v-1.644h1.902q.152-.001.297-.008Zm-3.739.008h-2.242v-1.644h2.242Zm-3.726 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.723 0h-2.246v-1.644h2.246Zm-3.726 0H119.3v-1.644h2.246Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.723 0h-2.246v-1.644h2.246Zm-3.726 0h-2.246v-1.644h2.246Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0H85.77v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0H74.59v-1.644h2.242Zm-3.723 0h-2.246v-1.644h2.246Zm-3.726 0h-2.246v-1.644h2.246Zm-3.727 0H63.41v-1.644h2.246Zm-3.726 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.722 0h-2.246v-1.644H43.3Zm-3.727 0h-2.246v-1.644h2.246Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0H29.88v-1.644h2.242Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0H18.7v-1.644h2.242Zm-3.722 0h-2.246v-1.644h2.246Zm-3.727 0h-2.246v-1.644h2.246Zm-3.726 0h-.079q-1.17-.001-2.308-.277l.387-1.598q.948.229 1.922.23h.078Zm-3.97-.805a10 10 0 0 1-2.109-1.246l1.008-1.3a8 8 0 0 0 1.758 1.035ZM2.474 63.16a9.8 9.8 0 0 1-1.43-2.015l1.453-.778q.485.916 1.188 1.68ZM.398 59.645a9.7 9.7 0 0 1-.484-2.422l1.64-.118c.051.692.184 1.36.403 2.016Zm-.507-3.934v-2.242h1.644v2.242Zm0-3.727v-2.242h1.644v2.242Zm0-3.726v-2.242h1.644v2.242Zm0-3.723V42.29h1.644v2.246Zm0-3.726v-2.246h1.644v2.246Zm0-3.727v-2.246h1.644v2.246Zm0-3.727v-2.242h1.644v2.242Zm0-3.726v-2.242h1.644v2.242Zm0-3.727V23.66h1.644v2.242Zm0-3.726v-2.242h1.644v2.242Zm0-3.727v-2.242h1.644v2.242Zm0-3.722V12.48h1.644v2.247Zm0-3.727V9.418q0-.346.023-.691l1.64.117q-.018.287-.019.574V11Zm.27-3.867a9.7 9.7 0 0 1 .882-2.324l1.453.773a8 8 0 0 0-.734 1.934ZM1.93 3.438a9.8 9.8 0 0 1 1.758-1.766l1.007 1.3q-.825.644-1.465 1.47ZM5.055.785a9.7 9.7 0 0 1 2.324-.887l.387 1.598q-1.013.246-1.934.738ZM8.973-.352q.357-.028.714-.027h2.243v1.645H9.688q-.3 0-.594.023Zm0 0"/></g></g></g></g><g clip-path="url(#aL)"><g clip-path="url(#aM)"><g clip-path="url(#aN)"><g clip-path="url(#aO)"><path fill="#98c8a4" d="M13.414-.379h2.242v1.645h-2.242Zm3.723 0h2.246v1.645h-2.246Zm3.726 0h2.246v1.645h-2.246Zm3.727 0h2.242v1.645H24.59Zm3.726 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645H35.77Zm3.726 0h2.242v1.645h-2.242Zm3.723 0h2.246v1.645h-2.246Zm3.726 0h2.246v1.645h-2.246Zm3.727 0h2.246v1.645h-2.246Zm3.726 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.722 0h2.246v1.645h-2.246Zm3.727 0H79v1.645h-2.246Zm3.726 0h2.243v1.645H80.48Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.242v1.645H91.66Zm3.727 0h2.242v1.645h-2.242Zm3.722 0h2.246v1.645H99.11Zm3.727 0h2.246v1.645h-2.246Zm3.727 0h2.242v1.645h-2.243Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.722 0h2.246v1.645h-2.246Zm3.727 0h2.246v1.645h-2.246Zm3.727 0h2.246v1.645h-2.246Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.242v1.645h-2.242Zm3.735.004a9.7 9.7 0 0 1 2.406.371l-.45 1.582a8 8 0 0 0-2.003-.308Zm3.953.953c.746.356 1.433.8 2.07 1.332l-1.059 1.262a8.2 8.2 0 0 0-1.722-1.11Zm3.238 2.496q.809.947 1.348 2.063l-1.48.718a8 8 0 0 0-1.122-1.714Zm1.941 3.602q.346 1.179.387 2.41l-1.644.055a8.1 8.1 0 0 0-.32-2.004Zm.391 3.902v2.246h-1.644v-2.246Zm0 3.727v2.242h-1.644v-2.242Zm0 3.726v2.242h-1.644v-2.242Zm0 3.727V24h-1.644v-2.242Zm0 3.726v2.243h-1.644v-2.243Zm0 3.727v2.242h-1.644v-2.242Zm0 3.723v2.246h-1.644v-2.246Zm0 3.726v2.246h-1.644V36.66Zm0 3.727v2.246h-1.644v-2.246Zm0 3.726v2.242h-1.644v-2.242Zm0 3.727v2.242h-1.644V47.84Zm0 3.726v2.243h-1.644v-2.243Zm0 3.727v1.238q.002.527-.055 1.055l-1.636-.18q.046-.435.047-.875v-1.238Zm-.367 3.895a9.7 9.7 0 0 1-.965 2.28l-1.422-.827c.348-.602.617-1.23.805-1.899Zm-1.906 3.62a9.7 9.7 0 0 1-1.829 1.696l-.953-1.34a8 8 0 0 0 1.516-1.41Zm-3.223 2.524a9.5 9.5 0 0 1-2.363.8l-.325-1.609a8.3 8.3 0 0 0 1.965-.668Zm-3.945.988q-.176.007-.356.008h-1.902v-1.644h1.902q.152-.001.297-.008Zm-3.739.008h-2.242v-1.644h2.242Zm-3.726 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.723 0h-2.246v-1.644h2.246Zm-3.726 0H119.3v-1.644h2.246Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.723 0h-2.246v-1.644h2.246Zm-3.726 0h-2.246v-1.644h2.246Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0H85.77v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0H74.59v-1.644h2.242Zm-3.723 0h-2.246v-1.644h2.246Zm-3.726 0h-2.246v-1.644h2.246Zm-3.727 0H63.41v-1.644h2.246Zm-3.726 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.722 0h-2.246v-1.644H43.3Zm-3.727 0h-2.246v-1.644h2.246Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0H29.88v-1.644h2.242Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0H18.7v-1.644h2.242Zm-3.722 0h-2.246v-1.644h2.246Zm-3.727 0h-2.246v-1.644h2.246Zm-3.726 0h-.079q-1.17-.001-2.308-.277l.387-1.598q.948.229 1.922.23h.078Zm-3.97-.805a10 10 0 0 1-2.109-1.246l1.008-1.3a8 8 0 0 0 1.758 1.035ZM2.474 63.16a9.8 9.8 0 0 1-1.43-2.015l1.453-.778q.485.916 1.188 1.68ZM.398 59.645a9.7 9.7 0 0 1-.484-2.422l1.64-.118c.051.692.184 1.36.403 2.016Zm-.507-3.934v-2.242h1.644v2.242Zm0-3.727v-2.242h1.644v2.242Zm0-3.726v-2.242h1.644v2.242Zm0-3.723V42.29h1.644v2.246Zm0-3.726v-2.246h1.644v2.246Zm0-3.727v-2.246h1.644v2.246Zm0-3.727v-2.242h1.644v2.242Zm0-3.726v-2.242h1.644v2.242Zm0-3.727V23.66h1.644v2.242Zm0-3.726v-2.242h1.644v2.242Zm0-3.727v-2.242h1.644v2.242Zm0-3.722V12.48h1.644v2.247Zm0-3.727V9.418q0-.346.023-.691l1.64.117q-.018.287-.019.574V11Zm.27-3.867a9.7 9.7 0 0 1 .882-2.324l1.453.773a8 8 0 0 0-.734 1.934ZM1.93 3.438a9.8 9.8 0 0 1 1.758-1.766l1.007 1.3q-.825.644-1.465 1.47ZM5.055.785a9.7 9.7 0 0 1 2.324-.887l.387 1.598q-1.013.246-1.934.738ZM8.973-.352q.357-.028.714-.027h2.243v1.645H9.688q-.3 0-.594.023Zm0 0"/></g></g></g></g><g clip-path="url(#aP)"><g clip-path="url(#aQ)"><g clip-path="url(#aR)"><g clip-path="url(#aS)"><path fill="#98c8a4" d="M13.414-.379h2.242v1.645h-2.242Zm3.723 0h2.246v1.645h-2.246Zm3.726 0h2.246v1.645h-2.246Zm3.727 0h2.242v1.645H24.59Zm3.726 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645H35.77Zm3.726 0h2.242v1.645h-2.242Zm3.723 0h2.246v1.645h-2.246Zm3.726 0h2.246v1.645h-2.246Zm3.727 0h2.246v1.645h-2.246Zm3.726 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.722 0h2.246v1.645h-2.246Zm3.727 0H79v1.645h-2.246Zm3.726 0h2.243v1.645H80.48Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.242v1.645H91.66Zm3.727 0h2.242v1.645h-2.242Zm3.722 0h2.246v1.645H99.11Zm3.727 0h2.246v1.645h-2.246Zm3.727 0h2.242v1.645h-2.243Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.722 0h2.246v1.645h-2.246Zm3.727 0h2.246v1.645h-2.246Zm3.727 0h2.246v1.645h-2.246Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.242v1.645h-2.242Zm3.735.004a9.7 9.7 0 0 1 2.406.371l-.45 1.582a8 8 0 0 0-2.003-.308Zm3.953.953c.746.356 1.433.8 2.07 1.332l-1.059 1.262a8.2 8.2 0 0 0-1.722-1.11Zm3.238 2.496q.809.947 1.348 2.063l-1.48.718a8 8 0 0 0-1.122-1.714Zm1.941 3.602q.346 1.179.387 2.41l-1.644.055a8.1 8.1 0 0 0-.32-2.004Zm.391 3.902v2.246h-1.644v-2.246Zm0 3.727v2.242h-1.644v-2.242Zm0 3.726v2.242h-1.644v-2.242Zm0 3.727V24h-1.644v-2.242Zm0 3.726v2.243h-1.644v-2.243Zm0 3.727v2.242h-1.644v-2.242Zm0 3.723v2.246h-1.644v-2.246Zm0 3.726v2.246h-1.644V36.66Zm0 3.727v2.246h-1.644v-2.246Zm0 3.726v2.242h-1.644v-2.242Zm0 3.727v2.242h-1.644V47.84Zm0 3.726v2.243h-1.644v-2.243Zm0 3.727v1.238q.002.527-.055 1.055l-1.636-.18q.046-.435.047-.875v-1.238Zm-.367 3.895a9.7 9.7 0 0 1-.965 2.28l-1.422-.827c.348-.602.617-1.23.805-1.899Zm-1.906 3.62a9.7 9.7 0 0 1-1.829 1.696l-.953-1.34a8 8 0 0 0 1.516-1.41Zm-3.223 2.524a9.5 9.5 0 0 1-2.363.8l-.325-1.609a8.3 8.3 0 0 0 1.965-.668Zm-3.945.988q-.176.007-.356.008h-1.902v-1.644h1.902q.152-.001.297-.008Zm-3.739.008h-2.242v-1.644h2.242Zm-3.726 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.723 0h-2.246v-1.644h2.246Zm-3.726 0H119.3v-1.644h2.246Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.723 0h-2.246v-1.644h2.246Zm-3.726 0h-2.246v-1.644h2.246Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0H85.77v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0H74.59v-1.644h2.242Zm-3.723 0h-2.246v-1.644h2.246Zm-3.726 0h-2.246v-1.644h2.246Zm-3.727 0H63.41v-1.644h2.246Zm-3.726 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.722 0h-2.246v-1.644H43.3Zm-3.727 0h-2.246v-1.644h2.246Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0H29.88v-1.644h2.242Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0H18.7v-1.644h2.242Zm-3.722 0h-2.246v-1.644h2.246Zm-3.727 0h-2.246v-1.644h2.246Zm-3.726 0h-.079q-1.17-.001-2.308-.277l.387-1.598q.948.229 1.922.23h.078Zm-3.97-.805a10 10 0 0 1-2.109-1.246l1.008-1.3a8 8 0 0 0 1.758 1.035ZM2.474 63.16a9.8 9.8 0 0 1-1.43-2.015l1.453-.778q.485.916 1.188 1.68ZM.398 59.645a9.7 9.7 0 0 1-.484-2.422l1.64-.118c.051.692.184 1.36.403 2.016Zm-.507-3.934v-2.242h1.644v2.242Zm0-3.727v-2.242h1.644v2.242Zm0-3.726v-2.242h1.644v2.242Zm0-3.723V42.29h1.644v2.246Zm0-3.726v-2.246h1.644v2.246Zm0-3.727v-2.246h1.644v2.246Zm0-3.727v-2.242h1.644v2.242Zm0-3.726v-2.242h1.644v2.242Zm0-3.727V23.66h1.644v2.242Zm0-3.726v-2.242h1.644v2.242Zm0-3.727v-2.242h1.644v2.242Zm0-3.722V12.48h1.644v2.247Zm0-3.727V9.418q0-.346.023-.691l1.64.117q-.018.287-.019.574V11Zm.27-3.867a9.7 9.7 0 0 1 .882-2.324l1.453.773a8 8 0 0 0-.734 1.934ZM1.93 3.438a9.8 9.8 0 0 1 1.758-1.766l1.007 1.3q-.825.644-1.465 1.47ZM5.055.785a9.7 9.7 0 0 1 2.324-.887l.387 1.598q-1.013.246-1.934.738ZM8.973-.352q.357-.028.714-.027h2.243v1.645H9.688q-.3 0-.594.023Zm0 0"/></g></g></g></g></g><g id="eg" clip-path="url(#aT)"><g clip-path="url(#aU)"><g clip-path="url(#aV)"><path fill="#c8d2e4" fill-opacity=".251" d="M.738.445H156.29v65.059H.74Zm0 0"/></g></g><g clip-path="url(#aW)"><g clip-path="url(#aX)"><g clip-path="url(#aY)"><g clip-path="url(#aZ)"><path fill="#98a8c4" d="M13.438-.379h2.246v1.645h-2.246Zm3.726 0h2.246v1.645h-2.246Zm3.727 0h2.242v1.645H20.89Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.242v1.645H32.07Zm3.727 0h2.242v1.645h-2.242Zm3.723 0h2.246v1.645H39.52Zm3.726 0h2.246v1.645h-2.246Zm3.727 0h2.246v1.645h-2.246Zm3.726 0h2.242v1.645H50.7Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645H61.88Zm3.723 0h2.246v1.645h-2.246Zm3.726 0h2.246v1.645h-2.246Zm3.727 0H75.3v1.645h-2.246Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.243Zm3.722 0h2.246v1.645H95.41Zm3.727 0h2.246v1.645h-2.246Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.722 0h2.246v1.645h-2.246Zm3.727 0h2.246v1.645h-2.246Zm3.726 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.734.004a9.7 9.7 0 0 1 2.406.371l-.449 1.582a8 8 0 0 0-2.004-.308Zm3.95.953c.75.356 1.437.8 2.073 1.332l-1.058 1.262a8.2 8.2 0 0 0-1.723-1.11Zm3.241 2.496c.54.63.985 1.32 1.348 2.063l-1.48.718a8 8 0 0 0-1.122-1.714Zm1.942 3.602q.346 1.179.386 2.41l-1.644.055a8.3 8.3 0 0 0-.32-2.004Zm.39 3.902v2.246h-1.644v-2.246Zm0 3.727v2.242h-1.644v-2.242Zm0 3.726v2.242h-1.644v-2.242Zm0 3.727V24h-1.644v-2.242Zm0 3.726v2.243h-1.644v-2.243Zm0 3.727v2.242h-1.644v-2.242Zm0 3.723v2.246h-1.644v-2.246Zm0 3.726v2.246h-1.644V36.66Zm0 3.727v2.246h-1.644v-2.246Zm0 3.726v2.242h-1.644v-2.242Zm0 3.727v2.242h-1.644V47.84Zm0 3.726v2.243h-1.644v-2.243Zm0 3.727v1.238q-.002.527-.054 1.055l-1.637-.176a8 8 0 0 0 .047-.879v-1.238Zm-.367 3.895a9.7 9.7 0 0 1-.969 2.28l-1.418-.827c.348-.602.618-1.23.805-1.899Zm-1.906 3.62a9.8 9.8 0 0 1-1.828 1.696l-.957-1.34a8 8 0 0 0 1.52-1.41Zm-3.223 2.524a9.6 9.6 0 0 1-2.363.8l-.324-1.609a8.3 8.3 0 0 0 1.965-.668Zm-3.945.988q-.177.007-.356.008h-1.902v-1.644h1.903c.097 0 .199-.004.296-.008Zm-3.738.008h-2.246v-1.644h2.246Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.242v-1.644h2.242Zm-3.723 0h-2.246v-1.644h2.246Zm-3.726 0h-2.246v-1.644h2.246Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0H100.7v-1.644h2.242Zm-3.726 0h-2.242v-1.644h2.242Zm-3.723 0h-2.246v-1.644h2.246Zm-3.726 0H89.52v-1.644h2.246Zm-3.727 0h-2.246v-1.644h2.246Zm-3.727 0H82.07v-1.644h2.243Zm-3.726 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0H70.89v-1.644h2.242Zm-3.723 0h-2.246v-1.644h2.246Zm-3.726 0h-2.246v-1.644h2.246Zm-3.727 0h-2.246v-1.644h2.246Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.722 0h-2.247v-1.644h2.247Zm-3.727 0h-2.246v-1.644h2.246Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0H26.18v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.242v-1.644h2.242Zm-3.727 0H15v-1.644h2.242Zm-3.722 0h-2.247v-1.644h2.247Zm-3.727 0h-.078q-1.171-.001-2.309-.277l.387-1.598a8.2 8.2 0 0 0 1.922.23h.078Zm-3.969-.805a10 10 0 0 1-2.11-1.246l1.009-1.3q.81.629 1.754 1.035ZM2.5 63.16a9.8 9.8 0 0 1-1.43-2.015l1.45-.778q.49.916 1.19 1.68ZM.426 59.645a9.7 9.7 0 0 1-.485-2.422l1.641-.118a8 8 0 0 0 .402 2.016Zm-.508-3.934v-2.242h1.645v2.242Zm0-3.727v-2.242h1.645v2.242Zm0-3.726v-2.242h1.645v2.242Zm0-3.723V42.29h1.645v2.246Zm0-3.726v-2.246h1.645v2.246Zm0-3.727v-2.246h1.645v2.246Zm0-3.727v-2.242h1.645v2.242Zm0-3.726v-2.242h1.645v2.242Zm0-3.727V23.66h1.645v2.242Zm0-3.726v-2.242h1.645v2.242Zm0-3.727v-2.242h1.645v2.242Zm0-3.722V12.48h1.645v2.247Zm0-3.727V9.418q0-.346.023-.691l1.641.117q-.019.287-.02.574V11Zm.27-3.867a9.7 9.7 0 0 1 .882-2.324l1.45.773a8.3 8.3 0 0 0-.735 1.934Zm1.765-3.695a9.8 9.8 0 0 1 1.762-1.766l1.008 1.3c-.551.426-1.04.919-1.465 1.47ZM5.082.785a9.7 9.7 0 0 1 2.324-.887l.387 1.598q-1.013.246-1.934.738ZM9-.352q.357-.028.715-.027h2.242v1.645H9.715q-.3 0-.594.023Zm0 0"/></g></g></g></g><g clip-path="url(#ba)"><g clip-path="url(#bb)"><g clip-path="url(#bc)"><g clip-path="url(#bd)"><path fill="#98a8c4" d="M13.438-.379h2.246v1.645h-2.246Zm3.726 0h2.246v1.645h-2.246Zm3.727 0h2.242v1.645H20.89Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.242v1.645H32.07Zm3.727 0h2.242v1.645h-2.242Zm3.723 0h2.246v1.645H39.52Zm3.726 0h2.246v1.645h-2.246Zm3.727 0h2.246v1.645h-2.246Zm3.726 0h2.242v1.645H50.7Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645H61.88Zm3.723 0h2.246v1.645h-2.246Zm3.726 0h2.246v1.645h-2.246Zm3.727 0H75.3v1.645h-2.246Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.243Zm3.722 0h2.246v1.645H95.41Zm3.727 0h2.246v1.645h-2.246Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.722 0h2.246v1.645h-2.246Zm3.727 0h2.246v1.645h-2.246Zm3.726 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.734.004a9.7 9.7 0 0 1 2.406.371l-.449 1.582a8 8 0 0 0-2.004-.308Zm3.95.953c.75.356 1.437.8 2.073 1.332l-1.058 1.262a8.2 8.2 0 0 0-1.723-1.11Zm3.241 2.496c.54.63.985 1.32 1.348 2.063l-1.48.718a8 8 0 0 0-1.122-1.714Zm1.942 3.602q.346 1.179.386 2.41l-1.644.055a8.3 8.3 0 0 0-.32-2.004Zm.39 3.902v2.246h-1.644v-2.246Zm0 3.727v2.242h-1.644v-2.242Zm0 3.726v2.242h-1.644v-2.242Zm0 3.727V24h-1.644v-2.242Zm0 3.726v2.243h-1.644v-2.243Zm0 3.727v2.242h-1.644v-2.242Zm0 3.723v2.246h-1.644v-2.246Zm0 3.726v2.246h-1.644V36.66Zm0 3.727v2.246h-1.644v-2.246Zm0 3.726v2.242h-1.644v-2.242Zm0 3.727v2.242h-1.644V47.84Zm0 3.726v2.243h-1.644v-2.243Zm0 3.727v1.238q-.002.527-.054 1.055l-1.637-.176a8 8 0 0 0 .047-.879v-1.238Zm-.367 3.895a9.7 9.7 0 0 1-.969 2.28l-1.418-.827c.348-.602.618-1.23.805-1.899Zm-1.906 3.62a9.8 9.8 0 0 1-1.828 1.696l-.957-1.34a8 8 0 0 0 1.52-1.41Zm-3.223 2.524a9.6 9.6 0 0 1-2.363.8l-.324-1.609a8.3 8.3 0 0 0 1.965-.668Zm-3.945.988q-.177.007-.356.008h-1.902v-1.644h1.903c.097 0 .199-.004.296-.008Zm-3.738.008h-2.246v-1.644h2.246Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.242v-1.644h2.242Zm-3.723 0h-2.246v-1.644h2.246Zm-3.726 0h-2.246v-1.644h2.246Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0H100.7v-1.644h2.242Zm-3.726 0h-2.242v-1.644h2.242Zm-3.723 0h-2.246v-1.644h2.246Zm-3.726 0H89.52v-1.644h2.246Zm-3.727 0h-2.246v-1.644h2.246Zm-3.727 0H82.07v-1.644h2.243Zm-3.726 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0H70.89v-1.644h2.242Zm-3.723 0h-2.246v-1.644h2.246Zm-3.726 0h-2.246v-1.644h2.246Zm-3.727 0h-2.246v-1.644h2.246Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.722 0h-2.247v-1.644h2.247Zm-3.727 0h-2.246v-1.644h2.246Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0H26.18v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.242v-1.644h2.242Zm-3.727 0H15v-1.644h2.242Zm-3.722 0h-2.247v-1.644h2.247Zm-3.727 0h-.078q-1.171-.001-2.309-.277l.387-1.598a8.2 8.2 0 0 0 1.922.23h.078Zm-3.969-.805a10 10 0 0 1-2.11-1.246l1.009-1.3q.81.629 1.754 1.035ZM2.5 63.16a9.8 9.8 0 0 1-1.43-2.015l1.45-.778q.49.916 1.19 1.68ZM.426 59.645a9.7 9.7 0 0 1-.485-2.422l1.641-.118a8 8 0 0 0 .402 2.016Zm-.508-3.934v-2.242h1.645v2.242Zm0-3.727v-2.242h1.645v2.242Zm0-3.726v-2.242h1.645v2.242Zm0-3.723V42.29h1.645v2.246Zm0-3.726v-2.246h1.645v2.246Zm0-3.727v-2.246h1.645v2.246Zm0-3.727v-2.242h1.645v2.242Zm0-3.726v-2.242h1.645v2.242Zm0-3.727V23.66h1.645v2.242Zm0-3.726v-2.242h1.645v2.242Zm0-3.727v-2.242h1.645v2.242Zm0-3.722V12.48h1.645v2.247Zm0-3.727V9.418q0-.346.023-.691l1.641.117q-.019.287-.02.574V11Zm.27-3.867a9.7 9.7 0 0 1 .882-2.324l1.45.773a8.3 8.3 0 0 0-.735 1.934Zm1.765-3.695a9.8 9.8 0 0 1 1.762-1.766l1.008 1.3c-.551.426-1.04.919-1.465 1.47ZM5.082.785a9.7 9.7 0 0 1 2.324-.887l.387 1.598q-1.013.246-1.934.738ZM9-.352q.357-.028.715-.027h2.242v1.645H9.715q-.3 0-.594.023Zm0 0"/></g></g></g></g><g clip-path="url(#be)"><g clip-path="url(#bf)"><g clip-path="url(#bg)"><g clip-path="url(#bh)"><path fill="#98a8c4" d="M13.438-.379h2.246v1.645h-2.246Zm3.726 0h2.246v1.645h-2.246Zm3.727 0h2.242v1.645H20.89Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.242v1.645H32.07Zm3.727 0h2.242v1.645h-2.242Zm3.723 0h2.246v1.645H39.52Zm3.726 0h2.246v1.645h-2.246Zm3.727 0h2.246v1.645h-2.246Zm3.726 0h2.242v1.645H50.7Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645H61.88Zm3.723 0h2.246v1.645h-2.246Zm3.726 0h2.246v1.645h-2.246Zm3.727 0H75.3v1.645h-2.246Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.243Zm3.722 0h2.246v1.645H95.41Zm3.727 0h2.246v1.645h-2.246Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.722 0h2.246v1.645h-2.246Zm3.727 0h2.246v1.645h-2.246Zm3.726 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.734.004a9.7 9.7 0 0 1 2.406.371l-.449 1.582a8 8 0 0 0-2.004-.308Zm3.95.953c.75.356 1.437.8 2.073 1.332l-1.058 1.262a8.2 8.2 0 0 0-1.723-1.11Zm3.241 2.496c.54.63.985 1.32 1.348 2.063l-1.48.718a8 8 0 0 0-1.122-1.714Zm1.942 3.602q.346 1.179.386 2.41l-1.644.055a8.3 8.3 0 0 0-.32-2.004Zm.39 3.902v2.246h-1.644v-2.246Zm0 3.727v2.242h-1.644v-2.242Zm0 3.726v2.242h-1.644v-2.242Zm0 3.727V24h-1.644v-2.242Zm0 3.726v2.243h-1.644v-2.243Zm0 3.727v2.242h-1.644v-2.242Zm0 3.723v2.246h-1.644v-2.246Zm0 3.726v2.246h-1.644V36.66Zm0 3.727v2.246h-1.644v-2.246Zm0 3.726v2.242h-1.644v-2.242Zm0 3.727v2.242h-1.644V47.84Zm0 3.726v2.243h-1.644v-2.243Zm0 3.727v1.238q-.002.527-.054 1.055l-1.637-.176a8 8 0 0 0 .047-.879v-1.238Zm-.367 3.895a9.7 9.7 0 0 1-.969 2.28l-1.418-.827c.348-.602.618-1.23.805-1.899Zm-1.906 3.62a9.8 9.8 0 0 1-1.828 1.696l-.957-1.34a8 8 0 0 0 1.52-1.41Zm-3.223 2.524a9.6 9.6 0 0 1-2.363.8l-.324-1.609a8.3 8.3 0 0 0 1.965-.668Zm-3.945.988q-.177.007-.356.008h-1.902v-1.644h1.903c.097 0 .199-.004.296-.008Zm-3.738.008h-2.246v-1.644h2.246Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.242v-1.644h2.242Zm-3.723 0h-2.246v-1.644h2.246Zm-3.726 0h-2.246v-1.644h2.246Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0H100.7v-1.644h2.242Zm-3.726 0h-2.242v-1.644h2.242Zm-3.723 0h-2.246v-1.644h2.246Zm-3.726 0H89.52v-1.644h2.246Zm-3.727 0h-2.246v-1.644h2.246Zm-3.727 0H82.07v-1.644h2.243Zm-3.726 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0H70.89v-1.644h2.242Zm-3.723 0h-2.246v-1.644h2.246Zm-3.726 0h-2.246v-1.644h2.246Zm-3.727 0h-2.246v-1.644h2.246Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.722 0h-2.247v-1.644h2.247Zm-3.727 0h-2.246v-1.644h2.246Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0H26.18v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.242v-1.644h2.242Zm-3.727 0H15v-1.644h2.242Zm-3.722 0h-2.247v-1.644h2.247Zm-3.727 0h-.078q-1.171-.001-2.309-.277l.387-1.598a8.2 8.2 0 0 0 1.922.23h.078Zm-3.969-.805a10 10 0 0 1-2.11-1.246l1.009-1.3q.81.629 1.754 1.035ZM2.5 63.16a9.8 9.8 0 0 1-1.43-2.015l1.45-.778q.49.916 1.19 1.68ZM.426 59.645a9.7 9.7 0 0 1-.485-2.422l1.641-.118a8 8 0 0 0 .402 2.016Zm-.508-3.934v-2.242h1.645v2.242Zm0-3.727v-2.242h1.645v2.242Zm0-3.726v-2.242h1.645v2.242Zm0-3.723V42.29h1.645v2.246Zm0-3.726v-2.246h1.645v2.246Zm0-3.727v-2.246h1.645v2.246Zm0-3.727v-2.242h1.645v2.242Zm0-3.726v-2.242h1.645v2.242Zm0-3.727V23.66h1.645v2.242Zm0-3.726v-2.242h1.645v2.242Zm0-3.727v-2.242h1.645v2.242Zm0-3.722V12.48h1.645v2.247Zm0-3.727V9.418q0-.346.023-.691l1.641.117q-.019.287-.02.574V11Zm.27-3.867a9.7 9.7 0 0 1 .882-2.324l1.45.773a8.3 8.3 0 0 0-.735 1.934Zm1.765-3.695a9.8 9.8 0 0 1 1.762-1.766l1.008 1.3c-.551.426-1.04.919-1.465 1.47ZM5.082.785a9.7 9.7 0 0 1 2.324-.887l.387 1.598q-1.013.246-1.934.738ZM9-.352q.357-.028.715-.027h2.242v1.645H9.715q-.3 0-.594.023Zm0 0"/></g></g></g></g><g clip-path="url(#bi)"><g clip-path="url(#bj)"><g clip-path="url(#bk)"><g clip-path="url(#bl)"><path fill="#98a8c4" d="M13.438-.379h2.246v1.645h-2.246Zm3.726 0h2.246v1.645h-2.246Zm3.727 0h2.242v1.645H20.89Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.242v1.645H32.07Zm3.727 0h2.242v1.645h-2.242Zm3.723 0h2.246v1.645H39.52Zm3.726 0h2.246v1.645h-2.246Zm3.727 0h2.246v1.645h-2.246Zm3.726 0h2.242v1.645H50.7Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645H61.88Zm3.723 0h2.246v1.645h-2.246Zm3.726 0h2.246v1.645h-2.246Zm3.727 0H75.3v1.645h-2.246Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.243Zm3.722 0h2.246v1.645H95.41Zm3.727 0h2.246v1.645h-2.246Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.722 0h2.246v1.645h-2.246Zm3.727 0h2.246v1.645h-2.246Zm3.726 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.734.004a9.7 9.7 0 0 1 2.406.371l-.449 1.582a8 8 0 0 0-2.004-.308Zm3.95.953c.75.356 1.437.8 2.073 1.332l-1.058 1.262a8.2 8.2 0 0 0-1.723-1.11Zm3.241 2.496c.54.63.985 1.32 1.348 2.063l-1.48.718a8 8 0 0 0-1.122-1.714Zm1.942 3.602q.346 1.179.386 2.41l-1.644.055a8.3 8.3 0 0 0-.32-2.004Zm.39 3.902v2.246h-1.644v-2.246Zm0 3.727v2.242h-1.644v-2.242Zm0 3.726v2.242h-1.644v-2.242Zm0 3.727V24h-1.644v-2.242Zm0 3.726v2.243h-1.644v-2.243Zm0 3.727v2.242h-1.644v-2.242Zm0 3.723v2.246h-1.644v-2.246Zm0 3.726v2.246h-1.644V36.66Zm0 3.727v2.246h-1.644v-2.246Zm0 3.726v2.242h-1.644v-2.242Zm0 3.727v2.242h-1.644V47.84Zm0 3.726v2.243h-1.644v-2.243Zm0 3.727v1.238q-.002.527-.054 1.055l-1.637-.176a8 8 0 0 0 .047-.879v-1.238Zm-.367 3.895a9.7 9.7 0 0 1-.969 2.28l-1.418-.827c.348-.602.618-1.23.805-1.899Zm-1.906 3.62a9.8 9.8 0 0 1-1.828 1.696l-.957-1.34a8 8 0 0 0 1.52-1.41Zm-3.223 2.524a9.6 9.6 0 0 1-2.363.8l-.324-1.609a8.3 8.3 0 0 0 1.965-.668Zm-3.945.988q-.177.007-.356.008h-1.902v-1.644h1.903c.097 0 .199-.004.296-.008Zm-3.738.008h-2.246v-1.644h2.246Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.242v-1.644h2.242Zm-3.723 0h-2.246v-1.644h2.246Zm-3.726 0h-2.246v-1.644h2.246Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0H100.7v-1.644h2.242Zm-3.726 0h-2.242v-1.644h2.242Zm-3.723 0h-2.246v-1.644h2.246Zm-3.726 0H89.52v-1.644h2.246Zm-3.727 0h-2.246v-1.644h2.246Zm-3.727 0H82.07v-1.644h2.243Zm-3.726 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0H70.89v-1.644h2.242Zm-3.723 0h-2.246v-1.644h2.246Zm-3.726 0h-2.246v-1.644h2.246Zm-3.727 0h-2.246v-1.644h2.246Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.722 0h-2.247v-1.644h2.247Zm-3.727 0h-2.246v-1.644h2.246Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0H26.18v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.242v-1.644h2.242Zm-3.727 0H15v-1.644h2.242Zm-3.722 0h-2.247v-1.644h2.247Zm-3.727 0h-.078q-1.171-.001-2.309-.277l.387-1.598a8.2 8.2 0 0 0 1.922.23h.078Zm-3.969-.805a10 10 0 0 1-2.11-1.246l1.009-1.3q.81.629 1.754 1.035ZM2.5 63.16a9.8 9.8 0 0 1-1.43-2.015l1.45-.778q.49.916 1.19 1.68ZM.426 59.645a9.7 9.7 0 0 1-.485-2.422l1.641-.118a8 8 0 0 0 .402 2.016Zm-.508-3.934v-2.242h1.645v2.242Zm0-3.727v-2.242h1.645v2.242Zm0-3.726v-2.242h1.645v2.242Zm0-3.723V42.29h1.645v2.246Zm0-3.726v-2.246h1.645v2.246Zm0-3.727v-2.246h1.645v2.246Zm0-3.727v-2.242h1.645v2.242Zm0-3.726v-2.242h1.645v2.242Zm0-3.727V23.66h1.645v2.242Zm0-3.726v-2.242h1.645v2.242Zm0-3.727v-2.242h1.645v2.242Zm0-3.722V12.48h1.645v2.247Zm0-3.727V9.418q0-.346.023-.691l1.641.117q-.019.287-.02.574V11Zm.27-3.867a9.7 9.7 0 0 1 .882-2.324l1.45.773a8.3 8.3 0 0 0-.735 1.934Zm1.765-3.695a9.8 9.8 0 0 1 1.762-1.766l1.008 1.3c-.551.426-1.04.919-1.465 1.47ZM5.082.785a9.7 9.7 0 0 1 2.324-.887l.387 1.598q-1.013.246-1.934.738ZM9-.352q.357-.028.715-.027h2.242v1.645H9.715q-.3 0-.594.023Zm0 0"/></g></g></g></g></g><g id="el" clip-path="url(#bm)"><g clip-path="url(#bn)"><g clip-path="url(#bo)"><path fill="#d7dcdc" fill-opacity=".251" d="M.766.445h189.199v65.059H.765Zm0 0"/></g></g><g clip-path="url(#bp)"><g clip-path="url(#bq)"><g clip-path="url(#br)"><g clip-path="url(#bs)"><path fill="#b0b8b8" d="M13.469-.379h2.242v1.645h-2.242Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645H28.38Zm3.726 0h2.247v1.645h-2.247Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.243v1.645h-2.242Zm3.727 0h2.246v1.645H43.29Zm3.73 0h2.243v1.645H47.02Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645H61.93Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645H76.84Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.243v1.645h-2.243Zm3.727 0h2.246v1.645H91.75Zm3.73 0h2.243v1.645H95.48Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645H125.3Zm3.73 0h2.242v1.645h-2.242Zm3.727 0H135v1.645h-2.242Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.243v1.645h-2.243Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.735.004a9.9 9.9 0 0 1 2.406.36l-.446 1.581a8.2 8.2 0 0 0-2-.296Zm3.957.938a10 10 0 0 1 2.074 1.324l-1.051 1.265a8 8 0 0 0-1.727-1.101Zm3.25 2.484q.81.944 1.355 2.058l-1.476.727a8 8 0 0 0-1.13-1.715Zm1.953 3.598q.35 1.179.394 2.41l-1.644.058a8 8 0 0 0-.328-2.004Zm.402 3.906v2.242h-1.644v-2.242Zm0 3.726v2.246h-1.644v-2.246Zm0 3.73v2.243h-1.644v-2.242Zm0 3.727v2.243h-1.644v-2.243Zm0 3.727v2.246h-1.644v-2.246Zm0 3.73v2.243h-1.644V29.19Zm0 3.727v2.242h-1.644v-2.242Zm0 3.727v2.246h-1.644v-2.246Zm0 3.73v2.242h-1.644v-2.242Zm0 3.727v2.242h-1.644v-2.242Zm0 3.726v2.242h-1.644v-2.242Zm0 3.727V53.8h-1.644v-2.246Zm0 3.73v1.246q-.001.527-.055 1.047l-1.636-.176a8 8 0 0 0 .047-.87v-1.247Zm-.367 3.899a9.8 9.8 0 0 1-.965 2.28l-1.422-.827a8.3 8.3 0 0 0 .805-1.899Zm-1.906 3.62a9.8 9.8 0 0 1-1.825 1.696l-.957-1.34a8 8 0 0 0 1.52-1.41Zm-3.223 2.528a9.5 9.5 0 0 1-2.363.8l-.325-1.609a8.3 8.3 0 0 0 1.965-.668Zm-3.945.988q-.181.007-.356.008h-1.902v-1.644h1.902q.146-.001.297-.008Zm-3.743.008h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.247v-1.644h2.247Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.243v-1.644h2.243Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0H74.71v-1.644h2.242Zm-3.727 0h-2.243v-1.644h2.243Zm-3.727 0h-2.246v-1.644H69.5Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0H44.89v-1.644h2.242Zm-3.727 0H41.16v-1.644h2.246Zm-3.73 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0H26.25v-1.644h2.242Zm-3.727 0h-2.243v-1.644h2.243Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.243Zm-3.727 0H11.34v-1.644h2.242Zm-3.727 0h-.117a9.8 9.8 0 0 1-2.265-.266l.379-1.601a8 8 0 0 0 1.886.223h.117Zm-3.968-.789a9.8 9.8 0 0 1-2.117-1.238l1.003-1.305a8 8 0 0 0 1.758 1.027ZM2.55 63.187a9.7 9.7 0 0 1-1.438-2.015l1.45-.777q.492.913 1.195 1.675ZM.46 59.677a9.9 9.9 0 0 1-.492-2.422l1.64-.121q.077 1.037.41 2.015Zm-.52-3.938v-2.242H1.59v2.242Zm0-3.726V49.77H1.59v2.242Zm0-3.727V46.04H1.59v2.246Zm0-3.726v-2.246H1.59v2.246Zm0-3.73v-2.243H1.59v2.242Zm0-3.727v-2.243H1.59v2.243Zm0-3.727v-2.246H1.59v2.246Zm0-3.73v-2.243H1.59v2.243Zm0-3.727v-2.242H1.59v2.242Zm0-3.727v-2.246H1.59v2.246Zm0-3.73v-2.242H1.59v2.242Zm0-3.727v-2.242H1.59v2.242Zm0-3.726v-1.59c0-.227.012-.457.028-.684l1.64.114q-.021.287-.02.57v1.59Zm.27-3.871a9.7 9.7 0 0 1 .883-2.324l1.453.773a8 8 0 0 0-.735 1.934ZM1.98 3.44a9.5 9.5 0 0 1 1.757-1.765l1.008 1.3q-.825.638-1.465 1.47ZM5.108.785a9.7 9.7 0 0 1 2.32-.887l.391 1.598q-1.013.246-1.933.738ZM9.027-.352q.36-.028.711-.027h2.246v1.645H9.738q-.294 0-.59.023Zm0 0"/></g></g></g></g><g clip-path="url(#bt)"><g clip-path="url(#bu)"><g clip-path="url(#bv)"><g clip-path="url(#bw)"><path fill="#b0b8b8" d="M13.469-.379h2.242v1.645h-2.242Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645H28.38Zm3.726 0h2.247v1.645h-2.247Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.243v1.645h-2.242Zm3.727 0h2.246v1.645H43.29Zm3.73 0h2.243v1.645H47.02Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645H61.93Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645H76.84Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.243v1.645h-2.243Zm3.727 0h2.246v1.645H91.75Zm3.73 0h2.243v1.645H95.48Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645H125.3Zm3.73 0h2.242v1.645h-2.242Zm3.727 0H135v1.645h-2.242Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.243v1.645h-2.243Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.735.004a9.9 9.9 0 0 1 2.406.36l-.446 1.581a8.2 8.2 0 0 0-2-.296Zm3.957.938a10 10 0 0 1 2.074 1.324l-1.051 1.265a8 8 0 0 0-1.727-1.101Zm3.25 2.484q.81.944 1.355 2.058l-1.476.727a8 8 0 0 0-1.13-1.715Zm1.953 3.598q.35 1.179.394 2.41l-1.644.058a8 8 0 0 0-.328-2.004Zm.402 3.906v2.242h-1.644v-2.242Zm0 3.726v2.246h-1.644v-2.246Zm0 3.73v2.243h-1.644v-2.242Zm0 3.727v2.243h-1.644v-2.243Zm0 3.727v2.246h-1.644v-2.246Zm0 3.73v2.243h-1.644V29.19Zm0 3.727v2.242h-1.644v-2.242Zm0 3.727v2.246h-1.644v-2.246Zm0 3.73v2.242h-1.644v-2.242Zm0 3.727v2.242h-1.644v-2.242Zm0 3.726v2.242h-1.644v-2.242Zm0 3.727V53.8h-1.644v-2.246Zm0 3.73v1.246q-.001.527-.055 1.047l-1.636-.176a8 8 0 0 0 .047-.87v-1.247Zm-.367 3.899a9.8 9.8 0 0 1-.965 2.28l-1.422-.827a8.3 8.3 0 0 0 .805-1.899Zm-1.906 3.62a9.8 9.8 0 0 1-1.825 1.696l-.957-1.34a8 8 0 0 0 1.52-1.41Zm-3.223 2.528a9.5 9.5 0 0 1-2.363.8l-.325-1.609a8.3 8.3 0 0 0 1.965-.668Zm-3.945.988q-.181.007-.356.008h-1.902v-1.644h1.902q.146-.001.297-.008Zm-3.743.008h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.247v-1.644h2.247Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.243v-1.644h2.243Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0H74.71v-1.644h2.242Zm-3.727 0h-2.243v-1.644h2.243Zm-3.727 0h-2.246v-1.644H69.5Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0H44.89v-1.644h2.242Zm-3.727 0H41.16v-1.644h2.246Zm-3.73 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0H26.25v-1.644h2.242Zm-3.727 0h-2.243v-1.644h2.243Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.243Zm-3.727 0H11.34v-1.644h2.242Zm-3.727 0h-.117a9.8 9.8 0 0 1-2.265-.266l.379-1.601a8 8 0 0 0 1.886.223h.117Zm-3.968-.789a9.8 9.8 0 0 1-2.117-1.238l1.003-1.305a8 8 0 0 0 1.758 1.027ZM2.55 63.187a9.7 9.7 0 0 1-1.438-2.015l1.45-.777q.492.913 1.195 1.675ZM.46 59.677a9.9 9.9 0 0 1-.492-2.422l1.64-.121q.077 1.037.41 2.015Zm-.52-3.938v-2.242H1.59v2.242Zm0-3.726V49.77H1.59v2.242Zm0-3.727V46.04H1.59v2.246Zm0-3.726v-2.246H1.59v2.246Zm0-3.73v-2.243H1.59v2.242Zm0-3.727v-2.243H1.59v2.243Zm0-3.727v-2.246H1.59v2.246Zm0-3.73v-2.243H1.59v2.243Zm0-3.727v-2.242H1.59v2.242Zm0-3.727v-2.246H1.59v2.246Zm0-3.73v-2.242H1.59v2.242Zm0-3.727v-2.242H1.59v2.242Zm0-3.726v-1.59c0-.227.012-.457.028-.684l1.64.114q-.021.287-.02.57v1.59Zm.27-3.871a9.7 9.7 0 0 1 .883-2.324l1.453.773a8 8 0 0 0-.735 1.934ZM1.98 3.44a9.5 9.5 0 0 1 1.757-1.765l1.008 1.3q-.825.638-1.465 1.47ZM5.108.785a9.7 9.7 0 0 1 2.32-.887l.391 1.598q-1.013.246-1.933.738ZM9.027-.352q.36-.028.711-.027h2.246v1.645H9.738q-.294 0-.59.023Zm0 0"/></g></g></g></g><g clip-path="url(#bx)"><g clip-path="url(#by)"><g clip-path="url(#bz)"><g clip-path="url(#bA)"><path fill="#b0b8b8" d="M13.469-.379h2.242v1.645h-2.242Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645H28.38Zm3.726 0h2.247v1.645h-2.247Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.243v1.645h-2.242Zm3.727 0h2.246v1.645H43.29Zm3.73 0h2.243v1.645H47.02Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645H61.93Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645H76.84Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.243v1.645h-2.243Zm3.727 0h2.246v1.645H91.75Zm3.73 0h2.243v1.645H95.48Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645H125.3Zm3.73 0h2.242v1.645h-2.242Zm3.727 0H135v1.645h-2.242Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.243v1.645h-2.243Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.735.004a9.9 9.9 0 0 1 2.406.36l-.446 1.581a8.2 8.2 0 0 0-2-.296Zm3.957.938a10 10 0 0 1 2.074 1.324l-1.051 1.265a8 8 0 0 0-1.727-1.101Zm3.25 2.484q.81.944 1.355 2.058l-1.476.727a8 8 0 0 0-1.13-1.715Zm1.953 3.598q.35 1.179.394 2.41l-1.644.058a8 8 0 0 0-.328-2.004Zm.402 3.906v2.242h-1.644v-2.242Zm0 3.726v2.246h-1.644v-2.246Zm0 3.73v2.243h-1.644v-2.242Zm0 3.727v2.243h-1.644v-2.243Zm0 3.727v2.246h-1.644v-2.246Zm0 3.73v2.243h-1.644V29.19Zm0 3.727v2.242h-1.644v-2.242Zm0 3.727v2.246h-1.644v-2.246Zm0 3.73v2.242h-1.644v-2.242Zm0 3.727v2.242h-1.644v-2.242Zm0 3.726v2.242h-1.644v-2.242Zm0 3.727V53.8h-1.644v-2.246Zm0 3.73v1.246q-.001.527-.055 1.047l-1.636-.176a8 8 0 0 0 .047-.87v-1.247Zm-.367 3.899a9.8 9.8 0 0 1-.965 2.28l-1.422-.827a8.3 8.3 0 0 0 .805-1.899Zm-1.906 3.62a9.8 9.8 0 0 1-1.825 1.696l-.957-1.34a8 8 0 0 0 1.52-1.41Zm-3.223 2.528a9.5 9.5 0 0 1-2.363.8l-.325-1.609a8.3 8.3 0 0 0 1.965-.668Zm-3.945.988q-.181.007-.356.008h-1.902v-1.644h1.902q.146-.001.297-.008Zm-3.743.008h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.247v-1.644h2.247Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.243v-1.644h2.243Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0H74.71v-1.644h2.242Zm-3.727 0h-2.243v-1.644h2.243Zm-3.727 0h-2.246v-1.644H69.5Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0H44.89v-1.644h2.242Zm-3.727 0H41.16v-1.644h2.246Zm-3.73 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0H26.25v-1.644h2.242Zm-3.727 0h-2.243v-1.644h2.243Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.243Zm-3.727 0H11.34v-1.644h2.242Zm-3.727 0h-.117a9.8 9.8 0 0 1-2.265-.266l.379-1.601a8 8 0 0 0 1.886.223h.117Zm-3.968-.789a9.8 9.8 0 0 1-2.117-1.238l1.003-1.305a8 8 0 0 0 1.758 1.027ZM2.55 63.187a9.7 9.7 0 0 1-1.438-2.015l1.45-.777q.492.913 1.195 1.675ZM.46 59.677a9.9 9.9 0 0 1-.492-2.422l1.64-.121q.077 1.037.41 2.015Zm-.52-3.938v-2.242H1.59v2.242Zm0-3.726V49.77H1.59v2.242Zm0-3.727V46.04H1.59v2.246Zm0-3.726v-2.246H1.59v2.246Zm0-3.73v-2.243H1.59v2.242Zm0-3.727v-2.243H1.59v2.243Zm0-3.727v-2.246H1.59v2.246Zm0-3.73v-2.243H1.59v2.243Zm0-3.727v-2.242H1.59v2.242Zm0-3.727v-2.246H1.59v2.246Zm0-3.73v-2.242H1.59v2.242Zm0-3.727v-2.242H1.59v2.242Zm0-3.726v-1.59c0-.227.012-.457.028-.684l1.64.114q-.021.287-.02.57v1.59Zm.27-3.871a9.7 9.7 0 0 1 .883-2.324l1.453.773a8 8 0 0 0-.735 1.934ZM1.98 3.44a9.5 9.5 0 0 1 1.757-1.765l1.008 1.3q-.825.638-1.465 1.47ZM5.108.785a9.7 9.7 0 0 1 2.32-.887l.391 1.598q-1.013.246-1.933.738ZM9.027-.352q.36-.028.711-.027h2.246v1.645H9.738q-.294 0-.59.023Zm0 0"/></g></g></g></g><g clip-path="url(#bB)"><g clip-path="url(#bC)"><g clip-path="url(#bD)"><g clip-path="url(#bE)"><path fill="#b0b8b8" d="M13.469-.379h2.242v1.645h-2.242Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645H28.38Zm3.726 0h2.247v1.645h-2.247Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.243v1.645h-2.242Zm3.727 0h2.246v1.645H43.29Zm3.73 0h2.243v1.645H47.02Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645H61.93Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645H76.84Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.243v1.645h-2.243Zm3.727 0h2.246v1.645H91.75Zm3.73 0h2.243v1.645H95.48Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645H125.3Zm3.73 0h2.242v1.645h-2.242Zm3.727 0H135v1.645h-2.242Zm3.726 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.242Zm3.727 0h2.243v1.645h-2.243Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.243v1.645h-2.243Zm3.727 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.727 0h2.242v1.645h-2.242Zm3.726 0h2.242v1.645h-2.242Zm3.727 0h2.246v1.645h-2.246Zm3.73 0h2.242v1.645h-2.242Zm3.735.004a9.9 9.9 0 0 1 2.406.36l-.446 1.581a8.2 8.2 0 0 0-2-.296Zm3.957.938a10 10 0 0 1 2.074 1.324l-1.051 1.265a8 8 0 0 0-1.727-1.101Zm3.25 2.484q.81.944 1.355 2.058l-1.476.727a8 8 0 0 0-1.13-1.715Zm1.953 3.598q.35 1.179.394 2.41l-1.644.058a8 8 0 0 0-.328-2.004Zm.402 3.906v2.242h-1.644v-2.242Zm0 3.726v2.246h-1.644v-2.246Zm0 3.73v2.243h-1.644v-2.242Zm0 3.727v2.243h-1.644v-2.243Zm0 3.727v2.246h-1.644v-2.246Zm0 3.73v2.243h-1.644V29.19Zm0 3.727v2.242h-1.644v-2.242Zm0 3.727v2.246h-1.644v-2.246Zm0 3.73v2.242h-1.644v-2.242Zm0 3.727v2.242h-1.644v-2.242Zm0 3.726v2.242h-1.644v-2.242Zm0 3.727V53.8h-1.644v-2.246Zm0 3.73v1.246q-.001.527-.055 1.047l-1.636-.176a8 8 0 0 0 .047-.87v-1.247Zm-.367 3.899a9.8 9.8 0 0 1-.965 2.28l-1.422-.827a8.3 8.3 0 0 0 .805-1.899Zm-1.906 3.62a9.8 9.8 0 0 1-1.825 1.696l-.957-1.34a8 8 0 0 0 1.52-1.41Zm-3.223 2.528a9.5 9.5 0 0 1-2.363.8l-.325-1.609a8.3 8.3 0 0 0 1.965-.668Zm-3.945.988q-.181.007-.356.008h-1.902v-1.644h1.902q.146-.001.297-.008Zm-3.743.008h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.247v-1.644h2.247Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.243v-1.644h2.243Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.243Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0H74.71v-1.644h2.242Zm-3.727 0h-2.243v-1.644h2.243Zm-3.727 0h-2.246v-1.644H69.5Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.242Zm-3.727 0H44.89v-1.644h2.242Zm-3.727 0H41.16v-1.644h2.246Zm-3.73 0h-2.242v-1.644h2.242Zm-3.727 0h-2.242v-1.644h2.242Zm-3.726 0h-2.246v-1.644h2.246Zm-3.73 0H26.25v-1.644h2.242Zm-3.727 0h-2.243v-1.644h2.243Zm-3.727 0h-2.246v-1.644h2.246Zm-3.73 0h-2.243v-1.644h2.243Zm-3.727 0H11.34v-1.644h2.242Zm-3.727 0h-.117a9.8 9.8 0 0 1-2.265-.266l.379-1.601a8 8 0 0 0 1.886.223h.117Zm-3.968-.789a9.8 9.8 0 0 1-2.117-1.238l1.003-1.305a8 8 0 0 0 1.758 1.027ZM2.55 63.187a9.7 9.7 0 0 1-1.438-2.015l1.45-.777q.492.913 1.195 1.675ZM.46 59.677a9.9 9.9 0 0 1-.492-2.422l1.64-.121q.077 1.037.41 2.015Zm-.52-3.938v-2.242H1.59v2.242Zm0-3.726V49.77H1.59v2.242Zm0-3.727V46.04H1.59v2.246Zm0-3.726v-2.246H1.59v2.246Zm0-3.73v-2.243H1.59v2.242Zm0-3.727v-2.243H1.59v2.243Zm0-3.727v-2.246H1.59v2.246Zm0-3.73v-2.243H1.59v2.243Zm0-3.727v-2.242H1.59v2.242Zm0-3.727v-2.246H1.59v2.246Zm0-3.73v-2.242H1.59v2.242Zm0-3.727v-2.242H1.59v2.242Zm0-3.726v-1.59c0-.227.012-.457.028-.684l1.64.114q-.021.287-.02.57v1.59Zm.27-3.871a9.7 9.7 0 0 1 .883-2.324l1.453.773a8 8 0 0 0-.735 1.934ZM1.98 3.44a9.5 9.5 0 0 1 1.757-1.765l1.008 1.3q-.825.638-1.465 1.47ZM5.108.785a9.7 9.7 0 0 1 2.32-.887l.391 1.598q-1.013.246-1.933.738ZM9.027-.352q.36-.028.711-.027h2.246v1.645H9.738q-.294 0-.59.023Zm0 0"/></g></g></g></g></g><g id="cb" clip-path="url(#bF)"><g clip-path="url(#bG)"><g clip-path="url(#bH)"><path fill="#9dd0f0" d="M.754.07h53.098v15.703H.754Zm0 0"/></g></g><g clip-path="url(#bI)"><g clip-path="url(#bJ)"><g clip-path="url(#bK)"><g clip-path="url(#bL)"><path fill="#5ea8d4" d="M12.348-.754h2.242V.891h-2.242Zm3.738 0h2.242V.891h-2.242Zm3.738 0h2.242V.891h-2.242Zm3.738 0h2.247V.891h-2.247Zm3.743 0h2.242V.891h-2.242Zm3.738 0h2.242V.891h-2.242Zm3.738 0h2.242V.891h-2.242Zm3.739 0h2.246V.891H38.52Zm3.738 0h2.246V.891h-2.246Zm3.742 0a8.7 8.7 0 0 1 2.426.348l-.461 1.578A7 7 0 0 0 46 .89Zm3.984.969a8.7 8.7 0 0 1 2.032 1.457l-1.141 1.187a7 7 0 0 0-1.648-1.18Zm3.125 2.738c.48.688.852 1.426 1.118 2.223l-1.559.523a7 7 0 0 0-.906-1.804Zm1.493 3.863a8.7 8.7 0 0 1-.024 2.395l-1.629-.246c.055-.344.078-.692.078-1.043q-.002-.45-.054-.895Zm-.438 4.036A8.6 8.6 0 0 1 53 13.047l-1.328-.973a7 7 0 0 0 .941-1.777ZM51.88 14.3a8.7 8.7 0 0 1-2.063 1.41l-.722-1.477q.919-.449 1.668-1.144Zm-3.637 2a8.5 8.5 0 0 1-2.242.297h-.172v-1.645H46c.613 0 1.219-.082 1.816-.238Zm-3.906.297H42.09v-1.645h2.246Zm-3.742 0h-2.242v-1.645h2.242Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.246v-1.645h2.246Zm-3.742 0h-2.242v-1.645h2.242Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.246v-1.645h2.246Zm-3.738 0H8.605q-.088.001-.175-.004l.035-1.645c.047 0 .094.004.14.004h2.079Zm-3.868-.188a8.7 8.7 0 0 1-2.359-.87l.79-1.446a7 7 0 0 0 1.91.707Zm-3.738-1.805a8.6 8.6 0 0 1-1.687-1.867l1.37-.914q.572.855 1.364 1.512ZM.61 11.285A8.7 8.7 0 0 1-.02 8.844l1.637-.176c.074.687.242 1.344.512 1.98Zm-.652-4.027q.098-1.266.555-2.45l1.535.59a7 7 0 0 0-.45 1.985Zm1.29-3.926A8.7 8.7 0 0 1 2.87 1.414l1.086 1.234a7 7 0 0 0-1.316 1.555ZM4.226.434A8.6 8.6 0 0 1 6.55-.504l.39 1.598a7 7 0 0 0-1.886.761ZM8.176-.742q.216-.012.433-.012h2.243V.891H8.605q-.17 0-.347.011Zm0 0"/></g></g></g></g><g clip-path="url(#bM)"><g clip-path="url(#bN)"><g clip-path="url(#bO)"><g clip-path="url(#bP)"><path fill="#5ea8d4" d="M12.348-.754h2.242V.891h-2.242Zm3.738 0h2.242V.891h-2.242Zm3.738 0h2.242V.891h-2.242Zm3.738 0h2.247V.891h-2.247Zm3.743 0h2.242V.891h-2.242Zm3.738 0h2.242V.891h-2.242Zm3.738 0h2.242V.891h-2.242Zm3.739 0h2.246V.891H38.52Zm3.738 0h2.246V.891h-2.246Zm3.742 0a8.7 8.7 0 0 1 2.426.348l-.461 1.578A7 7 0 0 0 46 .89Zm3.984.969a8.7 8.7 0 0 1 2.032 1.457l-1.141 1.187a7 7 0 0 0-1.648-1.18Zm3.125 2.738c.48.688.852 1.426 1.118 2.223l-1.559.523a7 7 0 0 0-.906-1.804Zm1.493 3.863a8.7 8.7 0 0 1-.024 2.395l-1.629-.246c.055-.344.078-.692.078-1.043q-.002-.45-.054-.895Zm-.438 4.036A8.6 8.6 0 0 1 53 13.047l-1.328-.973a7 7 0 0 0 .941-1.777ZM51.88 14.3a8.7 8.7 0 0 1-2.063 1.41l-.722-1.477q.919-.449 1.668-1.144Zm-3.637 2a8.5 8.5 0 0 1-2.242.297h-.172v-1.645H46c.613 0 1.219-.082 1.816-.238Zm-3.906.297H42.09v-1.645h2.246Zm-3.742 0h-2.242v-1.645h2.242Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.246v-1.645h2.246Zm-3.742 0h-2.242v-1.645h2.242Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.246v-1.645h2.246Zm-3.738 0H8.605q-.088.001-.175-.004l.035-1.645c.047 0 .094.004.14.004h2.079Zm-3.868-.188a8.7 8.7 0 0 1-2.359-.87l.79-1.446a7 7 0 0 0 1.91.707Zm-3.738-1.805a8.6 8.6 0 0 1-1.687-1.867l1.37-.914q.572.855 1.364 1.512ZM.61 11.285A8.7 8.7 0 0 1-.02 8.844l1.637-.176c.074.687.242 1.344.512 1.98Zm-.652-4.027q.098-1.266.555-2.45l1.535.59a7 7 0 0 0-.45 1.985Zm1.29-3.926A8.7 8.7 0 0 1 2.87 1.414l1.086 1.234a7 7 0 0 0-1.316 1.555ZM4.226.434A8.6 8.6 0 0 1 6.55-.504l.39 1.598a7 7 0 0 0-1.886.761ZM8.176-.742q.216-.012.433-.012h2.243V.891H8.605q-.17 0-.347.011Zm0 0"/></g></g></g></g><g clip-path="url(#bQ)"><g clip-path="url(#bR)"><g clip-path="url(#bS)"><g clip-path="url(#bT)"><path fill="#5ea8d4" d="M12.348-.754h2.242V.891h-2.242Zm3.738 0h2.242V.891h-2.242Zm3.738 0h2.242V.891h-2.242Zm3.738 0h2.247V.891h-2.247Zm3.743 0h2.242V.891h-2.242Zm3.738 0h2.242V.891h-2.242Zm3.738 0h2.242V.891h-2.242Zm3.739 0h2.246V.891H38.52Zm3.738 0h2.246V.891h-2.246Zm3.742 0a8.7 8.7 0 0 1 2.426.348l-.461 1.578A7 7 0 0 0 46 .89Zm3.984.969a8.7 8.7 0 0 1 2.032 1.457l-1.141 1.187a7 7 0 0 0-1.648-1.18Zm3.125 2.738c.48.688.852 1.426 1.118 2.223l-1.559.523a7 7 0 0 0-.906-1.804Zm1.493 3.863a8.7 8.7 0 0 1-.024 2.395l-1.629-.246c.055-.344.078-.692.078-1.043q-.002-.45-.054-.895Zm-.438 4.036A8.6 8.6 0 0 1 53 13.047l-1.328-.973a7 7 0 0 0 .941-1.777ZM51.88 14.3a8.7 8.7 0 0 1-2.063 1.41l-.722-1.477q.919-.449 1.668-1.144Zm-3.637 2a8.5 8.5 0 0 1-2.242.297h-.172v-1.645H46c.613 0 1.219-.082 1.816-.238Zm-3.906.297H42.09v-1.645h2.246Zm-3.742 0h-2.242v-1.645h2.242Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.246v-1.645h2.246Zm-3.742 0h-2.242v-1.645h2.242Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.246v-1.645h2.246Zm-3.738 0H8.605q-.088.001-.175-.004l.035-1.645c.047 0 .094.004.14.004h2.079Zm-3.868-.188a8.7 8.7 0 0 1-2.359-.87l.79-1.446a7 7 0 0 0 1.91.707Zm-3.738-1.805a8.6 8.6 0 0 1-1.687-1.867l1.37-.914q.572.855 1.364 1.512ZM.61 11.285A8.7 8.7 0 0 1-.02 8.844l1.637-.176c.074.687.242 1.344.512 1.98Zm-.652-4.027q.098-1.266.555-2.45l1.535.59a7 7 0 0 0-.45 1.985Zm1.29-3.926A8.7 8.7 0 0 1 2.87 1.414l1.086 1.234a7 7 0 0 0-1.316 1.555ZM4.226.434A8.6 8.6 0 0 1 6.55-.504l.39 1.598a7 7 0 0 0-1.886.761ZM8.176-.742q.216-.012.433-.012h2.243V.891H8.605q-.17 0-.347.011Zm0 0"/></g></g></g></g><g clip-path="url(#bU)"><g clip-path="url(#bV)"><g clip-path="url(#bW)"><g clip-path="url(#bX)"><path fill="#5ea8d4" d="M12.348-.754h2.242V.891h-2.242Zm3.738 0h2.242V.891h-2.242Zm3.738 0h2.242V.891h-2.242Zm3.738 0h2.247V.891h-2.247Zm3.743 0h2.242V.891h-2.242Zm3.738 0h2.242V.891h-2.242Zm3.738 0h2.242V.891h-2.242Zm3.739 0h2.246V.891H38.52Zm3.738 0h2.246V.891h-2.246Zm3.742 0a8.7 8.7 0 0 1 2.426.348l-.461 1.578A7 7 0 0 0 46 .89Zm3.984.969a8.7 8.7 0 0 1 2.032 1.457l-1.141 1.187a7 7 0 0 0-1.648-1.18Zm3.125 2.738c.48.688.852 1.426 1.118 2.223l-1.559.523a7 7 0 0 0-.906-1.804Zm1.493 3.863a8.7 8.7 0 0 1-.024 2.395l-1.629-.246c.055-.344.078-.692.078-1.043q-.002-.45-.054-.895Zm-.438 4.036A8.6 8.6 0 0 1 53 13.047l-1.328-.973a7 7 0 0 0 .941-1.777ZM51.88 14.3a8.7 8.7 0 0 1-2.063 1.41l-.722-1.477q.919-.449 1.668-1.144Zm-3.637 2a8.5 8.5 0 0 1-2.242.297h-.172v-1.645H46c.613 0 1.219-.082 1.816-.238Zm-3.906.297H42.09v-1.645h2.246Zm-3.742 0h-2.242v-1.645h2.242Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.246v-1.645h2.246Zm-3.742 0h-2.242v-1.645h2.242Zm-3.739 0h-2.242v-1.645h2.242Zm-3.738 0h-2.242v-1.645h2.242Zm-3.738 0h-2.246v-1.645h2.246Zm-3.738 0H8.605q-.088.001-.175-.004l.035-1.645c.047 0 .094.004.14.004h2.079Zm-3.868-.188a8.7 8.7 0 0 1-2.359-.87l.79-1.446a7 7 0 0 0 1.91.707Zm-3.738-1.805a8.6 8.6 0 0 1-1.687-1.867l1.37-.914q.572.855 1.364 1.512ZM.61 11.285A8.7 8.7 0 0 1-.02 8.844l1.637-.176c.074.687.242 1.344.512 1.98Zm-.652-4.027q.098-1.266.555-2.45l1.535.59a7 7 0 0 0-.45 1.985Zm1.29-3.926A8.7 8.7 0 0 1 2.87 1.414l1.086 1.234a7 7 0 0 0-1.316 1.555ZM4.226.434A8.6 8.6 0 0 1 6.55-.504l.39 1.598a7 7 0 0 0-1.886.761ZM8.176-.742q.216-.012.433-.012h2.243V.891H8.605q-.17 0-.347.011Zm0 0"/></g></g></g></g></g><g id="eq" clip-path="url(#bY)"><g clip-path="url(#bZ)"><g clip-path="url(#ca)"><use xlink:href="#cb" transform="translate(0 1)"/></g></g><use xlink:href="#cc" x="8.981" y="10.792" fill="#1a4a6e"/><use xlink:href="#cd" x="13.037" y="10.792" fill="#1a4a6e"/><use xlink:href="#ce" x="16.695" y="10.792" fill="#1a4a6e"/><use xlink:href="#cf" x="19.236" y="10.792" fill="#1a4a6e"/><use xlink:href="#cg" x="22.922" y="10.792" fill="#1a4a6e"/><use xlink:href="#ch" x="26.683" y="10.792" fill="#1a4a6e"/><use xlink:href="#ch" x="28.49" y="10.792" fill="#1a4a6e"/><use xlink:href="#cd" x="30.298" y="10.792" fill="#1a4a6e"/><use xlink:href="#ci" x="33.955" y="10.792" fill="#1a4a6e"/><use xlink:href="#cj" x="36.465" y="10.792" fill="#1a4a6e"/><use xlink:href="#ck" x="38.23" y="10.792" fill="#1a4a6e"/><use xlink:href="#cl" x="42.112" y="10.792" fill="#1a4a6e"/></g><mask id="cq"><g filter="url(#a)"><use xlink:href="#b" transform="translate(1)"/></g></mask><mask id="ep"><g filter="url(#a)"><path fill-opacity=".7" d="M-75-30.312h900v363.744H-75z"/></g></mask><linearGradient id="ct" x1="249.826" x2="746.174" y1="-174.93" y2="533.93" gradientTransform="translate(2.581 1.496)scale(.74783)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f4f8f8"/><stop offset=".031" stop-color="#f4f8f8"/><stop offset=".063" stop-color="#f3f7f8"/><stop offset=".094" stop-color="#f3f7f7"/><stop offset=".125" stop-color="#f2f7f7"/><stop offset=".156" stop-color="#f2f6f7"/><stop offset=".188" stop-color="#f1f6f6"/><stop offset=".219" stop-color="#f1f6f6"/><stop offset=".25" stop-color="#f0f5f6"/><stop offset=".281" stop-color="#f0f5f6"/><stop offset=".313" stop-color="#eff5f5"/><stop offset=".34" stop-color="#eff4f5"/><stop offset=".344" stop-color="#eff4f5"/><stop offset=".375" stop-color="#eef4f5"/><stop offset=".406" stop-color="#eef4f4"/><stop offset=".438" stop-color="#edf3f4"/><stop offset=".469" stop-color="#edf3f4"/><stop offset=".5" stop-color="#ecf3f4"/><stop offset=".531" stop-color="#ecf2f3"/><stop offset=".563" stop-color="#ebf2f3"/><stop offset=".594" stop-color="#ebf2f3"/><stop offset=".625" stop-color="#eaf1f3"/><stop offset=".656" stop-color="#eaf1f2"/><stop offset=".66" stop-color="#e9f1f2"/><stop offset=".688" stop-color="#e9f0f2"/><stop offset=".719" stop-color="#e9f0f2"/><stop offset=".75" stop-color="#e8f0f1"/><stop offset=".781" stop-color="#e8f0f1"/><stop offset=".813" stop-color="#e7eff1"/><stop offset=".844" stop-color="#e7eff1"/><stop offset=".875" stop-color="#e6eff0"/><stop offset=".906" stop-color="#e6eef0"/><stop offset=".938" stop-color="#e5eef0"/><stop offset=".969" stop-color="#e5eeef"/><stop offset="1" stop-color="#e4edef"/></linearGradient><filter id="a" width="100%" height="100%" x="0%" y="0%"><feColorMatrix color-interpolation-filters="sRGB" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/></filter><image xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAu4AAAEwCAYAAADowfQIAAAABmJLR0QA/wD/AP+gvaeTAAAJ20lEQVR4nO3dXY8jRxUG4Nfe2VlIggjhBkKCEvEhkIjEDXAB4h7+APxvJEBJEEEKsEFIsBGC3Rl/cFFd2+Wa7vHMZma943keqVXuctuuy9dHp6sXSb6X5FGSB0kWw9geyyT/TvLPJP9J8izJWZJtAACAq1okOU3J3m8k+XqSrw7zmySrbjxPyd5/SpKTXAzq9UiSx0k+GT4MAAC8uG1KEH+W5PMkf0vJ3e8keTfJw5TAXoP8ZphLUoL7cphoQ/uTJH9MqawDAAC3Y53kL0n+nuSHSd7MbnBf1wsfJHk7JbifpgT5x0n+0F4EAADcqnWSf6Tk8TdTQvs2JcQ/zvDGSUpwf5jkr0k+PMRKAQDgntsm+TiluP6NZi7JbpvMkyQfvezVAQAAOz5M6YGvOT1JCe7LlKr772OnGAAAOLRtSut63UgmyVhx/zTJ08OsCwAA6DxNyegndaJW3D850IIAAIBpf07J6snw4kls+wgAAK+as5Re9yTjvu2fz14OAAAcykmGrP4gZW/IZwddDgAAMGWZ4V7UGtxXB10OAAAw53lWXxxyFQAAwCxZHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAXcnroBQAAAJOeZ/VlktcOuBAAAGDe6/XFMslXDrgQAABg3hv1xTLJtw64EAAAYN679cUyyftJFodbCwAAMGGR5Nv1ZJnkUZL3DrUaAABg0nspWT1JCe6rJD+LqjsAALwqFkl+mpLVk5TgvknytSQfHGhRAADArg+SvJVkWyeWSdZJzpL8PMk3D7MuAABg8HaSX6Rk9AsV901KOf5XKckeAAB4+d5K8uuMGX1T31hmTPLPknwpyW+SfPflrxEAAO6195P8NuVpqesk5ykZPUnyIMl3kjxMqbhvU8L8D1I2e/9s+AAAAHA7Xk/yy5T2mE1K/q6h/X9JPk6Sk+bNdleZZZIfDcfvknyU5NM0zfEAAMALWyR5J8n3UzJ3Mgb29ljXD5w0E+uUwL5MSfeblEr8j5P8JMnTJP8axv+mhPjFcH071iPZ/TPQbzdp+0kAAO6avpC9bcZtd972qNd7Sl9L8uWUXvZHKVn8LGMm70P785tT5yrum1x0mvKv4GFKi01/LIaxhv9kDPNp5jJzDgAAr7o+J9fzdUpYX6fk3xq625tMV838XHX90or7WcYe934B7Q89auYeDJ9ddkcb4KtlN/bzAABwV8wF9z4/t0G+jvU4y24vex/k192YZKy4P8tY2t808yfZLfMvh7mpSns/VoI7AADH4iaC+3kzX3d4XHWva5h//nsnw4fa8n2/kMUwblMCeVtxr33xdWyvqwR3AADuuqlW8jq/mThvW2bqUQN8X1Vf7TmSjK0ytU1m0x3tjac1nO+ruAvuAAAcm5sM7vX9fcG9ts4kGXeVOc2Y5tvq+2nG4F572mvFve9vrz3uVw3uc3MAAPCquU5wT6ZbZfqKez3qTayr7vtqwE8ytrucNxe17TDJ+FCmtgJ/WW+74A4AwLG5yeBeA/lccK/jWSaC+yq7N6e2Yw3uq4yV9xrs6z6VbY97mmtbWmUAALjr5m5ObV/3rTL9zan9edvx0o8X9nGvwb0G7vam01ppXzZzbWW9jm3lPRHcAQA4PtcJ7vV1W5W/TnC/8ACm+vCltj2mrZzX+RrMz7Pb495+tgb+1mWtMgAAcBdNBfaqhu0a0JOLrTL9cdnuM0nGVpn2C9t+9nrD6dS2j4vmvbrDTCK4AwBw/K4a3Guu3tfz3t+c2ob5JGOrzHnzpbVvvQb3vuJeW2Paintbad83AgDAseh3gWnHZLrXvf3c1AObNtkN9EnGinu1bT4wV3GvP7TvCal13HbnAABwLGourq/bMZkO7v15H+KT3QCfZKy4t7vHtMG7bY9p35u6CfW6D1oS5AEAuGumtoWcu2G1H+eCezId7Gv7TJIxuC8yBvGphfTBvf1nIbgDAHBf3EZwr+3pfdvNZKtMuztMcrHyvknysLm23ad93VzXjj1BHQCAY3NZkJ9qnUnKg5WS8ebVqV1oMsxfaJVJ5ivu1fkw7qusC+4AANwXLxLc+wp8O9/vVrNTcV/l4h7sfZ97P9eO6c77PwB9ZR4AAI5JH8y33fxVW2mmxp3g3var34R+YSrtAAAcs7n8e+PB/bIfbede9ObTqe8EAIBjM5d79wX3ffNJdreDrOeX/Wj73r5grtIOAMB9sq9gPRfU585XGXP6lSruAADAfjcd3HecZHz40py5ynpfed+3sP77AADgrrpOwfuqgX5vq8xNLQgAAO6L2wjul2r3cb/qF123Yt5f788AAADH5Kp5uubi1dyFl33vvor7Vezbn/2yNhwAALjr9gX3uvX6F3qu0SJfvIJ+Xe3nVd8BALgLbrKL5Lqf3SQ3U3G/rvafxk0++AkAAG5LXy1/6Tl27gft/AIAAIcxWZEX0AEAAAAAAAAAuCf+D61uqo+uV1+LAAAAAElFTkSuQmCC" id="b" width="750" height="304" x="0" y="0"/></defs><g clip-path="url(#cm)"><path fill="#fff" d="M1.086 0h747.828v302.121H1.086Zm0 0"/></g><g clip-path="url(#cn)"><path fill="#fff" d="M1.086 0h747.828v271.46H1.086Zm0 0"/></g><g clip-path="url(#co)"><g clip-path="url(#cp)" mask="url(#cq)"><path fill="#2b7a78" fill-opacity=".102" d="M-75-30.312h900v363.744H-75z"/></g></g><g clip-path="url(#cr)"><g clip-path="url(#cs)"><path fill="url(#ct)" d="M2.582 1.496v268.469h744.836V1.496Zm0 0"/></g></g><g clip-path="url(#cu)"><path fill="none" stroke="#9ab5b8" stroke-width="1.49566" d="M1.832 258V13.46q0-1.251.246-2.48c.164-.82.402-1.613.723-2.382a12.65 12.65 0 0 1 2.758-4.125 12.7 12.7 0 0 1 6.507-3.48q1.229-.247 2.48-.247h720.907q1.252 0 2.48.246 1.23.244 2.387.723 1.157.478 2.196 1.176 1.042.697 1.925 1.582a12.649 12.649 0 0 1 3.48 6.508q.247 1.228.247 2.48V258q0 1.255-.246 2.48a12.614 12.614 0 0 1-1.898 4.582 12.7 12.7 0 0 1-5.704 4.684q-1.158.481-2.386.723-1.229.246-2.48.246H14.546q-1.252 0-2.48-.246-1.229-.242-2.387-.723-1.156-.478-2.196-1.176a12.68 12.68 0 0 1-3.508-3.508 12.6 12.6 0 0 1-1.898-4.582 12.6 12.6 0 0 1-.246-2.48Zm0 0"/></g><use xlink:href="#cv" x="298.266" y="29.913" fill="#2b6b6b"/><use xlink:href="#cw" x="307.6" y="29.913" fill="#2b6b6b"/><use xlink:href="#cx" x="311.592" y="29.913" fill="#2b6b6b"/><use xlink:href="#cy" x="324.44" y="29.913" fill="#2b6b6b"/><use xlink:href="#cz" x="333.109" y="29.913" fill="#2b6b6b"/><use xlink:href="#cA" x="337.202" y="29.913" fill="#2b6b6b"/><use xlink:href="#cB" x="345.36" y="29.913" fill="#2b6b6b"/><use xlink:href="#cw" x="351.073" y="29.913" fill="#2b6b6b"/><use xlink:href="#cC" x="355.066" y="29.913" fill="#2b6b6b"/><use xlink:href="#cD" x="363.634" y="29.913" fill="#2b6b6b"/><use xlink:href="#cE" x="372.302" y="29.913" fill="#2b6b6b"/><use xlink:href="#cF" x="380.897" y="29.913" fill="#2b6b6b"/><use xlink:href="#cG" x="388.921" y="29.913" fill="#2b6b6b"/><use xlink:href="#cH" x="397.859" y="29.913" fill="#2b6b6b"/><use xlink:href="#cI" x="406.171" y="29.913" fill="#2b6b6b"/><use xlink:href="#cw" x="412.18" y="29.913" fill="#2b6b6b"/><use xlink:href="#cx" x="416.172" y="29.913" fill="#2b6b6b"/><use xlink:href="#cH" x="429.02" y="29.913" fill="#2b6b6b"/><use xlink:href="#cD" x="437.333" y="29.913" fill="#2b6b6b"/><use xlink:href="#cB" x="446.002" y="29.913" fill="#2b6b6b"/><g clip-path="url(#cJ)"><g clip-path="url(#cK)"><use xlink:href="#cL" transform="translate(19 41)"/></g></g><use xlink:href="#cM" x="30.251" y="56.087" fill="#2e6e9c"/><use xlink:href="#cN" x="35.932" y="56.087" fill="#2e6e9c"/><use xlink:href="#cO" x="40.669" y="56.087" fill="#2e6e9c"/><use xlink:href="#cP" x="45.652" y="56.087" fill="#2e6e9c"/><use xlink:href="#cQ" x="52.734" y="56.087" fill="#2e6e9c"/><use xlink:href="#cR" x="58.534" y="56.087" fill="#2e6e9c"/><use xlink:href="#cS" x="63.739" y="56.087" fill="#2e6e9c"/><use xlink:href="#cT" x="88.196" y="71.792" fill="#6a9a9a"/><path fill="#9dd0f0" stroke="#5ea8d4" stroke-width=".74783" d="M100.922 69.922q0-.738.14-1.457a7.7 7.7 0 0 1 .426-1.406c.192-.454.418-.883.692-1.293a7.427 7.427 0 0 1 2.066-2.063 7.2 7.2 0 0 1 1.293-.691 7.6 7.6 0 0 1 1.402-.426 7.6 7.6 0 0 1 1.457-.14h17.2q.739 0 1.46.14.722.145 1.403.426a7.48 7.48 0 0 1-2.863 14.386h-17.2a7.6 7.6 0 0 1-1.457-.14 7.6 7.6 0 0 1-1.402-.426 7.2 7.2 0 0 1-1.293-.691 7.43 7.43 0 0 1-2.758-3.356 7.6 7.6 0 0 1-.425-1.402 7.7 7.7 0 0 1-.141-1.461Zm0 0"/><use xlink:href="#cU" x="108.516" y="71.792" fill="#1a4a6e"/><use xlink:href="#ck" x="113.334" y="71.792" fill="#1a4a6e"/><use xlink:href="#cV" x="117.217" y="71.792" fill="#1a4a6e"/><use xlink:href="#cg" x="121.26" y="71.792" fill="#1a4a6e"/><use xlink:href="#cT" x="139.235" y="71.792" fill="#6a9a9a"/><path fill="#9dd0f0" stroke="#5ea8d4" stroke-width=".74783" d="M151.773 69.922q-.001-.738.145-1.457a7.479 7.479 0 0 1 7.332-6.02h16.453q.736 0 1.461.14.722.148 1.402.427a7.48 7.48 0 0 1-2.863 14.386H159.25a7.6 7.6 0 0 1-1.457-.14 7.6 7.6 0 0 1-1.402-.426 7.3 7.3 0 0 1-1.293-.691 7.4 7.4 0 0 1-1.133-.93 7.48 7.48 0 0 1-2.191-5.29Zm0 0"/><use xlink:href="#cW" x="159.555" y="71.792" fill="#1a4a6e"/><use xlink:href="#cV" x="163.462" y="71.792" fill="#1a4a6e"/><use xlink:href="#cX" x="167.506" y="71.792" fill="#1a4a6e"/><use xlink:href="#cg" x="171.519" y="71.792" fill="#1a4a6e"/><path fill="#d2e6f5" fill-opacity=".349" stroke="#a8d0e8" stroke-width=".74783" d="M29.129 113.672V89.738a6.3 6.3 0 0 1 .484-2.43q.24-.579.586-1.101c.235-.348.496-.668.793-.96a6.25 6.25 0 0 1 2.063-1.38 6.3 6.3 0 0 1 2.43-.484h389.62a6.3 6.3 0 0 1 2.43.484q.58.24 1.102.586c.347.235.668.496.96.793a6.25 6.25 0 0 1 1.38 2.063 6.3 6.3 0 0 1 .484 2.43v23.933a6.3 6.3 0 0 1-.484 2.43q-.24.579-.586 1.101a6.4 6.4 0 0 1-.793.961 6.25 6.25 0 0 1-2.063 1.379 6.3 6.3 0 0 1-2.43.484H35.486a6.268 6.268 0 0 1-2.43-.484 6.248 6.248 0 0 1-2.063-1.379 6.4 6.4 0 0 1-.793-.96 6.5 6.5 0 0 1-.949-2.294 6.3 6.3 0 0 1-.121-1.238Zm0 0"/><use xlink:href="#cY" x="38.477" y="94.226" fill="#4a8ab8"/><use xlink:href="#cZ" x="43.21" y="94.226" fill="#4a8ab8"/><use xlink:href="#da" x="47.954" y="94.226" fill="#4a8ab8"/><use xlink:href="#db" x="53.043" y="94.226" fill="#4a8ab8"/><use xlink:href="#dc" x="57.927" y="94.226" fill="#4a8ab8"/><use xlink:href="#dd" x="63.813" y="94.226" fill="#4a8ab8"/><use xlink:href="#de" x="66.319" y="94.226" fill="#4a8ab8"/><use xlink:href="#df" x="71.254" y="94.226" fill="#4a8ab8"/><path fill="#bee0f4" stroke="#7ec0e0" stroke-width=".74783" d="M37.355 105.816q-.001-.734.145-1.457.142-.721.426-1.402a7.3 7.3 0 0 1 .691-1.293q.407-.613.93-1.133c.348-.347.723-.66 1.133-.93.406-.273.84-.503 1.293-.69a7.4 7.4 0 0 1 1.402-.427c.48-.097.969-.144 1.457-.144h42.629c.488 0 .977.047 1.457.144.48.094.95.239 1.402.426.453.188.887.418 1.293.692q.617.406 1.133.93.523.519.93 1.132c.273.406.504.84.691 1.293q.287.68.426 1.402c.098.48.145.97.145 1.457q.001.74-.145 1.461a7.48 7.48 0 0 1-7.332 6.02H44.832c-.488 0-.977-.047-1.457-.145a7.6 7.6 0 0 1-1.402-.425 7.3 7.3 0 0 1-1.293-.692 7.4 7.4 0 0 1-1.133-.93 7.48 7.48 0 0 1-2.191-5.29Zm0 0"/><use xlink:href="#dg" x="45.207" y="107.687" fill="#1e5a80"/><use xlink:href="#ci" x="49.397" y="107.687" fill="#1e5a80"/><use xlink:href="#cd" x="51.906" y="107.687" fill="#1e5a80"/><use xlink:href="#ci" x="55.564" y="107.687" fill="#1e5a80"/><use xlink:href="#cg" x="58.035" y="107.687" fill="#1e5a80"/><use xlink:href="#dh" x="61.472" y="107.687" fill="#1e5a80"/><use xlink:href="#cd" x="65.579" y="107.687" fill="#1e5a80"/><use xlink:href="#ce" x="69.236" y="107.687" fill="#1e5a80"/><use xlink:href="#cj" x="71.864" y="107.687" fill="#1e5a80"/><use xlink:href="#cd" x="73.629" y="107.687" fill="#1e5a80"/><use xlink:href="#di" x="77.287" y="107.687" fill="#1e5a80"/><use xlink:href="#ch" x="81.33" y="107.687" fill="#1e5a80"/><use xlink:href="#cg" x="83.138" y="107.687" fill="#1e5a80"/><path fill="#bee0f4" stroke="#7ec0e0" stroke-width=".74783" d="M100.172 105.816q.001-.734.144-1.457.146-.721.426-1.402a7.3 7.3 0 0 1 .692-1.293q.409-.613.93-1.133a7.48 7.48 0 0 1 5.29-2.191h32.9c.493 0 .977.047 1.462.144a7.479 7.479 0 0 1 1.402 14.242 7.6 7.6 0 0 1-1.402.426 7.4 7.4 0 0 1-1.461.145h-32.903q-.739.001-1.46-.145a7.48 7.48 0 0 1-6.02-7.336Zm0 0"/><use xlink:href="#cc" x="107.85" y="107.687" fill="#1e5a80"/><use xlink:href="#cd" x="111.905" y="107.687" fill="#1e5a80"/><use xlink:href="#ce" x="115.563" y="107.687" fill="#1e5a80"/><use xlink:href="#cd" x="118.171" y="107.687" fill="#1e5a80"/><use xlink:href="#dj" x="121.829" y="107.687" fill="#1e5a80"/><use xlink:href="#cg" x="127.516" y="107.687" fill="#1e5a80"/><use xlink:href="#ci" x="131.277" y="107.687" fill="#1e5a80"/><use xlink:href="#cg" x="133.748" y="107.687" fill="#1e5a80"/><use xlink:href="#ce" x="137.509" y="107.687" fill="#1e5a80"/><path fill="#bee0f4" stroke="#7ec0e0" stroke-width=".74783" d="M153.27 105.816q-.001-.734.144-1.457.14-.721.426-1.402c.187-.453.418-.887.687-1.293q.412-.613.934-1.133c.344-.347.723-.66 1.133-.93a7.2 7.2 0 0 1 1.293-.69 7.3 7.3 0 0 1 1.402-.427c.48-.097.969-.144 1.457-.144h28.418q.737 0 1.461.144a7.48 7.48 0 0 1 1.402 14.242 7.6 7.6 0 0 1-1.402.426 7.4 7.4 0 0 1-1.46.145h-28.419q-.734.001-1.457-.145a7.6 7.6 0 0 1-1.402-.425 7.2 7.2 0 0 1-1.293-.692 7.615 7.615 0 0 1-2.066-2.062q-.406-.614-.688-1.293a7 7 0 0 1-.426-1.403 7.3 7.3 0 0 1-.144-1.46Zm0 0"/><use xlink:href="#cW" x="161.086" y="107.687" fill="#1e5a80"/><use xlink:href="#dk" x="164.993" y="107.687" fill="#1e5a80"/><use xlink:href="#dl" x="169.009" y="107.687" fill="#1e5a80"/><use xlink:href="#cd" x="172.876" y="107.687" fill="#1e5a80"/><use xlink:href="#ci" x="176.534" y="107.687" fill="#1e5a80"/><use xlink:href="#cj" x="179.043" y="107.687" fill="#1e5a80"/><use xlink:href="#ck" x="180.808" y="107.687" fill="#1e5a80"/><use xlink:href="#cl" x="184.691" y="107.687" fill="#1e5a80"/><path fill="#bee0f4" stroke="#7ec0e0" stroke-width=".74783" d="M201.879 105.816q0-.734.14-1.457.146-.721.426-1.402c.188-.453.418-.887.692-1.293q.409-.613.93-1.133a7.479 7.479 0 0 1 5.29-2.191h50.104q.738 0 1.457.144c.484.094.95.239 1.402.426q.685.282 1.293.692.616.406 1.137.93.517.519.93 1.132c.27.406.5.84.691 1.293q.28.68.426 1.402a7.6 7.6 0 0 1 0 2.918q-.146.722-.426 1.403a8 8 0 0 1-.691 1.293 7.427 7.427 0 0 1-2.066 2.062 7.2 7.2 0 0 1-1.294.692 7.6 7.6 0 0 1-2.859.57h-50.106q-.737.001-1.457-.145a7.48 7.48 0 0 1-6.02-7.336Zm0 0"/><use xlink:href="#dm" x="209.508" y="107.687" fill="#1e5a80"/><use xlink:href="#cg" x="214.217" y="107.687" fill="#1e5a80"/><use xlink:href="#ce" x="217.978" y="107.687" fill="#1e5a80"/><use xlink:href="#cj" x="220.606" y="107.687" fill="#1e5a80"/><use xlink:href="#dn" x="222.371" y="107.687" fill="#1e5a80"/><use xlink:href="#cg" x="225.847" y="107.687" fill="#1e5a80"/><use xlink:href="#cV" x="229.608" y="107.687" fill="#1e5a80"/><use xlink:href="#dh" x="233.652" y="107.687" fill="#1e5a80"/><use xlink:href="#cd" x="237.758" y="107.687" fill="#1e5a80"/><use xlink:href="#ce" x="241.416" y="107.687" fill="#1e5a80"/><use xlink:href="#cj" x="244.043" y="107.687" fill="#1e5a80"/><use xlink:href="#cd" x="245.808" y="107.687" fill="#1e5a80"/><use xlink:href="#di" x="249.466" y="107.687" fill="#1e5a80"/><use xlink:href="#ch" x="253.51" y="107.687" fill="#1e5a80"/><use xlink:href="#cg" x="255.317" y="107.687" fill="#1e5a80"/><path fill="#bee0f4" stroke="#7ec0e0" stroke-width=".74783" d="M272.172 105.816q.002-.734.144-1.457.146-.721.426-1.402a7.3 7.3 0 0 1 .692-1.293q.409-.613.93-1.133a7.48 7.48 0 0 1 5.29-2.191h56.834q.735 0 1.457.144c.48.094.95.239 1.403.426q.681.282 1.293.692.613.406 1.132.93.524.519.93 1.132c.274.406.504.84.692 1.293s.332.922.425 1.402c.098.48.145.97.145 1.457q.001.74-.145 1.461a7.48 7.48 0 0 1-7.332 6.02h-56.836c-.492 0-.976-.047-1.46-.145a7.48 7.48 0 0 1-6.02-7.336Zm0 0"/><use xlink:href="#dm" x="280.026" y="107.687" fill="#1e5a80"/><use xlink:href="#cg" x="284.735" y="107.687" fill="#1e5a80"/><use xlink:href="#ce" x="288.496" y="107.687" fill="#1e5a80"/><use xlink:href="#cj" x="291.123" y="107.687" fill="#1e5a80"/><use xlink:href="#dn" x="292.888" y="107.687" fill="#1e5a80"/><use xlink:href="#cg" x="296.365" y="107.687" fill="#1e5a80"/><use xlink:href="#cV" x="300.126" y="107.687" fill="#1e5a80"/><use xlink:href="#cc" x="304.169" y="107.687" fill="#1e5a80"/><use xlink:href="#cd" x="308.225" y="107.687" fill="#1e5a80"/><use xlink:href="#ce" x="311.883" y="107.687" fill="#1e5a80"/><use xlink:href="#cd" x="314.49" y="107.687" fill="#1e5a80"/><use xlink:href="#dj" x="318.148" y="107.687" fill="#1e5a80"/><use xlink:href="#cg" x="323.835" y="107.687" fill="#1e5a80"/><use xlink:href="#ci" x="327.596" y="107.687" fill="#1e5a80"/><use xlink:href="#cg" x="330.068" y="107.687" fill="#1e5a80"/><use xlink:href="#ce" x="333.829" y="107.687" fill="#1e5a80"/><path fill="#bee0f4" stroke="#7ec0e0" stroke-width=".74783" d="M349.2 105.816q-.002-.734.144-1.457.142-.721.426-1.402a7.3 7.3 0 0 1 .691-1.293q.409-.613.93-1.133a7.48 7.48 0 0 1 5.29-2.191h28.413q.739 0 1.46.144c.481.094.95.239 1.403.426.453.188.887.418 1.293.692.41.27.785.582 1.133.93q.52.519.93 1.132c.273.406.503.84.69 1.293.188.453.333.922.427 1.402.097.48.144.97.144 1.457q0 .74-.144 1.461a7.48 7.48 0 0 1-7.336 6.02H356.68q-.739.001-1.461-.145a7.48 7.48 0 0 1-6.02-7.336Zm0 0"/><use xlink:href="#do" x="357.403" y="107.687" fill="#1e5a80"/><use xlink:href="#dl" x="361.161" y="107.687" fill="#1e5a80"/><use xlink:href="#cl" x="365.028" y="107.687" fill="#1e5a80"/><use xlink:href="#cf" x="368.895" y="107.687" fill="#1e5a80"/><use xlink:href="#ci" x="372.631" y="107.687" fill="#1e5a80"/><use xlink:href="#cj" x="375.14" y="107.687" fill="#1e5a80"/><use xlink:href="#ck" x="376.905" y="107.687" fill="#1e5a80"/><use xlink:href="#cl" x="380.788" y="107.687" fill="#1e5a80"/><path fill="#d2e6f5" fill-opacity=".349" stroke="#a8d0e8" stroke-width=".74783" d="M29.129 155.547v-23.18a6.3 6.3 0 0 1 1.07-3.531c.235-.348.496-.668.793-.965q.44-.444.961-.789.522-.35 1.102-.59.575-.24 1.191-.36.613-.123 1.238-.124h389.622q.624.001 1.238.125.616.118 1.191.36.58.239 1.102.589.521.344.96.79a6.289 6.289 0 0 1 1.379 2.063q.24.576.364 1.19.122.615.121 1.242v23.18a6.3 6.3 0 0 1-1.07 3.531 6.5 6.5 0 0 1-.793.965 6 6 0 0 1-.961.789q-.522.35-1.102.59-.575.24-1.191.36c-.41.081-.82.124-1.238.124H35.484q-.625-.001-1.238-.125-.616-.118-1.191-.36a6.2 6.2 0 0 1-1.102-.589 6 6 0 0 1-.96-.789 6.289 6.289 0 0 1-1.379-2.063 6.317 6.317 0 0 1-.484-2.434Zm0 0"/><use xlink:href="#de" x="38.477" y="136.853" fill="#4a8ab8"/><use xlink:href="#dp" x="43.412" y="136.853" fill="#4a8ab8"/><use xlink:href="#dq" x="48.607" y="136.853" fill="#4a8ab8"/><use xlink:href="#dr" x="53.651" y="136.853" fill="#4a8ab8"/><use xlink:href="#ds" x="58.199" y="136.853" fill="#4a8ab8"/><use xlink:href="#dd" x="62.293" y="136.853" fill="#4a8ab8"/><use xlink:href="#da" x="64.799" y="136.853" fill="#4a8ab8"/><use xlink:href="#dt" x="69.888" y="136.853" fill="#4a8ab8"/><path fill="#d0e8f6" stroke="#98cce6" stroke-width=".74783" d="M37.355 148.07a7.2 7.2 0 0 1 .54-2.718q.27-.646.656-1.227c.262-.39.554-.75.887-1.078a7 7 0 0 1 1.074-.883c.39-.262.797-.48 1.23-.656q.646-.271 1.332-.406.684-.136 1.387-.137h33.652a7.2 7.2 0 0 1 2.719.543q.646.263 1.227.656a7.05 7.05 0 0 1 1.96 1.961q.387.581.657 1.227.269.646.402 1.332.139.687.137 1.386c0 .465-.043.93-.137 1.387a7 7 0 0 1-.402 1.332q-.27.646-.656 1.227c-.258.39-.555.75-.883 1.078a7.3 7.3 0 0 1-1.078.883q-.581.392-1.227.656a7.154 7.154 0 0 1-2.719.543H44.461q-.703-.001-1.387-.137a7.2 7.2 0 0 1-2.562-1.062 7 7 0 0 1-1.074-.883 7 7 0 0 1-.887-1.078 7.3 7.3 0 0 1-.656-1.227 7.2 7.2 0 0 1-.54-2.719Zm0 0"/><use xlink:href="#cc" x="45.207" y="150.314" fill="#2a6890"/><use xlink:href="#cd" x="49.263" y="150.314" fill="#2a6890"/><use xlink:href="#ce" x="52.921" y="150.314" fill="#2a6890"/><use xlink:href="#cd" x="55.528" y="150.314" fill="#2a6890"/><use xlink:href="#dj" x="59.186" y="150.314" fill="#2a6890"/><use xlink:href="#cg" x="64.873" y="150.314" fill="#2a6890"/><use xlink:href="#ci" x="68.634" y="150.314" fill="#2a6890"/><use xlink:href="#cg" x="71.106" y="150.314" fill="#2a6890"/><use xlink:href="#ce" x="74.867" y="150.314" fill="#2a6890"/><path fill="#d0e8f6" stroke="#98cce6" stroke-width=".74783" d="M90.45 148.07c0-.465.046-.93.136-1.386a7.2 7.2 0 0 1 1.062-2.559c.258-.39.555-.75.883-1.078a7 7 0 0 1 1.078-.883q.581-.392 1.227-.656c.434-.18.875-.317 1.332-.406q.69-.136 1.387-.137h29.168a7.2 7.2 0 0 1 2.718.543q.646.263 1.227.656a7.05 7.05 0 0 1 1.96 1.961q.388.581.657 1.227a7.2 7.2 0 0 1 .54 2.718 7.174 7.174 0 0 1-.54 2.719q-.27.646-.656 1.227-.392.585-.883 1.078a7.3 7.3 0 0 1-1.078.883q-.581.392-1.227.656a7.154 7.154 0 0 1-2.719.543H97.556q-.697-.001-1.387-.137a7.3 7.3 0 0 1-1.332-.406 6.7 6.7 0 0 1-1.227-.656 7.1 7.1 0 0 1-1.96-1.961 7.186 7.186 0 0 1-1.062-2.559 7 7 0 0 1-.138-1.387Zm0 0"/><use xlink:href="#cW" x="98.444" y="150.314" fill="#2a6890"/><use xlink:href="#dk" x="102.35" y="150.314" fill="#2a6890"/><use xlink:href="#dl" x="106.367" y="150.314" fill="#2a6890"/><use xlink:href="#cd" x="110.234" y="150.314" fill="#2a6890"/><use xlink:href="#ci" x="113.892" y="150.314" fill="#2a6890"/><use xlink:href="#cj" x="116.401" y="150.314" fill="#2a6890"/><use xlink:href="#ck" x="118.166" y="150.314" fill="#2a6890"/><use xlink:href="#cl" x="122.049" y="150.314" fill="#2a6890"/><path fill="#d0e8f6" stroke="#98cce6" stroke-width=".74783" d="M139.059 148.07c0-.465.046-.93.136-1.386a7.2 7.2 0 0 1 1.063-2.559q.389-.585.883-1.078a6.7 6.7 0 0 1 1.078-.883q.58-.392 1.226-.656.646-.271 1.332-.406c.457-.09.922-.137 1.387-.137h46.367a7.2 7.2 0 0 1 2.719.543q.646.263 1.227.656a7.05 7.05 0 0 1 1.96 1.961q.387.581.657 1.227.269.646.402 1.332.139.687.137 1.386c0 .465-.043.93-.137 1.387a7 7 0 0 1-.402 1.332q-.27.646-.656 1.227-.392.585-.883 1.078a7.3 7.3 0 0 1-1.078.883q-.581.392-1.227.656a7.154 7.154 0 0 1-2.719.543h-46.367q-.7-.001-1.387-.137a7.2 7.2 0 0 1-2.558-1.062 7 7 0 0 1-1.078-.883 7 7 0 0 1-.883-1.078 7.186 7.186 0 0 1-1.063-2.559 7 7 0 0 1-.136-1.387Zm0 0"/><use xlink:href="#du" x="146.865" y="150.314" fill="#2a6890"/><use xlink:href="#cl" x="148.782" y="150.314" fill="#2a6890"/><use xlink:href="#cf" x="152.65" y="150.314" fill="#2a6890"/><use xlink:href="#ck" x="156.335" y="150.314" fill="#2a6890"/><use xlink:href="#dj" x="160.217" y="150.314" fill="#2a6890"/><use xlink:href="#cj" x="165.904" y="150.314" fill="#2a6890"/><use xlink:href="#cl" x="167.669" y="150.314" fill="#2a6890"/><use xlink:href="#cX" x="171.537" y="150.314" fill="#2a6890"/><use xlink:href="#dg" x="175.55" y="150.314" fill="#2a6890"/><use xlink:href="#ci" x="179.739" y="150.314" fill="#2a6890"/><use xlink:href="#cd" x="182.249" y="150.314" fill="#2a6890"/><use xlink:href="#ci" x="185.906" y="150.314" fill="#2a6890"/><use xlink:href="#cg" x="188.378" y="150.314" fill="#2a6890"/><path fill="#d0e8f6" stroke="#98cce6" stroke-width=".74783" d="M204.867 148.07c0-.465.047-.93.137-1.386a7.2 7.2 0 0 1 1.062-2.559q.389-.585.883-1.078a7 7 0 0 1 1.078-.883q.581-.392 1.227-.656.646-.271 1.332-.406.688-.136 1.387-.137h35.148q.7.001 1.387.137.686.136 1.332.406.646.263 1.226.656.586.385 1.079.883.497.492.882 1.078.392.581.657 1.227.27.646.406 1.332.136.687.137 1.386c0 .465-.047.93-.137 1.387q-.136.686-.406 1.332-.264.646-.657 1.227-.385.585-.882 1.078a7 7 0 0 1-1.079.883q-.58.392-1.226.656c-.43.18-.875.312-1.332.406-.457.09-.922.137-1.387.137h-35.148c-.465 0-.93-.047-1.387-.137a7.2 7.2 0 0 1-2.559-1.062 7.1 7.1 0 0 1-1.96-1.961 7.186 7.186 0 0 1-1.062-2.559 7 7 0 0 1-.138-1.387Zm0 0"/><use xlink:href="#dv" x="213.083" y="150.314" fill="#2a6890"/><use xlink:href="#ck" x="216.665" y="150.314" fill="#2a6890"/><use xlink:href="#cf" x="220.548" y="150.314" fill="#2a6890"/><use xlink:href="#cd" x="224.233" y="150.314" fill="#2a6890"/><use xlink:href="#ch" x="227.89" y="150.314" fill="#2a6890"/><use xlink:href="#dg" x="229.698" y="150.314" fill="#2a6890"/><use xlink:href="#ci" x="233.887" y="150.314" fill="#2a6890"/><use xlink:href="#cd" x="236.397" y="150.314" fill="#2a6890"/><use xlink:href="#ci" x="240.054" y="150.314" fill="#2a6890"/><use xlink:href="#cg" x="242.526" y="150.314" fill="#2a6890"/><g clip-path="url(#dw)"><g clip-path="url(#dx)"><use xlink:href="#dy" transform="translate(449 41)"/></g></g><use xlink:href="#dz" x="460.393" y="56.087" fill="#2b6b6b"/><use xlink:href="#cM" x="463.168" y="56.087" fill="#2b6b6b"/><use xlink:href="#cO" x="468.848" y="56.087" fill="#2b6b6b"/><use xlink:href="#cN" x="473.832" y="56.087" fill="#2b6b6b"/><use xlink:href="#dA" x="478.569" y="56.087" fill="#2b6b6b"/><use xlink:href="#cR" x="484.2" y="56.087" fill="#2b6b6b"/><use xlink:href="#dB" x="489.404" y="56.087" fill="#2b6b6b"/><use xlink:href="#cO" x="494.365" y="56.087" fill="#2b6b6b"/><use xlink:href="#dz" x="499.349" y="56.087" fill="#2b6b6b"/><use xlink:href="#cQ" x="502.124" y="56.087" fill="#2b6b6b"/><use xlink:href="#cM" x="507.924" y="56.087" fill="#2b6b6b"/><path fill="#8ad0cc" stroke="#52a8a4" stroke-width=".74783" d="M459.129 69.922a7.6 7.6 0 0 1 .57-2.863 7.48 7.48 0 0 1 6.91-4.614h24.68c.488 0 .977.047 1.457.14q.722.148 1.402.427.682.281 1.293.691.614.41 1.133.93.524.521.93 1.133a7.48 7.48 0 0 1-4.758 11.492 7.6 7.6 0 0 1-1.457.14h-24.68a7.7 7.7 0 0 1-1.46-.14 7.48 7.48 0 0 1-6.02-7.336Zm0 0"/><use xlink:href="#dC" x="467.123" y="71.792" fill="#1a4e4e"/><use xlink:href="#cg" x="472.774" y="71.792" fill="#1a4e4e"/><use xlink:href="#ci" x="476.535" y="71.792" fill="#1a4e4e"/><use xlink:href="#dD" x="479.044" y="71.792" fill="#1a4e4e"/><use xlink:href="#ck" x="482.942" y="71.792" fill="#1a4e4e"/><use xlink:href="#cV" x="486.824" y="71.792" fill="#1a4e4e"/><path fill="#8ad0cc" stroke="#52a8a4" stroke-width=".74783" d="M504 69.922q-.001-.738.145-1.457a7.479 7.479 0 0 1 7.336-6.02h18.695q.734 0 1.457.14c.48.099.95.24 1.402.427.453.187.887.418 1.293.691q.613.41 1.133.93.524.521.93 1.133a7.48 7.48 0 0 1-4.758 11.492 7.6 7.6 0 0 1-1.457.14H511.48a7.6 7.6 0 0 1-1.461-.14 7.6 7.6 0 0 1-1.403-.426 7.3 7.3 0 0 1-1.293-.691 7.4 7.4 0 0 1-1.133-.93A7.48 7.48 0 0 1 504 69.92Zm0 0"/><use xlink:href="#cU" x="511.818" y="71.792" fill="#1a4e4e"/><use xlink:href="#ck" x="516.636" y="71.792" fill="#1a4e4e"/><use xlink:href="#cj" x="520.518" y="71.792" fill="#1a4e4e"/><use xlink:href="#dE" x="522.283" y="71.792" fill="#1a4e4e"/><use xlink:href="#cg" x="525.774" y="71.792" fill="#1a4e4e"/><path fill="#8ad0cc" stroke="#52a8a4" stroke-width=".74783" d="M542.887 69.922q0-.738.144-1.457a7.48 7.48 0 0 1 7.336-6.02h47.86q.736 0 1.46.14.723.148 1.403.427a7.48 7.48 0 0 1-2.863 14.386h-47.86a7.6 7.6 0 0 1-1.46-.14 7.48 7.48 0 0 1-6.02-7.336Zm0 0"/><use xlink:href="#du" x="550.483" y="71.792" fill="#1a4e4e"/><use xlink:href="#cl" x="552.4" y="71.792" fill="#1a4e4e"/><use xlink:href="#cj" x="556.267" y="71.792" fill="#1a4e4e"/><use xlink:href="#ci" x="558.032" y="71.792" fill="#1a4e4e"/><use xlink:href="#cj" x="560.541" y="71.792" fill="#1a4e4e"/><use xlink:href="#cd" x="562.306" y="71.792" fill="#1a4e4e"/><use xlink:href="#ch" x="565.964" y="71.792" fill="#1a4e4e"/><use xlink:href="#dF" x="567.772" y="71.792" fill="#1a4e4e"/><use xlink:href="#ck" x="572.423" y="71.792" fill="#1a4e4e"/><use xlink:href="#cl" x="576.305" y="71.792" fill="#1a4e4e"/><use xlink:href="#cV" x="580.173" y="71.792" fill="#1a4e4e"/><use xlink:href="#cj" x="584.216" y="71.792" fill="#1a4e4e"/><use xlink:href="#ci" x="585.981" y="71.792" fill="#1a4e4e"/><use xlink:href="#cj" x="588.491" y="71.792" fill="#1a4e4e"/><use xlink:href="#ck" x="590.256" y="71.792" fill="#1a4e4e"/><use xlink:href="#cl" x="594.138" y="71.792" fill="#1a4e4e"/><path fill="#8ad0cc" stroke="#52a8a4" stroke-width=".74783" d="M610.941 69.922q0-.738.141-1.457a7.48 7.48 0 0 1 7.336-6.02h35.895q.739 0 1.46.14.723.148 1.403.427a7.48 7.48 0 0 1-2.863 14.386h-35.895a7.6 7.6 0 0 1-1.457-.14 7.48 7.48 0 0 1-6.02-7.336Zm0 0"/><use xlink:href="#dG" x="618.956" y="71.792" fill="#1a4e4e"/><use xlink:href="#cj" x="623.039" y="71.792" fill="#1a4e4e"/><use xlink:href="#dj" x="624.804" y="71.792" fill="#1a4e4e"/><use xlink:href="#cg" x="630.491" y="71.792" fill="#1a4e4e"/><use xlink:href="#dg" x="634.252" y="71.792" fill="#1a4e4e"/><use xlink:href="#cg" x="638.441" y="71.792" fill="#1a4e4e"/><use xlink:href="#ce" x="642.202" y="71.792" fill="#1a4e4e"/><use xlink:href="#cj" x="644.83" y="71.792" fill="#1a4e4e"/><use xlink:href="#cg" x="646.595" y="71.792" fill="#1a4e4e"/><use xlink:href="#dE" x="650.356" y="71.792" fill="#1a4e4e"/><g clip-path="url(#dH)"><g clip-path="url(#dI)"><use xlink:href="#dJ" transform="translate(449 94)"/></g></g><use xlink:href="#cN" x="460.393" y="109.183" fill="#8a6a30"/><use xlink:href="#dK" x="465.13" y="109.183" fill="#8a6a30"/><use xlink:href="#cN" x="470.508" y="109.183" fill="#8a6a30"/><use xlink:href="#cM" x="475.245" y="109.183" fill="#8a6a30"/><use xlink:href="#cO" x="480.926" y="109.183" fill="#8a6a30"/><path fill="#e8d4b0" stroke="#c8a870" stroke-width=".74783" d="M459.129 123.02q.001-.74.144-1.461.146-.722.426-1.403.281-.681.692-1.293.409-.613.93-1.133a7.48 7.48 0 0 1 5.29-2.191h28.416q.735-.001 1.457.145c.485.093.95.238 1.403.425q.684.282 1.293.692a7.43 7.43 0 0 1 3.18 4.758q.145.721.144 1.46.001.735-.145 1.458a7.587 7.587 0 0 1-1.113 2.695c-.273.41-.586.785-.93 1.133-.347.347-.726.66-1.136.93a7.2 7.2 0 0 1-1.293.69 7.3 7.3 0 0 1-1.403.427q-.722.145-1.457.144H466.61c-.492 0-.976-.047-1.46-.144a7.48 7.48 0 0 1-6.02-7.332Zm0 0"/><use xlink:href="#cW" x="467.123" y="124.887" fill="#5a4420"/><use xlink:href="#dk" x="471.03" y="124.887" fill="#5a4420"/><use xlink:href="#dl" x="475.046" y="124.887" fill="#5a4420"/><use xlink:href="#cd" x="478.914" y="124.887" fill="#5a4420"/><use xlink:href="#ci" x="482.571" y="124.887" fill="#5a4420"/><use xlink:href="#cj" x="485.081" y="124.887" fill="#5a4420"/><use xlink:href="#ck" x="486.846" y="124.887" fill="#5a4420"/><use xlink:href="#cl" x="490.728" y="124.887" fill="#5a4420"/><path fill="#e8d4b0" stroke="#c8a870" stroke-width=".74783" d="M507.738 123.02q.002-.74.145-1.461.146-.722.426-1.403a7.3 7.3 0 0 1 .691-1.293q.409-.613.93-1.133a7.48 7.48 0 0 1 5.29-2.191h20.936q.736-.001 1.461.145a7.48 7.48 0 0 1-1.46 14.813h-20.938q-.736 0-1.461-.145a7.48 7.48 0 0 1-6.02-7.332Zm0 0"/><use xlink:href="#dG" x="515.545" y="124.887" fill="#5a4420"/><use xlink:href="#cd" x="519.071" y="124.887" fill="#5a4420"/><use xlink:href="#ce" x="522.729" y="124.887" fill="#5a4420"/><use xlink:href="#cX" x="525.271" y="124.887" fill="#5a4420"/><use xlink:href="#cg" x="529.284" y="124.887" fill="#5a4420"/><use xlink:href="#ci" x="533.045" y="124.887" fill="#5a4420"/><path fill="#ebe1cd" fill-opacity=".349" stroke="#d8c8a8" stroke-width=".74783" d="M459.129 166.02v-23.184q.001-.627.125-1.242.121-.61.36-1.192.239-.578.59-1.097.347-.52.788-.965c.297-.293.617-.559.965-.79q.517-.35 1.098-.589a6.317 6.317 0 0 1 2.434-.48h249.027c.418 0 .828.039 1.238.12q.616.125 1.191.36.58.239 1.102.59c.348.23.668.496.96.789.298.297.56.617.794.965a6.4 6.4 0 0 1 .95 2.289q.12.615.12 1.242v23.184a6.3 6.3 0 0 1-.484 2.43q-.24.58-.586 1.1a6.3 6.3 0 0 1-.793.962 6.25 6.25 0 0 1-2.063 1.379 6.3 6.3 0 0 1-2.43.484H465.489c-.418 0-.832-.043-1.242-.121a6.4 6.4 0 0 1-2.289-.95 6.5 6.5 0 0 1-.965-.792 6.2 6.2 0 0 1-.789-.961 6.258 6.258 0 0 1-.95-2.293 6.3 6.3 0 0 1-.124-1.238Zm0 0"/><use xlink:href="#df" x="468.619" y="147.322" fill="#9a7a40"/><use xlink:href="#dL" x="473.175" y="147.322" fill="#9a7a40"/><use xlink:href="#dd" x="477.644" y="147.322" fill="#9a7a40"/><use xlink:href="#dc" x="480.15" y="147.322" fill="#9a7a40"/><use xlink:href="#dq" x="486.036" y="147.322" fill="#9a7a40"/><use xlink:href="#ds" x="491.08" y="147.322" fill="#9a7a40"/><use xlink:href="#dq" x="495.103" y="147.322" fill="#9a7a40"/><use xlink:href="#df" x="500.147" y="147.322" fill="#9a7a40"/><path fill="#f0e0c4" stroke="#d4b888" stroke-width=".74783" d="M467.356 158.54q0-.7.136-1.388c.094-.457.227-.898.406-1.332.176-.43.399-.84.657-1.226a7.1 7.1 0 0 1 1.96-1.961 7.186 7.186 0 0 1 2.559-1.063c.457-.09.922-.136 1.387-.136h32.906a7.2 7.2 0 0 1 2.719.543q.646.27 1.227.656.58.389 1.078.883c.328.332.62.687.882 1.078q.387.58.657 1.226c.18.434.312.875.402 1.332q.139.688.137 1.387.002.702-.137 1.387a7 7 0 0 1-.402 1.332q-.27.645-.657 1.23a7.047 7.047 0 0 1-1.96 1.957q-.581.392-1.227.657a7.154 7.154 0 0 1-2.719.543h-32.906c-.465 0-.93-.047-1.387-.137a7 7 0 0 1-1.332-.406 6.7 6.7 0 0 1-1.226-.657 7.058 7.058 0 0 1-2.617-3.188 7 7 0 0 1-.407-1.331 7 7 0 0 1-.136-1.387Zm0 0"/><use xlink:href="#dM" x="475.349" y="160.783" fill="#6a5030"/><use xlink:href="#cd" x="481.272" y="160.783" fill="#6a5030"/><use xlink:href="#dn" x="484.819" y="160.783" fill="#6a5030"/><use xlink:href="#cg" x="488.295" y="160.783" fill="#6a5030"/><use xlink:href="#dN" x="492.056" y="160.783" fill="#6a5030"/><use xlink:href="#ck" x="494.421" y="160.783" fill="#6a5030"/><use xlink:href="#ce" x="498.304" y="160.783" fill="#6a5030"/><use xlink:href="#dj" x="500.982" y="160.783" fill="#6a5030"/><g clip-path="url(#dO)"><g clip-path="url(#dP)"><use xlink:href="#dQ" transform="translate(19 191)"/></g></g><use xlink:href="#cQ" x="30.251" y="205.653" fill="#2e7070"/><use xlink:href="#dR" x="36.051" y="205.653" fill="#2e7070"/><use xlink:href="#dS" x="41.249" y="205.653" fill="#2e7070"/><use xlink:href="#cN" x="46.331" y="205.653" fill="#2e7070"/><use xlink:href="#cR" x="51.068" y="205.653" fill="#2e7070"/><use xlink:href="#dK" x="56.146" y="205.653" fill="#2e7070"/><use xlink:href="#dB" x="61.114" y="205.653" fill="#2e7070"/><use xlink:href="#cO" x="66.075" y="205.653" fill="#2e7070"/><use xlink:href="#dz" x="71.059" y="205.653" fill="#2e7070"/><use xlink:href="#cQ" x="73.834" y="205.653" fill="#2e7070"/><use xlink:href="#cM" x="79.634" y="205.653" fill="#2e7070"/><path fill="#98d4d0" stroke="#5eb0ac" stroke-width=".74783" d="M29.129 219.488q0-.736.144-1.46a7.48 7.48 0 0 1 7.332-6.02h22.438q.737.001 1.457.144.725.146 1.402.426.685.281 1.293.692a7.43 7.43 0 0 1 3.18 4.757q.146.726.145 1.461.001.738-.145 1.457c-.094.485-.234.95-.422 1.403a7.7 7.7 0 0 1-.691 1.293q-.412.615-.93 1.136a7.7 7.7 0 0 1-1.137.93 7.46 7.46 0 0 1-4.152 1.258H36.605a7.6 7.6 0 0 1-1.457-.14 7.6 7.6 0 0 1-1.402-.427 7.6 7.6 0 0 1-1.293-.69 7.427 7.427 0 0 1-2.063-2.066 7.2 7.2 0 0 1-.69-1.294 7.3 7.3 0 0 1-.427-1.403 7.3 7.3 0 0 1-.144-1.457Zm0 0"/><use xlink:href="#dg" x="36.981" y="221.357" fill="#1a5050"/><use xlink:href="#ck" x="41.171" y="221.357" fill="#1a5050"/><use xlink:href="#dl" x="45.053" y="221.357" fill="#1a5050"/><use xlink:href="#ce" x="48.921" y="221.357" fill="#1a5050"/><use xlink:href="#cf" x="51.462" y="221.357" fill="#1a5050"/><use xlink:href="#cg" x="55.147" y="221.357" fill="#1a5050"/><path fill="#98d4d0" stroke="#5eb0ac" stroke-width=".74783" d="M71.754 219.488q.001-.736.144-1.46.146-.723.426-1.403a7.48 7.48 0 0 1 6.91-4.617h26.172q.739.001 1.461.144.722.146 1.403.426a7.48 7.48 0 0 1-2.864 14.387H79.234a7.7 7.7 0 0 1-1.46-.14 7.6 7.6 0 0 1-1.403-.427 7.8 7.8 0 0 1-1.293-.69 7.427 7.427 0 0 1-2.063-2.066 7.2 7.2 0 0 1-.69-1.294 7.6 7.6 0 0 1-.571-2.86Zm0 0"/><use xlink:href="#cc" x="79.853" y="221.357" fill="#1a5050"/><use xlink:href="#cj" x="84.03" y="221.357" fill="#1a5050"/><use xlink:href="#dT" x="85.795" y="221.357" fill="#1a5050"/><use xlink:href="#cg" x="89.814" y="221.357" fill="#1a5050"/><use xlink:href="#ch" x="93.575" y="221.357" fill="#1a5050"/><use xlink:href="#cj" x="95.383" y="221.357" fill="#1a5050"/><use xlink:href="#cl" x="97.148" y="221.357" fill="#1a5050"/><use xlink:href="#cg" x="101.015" y="221.357" fill="#1a5050"/><use xlink:href="#cT" x="118.985" y="221.357" fill="#6a9a9a"/><path fill="#98d4d0" stroke="#5eb0ac" stroke-width=".74783" d="M131.582 219.488q-.001-.736.145-1.46a7.48 7.48 0 0 1 7.332-6.02h37.394c.488 0 .977.05 1.457.144q.722.146 1.403.426a7.3 7.3 0 0 1 1.292.692q.614.409 1.133.93.523.522.93 1.132a7.48 7.48 0 0 1-4.758 11.492 7.6 7.6 0 0 1-1.457.14H139.06a7.6 7.6 0 0 1-1.457-.14 7.6 7.6 0 0 1-1.403-.426 7.6 7.6 0 0 1-1.293-.69 7.6 7.6 0 0 1-1.133-.93 7.2 7.2 0 0 1-.93-1.137 7.2 7.2 0 0 1-.69-1.293 7.3 7.3 0 0 1-.426-1.403 7.3 7.3 0 0 1-.145-1.457Zm0 0"/><use xlink:href="#dm" x="139.305" y="221.357" fill="#1a5050"/><use xlink:href="#cd" x="144.004" y="221.357" fill="#1a5050"/><use xlink:href="#ci" x="147.662" y="221.357" fill="#1a5050"/><use xlink:href="#cd" x="150.171" y="221.357" fill="#1a5050"/><use xlink:href="#dg" x="153.829" y="221.357" fill="#1a5050"/><use xlink:href="#ck" x="158.018" y="221.357" fill="#1a5050"/><use xlink:href="#dl" x="161.901" y="221.357" fill="#1a5050"/><use xlink:href="#ce" x="165.768" y="221.357" fill="#1a5050"/><use xlink:href="#cf" x="168.31" y="221.357" fill="#1a5050"/><use xlink:href="#cg" x="171.995" y="221.357" fill="#1a5050"/><path fill="#98d4d0" stroke="#5eb0ac" stroke-width=".74783" d="M29.129 238.93q0-.735.144-1.457c.094-.48.239-.95.426-1.403a7.3 7.3 0 0 1 .692-1.293q.409-.613.93-1.132.519-.524 1.132-.93a7.3 7.3 0 0 1 1.293-.692 7.4 7.4 0 0 1 1.402-.425c.48-.098.97-.145 1.457-.145h39.637q.737-.001 1.461.145a7.48 7.48 0 0 1-1.46 14.813H36.604q-.734 0-1.457-.145a7.4 7.4 0 0 1-1.402-.426 7.3 7.3 0 0 1-1.293-.692 7.4 7.4 0 0 1-1.133-.93 7.4 7.4 0 0 1-.93-1.132 7.3 7.3 0 0 1-.69-1.293 7.4 7.4 0 0 1-.427-1.402 7.3 7.3 0 0 1-.144-1.461Zm0 0"/><use xlink:href="#dm" x="36.981" y="240.801" fill="#1a5050"/><use xlink:href="#cg" x="41.69" y="240.801" fill="#1a5050"/><use xlink:href="#ce" x="45.451" y="240.801" fill="#1a5050"/><use xlink:href="#cj" x="48.079" y="240.801" fill="#1a5050"/><use xlink:href="#dn" x="49.844" y="240.801" fill="#1a5050"/><use xlink:href="#cg" x="53.321" y="240.801" fill="#1a5050"/><use xlink:href="#cV" x="57.082" y="240.801" fill="#1a5050"/><use xlink:href="#dU" x="61.125" y="240.801" fill="#1a5050"/><use xlink:href="#di" x="66.101" y="240.801" fill="#1a5050"/><use xlink:href="#dE" x="70.145" y="240.801" fill="#1a5050"/><use xlink:href="#dV" x="73.635" y="240.801" fill="#1a5050"/><g clip-path="url(#dW)"><g clip-path="url(#dX)"><use xlink:href="#dY" transform="translate(215 191)"/></g></g><use xlink:href="#cN" x="227.093" y="205.653" fill="#3a7048"/><use xlink:href="#dZ" x="231.831" y="205.653" fill="#3a7048"/><use xlink:href="#ea" x="237.262" y="205.653" fill="#3a7048"/><use xlink:href="#eb" x="242.334" y="205.653" fill="#3a7048"/><use xlink:href="#cQ" x="246.769" y="205.653" fill="#3a7048"/><use xlink:href="#cR" x="252.569" y="205.653" fill="#3a7048"/><use xlink:href="#dB" x="257.774" y="205.653" fill="#3a7048"/><use xlink:href="#cO" x="262.735" y="205.653" fill="#3a7048"/><use xlink:href="#dz" x="267.718" y="205.653" fill="#3a7048"/><use xlink:href="#cQ" x="270.493" y="205.653" fill="#3a7048"/><use xlink:href="#cM" x="276.294" y="205.653" fill="#3a7048"/><path fill="#a8d8b4" stroke="#70b480" stroke-width=".74783" d="M225.809 219.488q-.001-.736.144-1.46.14-.723.426-1.403a7.48 7.48 0 0 1 6.906-4.617h36.645c.492 0 .976.05 1.46.144q.722.146 1.403.426a7.48 7.48 0 0 1-2.863 14.387h-36.645a7.6 7.6 0 0 1-1.457-.14 7.6 7.6 0 0 1-1.402-.427 7.438 7.438 0 0 1-3.355-2.758 7.2 7.2 0 0 1-.692-1.292 7 7 0 0 1-.426-1.403 7.3 7.3 0 0 1-.144-1.457Zm0 0"/><use xlink:href="#cW" x="233.824" y="221.357" fill="#1e4a2a"/><use xlink:href="#ec" x="237.731" y="221.357" fill="#1e4a2a"/><use xlink:href="#dT" x="241.255" y="221.357" fill="#1e4a2a"/><use xlink:href="#ch" x="245.274" y="221.357" fill="#1e4a2a"/><use xlink:href="#ck" x="247.082" y="221.357" fill="#1e4a2a"/><use xlink:href="#ce" x="250.964" y="221.357" fill="#1e4a2a"/><use xlink:href="#cd" x="253.572" y="221.357" fill="#1e4a2a"/><use xlink:href="#ci" x="257.229" y="221.357" fill="#1e4a2a"/><use xlink:href="#cj" x="259.739" y="221.357" fill="#1e4a2a"/><use xlink:href="#ck" x="261.504" y="221.357" fill="#1e4a2a"/><use xlink:href="#cl" x="265.386" y="221.357" fill="#1e4a2a"/><path fill="#a8d8b4" stroke="#70b480" stroke-width=".74783" d="M282.645 219.488q0-.736.14-1.46.146-.723.426-1.403a7.48 7.48 0 0 1 6.91-4.617h31.41q.735.001 1.457.144c.485.098.95.239 1.403.426a7.3 7.3 0 0 1 1.293.692q.616.409 1.132.93.522.522.934 1.132.405.614.688 1.293.285.68.425 1.402.146.726.145 1.461.001.738-.145 1.457c-.093.485-.234.95-.425 1.403a7.44 7.44 0 0 1-4.047 4.05 7.6 7.6 0 0 1-1.403.426 7.6 7.6 0 0 1-1.457.14h-31.41a7.6 7.6 0 0 1-1.457-.14 7.7 7.7 0 0 1-1.406-.426 7.8 7.8 0 0 1-1.293-.69 7.427 7.427 0 0 1-2.063-2.066 7.2 7.2 0 0 1-.691-1.294 7.6 7.6 0 0 1-.426-1.403 7.6 7.6 0 0 1-.14-1.457Zm0 0"/><use xlink:href="#ed" x="290.203" y="221.357" fill="#1e4a2a"/><use xlink:href="#ch" x="294.663" y="221.357" fill="#1e4a2a"/><use xlink:href="#cX" x="296.471" y="221.357" fill="#1e4a2a"/><use xlink:href="#ck" x="300.484" y="221.357" fill="#1e4a2a"/><use xlink:href="#ce" x="304.366" y="221.357" fill="#1e4a2a"/><use xlink:href="#cj" x="306.994" y="221.357" fill="#1e4a2a"/><use xlink:href="#ci" x="308.759" y="221.357" fill="#1e4a2a"/><use xlink:href="#dD" x="311.268" y="221.357" fill="#1e4a2a"/><use xlink:href="#dj" x="315.166" y="221.357" fill="#1e4a2a"/><g clip-path="url(#ee)"><g clip-path="url(#ef)"><use xlink:href="#eg" transform="translate(378 191)"/></g></g><use xlink:href="#dB" x="389.957" y="205.653" fill="#3a5070"/><use xlink:href="#cM" x="395.407" y="205.653" fill="#3a5070"/><use xlink:href="#dB" x="401.088" y="205.653" fill="#3a5070"/><use xlink:href="#eb" x="406.538" y="205.653" fill="#3a5070"/><use xlink:href="#eh" x="410.484" y="205.653" fill="#3a5070"/><use xlink:href="#dS" x="415.618" y="205.653" fill="#3a5070"/><use xlink:href="#dz" x="420.7" y="205.653" fill="#3a5070"/><use xlink:href="#dS" x="423.475" y="205.653" fill="#3a5070"/><path fill="#b0c0d8" stroke="#7898b8" stroke-width=".74783" d="M388.836 219.488q0-.736.14-1.46.146-.723.426-1.403.287-.679.692-1.293a7.427 7.427 0 0 1 2.066-2.063 7.2 7.2 0 0 1 1.293-.69 7.6 7.6 0 0 1 2.86-.571h40.382c.493 0 .977.05 1.461.144q.722.146 1.403.426a7.48 7.48 0 0 1-2.864 14.387h-40.382a7.6 7.6 0 0 1-1.457-.14 7.46 7.46 0 0 1-2.695-1.117 7.7 7.7 0 0 1-1.138-.93 7.7 7.7 0 0 1-.93-1.137q-.404-.609-.69-1.293a7.6 7.6 0 0 1-.426-1.403 7.6 7.6 0 0 1-.141-1.457Zm0 0"/><use xlink:href="#dU" x="396.687" y="221.357" fill="#1e3450"/><use xlink:href="#dT" x="401.663" y="221.357" fill="#1e3450"/><use xlink:href="#ci" x="405.683" y="221.357" fill="#1e3450"/><use xlink:href="#cj" x="408.192" y="221.357" fill="#1e3450"/><use xlink:href="#dj" x="409.957" y="221.357" fill="#1e3450"/><use xlink:href="#cj" x="415.644" y="221.357" fill="#1e3450"/><use xlink:href="#ei" x="417.409" y="221.357" fill="#1e3450"/><use xlink:href="#cd" x="420.966" y="221.357" fill="#1e3450"/><use xlink:href="#ci" x="424.624" y="221.357" fill="#1e3450"/><use xlink:href="#cj" x="427.134" y="221.357" fill="#1e3450"/><use xlink:href="#ck" x="428.899" y="221.357" fill="#1e3450"/><use xlink:href="#cl" x="432.781" y="221.357" fill="#1e3450"/><path fill="#b0c0d8" stroke="#7898b8" stroke-width=".74783" d="M449.41 219.488q0-.736.14-1.46.147-.723.427-1.403c.191-.453.418-.883.691-1.293a7.427 7.427 0 0 1 2.066-2.063 7.3 7.3 0 0 1 1.29-.69 7.584 7.584 0 0 1 2.863-.57l41.133-.001q.734.001 1.457.144.721.146 1.402.426a7.3 7.3 0 0 1 1.293.692c.41.273.785.582 1.133.93a7.48 7.48 0 0 1-3.828 12.625 7.6 7.6 0 0 1-1.457.14h-41.133a7.6 7.6 0 0 1-1.457-.14 7.7 7.7 0 0 1-1.407-.427 7.6 7.6 0 0 1-2.425-1.62 7.7 7.7 0 0 1-.93-1.137 7.46 7.46 0 0 1-1.258-4.153Zm0 0"/><use xlink:href="#dF" x="457.588" y="221.357" fill="#1e3450"/><use xlink:href="#ck" x="462.24" y="221.357" fill="#1e3450"/><use xlink:href="#cl" x="466.122" y="221.357" fill="#1e3450"/><use xlink:href="#ci" x="469.989" y="221.357" fill="#1e3450"/><use xlink:href="#cj" x="472.499" y="221.357" fill="#1e3450"/><use xlink:href="#cl" x="474.264" y="221.357" fill="#1e3450"/><use xlink:href="#dl" x="478.131" y="221.357" fill="#1e3450"/><use xlink:href="#cd" x="481.998" y="221.357" fill="#1e3450"/><use xlink:href="#ci" x="485.656" y="221.357" fill="#1e3450"/><use xlink:href="#cj" x="488.166" y="221.357" fill="#1e3450"/><use xlink:href="#ck" x="489.931" y="221.357" fill="#1e3450"/><use xlink:href="#cl" x="493.813" y="221.357" fill="#1e3450"/><g clip-path="url(#ej)"><g clip-path="url(#ek)"><use xlink:href="#el" transform="translate(541 191)"/></g></g><use xlink:href="#cN" x="552.82" y="205.653" fill="#505858"/><use xlink:href="#cM" x="557.557" y="205.653" fill="#505858"/><use xlink:href="#dK" x="563.238" y="205.653" fill="#505858"/><use xlink:href="#dz" x="568.616" y="205.653" fill="#505858"/><use xlink:href="#cR" x="571.391" y="205.653" fill="#505858"/><use xlink:href="#cQ" x="576.595" y="205.653" fill="#505858"/><use xlink:href="#cM" x="582.396" y="205.653" fill="#505858"/><use xlink:href="#em" x="588.076" y="205.653" fill="#505858"/><use xlink:href="#cN" x="594.653" y="205.653" fill="#505858"/><use xlink:href="#cM" x="599.39" y="205.653" fill="#505858"/><use xlink:href="#cO" x="605.071" y="205.653" fill="#505858"/><path fill="#c4cccc" stroke="#94a0a0" stroke-width=".74783" d="M551.863 219.488q0-.736.141-1.46.145-.723.426-1.403a7.48 7.48 0 0 1 6.91-4.617h41.879q.737.001 1.457.144.725.146 1.402.426.685.281 1.293.692a7.43 7.43 0 0 1 2.758 3.355q.28.68.426 1.402a7.7 7.7 0 0 1 0 2.918 7.6 7.6 0 0 1-.426 1.403 7.7 7.7 0 0 1-.691 1.293q-.412.615-.93 1.136a7.7 7.7 0 0 1-1.137.93 7.46 7.46 0 0 1-4.152 1.258h-41.88a7.7 7.7 0 0 1-1.46-.14 7.6 7.6 0 0 1-1.402-.427 7.8 7.8 0 0 1-1.293-.69 7.427 7.427 0 0 1-2.063-2.066 7.2 7.2 0 0 1-.691-1.294 7.6 7.6 0 0 1-.426-1.403 7.6 7.6 0 0 1-.14-1.457Zm0 0"/><use xlink:href="#dg" x="559.55" y="221.357" fill="#2a3434"/><use xlink:href="#ck" x="563.74" y="221.357" fill="#2a3434"/><use xlink:href="#dN" x="567.622" y="221.357" fill="#2a3434"/><use xlink:href="#ci" x="570.126" y="221.357" fill="#2a3434"/><use xlink:href="#en" x="572.636" y="221.357" fill="#2a3434"/><use xlink:href="#cd" x="577.661" y="221.357" fill="#2a3434"/><use xlink:href="#ce" x="581.318" y="221.357" fill="#2a3434"/><use xlink:href="#cg" x="583.86" y="221.357" fill="#2a3434"/><use xlink:href="#cW" x="587.621" y="221.357" fill="#2a3434"/><use xlink:href="#cl" x="591.528" y="221.357" fill="#2a3434"/><use xlink:href="#dn" x="595.284" y="221.357" fill="#2a3434"/><use xlink:href="#dV" x="598.441" y="221.357" fill="#2a3434"/><path fill="#c4cccc" stroke="#94a0a0" stroke-width=".74783" d="M613.93 219.488q.001-.736.144-1.46.146-.723.426-1.403a7.48 7.48 0 0 1 6.91-4.617h31.41q.735.001 1.457.144.722.146 1.403.426a7.3 7.3 0 0 1 1.293.692c.41.273.785.582 1.133.93q.52.522.93 1.132a7.48 7.48 0 0 1-4.759 11.492 7.6 7.6 0 0 1-1.457.14h-31.41a7.7 7.7 0 0 1-1.46-.14 7.6 7.6 0 0 1-1.403-.426 7.8 7.8 0 0 1-1.293-.69 7.427 7.427 0 0 1-2.063-2.066 7.2 7.2 0 0 1-.69-1.294 7.6 7.6 0 0 1-.571-2.86Zm0 0"/><use xlink:href="#cW" x="621.48" y="221.357" fill="#2a3434"/><use xlink:href="#ec" x="625.387" y="221.357" fill="#2a3434"/><use xlink:href="#cg" x="628.749" y="221.357" fill="#2a3434"/><use xlink:href="#cf" x="632.51" y="221.357" fill="#2a3434"/><use xlink:href="#dl" x="636.195" y="221.357" fill="#2a3434"/><use xlink:href="#ci" x="640.062" y="221.357" fill="#2a3434"/><use xlink:href="#cj" x="642.571" y="221.357" fill="#2a3434"/><use xlink:href="#ck" x="644.336" y="221.357" fill="#2a3434"/><use xlink:href="#cl" x="648.219" y="221.357" fill="#2a3434"/><path fill="#c4cccc" stroke="#94a0a0" stroke-width=".74783" d="M665.531 219.488q-.001-.736.145-1.46.143-.723.426-1.403a7.48 7.48 0 0 1 6.91-4.617h32.156c.488 0 .977.05 1.457.144.48.098.95.239 1.402.426a7.3 7.3 0 0 1 1.293.692q.614.409 1.133.93.523.522.93 1.132a7.48 7.48 0 0 1-4.758 11.492 7.6 7.6 0 0 1-1.457.14h-32.156a7.6 7.6 0 0 1-1.461-.14 7.6 7.6 0 0 1-1.402-.426 7.6 7.6 0 0 1-1.293-.69 7.427 7.427 0 0 1-2.063-2.066 7.2 7.2 0 0 1-.691-1.294 7.3 7.3 0 0 1-.426-1.403 7.3 7.3 0 0 1-.145-1.457Zm0 0"/><use xlink:href="#eo" x="673.033" y="221.357" fill="#2a3434"/><use xlink:href="#cg" x="677.233" y="221.357" fill="#2a3434"/><use xlink:href="#dN" x="680.994" y="221.357" fill="#2a3434"/><use xlink:href="#cg" x="683.359" y="221.357" fill="#2a3434"/><use xlink:href="#ce" x="687.12" y="221.357" fill="#2a3434"/><use xlink:href="#cg" x="689.662" y="221.357" fill="#2a3434"/><use xlink:href="#cl" x="693.423" y="221.357" fill="#2a3434"/><use xlink:href="#cf" x="697.29" y="221.357" fill="#2a3434"/><use xlink:href="#cg" x="700.975" y="221.357" fill="#2a3434"/><path fill="#c4cccc" stroke="#94a0a0" stroke-width=".74783" d="M551.863 238.93q0-.735.141-1.457.145-.722.426-1.403a7.3 7.3 0 0 1 .691-1.293q.41-.613.93-1.132.522-.524 1.133-.93a7.5 7.5 0 0 1 4.156-1.262h21.687q.738-.001 1.457.145c.485.093.95.238 1.403.425q.685.281 1.293.692.615.406 1.136.93c.344.347.657.722.93 1.132.274.407.5.84.692 1.293q.28.68.425 1.403a7.6 7.6 0 0 1 0 2.918q-.145.721-.425 1.402a8 8 0 0 1-.692 1.293 7.427 7.427 0 0 1-2.066 2.063 7.2 7.2 0 0 1-1.293.69 7.3 7.3 0 0 1-1.403.427q-.719.145-1.457.144H559.34q-.736 0-1.461-.144a7.48 7.48 0 0 1-6.016-7.336Zm0 0"/><use xlink:href="#ed" x="559.55" y="240.801" fill="#2a3434"/><use xlink:href="#dl" x="563.848" y="240.801" fill="#2a3434"/><use xlink:href="#ci" x="567.715" y="240.801" fill="#2a3434"/><use xlink:href="#dD" x="570.225" y="240.801" fill="#2a3434"/><use xlink:href="#ck" x="574.122" y="240.801" fill="#2a3434"/><use xlink:href="#ce" x="578.005" y="240.801" fill="#2a3434"/><g mask="url(#ep)"><use xlink:href="#eq" transform="translate(28 61)"/></g></svg> \ No newline at end of file diff --git a/imgs/tvbo_coverage.png b/imgs/tvbo_coverage.png new file mode 100644 index 000000000..b91320e59 Binary files /dev/null and b/imgs/tvbo_coverage.png differ diff --git a/imgs/tvbo_overview.png b/imgs/tvbo_overview.png new file mode 100644 index 000000000..28799ad13 Binary files /dev/null and b/imgs/tvbo_overview.png differ diff --git a/ontology/tvb-o-axioms.ttl b/ontology/tvb-o-axioms.ttl index 77861e9d5..954cd51b5 100644 --- a/ontology/tvb-o-axioms.ttl +++ b/ontology/tvb-o-axioms.ttl @@ -259,6 +259,91 @@ tvbo:ConductionSpeedInference a tvbo:SimulationTask ; rdfs:comment "Gradient-based optimisation or parameter exploration of conduction speed / per-edge conduction delays."@en ; tvbo:requiresCapability tvbo:InterpolatedDelays, tvbo:StaticDelayBuffer . +# +# ───────────────────────────────────────────────────────────────── +# Β§4.1c Graph representation (sparse vs dense connectivity). +# ───────────────────────────────────────────────────────────────── +# +# The connectome can be carried for coupling evaluation either as a dense +# adjacency (coupling cost ~ nodes^2) or as an edge list (cost ~ edges). +# Both compute the identical coupling, so the choice is a performance +# contract, not a numerical one β€” exposed as the backend-independent +# `Network.graph_representation` slot (auto | dense | sparse). It is +# orthogonal to whether the coupling reads delayed states (Β§4.1b): the two +# binary dimensions β€” edge-sparsity Γ— delay β€” give the four concrete backend +# graph kinds. `auto` resolves by connection density: the sparse +# representation wins once the adjacency is sparse enough that summing over +# existing edges is cheaper than the dense product β€” a large saving for +# large, sparsely-connected connectomes (structural connectomes, power +# grids), a loss for small or dense networks where dense linear algebra's +# constant factor dominates. + +tvbo:SparseCoupling a tvbo:BackendCapability ; + rdfs:label "Sparse (edge-list) coupling evaluation"@en ; + rdfs:comment "Evaluate network coupling by summing over the existing edges only (cost scales with the number of edges) rather than over the full dense adjacency (cost scales with nodes-squared). Numerically identical to the dense evaluation; a pure performance optimisation for sparsely-connected networks."@en ; + tvbo:enabledByGraphParameter "graph_representation" ; + tvbo:boundConstraint "edges << nodes^2 (connection density below the backend's sparse/dense crossover)" . + +tvbo:DenseCoupling a tvbo:BackendCapability ; + rdfs:label "Dense (full-adjacency) coupling evaluation"@en ; + rdfs:comment "Evaluate network coupling as a product over the full nodes-by-nodes adjacency. Preferred for densely-connected or small networks, where dense linear algebra's constant-factor efficiency outweighs its nodes-squared scaling."@en ; + tvbo:enabledByGraphParameter "graph_representation" . + +# The four concrete backend graph kinds = {dense, sparse} Γ— {instantaneous, delayed}. +# Sparsity is chosen by `graph_representation`; the delay axis is chosen by whether +# any coupling carries a conduction delay (Β§4.1b), independently. +tvbo:DenseGraph a owl:Class ; + rdfs:label "DenseGraph"@en ; + rdfs:comment "Dense adjacency, instantaneous coupling. Used when graph_representation resolves to dense and no coupling carries a conduction delay."@en . + +tvbo:SparseGraph a owl:Class ; + rdfs:label "SparseGraph"@en ; + rdfs:comment "Edge-list adjacency, instantaneous coupling. Used when graph_representation resolves to sparse and no coupling carries a conduction delay."@en . + +tvbo:DenseDelayGraph a owl:Class ; + rdfs:label "DenseDelayGraph"@en ; + rdfs:comment "Dense adjacency with a delay-history buffer, used when any coupling carries a conduction delay and graph_representation resolves to dense. Required for interpolated (differentiable) delays (Β§4.1b)."@en . + +tvbo:SparseDelayGraph a owl:Class ; + rdfs:label "SparseDelayGraph"@en ; + rdfs:comment "Edge-list adjacency with a delay-history buffer, used when any coupling carries a conduction delay and graph_representation resolves to sparse."@en . + +# +# ───────────────────────────────────────────────────────────────── +# Β§4.1d Analysis observables (Analysis.type vocabulary). +# ───────────────────────────────────────────────────────────────── +# +# An analysis observable ANALYSES the model / its solve / a derived loss rather +# than transforming the recorded trajectory. `Analysis.type` names it and stays a +# free string (extensible β€” backends dispatch on it), so the vocabulary lives +# here as concepts rather than a closed schema enum. Each concept is +# backend-independent (says what is computed, not how); a backend that has no +# equivalent emits a comment and skips rather than raising. Named backends below +# are the ones that currently lower the type. + +tvbo:AnalysisObservable a owl:Class ; + rdfs:label "Analysis observable"@en ; + rdfs:comment "A quantity obtained by analysing the model, its solve, or a derived loss β€” the vocabulary of Analysis.type."@en . + +tvbo:realisedByBackend a owl:AnnotationProperty ; + rdfs:label "realised by backend"@en ; + rdfs:comment "Backend(s) whose codegen currently lowers this analysis observable to a concrete implementation."@en . + +tvbo:LyapunovAnalysis a tvbo:AnalysisObservable ; + rdfs:label "Lyapunov analysis"@en ; + rdfs:comment "Benettin QR estimate of the tangent-dynamics Lyapunov spectrum: the leading exponents lambda_i (rate of trajectory divergence, chaos when lambda_1 > 0) and, for the leading direction, the per-node Lyapunov vector xi_i (which nodes drive the instability). Parameters: n_exponents, n_steps (rescaling segments), segment_time, mode (tangent-space jvp / two-trajectory sim). Independent per operating point, so it fans out across a parameter axis."@en ; + tvbo:realisedByBackend "tvboptim" . + +tvbo:GradientAnalysis a tvbo:AnalysisObservable ; + rdfs:label "Gradient analysis"@en ; + rdfs:comment "Autodiff (forward/reverse) gradient of a target observable or loss with respect to named parameters β€” the untruncated sensitivity of the full solve. Parameters: mode. Binds via target + wrt."@en ; + tvbo:realisedByBackend "tvboptim" . + +tvbo:FiniteDifferenceAnalysis a tvbo:AnalysisObservable ; + rdfs:label "Finite-difference analysis"@en ; + rdfs:comment "Seed-averaged central finite-difference sensitivity of a target with respect to a parameter; the mean is the gradient estimate, the sem its standard error. Parameters: delta, seeds, seed_base, stat. Binds via target + wrt."@en ; + tvbo:realisedByBackend "tvboptim" . + # # ───────────────────────────────────────────────────────────────── # Β§4.2 Biological substrate axioms. @@ -318,17 +403,11 @@ tvbo:Chaotic a owl:Class ; rdfs:subClassOf tvbo:DynamicalRegime ; rdfs:labe tvbo:Quiescent a owl:Class ; rdfs:subClassOf tvbo:DynamicalRegime ; rdfs:label "Quiescent"@en . tvbo:Bursting a owl:Class ; rdfs:subClassOf tvbo:DynamicalRegime ; rdfs:label "Bursting"@en . -# Bifurcation classes. -tvbo:SaddleNode a owl:Class ; rdfs:subClassOf tvbo:Bifurcation ; rdfs:label "Saddle-node"@en . -tvbo:Hopf a owl:Class ; rdfs:subClassOf tvbo:Bifurcation ; rdfs:label "Hopf"@en . -tvbo:SubcriticalHopf a owl:Class ; rdfs:subClassOf tvbo:Hopf ; rdfs:label "Subcritical Hopf"@en . -tvbo:SupercriticalHopf a owl:Class ; rdfs:subClassOf tvbo:Hopf ; rdfs:label "Supercritical Hopf"@en . -tvbo:Pitchfork a owl:Class ; rdfs:subClassOf tvbo:Bifurcation ; rdfs:label "Pitchfork"@en . -tvbo:Transcritical a owl:Class ; rdfs:subClassOf tvbo:Bifurcation ; rdfs:label "Transcritical"@en . -tvbo:HomoclinicBifurcation a owl:Class ; rdfs:subClassOf tvbo:Bifurcation ; rdfs:label "Homoclinic"@en . -tvbo:FoldOfLimitCycles a owl:Class ; rdfs:subClassOf tvbo:Bifurcation ; rdfs:label "Fold of limit cycles"@en . -tvbo:PeriodDoubling a owl:Class ; rdfs:subClassOf tvbo:Bifurcation ; rdfs:label "Period doubling"@en . -tvbo:BogdanovTakens a owl:Class ; rdfs:subClassOf tvbo:Bifurcation ; rdfs:label "Bogdanov-Takens"@en . +# Bifurcation type taxonomy (Fold/SaddleNode, BranchPoint, Hopf, PeriodDoubling, +# NeimarkSacker, codim-2 organising centres, ...) is defined β€” with codimension / +# eigenvalue-signature / branch-geometry axioms and backend label anchoring β€” in the +# dedicated module `ontology/tvb-o-bifurcation.ttl`, merged alongside this file. +# The parent `tvbo:Bifurcation` class remains declared above (Β§ DynamicalProperty). # Attractor classes. tvbo:FixedPoint a owl:Class ; rdfs:subClassOf tvbo:Attractor ; rdfs:label "Fixed point"@en . diff --git a/ontology/tvb-o-bifurcation.ttl b/ontology/tvb-o-bifurcation.ttl new file mode 100644 index 000000000..4ecdc6538 --- /dev/null +++ b/ontology/tvb-o-bifurcation.ttl @@ -0,0 +1,234 @@ +@prefix tvbo: <https://w3id.org/tvbo/> . +@prefix skos: <http://www.w3.org/2004/02/skos/core#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix owl: <http://www.w3.org/2002/07/owl#> . +@prefix dcterms: <http://purl.org/dc/terms/> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +# +# ═════════════════════════════════════════════════════════════════ +# TVB-O bifurcation / special-point taxonomy (axiomatised module). +# ═════════════════════════════════════════════════════════════════ +# +# A dedicated, mergeable module for the dynamical-systems bifurcation +# (a.k.a. continuation "special point") taxonomy. It is merged into the +# compound `tvbo.owl` by `make gen-merged` alongside `tvb-o-struct.owl` +# and `tvb-o-axioms.ttl` β€” never edit the merged artefact directly. +# +# WHY a defined (axiomatised) taxonomy and not bare labels: +# Continuation backends disagree on special-point *labels* β€” e.g. +# BifurcationKit.jl emits ``:bp`` for BOTH a genuine branch point and a +# saddle-node fold; AUTO-07p emits ``LP``/``HB``/``BP``; PyRates its own. +# A label map alone cannot disambiguate them. Here each bifurcation type +# is *defined* by codimension + eigenvalue signature + branch geometry, +# so a Fold (limit/turning point) is distinguishable from a BranchPoint +# (branch crossing) even when a backend gives both the same label. The +# discriminator β€” a real eigenvalue crossing zero AT a parameter turning +# point ⟹ Fold β€” is exactly what the tvbo adapter applies operationally, +# and what these axioms state declaratively. Backend labels are attached +# as ``skos:altLabel`` and the canonical short code as ``tvbo:canonicalCode``, +# so the Python label map derives from this module (single source of truth). +# +# ELK-safety: definitions use ``owl:hasValue`` on object properties with +# named individuals (EL profile), so the merge's ELK reasoning step is +# unaffected by datatype restrictions. +# + +<https://w3id.org/tvbo/bifurcation> a owl:Ontology ; + dcterms:title "TVB-O bifurcation / special-point taxonomy"@en ; + dcterms:description "Axiomatised taxonomy of bifurcation (continuation special-point) types, defined by codimension, eigenvalue signature and branch geometry, with backend label anchoring (BifurcationKit / AUTO-07p / PyRates)."@en ; + dcterms:license <https://creativecommons.org/licenses/by/4.0/> ; + rdfs:seeAlso <https://w3id.org/tvbo/axioms> . + +# Annotation property declarations (OWL-DL cleanliness). +dcterms:title a owl:AnnotationProperty . +dcterms:description a owl:AnnotationProperty . +dcterms:license a owl:AnnotationProperty . +tvbo:canonicalCode a owl:AnnotationProperty ; + rdfs:label "canonical code"@en ; + rdfs:comment "Backend-independent short code for a special-point type (e.g. \"LP\", \"HB\", \"BP\"). The Python special-point label map derives (altLabel β†’ canonicalCode) from these annotations."@en . + +# +# ───────────────────────────────────────────────────────────────── +# Discriminating vocabulary (codimension, eigenvalue signature, +# branch geometry) as named individuals so definitions stay in EL. +# ───────────────────────────────────────────────────────────────── +# + +tvbo:Codimension a owl:Class ; rdfs:label "Codimension"@en ; + rdfs:comment "Number of parameters that must be tuned for the bifurcation to occur generically."@en . +tvbo:Codimension1 a owl:NamedIndividual, tvbo:Codimension ; rdfs:label "codimension 1"@en . +tvbo:Codimension2 a owl:NamedIndividual, tvbo:Codimension ; rdfs:label "codimension 2"@en . + +tvbo:EigenvalueSignature a owl:Class ; rdfs:label "Eigenvalue signature"@en ; + rdfs:comment "Qualitative crossing of the Jacobian spectrum through the stability boundary at the bifurcation."@en . +tvbo:RealEigenvalueZero a owl:NamedIndividual, tvbo:EigenvalueSignature ; + rdfs:label "one real eigenvalue crosses zero"@en . +tvbo:ConjugatePairImaginary a owl:NamedIndividual, tvbo:EigenvalueSignature ; + rdfs:label "a complex-conjugate pair crosses the imaginary axis"@en . +tvbo:DoubleZeroEigenvalue a owl:NamedIndividual, tvbo:EigenvalueSignature ; + rdfs:label "a double-zero (nilpotent) eigenvalue"@en . +tvbo:RealZeroAndImaginaryPair a owl:NamedIndividual, tvbo:EigenvalueSignature ; + rdfs:label "a real zero eigenvalue together with an imaginary pair"@en . +tvbo:TwoImaginaryPairs a owl:NamedIndividual, tvbo:EigenvalueSignature ; + rdfs:label "two distinct imaginary pairs"@en . + +tvbo:BranchGeometry a owl:Class ; rdfs:label "Branch geometry"@en ; + rdfs:comment "Local geometry of the solution branch at the special point in the (state, parameter) space."@en . +tvbo:LimitPointGeometry a owl:NamedIndividual, tvbo:BranchGeometry ; + rdfs:label "limit point (turning point; branch tangent to the parameter axis)"@en . +tvbo:BranchCrossingGeometry a owl:NamedIndividual, tvbo:BranchGeometry ; + rdfs:label "branch crossing (transversal intersection of solution branches)"@en . + +tvbo:hasCodimension a owl:ObjectProperty, owl:FunctionalProperty ; + rdfs:range tvbo:Codimension ; rdfs:label "has codimension"@en . +tvbo:hasEigenvalueSignature a owl:ObjectProperty ; + rdfs:range tvbo:EigenvalueSignature ; rdfs:label "has eigenvalue signature"@en . +tvbo:hasBranchGeometry a owl:ObjectProperty ; + rdfs:range tvbo:BranchGeometry ; rdfs:label "has branch geometry"@en . + +# +# ───────────────────────────────────────────────────────────────── +# Codimension-1 equilibrium bifurcations. +# ───────────────────────────────────────────────────────────────── +# + +# Fold / saddle-node / limit point β€” one real eigenvalue crosses zero +# AT a turning point. This is the discriminator vs BranchPoint below. +tvbo:Fold a owl:Class ; + rdfs:label "Fold"@en ; + rdfs:comment "Saddle-node (limit / turning point): a pair of equilibria collide and annihilate as one real eigenvalue crosses zero and the branch folds back on the parameter."@en ; + tvbo:canonicalCode "LP" ; + skos:prefLabel "Fold"@en ; + skos:altLabel "LP", "lp", "fold", "saddle-node", "saddlenode", "sn", "limit point", "limitpoint" ; + owl:equivalentClass [ + a owl:Class ; + owl:intersectionOf ( + tvbo:Bifurcation + [ a owl:Restriction ; owl:onProperty tvbo:hasCodimension ; owl:hasValue tvbo:Codimension1 ] + [ a owl:Restriction ; owl:onProperty tvbo:hasEigenvalueSignature ; owl:hasValue tvbo:RealEigenvalueZero ] + [ a owl:Restriction ; owl:onProperty tvbo:hasBranchGeometry ; owl:hasValue tvbo:LimitPointGeometry ] + ) + ] . + +# Saddle-node is the classical name for the same phenomenon. +tvbo:SaddleNode owl:equivalentClass tvbo:Fold ; + skos:altLabel "saddle-node", "sn" . + +# Branch point (transcritical / pitchfork): a real eigenvalue crosses zero +# but two branches cross transversally rather than folding back. +tvbo:BranchPoint a owl:Class ; + rdfs:label "Branch point"@en ; + rdfs:comment "Branch point: two solution branches intersect transversally as a real eigenvalue crosses zero (e.g. transcritical, pitchfork). Distinct from a Fold, which turns back on the parameter."@en ; + tvbo:canonicalCode "BP" ; + skos:prefLabel "Branch point"@en ; + skos:altLabel "BP", "bp", "branch point", "branchpoint", "branch-point" ; + owl:equivalentClass [ + a owl:Class ; + owl:intersectionOf ( + tvbo:Bifurcation + [ a owl:Restriction ; owl:onProperty tvbo:hasCodimension ; owl:hasValue tvbo:Codimension1 ] + [ a owl:Restriction ; owl:onProperty tvbo:hasEigenvalueSignature ; owl:hasValue tvbo:RealEigenvalueZero ] + [ a owl:Restriction ; owl:onProperty tvbo:hasBranchGeometry ; owl:hasValue tvbo:BranchCrossingGeometry ] + ) + ] . + +tvbo:Pitchfork a owl:Class ; rdfs:subClassOf tvbo:BranchPoint ; + rdfs:label "Pitchfork"@en ; skos:altLabel "pitchfork" . +tvbo:Transcritical a owl:Class ; rdfs:subClassOf tvbo:BranchPoint ; + rdfs:label "Transcritical"@en ; skos:altLabel "transcritical" . + +# Hopf / Andronov-Hopf β€” a complex-conjugate pair crosses the imaginary axis. +tvbo:Hopf a owl:Class ; + rdfs:label "Hopf"@en ; + rdfs:comment "Andronov-Hopf: an equilibrium loses stability as a complex-conjugate eigenvalue pair crosses the imaginary axis, giving birth to a limit cycle."@en ; + tvbo:canonicalCode "HB" ; + skos:prefLabel "Hopf"@en ; + skos:altLabel "HB", "hb", "hopf", "andronov-hopf", "andronov hopf" ; + owl:equivalentClass [ + a owl:Class ; + owl:intersectionOf ( + tvbo:Bifurcation + [ a owl:Restriction ; owl:onProperty tvbo:hasCodimension ; owl:hasValue tvbo:Codimension1 ] + [ a owl:Restriction ; owl:onProperty tvbo:hasEigenvalueSignature ; owl:hasValue tvbo:ConjugatePairImaginary ] + ) + ] . + +tvbo:SubcriticalHopf a owl:Class ; rdfs:subClassOf tvbo:Hopf ; rdfs:label "Subcritical Hopf"@en ; skos:altLabel "subcritical hopf" . +tvbo:SupercriticalHopf a owl:Class ; rdfs:subClassOf tvbo:Hopf ; rdfs:label "Supercritical Hopf"@en ; skos:altLabel "supercritical hopf" . + +# +# ───────────────────────────────────────────────────────────────── +# Codimension-1 limit-cycle bifurcations. +# ───────────────────────────────────────────────────────────────── +# + +tvbo:PeriodDoubling a owl:Class ; rdfs:subClassOf tvbo:Bifurcation ; + rdfs:label "Period doubling"@en ; + rdfs:comment "Flip bifurcation of a limit cycle: a Floquet multiplier crosses -1 and a period-doubled cycle branches off."@en ; + tvbo:canonicalCode "PD" ; + skos:altLabel "PD", "pd", "flip", "period doubling", "period-doubling" ; + rdfs:subClassOf [ a owl:Restriction ; owl:onProperty tvbo:hasCodimension ; owl:hasValue tvbo:Codimension1 ] . + +tvbo:NeimarkSacker a owl:Class ; rdfs:subClassOf tvbo:Bifurcation ; + rdfs:label "Neimark-Sacker"@en ; + rdfs:comment "Torus (Neimark-Sacker) bifurcation of a limit cycle: a complex pair of Floquet multipliers crosses the unit circle, birthing an invariant torus."@en ; + tvbo:canonicalCode "TR" ; + skos:altLabel "TR", "tr", "ns", "torus", "neimark-sacker", "neimark sacker" ; + rdfs:subClassOf [ a owl:Restriction ; owl:onProperty tvbo:hasCodimension ; owl:hasValue tvbo:Codimension1 ] . + +tvbo:FoldOfLimitCycles a owl:Class ; rdfs:subClassOf tvbo:Bifurcation ; + rdfs:label "Fold of limit cycles"@en ; + rdfs:comment "Saddle-node of periodic orbits: two limit cycles collide and annihilate as a Floquet multiplier crosses +1."@en ; + tvbo:canonicalCode "LPC" ; + skos:altLabel "LPC", "lpc", "cpc", "snpo", "fold of limit cycles", "fold-of-limit-cycles" ; + rdfs:subClassOf [ a owl:Restriction ; owl:onProperty tvbo:hasCodimension ; owl:hasValue tvbo:Codimension1 ] . + +tvbo:HomoclinicBifurcation a owl:Class ; rdfs:subClassOf tvbo:Bifurcation ; + rdfs:label "Homoclinic"@en ; + rdfs:comment "Global bifurcation where a limit cycle collides with a saddle equilibrium, forming a homoclinic orbit of infinite period."@en ; + skos:altLabel "homoclinic", "hom" . + +# +# ───────────────────────────────────────────────────────────────── +# Codimension-2 bifurcations (organising centres). +# ───────────────────────────────────────────────────────────────── +# + +tvbo:Cusp a owl:Class ; rdfs:subClassOf tvbo:Bifurcation ; + rdfs:label "Cusp"@en ; + rdfs:comment "Codim-2 organising centre where two fold curves meet tangentially."@en ; + tvbo:canonicalCode "CP" ; + skos:altLabel "CP", "cp", "cusp" ; + rdfs:subClassOf [ a owl:Restriction ; owl:onProperty tvbo:hasCodimension ; owl:hasValue tvbo:Codimension2 ] . + +tvbo:BogdanovTakens a owl:Class ; rdfs:subClassOf tvbo:Bifurcation ; + rdfs:label "Bogdanov-Takens"@en ; + rdfs:comment "Codim-2 point with a double-zero (nilpotent) eigenvalue, where fold, Hopf and homoclinic curves meet."@en ; + tvbo:canonicalCode "BT" ; + skos:altLabel "BT", "bt", "bogdanov-takens", "bogdanov takens" ; + rdfs:subClassOf [ a owl:Restriction ; owl:onProperty tvbo:hasCodimension ; owl:hasValue tvbo:Codimension2 ] , + [ a owl:Restriction ; owl:onProperty tvbo:hasEigenvalueSignature ; owl:hasValue tvbo:DoubleZeroEigenvalue ] . + +tvbo:GeneralizedHopf a owl:Class ; rdfs:subClassOf tvbo:Bifurcation ; + rdfs:label "Generalized Hopf (Bautin)"@en ; + rdfs:comment "Codim-2 point where a Hopf bifurcation switches between sub- and supercritical (first Lyapunov coefficient vanishes); a fold-of-limit-cycles curve emanates."@en ; + tvbo:canonicalCode "GH" ; + skos:altLabel "GH", "gh", "bautin", "generalized hopf", "generalised hopf" ; + rdfs:subClassOf [ a owl:Restriction ; owl:onProperty tvbo:hasCodimension ; owl:hasValue tvbo:Codimension2 ] . + +tvbo:ZeroHopf a owl:Class ; rdfs:subClassOf tvbo:Bifurcation ; + rdfs:label "Zero-Hopf (fold-Hopf)"@en ; + rdfs:comment "Codim-2 point with a real zero eigenvalue and an imaginary pair simultaneously; a fold curve meets a Hopf curve."@en ; + tvbo:canonicalCode "ZH" ; + skos:altLabel "ZH", "zh", "zero-hopf", "fold-hopf", "gavrilov-guckenheimer" ; + rdfs:subClassOf [ a owl:Restriction ; owl:onProperty tvbo:hasCodimension ; owl:hasValue tvbo:Codimension2 ] , + [ a owl:Restriction ; owl:onProperty tvbo:hasEigenvalueSignature ; owl:hasValue tvbo:RealZeroAndImaginaryPair ] . + +tvbo:HopfHopf a owl:Class ; rdfs:subClassOf tvbo:Bifurcation ; + rdfs:label "Hopf-Hopf (double Hopf)"@en ; + rdfs:comment "Codim-2 point where two Hopf curves cross (two imaginary pairs simultaneously)."@en ; + tvbo:canonicalCode "HH" ; + skos:altLabel "HH", "hh", "double hopf", "hopf-hopf" ; + rdfs:subClassOf [ a owl:Restriction ; owl:onProperty tvbo:hasCodimension ; owl:hasValue tvbo:Codimension2 ] , + [ a owl:Restriction ; owl:onProperty tvbo:hasEigenvalueSignature ; owl:hasValue tvbo:TwoImaginaryPairs ] . diff --git a/ontology/tvb-o-data.ttl b/ontology/tvb-o-data.ttl index 3f3882c83..4363317f1 100644 --- a/ontology/tvb-o-data.ttl +++ b/ontology/tvb-o-data.ttl @@ -2722,10 +2722,6 @@ to a task-appropriate range (e.g. omega in Hz). "Avez, A." ; schema1:publisher "W. A. Benjamin" . -<https://w3id.org/tvbo/studies/Arnold1968a> a schema1:ScholarlyArticle, - owl:NamedIndividual ; - rdfs:label "Arnold1968a" . - <https://w3id.org/tvbo/studies/Bandyopadhyay2021> a schema1:ScholarlyArticle, owl:NamedIndividual ; rdfs:label "Bandyopadhyay2021" ; @@ -2987,10 +2983,6 @@ to a task-appropriate range (e.g. omega in Hz). schema1:publisher "Springer" ; schema1:volumeNumber "42" . -<https://w3id.org/tvbo/studies/GuckenheimerHolmes1983Alias> a schema1:ScholarlyArticle, - owl:NamedIndividual ; - rdfs:label "GuckenheimerHolmes1983Alias" . - <https://w3id.org/tvbo/studies/Halvorsen2000> a schema1:CreativeWork, owl:NamedIndividual ; rdfs:label "Halvorsen2000" ; @@ -3014,11 +3006,6 @@ to a task-appropriate range (e.g. omega in Hz). schema1:publisher "Elsevier BV" ; schema1:volumeNumber "105" . -<https://w3id.org/tvbo/studies/Henon1964> a schema1:ScholarlyArticle, - owl:NamedIndividual ; - rdfs:label "Henon1964" ; - schema1:identifier "10.1086/109234" . - <https://w3id.org/tvbo/studies/Henon1976> a schema1:ScholarlyArticle, owl:NamedIndividual ; rdfs:label "Henon1976" ; @@ -3042,10 +3029,6 @@ to a task-appropriate range (e.g. omega in Hz). schema1:pagination "73--79" ; schema1:volumeNumber "69" . -<https://w3id.org/tvbo/studies/Hindmarsh1984> a schema1:ScholarlyArticle, - owl:NamedIndividual ; - rdfs:label "Hindmarsh1984" . - <https://w3id.org/tvbo/studies/HindmarshRose1984> a schema1:ScholarlyArticle, owl:NamedIndividual ; rdfs:label "HindmarshRose1984" ; @@ -3057,11 +3040,6 @@ to a task-appropriate range (e.g. omega in Hz). schema1:pagination "87--102" ; schema1:volumeNumber "221" . -<https://w3id.org/tvbo/studies/Hodgkin1952> a schema1:ScholarlyArticle, - owl:NamedIndividual ; - rdfs:label "Hodgkin1952" ; - schema1:identifier "10.1113/jphysiol.1952.sp004764" . - <https://w3id.org/tvbo/studies/HodgkinHuxley1952> a schema1:ScholarlyArticle, owl:NamedIndividual ; rdfs:label "HodgkinHuxley1952" ; @@ -3246,10 +3224,6 @@ to a task-appropriate range (e.g. omega in Hz). schema1:isPartOf "New Journal of Physics" ; schema1:volumeNumber "20" . -<https://w3id.org/tvbo/studies/Micluta-Campeanu2018> a schema1:ScholarlyArticle, - owl:NamedIndividual ; - rdfs:label "Micluta-Campeanu2018" . - <https://w3id.org/tvbo/studies/MiclutaCampeanu2018> a schema1:ScholarlyArticle, owl:NamedIndividual ; rdfs:label "MiclutaCampeanu2018" ; @@ -3262,11 +3236,6 @@ to a task-appropriate range (e.g. omega in Hz). schema1:pagination "105" ; schema1:volumeNumber "70" . -<https://w3id.org/tvbo/studies/Mirshra2018> a schema1:ScholarlyArticle, - owl:NamedIndividual ; - rdfs:label "Mirshra2018" ; - schema1:identifier "10.1103/PhysRevE.97.062311" . - <https://w3id.org/tvbo/studies/Mishra2018> a schema1:ScholarlyArticle, owl:NamedIndividual ; rdfs:label "Mishra2018" ; @@ -3284,11 +3253,6 @@ to a task-appropriate range (e.g. omega in Hz). schema1:pagination "062311" ; schema1:volumeNumber "97" . -<https://w3id.org/tvbo/studies/Mishra2018a> a schema1:ScholarlyArticle, - owl:NamedIndividual ; - rdfs:label "Mishra2018a" ; - schema1:identifier "10.1103/PhysRevE.97.062311" . - <https://w3id.org/tvbo/studies/MorrisLecar1981> a schema1:ScholarlyArticle, owl:NamedIndividual ; rdfs:label "MorrisLecar1981" ; @@ -3307,10 +3271,6 @@ to a task-appropriate range (e.g. omega in Hz). schema1:author "Ott, Edward" ; schema1:publisher "Cambridge University Press" . -<https://w3id.org/tvbo/studies/Ott2010> a schema1:ScholarlyArticle, - owl:NamedIndividual ; - rdfs:label "Ott2010" . - <https://w3id.org/tvbo/studies/OttRiddled2014> a schema1:CreativeWork, owl:NamedIndividual ; rdfs:label "OttRiddled2014" ; @@ -3382,19 +3342,6 @@ to a task-appropriate range (e.g. omega in Hz). schema1:pagination "155--157" ; schema1:volumeNumber "71" . -<https://w3id.org/tvbo/studies/Roessler1979Alias> a schema1:ScholarlyArticle, - owl:NamedIndividual ; - rdfs:label "Roessler1979Alias" . - -<https://w3id.org/tvbo/studies/Rossler1976> a schema1:ScholarlyArticle, - owl:NamedIndividual ; - rdfs:label "Rossler1976" ; - schema1:identifier "10.1016/0375-9601(76)90101-8" . - -<https://w3id.org/tvbo/studies/Rossler1979> a schema1:ScholarlyArticle, - owl:NamedIndividual ; - rdfs:label "Rossler1979" . - <https://w3id.org/tvbo/studies/Ruelle1980> a schema1:ScholarlyArticle, owl:NamedIndividual ; rdfs:label "Ruelle1980" ; @@ -3582,10 +3529,6 @@ to a task-appropriate range (e.g. omega in Hz). dcterms:title "Ulam coupled map on a ring" ; schema1:author "Ulam, Stanislaw" . -<https://w3id.org/tvbo/studies/Volo2019a> a schema1:ScholarlyArticle, - owl:NamedIndividual ; - rdfs:label "Volo2019a" . - <https://w3id.org/tvbo/studies/Wang2008> a schema1:ScholarlyArticle, owl:NamedIndividual ; rdfs:label "Wang2008" ; diff --git a/ontology/tvb-o-struct.owl b/ontology/tvb-o-struct.owl index eceea260d..7fa53550a 100644 --- a/ontology/tvb-o-struct.owl +++ b/ontology/tvb-o-struct.owl @@ -41,14 +41,17 @@ tvbo:SoftwarePackage rdfs:label "Software package" . rdfs:label "DBSDataset (dbs)" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom <https://w3id.org/tvbo/dbs/ClinicalScore> ; - owl:onProperty <https://w3id.org/tvbo/dbs/clinical_scores> ], + owl:allValuesFrom <https://w3id.org/tvbo/dbs/DBSSubject> ; + owl:onProperty tvbo:subjects ], [ a owl:Restriction ; - owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/CommonCoordinateSpace> ; - owl:onProperty <https://w3id.org/tvbo/dbs/coordinate_space> ], + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/dbs/clinical_scores> ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/dbs/coordinate_space> ], + [ a owl:Restriction ; + owl:allValuesFrom <https://w3id.org/tvbo/dbs/ClinicalScore> ; + owl:onProperty <https://w3id.org/tvbo/dbs/clinical_scores> ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:subjects ], @@ -56,11 +59,8 @@ tvbo:SoftwarePackage rdfs:label "Software package" . owl:minCardinality 0 ; owl:onProperty <https://w3id.org/tvbo/dbs/coordinate_space> ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/clinical_scores> ], - [ a owl:Restriction ; - owl:allValuesFrom <https://w3id.org/tvbo/dbs/DBSSubject> ; - owl:onProperty tvbo:subjects ], + owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/CommonCoordinateSpace> ; + owl:onProperty <https://w3id.org/tvbo/dbs/coordinate_space> ], <https://w3id.org/tvbo/study/Dataset> ; skos:definition "Collection of data related to a specific DBS study." ; skos:inScheme tvbo:dbs ; @@ -83,64 +83,64 @@ tvbo:file a owl:DatatypeProperty ; rdfs:label "BrainAtlas" ; rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/isVersionOf> ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/author> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/abbreviation> ], + owl:minCardinality 0 ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/isVersionOf> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:minCardinality 1 ; owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/abbreviation> ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/versionIdentifier> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/abbreviation> ], [ a owl:Restriction ; - owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/CommonCoordinateSpace> ; + owl:maxCardinality 1 ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/coordinateSpace> ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty tvbo:name ], + owl:minCardinality 0 ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/abbreviation> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/versionIdentifier> ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/isVersionOf> ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/coordinateSpace> ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/terminology> ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/versionIdentifier> ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/author> ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/versionIdentifier> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/isVersionOf> ], + owl:maxCardinality 1 ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/versionIdentifier> ], + [ a owl:Restriction ; + owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/CommonCoordinateSpace> ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/coordinateSpace> ], [ a owl:Restriction ; owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/ParcellationTerminology> ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/terminology> ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/author> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/coordinateSpace> ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/isVersionOf> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/versionIdentifier> ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/terminology> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/terminology> ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/coordinateSpace> ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/isVersionOf> ] ; + owl:allValuesFrom xsd:string ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/author> ] ; skos:definition "A schema for representing a version of a brain atlas." ; skos:exactMatch <http://uri.interlex.org/tgbugs/uris/readable/atlas/Atlas> ; skos:inScheme <https://openminds.ebrains.eu/sands/BrainAtlas> . @@ -148,44 +148,44 @@ tvbo:file a owl:DatatypeProperty ; <http://uri.interlex.org/tgbugs/uris/readable/ParcellationTerminology> a owl:Class ; rdfs:label "ParcellationTerminology" ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/versionIdentifier> ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:label ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], - [ a owl:Restriction ; owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/ParcellationEntity> ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/entities> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/versionIdentifier> ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/versionIdentifier> ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/entities> ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/ontologyIdentifier> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom xsd:string ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/ontologyIdentifier> ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom xsd:string ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/entities> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:label ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/versionIdentifier> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/ontologyIdentifier> ] ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/versionIdentifier> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/versionIdentifier> ] ; skos:definition "A schema for representing a parcellation terminology, which consists of parcellation entities." ; skos:exactMatch <http://uri.interlex.org/tgbugs/uris/readable/parcellationTerminology> ; skos:inScheme <https://openminds.ebrains.eu/sands/BrainAtlas> . @@ -194,10 +194,10 @@ tvbo:LossFunction a owl:Class ; rdfs:label "LossFunction" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom tvbo:Aggregation ; owl:onProperty tvbo:aggregate ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Aggregation ; + owl:minCardinality 0 ; owl:onProperty tvbo:aggregate ], [ a owl:Restriction ; owl:maxCardinality 1 ; @@ -212,46 +212,46 @@ tvbo:NamedArray a owl:Class ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:unit ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:shape ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:name ], + owl:onProperty tvbo:unit ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:unit ], + owl:minCardinality 0 ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:unit ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:dtype ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:name ], + owl:onProperty tvbo:unit ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:dtype ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:allValuesFrom xsd:integer ; owl:onProperty tvbo:shape ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:unit ], + owl:onProperty tvbo:dtype ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:dtype ] ; + owl:onProperty tvbo:dtype ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:shape ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:name ] ; skos:definition "A named numeric array. Used as a sidecar slot value where a schema-typed object (e.g. ``ExperimentResult.parameters``) holds multiple arrays addressable by name (``w_LRE``, ``w_FFI``, ``J_i``, ...). The actual numeric data lives in the companion ``.h5`` at ``parameters/<name>``; the YAML carries only the descriptor." ; skos:exactMatch tvbo:NamedArray ; skos:inScheme <https://w3id.org/tvbo> . @@ -264,61 +264,61 @@ tvbo:Phenotype a owl:Class ; owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:label ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:cohort ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty tvbo:subjects ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:measures ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:measure_specs ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty tvbo:dataset_id ], + owl:onProperty tvbo:provenance ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:dataset_id ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:data_file ], + owl:onProperty tvbo:subjects ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:provenance ], + owl:minCardinality 0 ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Provenance ; owl:onProperty tvbo:provenance ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:category ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:cohort ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:measures ], + owl:onProperty tvbo:measure_specs ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:dataset_id ], + owl:onProperty tvbo:cohort ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 1 ; owl:onProperty tvbo:data_file ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:minCardinality 0 ; + owl:onProperty tvbo:measures ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:measures ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty tvbo:cohort ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:provenance ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:category ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:subjects ], + owl:allValuesFrom tvbo:MeasureSpec ; + owl:onProperty tvbo:measure_specs ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:category ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:label ], @@ -326,19 +326,19 @@ tvbo:Phenotype a owl:Class ; owl:maxCardinality 1 ; owl:onProperty tvbo:category ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:label ], + owl:minCardinality 1 ; + owl:onProperty tvbo:subjects ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:MeasureSpec ; - owl:onProperty tvbo:measure_specs ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:data_file ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:provenance ], + owl:minCardinality 1 ; + owl:onProperty tvbo:dataset_id ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:cohort ], + owl:onProperty tvbo:dataset_id ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:data_file ] ; skos:definition """Per-subject phenotype table (BIDS ``phenotype/`` directory convention). Carries cognitive scores, clinical scales, demographic variables, behavioral task outputs, physiological measures, or any other per-subject numeric measurement bundle for a cohort. Sidecar companion to per-subject Network sidecars in multi-subject studies that correlate simulated quantities with empirical scores (e.g. PMAT24_A, g-factor, CardSort, ProcSpeed for Schirner 2023). The yaml carries metadata + the measure list; the h5 carries ``measures/<name>`` 1-D float arrays of length ``len(subjects)``. Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs.io/en/stable/modality-agnostic-files/phenotypic-and-assessment-data.html) and with NIDM's ``nidm:Phenotype`` concept. Per-measure metadata can optionally carry Cognitive Atlas (https://www.cognitiveatlas.org/) ``cogat:Task`` and ``cogat:Concept`` IRIs via ``measure_specs``.""" ; @@ -349,62 +349,71 @@ tvbo:SimulationStudy a owl:Class ; rdfs:label "SimulationStudy" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:derived_from ], - [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:label ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:model ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:key ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Dynamics ; - owl:onProperty tvbo:model ], + owl:minCardinality 0 ; + owl:onProperty tvbo:references ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:references ], + owl:onProperty tvbo:key ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Sample ; owl:onProperty tvbo:sample ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:key ], + owl:allValuesFrom tvbo:Dynamics ; + owl:onProperty tvbo:model ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:model ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:key ], + owl:onProperty tvbo:workflow ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:sample ], + owl:onProperty tvbo:workflow ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty tvbo:derived_from ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:model ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:derived_from ], [ a owl:Restriction ; owl:allValuesFrom tvbo:SimulationExperiment ; owl:onProperty tvbo:simulation_experiments ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:derived_from ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:sample ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:key ], + owl:onProperty tvbo:sample ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:references ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:label ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:derived_from ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:simulation_experiments ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:model ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:key ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:WorkflowConfig ; + owl:onProperty tvbo:workflow ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:references ], tvbo:Study ; skos:exactMatch tvbo:SimulationStudy ; skos:inScheme <https://w3id.org/tvbo> . @@ -413,23 +422,14 @@ tvbo:SpatialField a owl:Class ; rdfs:label "SpatialField" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:values ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Equation ; - owl:onProperty tvbo:initial_expression ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:values ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:unit ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Mesh ; owl:onProperty tvbo:mesh ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:time_dependent ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:label ], @@ -438,61 +438,70 @@ tvbo:SpatialField a owl:Class ; owl:onProperty tvbo:values ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:mesh ], + owl:onProperty tvbo:initial_value ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:time_dependent ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:mesh ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:unit ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:unit ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:quantity_kind ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:initial_value ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:time_dependent ], + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:initial_value ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:quantity_kind ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:initial_expression ], + owl:onProperty tvbo:values ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:mesh ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], + owl:minCardinality 0 ; + owl:onProperty tvbo:initial_expression ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:quantity_kind ], + owl:onProperty tvbo:unit ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:initial_value ], + owl:allValuesFrom xsd:boolean ; + owl:onProperty tvbo:time_dependent ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:initial_expression ], + owl:onProperty tvbo:unit ], [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; + owl:minCardinality 0 ; owl:onProperty tvbo:time_dependent ], [ a owl:Restriction ; owl:minCardinality 0 ; + owl:onProperty tvbo:values ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Equation ; + owl:onProperty tvbo:initial_expression ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty tvbo:quantity_kind ], [ a owl:Restriction ; owl:maxCardinality 1 ; + owl:onProperty tvbo:initial_expression ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:initial_value ] ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:unit ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Mesh ; + owl:onProperty tvbo:mesh ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:quantity_kind ] ; skos:exactMatch tvbo:SpatialField ; skos:inScheme <https://w3id.org/tvbo> . @@ -502,15 +511,15 @@ tvbo:TemporalApplicableEquation a owl:Class ; rdfs:subClassOf [ a owl:Restriction ; owl:allValuesFrom xsd:boolean ; owl:onProperty tvbo:time_dependent ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:time_dependent ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:time_dependent ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Parameter ; owl:onProperty tvbo:parameters ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:time_dependent ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:parameters ], @@ -522,68 +531,68 @@ tvbo:TemporalApplicableEquation a owl:Class ; rdfs:label "ClinicalImprovement (dbs)" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty <https://w3id.org/tvbo/dbs/baseline_value> ], + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/dbs/timepoint> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/dbs/evaluator> ], + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/dbs/time_post_surgery> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/dbs/absolute_value> ], + owl:onProperty <https://w3id.org/tvbo/dbs/score> ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom xsd:string ; owl:onProperty <https://w3id.org/tvbo/dbs/evaluator> ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty <https://w3id.org/tvbo/dbs/absolute_value> ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty <https://w3id.org/tvbo/dbs/percent_change> ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/dbs/baseline_value> ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom <https://w3id.org/tvbo/dbs/ClinicalScore> ; owl:onProperty <https://w3id.org/tvbo/dbs/score> ], [ a owl:Restriction ; owl:allValuesFrom xsd:float ; - owl:onProperty <https://w3id.org/tvbo/dbs/absolute_value> ], + owl:onProperty <https://w3id.org/tvbo/dbs/time_post_surgery> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/dbs/timepoint> ], + owl:onProperty <https://w3id.org/tvbo/dbs/percent_change> ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/evaluator> ], + owl:allValuesFrom xsd:float ; + owl:onProperty <https://w3id.org/tvbo/dbs/baseline_value> ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/dbs/time_post_surgery> ], + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/dbs/baseline_value> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/time_post_surgery> ], + owl:onProperty <https://w3id.org/tvbo/dbs/percent_change> ], [ a owl:Restriction ; owl:allValuesFrom xsd:float ; - owl:onProperty <https://w3id.org/tvbo/dbs/time_post_surgery> ], + owl:onProperty <https://w3id.org/tvbo/dbs/percent_change> ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/dbs/absolute_value> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:float ; + owl:onProperty <https://w3id.org/tvbo/dbs/absolute_value> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/dbs/evaluator> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty <https://w3id.org/tvbo/dbs/timepoint> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/dbs/percent_change> ], + owl:onProperty <https://w3id.org/tvbo/dbs/evaluator> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/dbs/score> ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/percent_change> ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/baseline_value> ], + owl:onProperty <https://w3id.org/tvbo/dbs/timepoint> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/timepoint> ], + owl:onProperty <https://w3id.org/tvbo/dbs/score> ], [ a owl:Restriction ; - owl:allValuesFrom <https://w3id.org/tvbo/dbs/ClinicalScore> ; - owl:onProperty <https://w3id.org/tvbo/dbs/score> ] ; + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/dbs/time_post_surgery> ] ; skos:definition "Relative improvement on a defined clinical score." ; skos:inScheme tvbo:dbs ; skos:notation "ClinicalImprovement" . @@ -592,20 +601,11 @@ tvbo:TemporalApplicableEquation a owl:Class ; rdfs:label "ClinicalScale (dbs)" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/dbs/version> ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/dbs/domain> ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/dbs/acronym> ], - [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/dbs/version> ], + owl:onProperty <https://w3id.org/tvbo/dbs/name> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/acronym> ], + owl:onProperty <https://w3id.org/tvbo/dbs/version> ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/dbs/name> ], @@ -615,6 +615,15 @@ tvbo:TemporalApplicableEquation a owl:Class ; [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty <https://w3id.org/tvbo/dbs/reference> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/dbs/version> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/dbs/acronym> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/dbs/domain> ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/dbs/reference> ], @@ -622,19 +631,19 @@ tvbo:TemporalApplicableEquation a owl:Class ; owl:minCardinality 0 ; owl:onProperty <https://w3id.org/tvbo/dbs/domain> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/dbs/version> ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/dbs/acronym> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/dbs/name> ], + owl:onProperty <https://w3id.org/tvbo/dbs/domain> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/version> ], + owl:onProperty <https://w3id.org/tvbo/dbs/acronym> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/dbs/domain> ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; owl:onProperty <https://w3id.org/tvbo/dbs/name> ] ; skos:definition "A clinical assessment inventory or structured scale composed of multiple scores or items." ; skos:inScheme tvbo:dbs ; @@ -644,29 +653,29 @@ tvbo:TemporalApplicableEquation a owl:Class ; rdfs:label "Contact (dbs)" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/dbs/label> ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/dbs/label> ], - [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty <https://w3id.org/tvbo/dbs/coordinate> ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/dbs/coordinate> ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/contact_id> ], [ a owl:Restriction ; owl:allValuesFrom xsd:integer ; owl:onProperty <https://w3id.org/tvbo/dbs/contact_id> ], [ a owl:Restriction ; owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/Coordinate> ; owl:onProperty <https://w3id.org/tvbo/dbs/coordinate> ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/dbs/coordinate> ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/dbs/label> ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/dbs/contact_id> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/dbs/contact_id> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/dbs/label> ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty <https://w3id.org/tvbo/dbs/label> ] ; @@ -678,50 +687,50 @@ tvbo:TemporalApplicableEquation a owl:Class ; rdfs:label "DBSProtocol (dbs)" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom <https://w3id.org/tvbo/dbs/Electrode> ; - owl:onProperty <https://w3id.org/tvbo/dbs/electrodes> ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/notes> ], + owl:onProperty <https://w3id.org/tvbo/dbs/settings> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:name ], + owl:onProperty <https://w3id.org/tvbo/dbs/timing_info> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:name ], + owl:allValuesFrom <https://w3id.org/tvbo/dbs/StimulationSetting> ; + owl:onProperty <https://w3id.org/tvbo/dbs/settings> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/dbs/notes> ], + owl:allValuesFrom <https://w3id.org/tvbo/dbs/ClinicalImprovement> ; + owl:onProperty <https://w3id.org/tvbo/dbs/clinical_improvement> ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty <https://w3id.org/tvbo/dbs/electrodes> ], [ a owl:Restriction ; - owl:allValuesFrom <https://w3id.org/tvbo/dbs/StimulationSetting> ; - owl:onProperty <https://w3id.org/tvbo/dbs/settings> ], + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/dbs/notes> ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/settings> ], + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/dbs/notes> ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty tvbo:name ], + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/dbs/notes> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/clinical_improvement> ], + owl:onProperty <https://w3id.org/tvbo/dbs/timing_info> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/dbs/timing_info> ], + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/timing_info> ], + owl:onProperty <https://w3id.org/tvbo/dbs/clinical_improvement> ], + [ a owl:Restriction ; + owl:allValuesFrom <https://w3id.org/tvbo/dbs/Electrode> ; + owl:onProperty <https://w3id.org/tvbo/dbs/electrodes> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty <https://w3id.org/tvbo/dbs/timing_info> ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/dbs/notes> ], - [ a owl:Restriction ; - owl:allValuesFrom <https://w3id.org/tvbo/dbs/ClinicalImprovement> ; - owl:onProperty <https://w3id.org/tvbo/dbs/clinical_improvement> ] ; + owl:minCardinality 1 ; + owl:onProperty tvbo:name ] ; skos:definition "A protocol describing DBS therapy, potentially bilateral or multi-lead." ; skos:inScheme tvbo:dbs ; skos:notation "DBSProtocol" . @@ -732,15 +741,6 @@ tvbo:TemporalApplicableEquation a owl:Class ; rdfs:subClassOf [ a owl:Restriction ; owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/CommonCoordinateSpace> ; owl:onProperty <https://w3id.org/tvbo/dbs/coordinate_space> ], - [ a owl:Restriction ; - owl:allValuesFrom <https://w3id.org/tvbo/dbs/DBSProtocol> ; - owl:onProperty <https://w3id.org/tvbo/dbs/protocols> ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/dbs/diagnosis> ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/dbs/handedness> ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty <https://w3id.org/tvbo/dbs/protocols> ], @@ -749,7 +749,7 @@ tvbo:TemporalApplicableEquation a owl:Class ; owl:onProperty <https://w3id.org/tvbo/dbs/handedness> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/diagnosis> ], + owl:onProperty <https://w3id.org/tvbo/dbs/handedness> ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/dbs/diagnosis> ], @@ -757,11 +757,20 @@ tvbo:TemporalApplicableEquation a owl:Class ; owl:maxCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/dbs/coordinate_space> ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/dbs/diagnosis> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; owl:onProperty <https://w3id.org/tvbo/dbs/handedness> ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty <https://w3id.org/tvbo/dbs/coordinate_space> ], + [ a owl:Restriction ; + owl:allValuesFrom <https://w3id.org/tvbo/dbs/DBSProtocol> ; + owl:onProperty <https://w3id.org/tvbo/dbs/protocols> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/dbs/diagnosis> ], <https://w3id.org/tvbo/study/Subject> ; skos:definition "Human or animal subject receiving DBS." ; skos:inScheme tvbo:dbs ; @@ -771,32 +780,32 @@ tvbo:TemporalApplicableEquation a owl:Class ; rdfs:label "EField (dbs)" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/dbs/volume_data> ], - [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom xsd:string ; owl:onProperty <https://w3id.org/tvbo/dbs/volume_data> ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/dbs/coordinate_space> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty <https://w3id.org/tvbo/dbs/threshold_applied> ], + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/dbs/volume_data> ], [ a owl:Restriction ; owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/dbs/volume_data> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:float ; owl:onProperty <https://w3id.org/tvbo/dbs/threshold_applied> ], [ a owl:Restriction ; owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/CommonCoordinateSpace> ; owl:onProperty <https://w3id.org/tvbo/dbs/coordinate_space> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/dbs/coordinate_space> ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/dbs/threshold_applied> ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/dbs/volume_data> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/coordinate_space> ] ; + owl:onProperty <https://w3id.org/tvbo/dbs/threshold_applied> ] ; skos:definition "Simulated electric field from DBS modeling." ; skos:inScheme tvbo:dbs ; skos:notation "EField" . @@ -805,65 +814,65 @@ tvbo:TemporalApplicableEquation a owl:Class ; rdfs:label "StimulationSetting (dbs)" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom <https://w3id.org/tvbo/dbs/EField> ; - owl:onProperty <https://w3id.org/tvbo/dbs/efield> ], - [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty <https://w3id.org/tvbo/dbs/efield> ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom tvbo:Parameter ; owl:onProperty <https://w3id.org/tvbo/dbs/frequency> ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Parameter ; + owl:onProperty <https://w3id.org/tvbo/dbs/pulse_width> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/dbs/pulse_width> ], [ a owl:Restriction ; owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/dbs/amplitude> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:integer ; + owl:onProperty <https://w3id.org/tvbo/dbs/active_contacts> ], + [ a owl:Restriction ; + owl:allValuesFrom <https://w3id.org/tvbo/dbs/Electrode> ; owl:onProperty <https://w3id.org/tvbo/dbs/electrode_reference> ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Parameter ; owl:onProperty <https://w3id.org/tvbo/dbs/amplitude> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/amplitude> ], + owl:onProperty <https://w3id.org/tvbo/dbs/active_contacts> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/dbs/pulse_width> ], + owl:onProperty <https://w3id.org/tvbo/dbs/electrode_reference> ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/dbs/mode> ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/pulse_width> ], + owl:allValuesFrom <https://w3id.org/tvbo/dbs/EField> ; + owl:onProperty <https://w3id.org/tvbo/dbs/efield> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/dbs/efield> ], + owl:onProperty <https://w3id.org/tvbo/dbs/frequency> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/active_contacts> ], + owl:onProperty <https://w3id.org/tvbo/dbs/mode> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty <https://w3id.org/tvbo/dbs/active_contacts> ], + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/dbs/pulse_width> ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom xsd:string ; owl:onProperty <https://w3id.org/tvbo/dbs/mode> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/dbs/frequency> ], + owl:onProperty <https://w3id.org/tvbo/dbs/efield> ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty <https://w3id.org/tvbo/dbs/electrode_reference> ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Parameter ; - owl:onProperty <https://w3id.org/tvbo/dbs/pulse_width> ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty <https://w3id.org/tvbo/dbs/amplitude> ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Parameter ; - owl:onProperty <https://w3id.org/tvbo/dbs/frequency> ], - [ a owl:Restriction ; - owl:allValuesFrom <https://w3id.org/tvbo/dbs/Electrode> ; - owl:onProperty <https://w3id.org/tvbo/dbs/electrode_reference> ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/dbs/mode> ] ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/dbs/frequency> ] ; skos:definition "DBS parameters for a specific session." ; skos:inScheme tvbo:dbs ; skos:notation "StimulationSetting" . @@ -872,155 +881,155 @@ tvbo:TemporalApplicableEquation a owl:Class ; rdfs:label "SimulationTool (software)" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/date_modified> ], + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/software/reference_publication> ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/version> ], + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/software/funder> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/keywords> ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/software/runtime_platform> ], + owl:onProperty <https://w3id.org/tvbo/software/maintainer> ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/software/issue_tracker> ], + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/software/is_accessible_for_free> ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/software/date_modified> ], + owl:allValuesFrom tvbo:ToolRole ; + owl:onProperty <https://w3id.org/tvbo/software/tool_role> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/software/author> ], + owl:onProperty <https://w3id.org/tvbo/software/application_category> ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/software/development_status> ], + owl:allValuesFrom xsd:anyURI ; + owl:onProperty <https://w3id.org/tvbo/software/same_as> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/software/keywords> ], [ a owl:Restriction ; owl:allValuesFrom tvbo:DevelopmentStatus ; owl:onProperty <https://w3id.org/tvbo/software/development_status> ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:SimulationScale ; + owl:onProperty <https://w3id.org/tvbo/software/scale> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/issue_tracker> ], + owl:onProperty <https://w3id.org/tvbo/software/application_category> ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/software/reference_publication> ], + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/software/operating_system> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:anyURI ; - owl:onProperty <https://w3id.org/tvbo/software/issue_tracker> ], + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/software/author> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/software/keywords> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/software/runtime_platform> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/software/date_created> ], + owl:onProperty <https://w3id.org/tvbo/software/date_modified> ], [ a owl:Restriction ; owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/software/date_modified> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; owl:onProperty <https://w3id.org/tvbo/software/reference_publication> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:anyURI ; - owl:onProperty <https://w3id.org/tvbo/software/same_as> ], + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/software/citation> ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:ModelParadigm ; - owl:onProperty <https://w3id.org/tvbo/software/model_paradigm> ], + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/software/programming_language> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/maintainer> ], + owl:onProperty <https://w3id.org/tvbo/software/author> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/model_paradigm> ], + owl:onProperty <https://w3id.org/tvbo/software/same_as> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:date ; + owl:onProperty <https://w3id.org/tvbo/software/date_created> ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/software/development_status> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty <https://w3id.org/tvbo/software/version> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/interoperates_with> ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/date_created> ], + owl:onProperty <https://w3id.org/tvbo/software/development_status> ], [ a owl:Restriction ; - owl:allValuesFrom <https://w3id.org/tvbo/software/SimulationTool> ; - owl:onProperty <https://w3id.org/tvbo/software/interoperates_with> ], + owl:allValuesFrom xsd:date ; + owl:onProperty <https://w3id.org/tvbo/software/date_modified> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty <https://w3id.org/tvbo/software/is_accessible_for_free> ], + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/software/funder> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/software/operating_system> ], + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/software/reference_publication> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/tool_role> ], + owl:onProperty <https://w3id.org/tvbo/software/version> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/software/maintainer> ], + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/software/is_accessible_for_free> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/runtime_platform> ], + owl:onProperty <https://w3id.org/tvbo/software/interoperates_with> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/software/application_category> ], + owl:onProperty <https://w3id.org/tvbo/software/issue_tracker> ], + [ a owl:Restriction ; + owl:allValuesFrom <https://w3id.org/tvbo/software/SimulationTool> ; + owl:onProperty <https://w3id.org/tvbo/software/interoperates_with> ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/software/version> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/software/funder> ], + owl:allValuesFrom xsd:boolean ; + owl:onProperty <https://w3id.org/tvbo/software/is_accessible_for_free> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/scale> ], + owl:onProperty <https://w3id.org/tvbo/software/model_paradigm> ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom tvbo:ProgrammingLanguageEnum ; owl:onProperty <https://w3id.org/tvbo/software/programming_language> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/application_category> ], + owl:onProperty <https://w3id.org/tvbo/software/tool_role> ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/funder> ], + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/software/date_created> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/citation> ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:ProgrammingLanguageEnum ; - owl:onProperty <https://w3id.org/tvbo/software/programming_language> ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:date ; - owl:onProperty <https://w3id.org/tvbo/software/date_modified> ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/software/reference_publication> ], + owl:onProperty <https://w3id.org/tvbo/software/issue_tracker> ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:SimulationScale ; - owl:onProperty <https://w3id.org/tvbo/software/scale> ], + owl:allValuesFrom xsd:anyURI ; + owl:onProperty <https://w3id.org/tvbo/software/issue_tracker> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/software/citation> ], + owl:onProperty <https://w3id.org/tvbo/software/operating_system> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/software/keywords> ], + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/software/runtime_platform> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:maxCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/software/application_category> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/same_as> ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/development_status> ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:date ; - owl:onProperty <https://w3id.org/tvbo/software/date_created> ], + owl:onProperty <https://w3id.org/tvbo/software/citation> ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/operating_system> ], + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/software/maintainer> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/author> ], + owl:onProperty <https://w3id.org/tvbo/software/scale> ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/software/is_accessible_for_free> ], + owl:allValuesFrom tvbo:ModelParadigm ; + owl:onProperty <https://w3id.org/tvbo/software/model_paradigm> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/is_accessible_for_free> ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:ToolRole ; - owl:onProperty <https://w3id.org/tvbo/software/tool_role> ], + owl:onProperty <https://w3id.org/tvbo/software/date_created> ], <https://w3id.org/tvbo/software/SoftwarePackage> ; skos:definition "A software tool for computational neuroscience simulation, analysis, or model specification. Extends SoftwarePackage with neuroscience-specific controlled vocabularies for scale, paradigm, role, and interoperability. Aligned with CodeMeta v3 and DOAP." ; skos:exactMatch schema1:SoftwareApplication ; @@ -1031,47 +1040,47 @@ tvbo:TemporalApplicableEquation a owl:Class ; rdfs:label "Session (study)" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom xsd:string ; owl:onProperty <https://w3id.org/tvbo/study/session_id> ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/study/label> ], + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/study/session_id> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/study/empirical_data> ], + owl:onProperty <https://w3id.org/tvbo/study/condition> ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/study/label> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/study/condition> ], + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/study/network> ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/study/network> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/study/condition> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/study/session_id> ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/study/network> ], + owl:onProperty <https://w3id.org/tvbo/study/label> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/study/condition> ], + owl:onProperty <https://w3id.org/tvbo/study/empirical_data> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/study/empirical_data> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/study/network> ], + owl:onProperty <https://w3id.org/tvbo/study/label> ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/study/condition> ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/study/empirical_data> ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/study/session_id> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/study/label> ] ; + owl:onProperty <https://w3id.org/tvbo/study/network> ] ; skos:definition "A data collection session for a subject. Corresponds to a BIDS 'ses-' entity. Sessions capture longitudinal timepoints (baseline, follow-up), different experimental conditions, or repeated measures." ; skos:inScheme tvbo:study ; skos:notation "Session" . @@ -1110,6 +1119,11 @@ qudt:KiloGM a owl:Class ; skos:definition "Kilogram" ; skos:exactMatch UO:0000009 . +qudt:KiloGM-M2 a owl:Class ; + rdfs:label "kg_m2" ; + rdfs:subClassOf tvbo:UnitEnum ; + skos:definition "Kilogram metre squared (moment of inertia)" . + qudt:KiloHZ a owl:Class ; rdfs:label "kHz" ; rdfs:subClassOf tvbo:UnitEnum ; @@ -1136,6 +1150,11 @@ qudt:MOL-PER-M3 a owl:Class ; rdfs:subClassOf tvbo:UnitEnum ; skos:definition "Mole per cubic metre (mol/mΒ³)" . +qudt:MegaW a owl:Class ; + rdfs:label "MW" ; + rdfs:subClassOf tvbo:UnitEnum ; + skos:definition "Megawatt (10⁢ W); grid real/net power" . + qudt:MicroM3 a owl:Class ; rdfs:label "um3" ; rdfs:subClassOf tvbo:UnitEnum ; @@ -1301,6 +1320,11 @@ qudt:V a owl:Class ; skos:definition "Volt" ; skos:exactMatch UO:0000218 . +qudt:W a owl:Class ; + rdfs:label "W" ; + rdfs:subClassOf tvbo:UnitEnum ; + skos:definition "Watt (power)" . + <http://uri.interlex.org/tgbugs/uris/readable/author> a owl:DatatypeProperty ; rdfs:label "author" ; rdfs:range xsd:string ; @@ -1558,6 +1582,20 @@ biotools:operation_2945 a owl:Class ; skos:definition "No aggregation" ; skos:notation "none" . +<https://w3id.org/tvbo/AggregationType#std> a owl:Class ; + rdfs:label "std (AggregationType)" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf tvbo:AggregationType ; + skos:definition "Standard deviation over time (per node)" ; + skos:notation "std" . + +<https://w3id.org/tvbo/AggregationType#variance> a owl:Class ; + rdfs:label "variance (AggregationType)" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf tvbo:AggregationType ; + skos:definition "Variance over time (per node)" ; + skos:notation "variance" . + <https://w3id.org/tvbo/AggregationType#window> a owl:Class ; rdfs:label "window (AggregationType)" ; rdfs:isDefinedBy tvbo:struct ; @@ -1589,32 +1627,32 @@ tvbo:AlgorithmInclude a owl:Class ; owl:minCardinality 0 ; owl:onProperty tvbo:mode ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom tvbo:Algorithm ; owl:onProperty tvbo:algorithm ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:arguments ], + owl:allValuesFrom tvbo:AlgorithmCompositionMode ; + owl:onProperty tvbo:mode ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:inner_iterations ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:AlgorithmCompositionMode ; - owl:onProperty tvbo:mode ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Parameter ; - owl:onProperty tvbo:arguments ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:inner_iterations ], [ a owl:Restriction ; owl:allValuesFrom xsd:integer ; owl:onProperty tvbo:inner_iterations ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Algorithm ; - owl:onProperty tvbo:algorithm ], + owl:minCardinality 0 ; + owl:onProperty tvbo:arguments ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty tvbo:algorithm ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:inner_iterations ] ; + owl:onProperty tvbo:algorithm ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Parameter ; + owl:onProperty tvbo:arguments ] ; skos:definition "Reference to an included algorithm with optional argument overrides. Allows combining algorithms with different hyperparameter values." ; skos:exactMatch tvbo:AlgorithmInclude ; skos:inScheme <https://w3id.org/tvbo> . @@ -1623,26 +1661,23 @@ tvbo:AlgorithmStage a owl:Class ; rdfs:label "AlgorithmStage" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:n_iterations ], + owl:allValuesFrom tvbo:Parameter ; + owl:onProperty tvbo:arguments ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty tvbo:n_iterations ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:description ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Parameter ; - owl:onProperty tvbo:arguments ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:minCardinality 0 ; owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:label ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:n_iterations ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:label ], @@ -1654,7 +1689,10 @@ tvbo:AlgorithmStage a owl:Class ; owl:onProperty tvbo:arguments ], [ a owl:Restriction ; owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:n_iterations ] ; + owl:onProperty tvbo:n_iterations ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:description ] ; skos:definition "One stage of a multi-stage tuning schedule. The algorithm body is run once per stage, in order, carrying the trajectory state, FC window buffer, and monitors forward β€” so the stages form one continuous online tuning run. Each stage overrides n_iterations and selected hyperparameters (e.g. Schirner 2023's 6 stages: eta halves and the FC window doubles per stage, sharpening the per-edge gradient over time)." ; skos:exactMatch tvbo:AlgorithmStage ; skos:inScheme <https://w3id.org/tvbo> . @@ -1667,149 +1705,70 @@ tvbo:Analysis a owl:Class ; owl:onProperty tvbo:wrt ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:target ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; owl:onProperty tvbo:type ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:target ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:type ], + owl:onProperty tvbo:wrt ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; + owl:onProperty tvbo:target ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:type ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:wrt ], + owl:onProperty tvbo:parameters ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:target ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:type ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Parameter ; owl:onProperty tvbo:parameters ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:parameters ] ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:target ] ; skos:definition "A general analysis observable: a quantity obtained by ANALYZING the model, its solve, or a derived loss, rather than by transforming the recorded trajectory. It is deliberately broad β€” the same concept covers parameter sensitivities/gradients (autodiff or finite-difference), stability spectra (Lyapunov), bifurcation quantities, identifiability/Fisher-information metrics, and future analyses. `type` names the analysis (extensible); `target` and `wrt` bind it to what is analyzed and with respect to what; `parameters` carries the analysis-specific configuration. Backend-neutral: each backend maps `type` to its own machinery, or emits a comment and skips when it has no equivalent (it does not raise)." ; skos:exactMatch tvbo:Analysis ; skos:inScheme <https://w3id.org/tvbo> . -tvbo:BidsEntities a owl:Class ; - rdfs:label "BidsEntities" ; +tvbo:Binding a owl:Class ; + rdfs:label "Binding" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:hemi ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:cohort ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:scale ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:reconstruction ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:template ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:hemi ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:hemi ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:cohort ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:atlas ], - [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:template ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:acquisition ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:template ], + owl:onProperty tvbo:callable ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:segmentation ], + owl:onProperty tvbo:args ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:atlas ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:segmentation ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:scale ], + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:atlas ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:reconstruction ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:acquisition ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:scale ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:reconstruction ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:segmentation ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:acquisition ], + owl:onProperty tvbo:callable ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:cohort ] ; - skos:definition "BIDS filename entities (BEP017-aligned) for provenance and data discovery. Reusable on Network, BrainAtlas, Tractogram, or any dataset with BIDS-conformant naming." ; - skos:exactMatch tvbo:BidsEntities ; - skos:inScheme <https://w3id.org/tvbo> . - -tvbo:Binding a owl:Class ; - rdfs:label "Binding" ; - rdfs:isDefinedBy tvbo:struct ; - rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:args ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:library ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:callable ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:library ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:callable ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:name ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:callable ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:library ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:args ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:name ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty tvbo:library ] ; skos:definition "Per-backend construction binding for a GraphGenerator: how to build the graph in a specific target library. Keyed by backend id β€” the ``name`` is the backend (e.g. python, julia, networkx)." ; skos:exactMatch tvbo:Binding ; @@ -1843,99 +1802,99 @@ tvbo:BranchSwitch a owl:Class ; rdfs:label "BranchSwitch" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:source_point ], - [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty tvbo:discretization ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:delta_p ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:name ], + owl:onProperty tvbo:continuation ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:name ], + owl:minCardinality 0 ; + owl:onProperty tvbo:parameters ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Continuation ; + owl:onProperty tvbo:continuation ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Parameter ; + owl:onProperty tvbo:parameters ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:delta_p ], + owl:onProperty tvbo:source_point ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:delta_p ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:options ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Discretization ; owl:onProperty tvbo:discretization ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:options ], + owl:onProperty tvbo:delta_p ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:maxCardinality 1 ; owl:onProperty tvbo:description ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:bothside ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Parameter ; - owl:onProperty tvbo:parameters ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Continuation ; - owl:onProperty tvbo:continuation ], + owl:minCardinality 0 ; + owl:onProperty tvbo:discretization ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:bothside ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:source_point ], + owl:allValuesFrom tvbo:Option ; + owl:onProperty tvbo:options ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:source_point ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:discretization ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:parameters ], + owl:onProperty tvbo:continuation ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:delta_p ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:source_point ], [ a owl:Restriction ; owl:allValuesFrom xsd:boolean ; owl:onProperty tvbo:bothside ], [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:description ] ; + skos:definition "Specification for switching from a detected bifurcation point to a new branch (periodic orbits from Hopf, fold continuation, etc.). Each BranchSwitch says: \"from which special point on the parent branch, continue what kind of object, with what settings.\" Override parent solver settings via the inline continuation field β€” only explicitly set attributes take effect; everything else is inherited from the parent Continuation." ; + skos:exactMatch tvbo:BranchSwitch ; + skos:inScheme <https://w3id.org/tvbo> . + +tvbo:Case a owl:Class ; + rdfs:label "Case" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:continuation ], + owl:onProperty tvbo:equation ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Option ; - owl:onProperty tvbo:options ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:delta_p ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:description ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:continuation ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty tvbo:name ] ; - skos:definition "Specification for switching from a detected bifurcation point to a new branch (periodic orbits from Hopf, fold continuation, etc.). Each BranchSwitch says: \"from which special point on the parent branch, continue what kind of object, with what settings.\" Override parent solver settings via the inline continuation field β€” only explicitly set attributes take effect; everything else is inherited from the parent Continuation." ; - skos:exactMatch tvbo:BranchSwitch ; - skos:inScheme <https://w3id.org/tvbo> . - -tvbo:Case a owl:Class ; - rdfs:label "Case" ; - rdfs:isDefinedBy tvbo:struct ; - rdfs:subClassOf [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:equation ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:equation ], + owl:onProperty tvbo:condition ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:condition ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:condition ], + owl:minCardinality 0 ; + owl:onProperty tvbo:equation ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Equation ; owl:onProperty tvbo:equation ], @@ -1949,23 +1908,23 @@ tvbo:ConditionalBlock a owl:Class ; rdfs:label "ConditionalBlock" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:condition ], - [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:expression ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:condition ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:expression ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:condition ], + owl:onProperty tvbo:expression ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:expression ] ; + owl:onProperty tvbo:condition ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:condition ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:condition ] ; skos:definition "A single condition and its corresponding equation segment." ; skos:exactMatch tvbo:ConditionalBlock ; skos:inScheme <https://w3id.org/tvbo> . @@ -1995,135 +1954,149 @@ tvbo:CouplingInput a owl:Class ; rdfs:label "CouplingInput" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:name ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:dimension ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:keys ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:source ], + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:dimension ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:boolean ; + owl:onProperty tvbo:local ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:keys ], + owl:onProperty tvbo:source ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 1 ; owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:local ], + owl:minCardinality 0 ; + owl:onProperty tvbo:dimension ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:source ], + owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; + owl:minCardinality 0 ; owl:onProperty tvbo:local ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:source ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:dimension ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:dimension ], + owl:onProperty tvbo:local ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:dimension ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:keys ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:local ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:source ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:keys ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:minCardinality 0 ; owl:onProperty tvbo:description ] ; skos:definition "Specification of a coupling input channel for multi-coupling dynamics" ; skos:exactMatch tvbo:CouplingInput ; skos:inScheme <https://w3id.org/tvbo> . +<https://w3id.org/tvbo/CouplingStageEvaluation#per_stage> a owl:Class ; + rdfs:label "per_stage (CouplingStageEvaluation)" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf tvbo:CouplingStageEvaluation ; + skos:definition "Re-evaluate the coupling at every integrator stage β€” the coupling is a full part of the vector field (standard ODE integration). Accurate; required to reproduce reference integrators for stiff / chaotic / multistable systems. (tvboptim maps this to recompute_coupling_per_stage=True; diffrax already recomputes the whole RHS per stage.)" ; + skos:notation "per_stage" . + +<https://w3id.org/tvbo/CouplingStageEvaluation#per_step> a owl:Class ; + rdfs:label "per_step (CouplingStageEvaluation)" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf tvbo:CouplingStageEvaluation ; + skos:definition "Evaluate the coupling once per integration step and hold it constant across the stages β€” a TVB-style efficiency shortcut (the coupling reduction runs once per step). Faster but lower- order in the coupling; can change the trajectory for sensitive systems. (tvboptim: recompute_coupling_per_stage=False, the current backend default.)" ; + skos:notation "per_step" . + tvbo:DataSource a owl:Class ; rdfs:label "DataSource" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:key ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:key ], [ a owl:Restriction ; owl:maxCardinality 1 ; + owl:onProperty tvbo:key ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Function ; owl:onProperty tvbo:preprocessing ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty tvbo:format ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:path ], + owl:onProperty tvbo:loader ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:path ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:format ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:key ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:format ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:name ], + owl:allValuesFrom tvbo:Callable ; + owl:onProperty tvbo:loader ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Function ; - owl:onProperty tvbo:preprocessing ], + owl:minCardinality 0 ; + owl:onProperty tvbo:path ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:loader ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:loader ], + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:path ], + owl:onProperty tvbo:format ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:loader ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:maxCardinality 1 ; owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Callable ; - owl:onProperty tvbo:loader ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:preprocessing ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:name ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:path ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:key ], + owl:minCardinality 1 ; + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:preprocessing ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:key ], + owl:onProperty tvbo:format ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:description ] ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:description ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:preprocessing ] ; skos:definition "Specification for loading external/empirical data." ; skos:exactMatch tvbo:DataSource ; skos:inScheme <https://w3id.org/tvbo> . @@ -2181,26 +2154,20 @@ tvbo:DifferentialOperator a owl:Class ; rdfs:label "DifferentialOperator" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:definition ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty tvbo:equation ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:tensor_coefficient ], + owl:minCardinality 0 ; + owl:onProperty tvbo:operator_type ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:tensor_coefficient ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:OperatorType ; - owl:onProperty tvbo:operator_type ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:coefficient ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:expression ], + owl:onProperty tvbo:operator_type ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:definition ], @@ -2208,41 +2175,47 @@ tvbo:DifferentialOperator a owl:Class ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:definition ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:tensor_coefficient ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:equation ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:coefficient ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Equation ; owl:onProperty tvbo:expression ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:operator_type ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Parameter ; + owl:onProperty tvbo:coefficient ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty tvbo:tensor_coefficient ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom tvbo:Equation ; + owl:onProperty tvbo:equation ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:OperatorType ; owl:onProperty tvbo:operator_type ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:expression ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:coefficient ], + owl:onProperty tvbo:expression ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Parameter ; + owl:minCardinality 0 ; owl:onProperty tvbo:coefficient ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:definition ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Equation ; - owl:onProperty tvbo:equation ] ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:equation ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Parameter ; + owl:onProperty tvbo:tensor_coefficient ] ; skos:exactMatch tvbo:DifferentialOperator ; skos:inScheme <https://w3id.org/tvbo> . @@ -2250,32 +2223,32 @@ tvbo:Differentiation a owl:Class ; rdfs:label "Differentiation" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:mode ], + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:truncation_window ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:mode ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:checkpoint_interval ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:maxCardinality 1 ; owl:onProperty tvbo:mode ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:checkpoint_interval ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:truncation_window ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:mode ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:checkpoint_interval ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:truncation_window ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:truncation_window ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:checkpoint_interval ] ; + owl:onProperty tvbo:truncation_window ] ; skos:definition "Backend-neutral configuration for how gradients are propagated through the temporal integration. Expressed in physical/semantic terms; each backend maps it to its own mechanism (JAX solver grad_horizon / block_size, Julia adjoint sensitivity, ...). Backends without autodiff (e.g. MATLAB) emit a comment noting differentiation is unsupported and proceed with the plain forward integration -- they do not raise." ; skos:exactMatch tvbo:Differentiation ; skos:inScheme <https://w3id.org/tvbo> . @@ -2341,22 +2314,28 @@ tvbo:Discretization a owl:Class ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:options ], + owl:onProperty tvbo:linear_solver ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:mesh_intervals ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:n_sections ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Option ; - owl:onProperty tvbo:options ], + owl:allValuesFrom tvbo:Solver ; + owl:onProperty tvbo:linear_solver ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:mesh_intervals ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:linear_solver ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:n_sections ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:method ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:ode_solver ], + owl:onProperty tvbo:options ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:degree ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:mesh_intervals ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:parameters ], @@ -2364,47 +2343,41 @@ tvbo:Discretization a owl:Class ; owl:allValuesFrom tvbo:Solver ; owl:onProperty tvbo:ode_solver ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:method ], + owl:allValuesFrom tvbo:Option ; + owl:onProperty tvbo:options ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom tvbo:NumericalDiscretizationMethod ; owl:onProperty tvbo:method ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom xsd:integer ; owl:onProperty tvbo:degree ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:linear_solver ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Solver ; - owl:onProperty tvbo:linear_solver ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Parameter ; - owl:onProperty tvbo:parameters ], + owl:onProperty tvbo:ode_solver ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:linear_solver ], + owl:onProperty tvbo:method ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:ode_solver ], + owl:minCardinality 0 ; + owl:onProperty tvbo:mesh_intervals ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty tvbo:n_sections ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:mesh_intervals ], + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:n_sections ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:NumericalDiscretizationMethod ; - owl:onProperty tvbo:method ], + owl:allValuesFrom tvbo:Parameter ; + owl:onProperty tvbo:parameters ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty tvbo:degree ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:n_sections ], + owl:onProperty tvbo:ode_solver ], [ a owl:Restriction ; owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:degree ] ; + owl:onProperty tvbo:mesh_intervals ] ; skos:definition "Discretization method for boundary value problems in continuation (periodic orbits, connecting orbits, quasi-periodic tori). Specifies the method; method-specific numerics go in parameters." ; skos:exactMatch tvbo:Discretization ; skos:inScheme <https://w3id.org/tvbo> . @@ -2436,6 +2409,46 @@ tvbo:Discretization a owl:Class ; rdfs:subClassOf tvbo:DiscretizationMethod ; skos:notation "Spectral" . +tvbo:DistributionConfig a owl:Class ; + rdfs:label "DistributionConfig" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:chunk ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:chunk ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:by ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:workflow ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:WorkflowDistributeBy ; + owl:onProperty tvbo:by ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:by ], + [ a owl:Restriction ; + owl:allValuesFrom [ a rdfs:Datatype ; + owl:intersectionOf ( xsd:integer [ a rdfs:Datatype ; + owl:onDatatype xsd:integer ; + owl:withRestrictions ( [ xsd:minInclusive 1 ] ) ] ) ] ; + owl:onProperty tvbo:chunk ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:workflow ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:vectorize ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:vectorize ] ; + skos:definition "Policy for mapping a parameter sweep's exploration axes onto the two parallelism tiers when rendering a distributed workflow. Vectorized axes are packed into a single batched backend call (e.g. vmap/pmap); workflow axes are fanned out into independent scheduler tasks, one per value combination. Backend-independent: the emitter validates that a requested vectorized axis is one the chosen backend can actually batch." ; + skos:exactMatch tvbo:DistributionConfig ; + skos:inScheme <https://w3id.org/tvbo> . + <https://w3id.org/tvbo/DomainEnforcement#clamp> a owl:Class ; rdfs:label "clamp (DomainEnforcement)" ; rdfs:isDefinedBy tvbo:struct ; @@ -2530,6 +2543,31 @@ tvbo:Discretization a owl:Class ; skos:definition "Python virtual environment." ; skos:notation "venv" . +tvbo:EnvironmentVariable a owl:Class ; + rdfs:label "EnvironmentVariable" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:value ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:value ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty tvbo:value ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:name ] ; + skos:definition "One environment variable assignment exported before executing the workflow task command. Use this for reproducible runtime knobs such as XLA/OMP settings in emitted workflow artefacts." ; + skos:exactMatch tvbo:EnvironmentVariable ; + skos:inScheme <https://w3id.org/tvbo> . + <https://w3id.org/tvbo/EventType#continuous> a owl:Class ; rdfs:label "continuous (EventType)" ; rdfs:isDefinedBy tvbo:struct ; @@ -2569,29 +2607,20 @@ tvbo:ExplorationAxis a owl:Class ; rdfs:label "ExplorationAxis" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:maxCardinality 1 ; owl:onProperty tvbo:parameter ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:explored_values ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:domain ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:transform ], - [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty tvbo:transform ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Range ; - owl:onProperty tvbo:element_domains ], + owl:minCardinality 1 ; + owl:onProperty tvbo:parameter ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:unit ], + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:explored_values ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:description ], @@ -2600,40 +2629,58 @@ tvbo:ExplorationAxis a owl:Class ; owl:onProperty tvbo:unit ], [ a owl:Restriction ; owl:maxCardinality 1 ; + owl:onProperty tvbo:label ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:unit ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:explored_values ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom tvbo:Range ; owl:onProperty tvbo:element_domains ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:domain ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:transform ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty tvbo:parameter ], + owl:minCardinality 0 ; + owl:onProperty tvbo:domain ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty tvbo:transform ], [ a owl:Restriction ; owl:maxCardinality 1 ; + owl:onProperty tvbo:unit ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:parameter ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:explored_values ], + owl:allValuesFrom tvbo:Range ; + owl:onProperty tvbo:domain ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:builder ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Range ; + owl:allValuesFrom tvbo:FunctionCall ; + owl:onProperty tvbo:builder ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty tvbo:domain ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:label ] ; + owl:onProperty tvbo:label ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:description ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:builder ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:element_domains ] ; skos:definition "One axis of a parameter exploration grid. Points to an existing Parameter (by dotted reference, e.g. \"ReducedWongWang.w\" or \"FastLinearCoupling.G\") and supplies the sweep specification (domain, explored_values, or per-element overrides). No new Parameter is created." ; skos:exactMatch tvbo:ExplorationAxis ; skos:inScheme <https://w3id.org/tvbo> . @@ -2643,37 +2690,37 @@ tvbo:FieldStateVariable a owl:Class ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:mesh ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:label ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:BoundaryCondition ; - owl:onProperty tvbo:boundary_conditions ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:boundary_conditions ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:label ], + owl:allValuesFrom tvbo:Mesh ; + owl:onProperty tvbo:mesh ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:mesh ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:boundary_conditions ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Mesh ; - owl:onProperty tvbo:mesh ], + owl:allValuesFrom tvbo:BoundaryCondition ; + owl:onProperty tvbo:boundary_conditions ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:description ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:mesh ], tvbo:StateVariable ; skos:exactMatch tvbo:FieldStateVariable ; skos:inScheme <https://w3id.org/tvbo> . @@ -2682,26 +2729,20 @@ tvbo:File a owl:Class ; rdfs:label "File" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:extension ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:type ], + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:type ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty tvbo:name ], + owl:onProperty tvbo:extension ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:type ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:name ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:extension ], + owl:onProperty tvbo:type ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:path ], @@ -2711,20 +2752,26 @@ tvbo:File a owl:Class ; [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:path ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:name ], + owl:onProperty tvbo:extension ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:description ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:type ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:minCardinality 1 ; + owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty tvbo:extension ] ; skos:exactMatch tvbo:File ; skos:inScheme <https://w3id.org/tvbo> . @@ -2733,164 +2780,185 @@ tvbo:FreeParameter a owl:Class ; rdfs:label "FreeParameter" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:ScalarValue ; - owl:onProperty tvbo:initial_value ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:shape ], - [ a owl:Restriction ; owl:allValuesFrom tvbo:Parameter ; owl:onProperty tvbo:parameter ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty tvbo:heterogeneous ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:label ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:initial_value ], + owl:minCardinality 0 ; + owl:onProperty tvbo:domain ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:shape ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty tvbo:parameter ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:initial_value ], + owl:onProperty tvbo:heterogeneous ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:shape ], + owl:onProperty tvbo:initial_value ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:parameter ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Range ; - owl:onProperty tvbo:domain ], - [ a owl:Restriction ; - owl:minCardinality 0 ; owl:onProperty tvbo:heterogeneous ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:domain ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:shape ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:domain ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:heterogeneous ], + owl:onProperty tvbo:initial_value ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:ScalarValue ; + owl:onProperty tvbo:initial_value ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Range ; + owl:onProperty tvbo:domain ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ] ; - skos:definition "One degree of freedom in an OptimizationStage. References an existing Parameter by dotted scope (e.g. \"ReducedWongWang.w\" or \"FastLinearCoupling.G\") and supplies optimization-specific metadata (heterogeneous, shape, bounds, initial value). No new Parameter is created here." ; - skos:exactMatch tvbo:FreeParameter ; - skos:inScheme <https://w3id.org/tvbo> . + owl:onProperty tvbo:label ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:shape ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:description ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:shape ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:label ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:boolean ; + owl:onProperty tvbo:heterogeneous ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:parameter ] ; + skos:definition "One degree of freedom in an OptimizationStage. References an existing Parameter by dotted scope (e.g. \"ReducedWongWang.w\" or \"FastLinearCoupling.G\") and supplies optimization-specific metadata (heterogeneous, shape, bounds, initial value). No new Parameter is created here." ; + skos:exactMatch tvbo:FreeParameter ; + skos:inScheme <https://w3id.org/tvbo> . tvbo:GraphGenerator a owl:Class ; rdfs:label "GraphGenerator" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:seed ], - [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:procedure ], + owl:onProperty tvbo:type ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Binding ; + owl:onProperty tvbo:bindings ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Parameter ; + owl:onProperty tvbo:parameters ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Callable ; - owl:onProperty tvbo:builder ], + owl:minCardinality 0 ; + owl:onProperty tvbo:bindings ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Procedure ; - owl:onProperty tvbo:procedure ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:type ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:procedure ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:seed ], [ a owl:Restriction ; owl:allValuesFrom xsd:boolean ; owl:onProperty tvbo:directed ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:seed ], + owl:onProperty tvbo:directed ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:iri ], [ a owl:Restriction ; owl:allValuesFrom xsd:anyURI ; owl:onProperty tvbo:iri ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:type ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:directed ], + owl:allValuesFrom tvbo:Procedure ; + owl:onProperty tvbo:procedure ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:builder ], + owl:onProperty tvbo:seed ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:builder ], + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:seed ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:procedure ], + owl:allValuesFrom tvbo:Callable ; + owl:onProperty tvbo:builder ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:bindings ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:directed ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:iri ], + owl:onProperty tvbo:parameters ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:maxCardinality 1 ; owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:type ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Parameter ; - owl:onProperty tvbo:parameters ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:type ], + owl:onProperty tvbo:builder ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:name ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Binding ; - owl:onProperty tvbo:bindings ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:parameters ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; owl:onProperty tvbo:iri ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:name ], + owl:onProperty tvbo:builder ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:directed ], + owl:minCardinality 0 ; + owl:onProperty tvbo:type ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:seed ] ; + owl:minCardinality 1 ; + owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:procedure ] ; skos:definition """Backend-agnostic graph generator specification. Captures the mathematical family and its parameter declarations so that each backend can emit the correct constructor call (Graphs.jl, NetworkX, etc.) via per-backend ``bindings``; derived generators may also carry a symbolic ``procedure``. The number of nodes is always taken from Network.number_of_nodes. """ ; skos:exactMatch tvbo:GraphGenerator ; skos:inScheme <https://w3id.org/tvbo> . +<https://w3id.org/tvbo/GraphRepresentation#auto> a owl:Class ; + rdfs:label "auto (GraphRepresentation)" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf tvbo:GraphRepresentation ; + skos:definition "Select by connection density: use the sparse representation when the adjacency is sparse enough that edge-wise evaluation is cheaper than the dense product, dense otherwise. Default. Lets the backend apply its own crossover without the recipe hard-coding a data structure." ; + skos:notation "auto" . + +<https://w3id.org/tvbo/GraphRepresentation#dense> a owl:Class ; + rdfs:label "dense (GraphRepresentation)" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf tvbo:GraphRepresentation ; + skos:definition "Force the dense-adjacency representation. Preferred for densely connected or small networks, where dense linear algebra's constant-factor efficiency outweighs its nodes-squared scaling." ; + skos:notation "dense" . + +<https://w3id.org/tvbo/GraphRepresentation#sparse> a owl:Class ; + rdfs:label "sparse (GraphRepresentation)" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf tvbo:GraphRepresentation ; + skos:definition "Force the edge-list (sparse) representation. Preferred for large, sparsely connected networks (structural connectomes, power grids) where coupling cost then scales with the number of edges rather than nodes-squared." ; + skos:notation "sparse" . + <https://w3id.org/tvbo/Hemisphere#both> a owl:Class ; rdfs:label "both (Hemisphere)" ; rdfs:isDefinedBy tvbo:struct ; @@ -2955,44 +3023,35 @@ tvbo:Inference a owl:Class ; rdfs:label "Inference" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom tvbo:Likelihood ; - owl:onProperty tvbo:likelihood ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], + owl:minCardinality 0 ; + owl:onProperty tvbo:integration ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:num_chains ], + owl:minCardinality 1 ; + owl:onProperty tvbo:likelihood ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:num_warmup ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; owl:onProperty tvbo:num_samples ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Prior ; + owl:minCardinality 0 ; owl:onProperty tvbo:priors ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:allValuesFrom tvbo:Algorithm ; + owl:onProperty tvbo:depends_on ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:integration ], + owl:allValuesFrom tvbo:Likelihood ; + owl:onProperty tvbo:likelihood ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:execution ], + owl:onProperty tvbo:num_warmup ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:name ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty tvbo:likelihood ], - [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom tvbo:Integrator ; owl:onProperty tvbo:integration ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:sampler ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:description ], @@ -3001,73 +3060,82 @@ tvbo:Inference a owl:Class ; owl:onProperty tvbo:num_samples ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:sampler ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:ExecutionConfig ; - owl:onProperty tvbo:execution ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:sampler ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Algorithm ; - owl:onProperty tvbo:depends_on ], + owl:minCardinality 1 ; + owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:minCardinality 0 ; owl:onProperty tvbo:label ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:seed ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:depends_on ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:num_warmup ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:num_samples ], + owl:onProperty tvbo:sampler ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:priors ], + owl:allValuesFrom tvbo:ExecutionConfig ; + owl:onProperty tvbo:execution ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:execution ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:num_chains ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:seed ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:integration ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:sampler ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:seed ], + owl:onProperty tvbo:num_warmup ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:likelihood ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:num_chains ], + owl:onProperty tvbo:depends_on ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:execution ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:sampler ], + owl:onProperty tvbo:num_chains ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:num_warmup ], + owl:onProperty tvbo:num_samples ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:depends_on ], + owl:onProperty tvbo:seed ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Integrator ; - owl:onProperty tvbo:integration ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:seed ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:num_chains ], + owl:onProperty tvbo:num_warmup ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:seed ], + owl:onProperty tvbo:execution ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:label ] ; + owl:allValuesFrom tvbo:Prior ; + owl:onProperty tvbo:priors ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:num_chains ] ; skos:definition "Bayesian inference of model parameters from an observation, via MCMC. A standalone, first-class concept (NOT an Optimization): it produces a POSTERIOR, not a point estimate, using priors + a likelihood + a sampler instead of a loss + optimizer. It runs the SAME differentiable forward model, wrapped in a probabilistic model (sample priors -> forward -> likelihood)." ; skos:exactMatch tvbo:Inference ; skos:inScheme <https://w3id.org/tvbo> . @@ -3076,41 +3144,47 @@ tvbo:InitialState a owl:Class ; rdfs:label "InitialState" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:source_point ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:rel_tol ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:source_point ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:solver ], + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:duration ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:source_point ], + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:abs_tol ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:rel_tol ], + owl:onProperty tvbo:source_branch ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:duration ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:rel_tol ], + owl:onProperty tvbo:source_point ], [ a owl:Restriction ; owl:allValuesFrom xsd:float ; owl:onProperty tvbo:rel_tol ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:abs_tol ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:source_branch ], + owl:onProperty tvbo:source_point ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Solver ; owl:onProperty tvbo:solver ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:abs_tol ], [ a owl:Restriction ; owl:minCardinality 0 ; + owl:onProperty tvbo:solver ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty tvbo:abs_tol ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:source_branch ], [ a owl:Restriction ; owl:allValuesFrom tvbo:InitialStateMethod ; owl:onProperty tvbo:method ], @@ -3119,25 +3193,19 @@ tvbo:InitialState a owl:Class ; owl:onProperty tvbo:method ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:method ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:solver ], + owl:onProperty tvbo:rel_tol ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:abs_tol ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:source_branch ], + owl:onProperty tvbo:solver ], [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; + owl:minCardinality 0 ; owl:onProperty tvbo:duration ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:source_branch ], + owl:onProperty tvbo:method ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:duration ] ; + owl:onProperty tvbo:source_branch ] ; skos:definition "How to obtain the starting equilibrium or periodic orbit for continuation. Most robust: time-integrate to steady state." ; skos:exactMatch tvbo:InitialState ; skos:inScheme <https://w3id.org/tvbo> . @@ -3175,36 +3243,36 @@ tvbo:Likelihood a owl:Class ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:sigma ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:sigma ], - [ a owl:Restriction ; - owl:minCardinality 1 ; owl:onProperty tvbo:source ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:source ], + owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:maxCardinality 1 ; owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:sigma ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:name ], + owl:minCardinality 0 ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:name ], + owl:minCardinality 1 ; + owl:onProperty tvbo:source ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:description ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:minCardinality 0 ; + owl:onProperty tvbo:sigma ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:sigma ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:description ] ; skos:definition "Observation model for Bayesian inference: p(data | sim(theta)). Points at the observation holding the data and specifies the noise family + scale. `name` is the noise family (default Normal); `source` uses the same referencing as `Observation.source`, so the observed data can come from this experiment's integration, an empirical network measure, or a runtime-bound array β€” one flexible hook, no data-loading path of its own." ; skos:exactMatch tvbo:Likelihood ; @@ -3214,59 +3282,59 @@ tvbo:MeasureSpec a owl:Class ; rdfs:label "MeasureSpec" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:name ], - [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:concept_iri ], + owl:onProperty tvbo:unit ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:concept_iri ], + owl:onProperty tvbo:unit ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:minCardinality 0 ; owl:onProperty tvbo:task_iri ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:unit ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:unit ], + owl:onProperty tvbo:measure_type ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:measure_type ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:task_iri ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:task_iri ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:measure_type ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:concept_iri ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:concept_iri ], + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:unit ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty tvbo:measure_type ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:maxCardinality 1 ; owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:measure_type ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:concept_iri ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:task_iri ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:unit ] ; + owl:onProperty tvbo:concept_iri ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:description ] ; skos:definition "Metadata for one phenotype measure. Optional per-measure entry on ``Phenotype.measure_specs``." ; skos:exactMatch tvbo:MeasureSpec ; skos:inScheme <https://w3id.org/tvbo> . @@ -3345,59 +3413,73 @@ tvbo:NDArray a owl:Class ; rdfs:label "NDArray" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:shape ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:dataLocation ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:dtype ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:unit ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:dataLocation ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:unit ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:shape ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:shape ], + owl:onProperty tvbo:dataLocation ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:minCardinality 0 ; owl:onProperty tvbo:unit ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:label ], + owl:minCardinality 0 ; + owl:onProperty tvbo:dtype ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:dtype ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:label ], + owl:minCardinality 0 ; + owl:onProperty tvbo:shape ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:dtype ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:dataLocation ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:dtype ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:dataLocation ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:unit ] ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:description ] ; skos:exactMatch tvbo:NDArray ; skos:inScheme <https://w3id.org/tvbo> . +<https://w3id.org/tvbo/NodeReconciliation#by_label> a owl:Class ; + rdfs:label "by_label (NodeReconciliation)" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf tvbo:NodeReconciliation ; + skos:definition "Restrict both sides to their shared node labels by name (keyed ``.sel``), preserving the model network's order. Never positional." ; + skos:notation "by_label" . + +<https://w3id.org/tvbo/NodeReconciliation#none> a owl:Class ; + rdfs:label "none (NodeReconciliation)" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf tvbo:NodeReconciliation ; + skos:definition "No reconciliation; the node sets are assumed identical." ; + skos:notation "none" . + <https://w3id.org/tvbo/NoiseType#brown> a owl:Class ; rdfs:label "brown (NoiseType)" ; rdfs:isDefinedBy tvbo:struct ; @@ -3478,29 +3560,38 @@ tvbo:Optimization a owl:Class ; rdfs:label "Optimization" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom tvbo:ExecutionConfig ; owl:onProperty tvbo:execution ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:FunctionCall ; - owl:onProperty tvbo:loss ], + owl:allValuesFrom tvbo:OptimizationStage ; + owl:onProperty tvbo:stages ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:execution ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:stages ], + owl:onProperty tvbo:integration ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:loss ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:integration ], + owl:allValuesFrom tvbo:FunctionCall ; + owl:onProperty tvbo:loss ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty tvbo:integration ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Integrator ; owl:onProperty tvbo:integration ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:loss ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:depends_on ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:execution ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:depends_on ], @@ -3508,17 +3599,8 @@ tvbo:Optimization a owl:Class ; owl:allValuesFrom [ owl:unionOf ( tvbo:Algorithm tvbo:Exploration ) ] ; owl:onProperty tvbo:depends_on ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:loss ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:ExecutionConfig ; - owl:onProperty tvbo:execution ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:OptimizationStage ; + owl:minCardinality 0 ; owl:onProperty tvbo:stages ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:execution ], tvbo:OptimizationStage ; skos:definition "Configuration for parameter optimization. Inherits single-stage fields from OptimizationStage. For multi-stage workflows, use 'stages' (ignores inherited single-stage fields). Loss equation references observations directly by name." ; skos:exactMatch tvbo:Optimization ; @@ -3528,98 +3610,98 @@ tvbo:PDE a owl:Class ; rdfs:label "PDE" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:label ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:description ], + [ a owl:Restriction ; owl:allValuesFrom tvbo:FieldStateVariable ; owl:onProperty tvbo:state_variables ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:DifferentialOperator ; - owl:onProperty tvbo:operators ], + owl:minCardinality 0 ; + owl:onProperty tvbo:derived_variables ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Function ; + owl:onProperty tvbo:functions ], [ a owl:Restriction ; owl:allValuesFrom tvbo:DerivedVariable ; owl:onProperty tvbo:derived_variables ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:solver ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:DifferentialOperator ; + owl:onProperty tvbo:operators ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:domain ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:label ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:derived_parameters ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:state_variables ], + owl:onProperty tvbo:mesh ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:functions ], + owl:onProperty tvbo:parameters ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:solver ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:derived_variables ], + owl:onProperty tvbo:boundary_conditions ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Equation ; + owl:minCardinality 0 ; owl:onProperty tvbo:sources ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:operators ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:state_variables ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:parameters ], + owl:allValuesFrom tvbo:DerivedParameter ; + owl:onProperty tvbo:derived_parameters ], [ a owl:Restriction ; owl:allValuesFrom tvbo:PDESolver ; owl:onProperty tvbo:solver ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Parameter ; - owl:onProperty tvbo:parameters ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:domain ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:DerivedParameter ; - owl:onProperty tvbo:derived_parameters ], + owl:allValuesFrom tvbo:SpatialDomain ; + owl:onProperty tvbo:domain ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom tvbo:Mesh ; owl:onProperty tvbo:mesh ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Function ; - owl:onProperty tvbo:functions ], + owl:minCardinality 0 ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:mesh ], + owl:minCardinality 0 ; + owl:onProperty tvbo:functions ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:SpatialDomain ; - owl:onProperty tvbo:domain ], + owl:allValuesFrom tvbo:Parameter ; + owl:onProperty tvbo:parameters ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:solver ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:boundary_conditions ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Mesh ; owl:onProperty tvbo:mesh ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:operators ], [ a owl:Restriction ; owl:allValuesFrom tvbo:BoundaryCondition ; owl:onProperty tvbo:boundary_conditions ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Equation ; + owl:onProperty tvbo:sources ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:sources ] ; + owl:onProperty tvbo:derived_parameters ] ; skos:definition "Partial differential equation problem definition." ; skos:exactMatch tvbo:PDE ; skos:inScheme <https://w3id.org/tvbo> . @@ -3629,82 +3711,82 @@ tvbo:PDESolver a owl:Class ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:label ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:DiscretizationMethod ; - owl:onProperty tvbo:discretization ], + owl:onProperty tvbo:time_integrator ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:time_integrator ], + owl:onProperty tvbo:tolerances ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:dt ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:preconditioner ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:requirements ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:preconditioner ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:time_integrator ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:tolerances ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:environment ], [ a owl:Restriction ; owl:minCardinality 0 ; + owl:onProperty tvbo:dt ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:DiscretizationMethod ; owl:onProperty tvbo:discretization ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:requirements ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:tolerances ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:preconditioner ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:environment ], - [ a owl:Restriction ; - owl:allValuesFrom <https://w3id.org/tvbo/software/SoftwareRequirement> ; - owl:onProperty tvbo:requirements ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:discretization ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom xsd:float ; owl:onProperty tvbo:dt ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:tolerances ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:time_integrator ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:time_integrator ], + owl:onProperty tvbo:discretization ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:preconditioner ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:description ], + [ a owl:Restriction ; + owl:allValuesFrom <https://w3id.org/tvbo/software/SoftwareRequirement> ; + owl:onProperty tvbo:requirements ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:allValuesFrom <https://w3id.org/tvbo/software/SoftwareEnvironment> ; + owl:minCardinality 0 ; owl:onProperty tvbo:environment ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:label ], + owl:allValuesFrom <https://w3id.org/tvbo/software/SoftwareEnvironment> ; + owl:onProperty tvbo:environment ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:dt ], + owl:onProperty tvbo:time_integrator ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:preconditioner ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:tolerances ] ; + owl:onProperty tvbo:dt ] ; skos:exactMatch tvbo:PDESolver ; skos:inScheme <https://w3id.org/tvbo> . @@ -3726,7 +3808,7 @@ tvbo:PDESolver a owl:Class ; rdfs:label "pmap (ParallelMode)" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf tvbo:ParallelMode ; - skos:definition "Cross-device parallel execution (jax.pmap). For multi-GPU/TPU." ; + skos:definition "Parallel execution across the local devices of a single node (jax.pmap over the several GPUs/TPUs visible to that task). Intra-task only β€” it never spans nodes; inter-node parallelism is scheduler fan-out (DistributionConfig.chunk), not pmap. On a one-GPU (or CPU) task this degenerates to vmap." ; skos:notation "pmap" . <https://w3id.org/tvbo/ParallelMode#vmap> a owl:Class ; @@ -3843,26 +3925,26 @@ tvbo:Prior a owl:Class ; [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:description ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 1 ; - owl:onProperty tvbo:name ], + owl:onProperty tvbo:distribution ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:distribution ], + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 1 ; owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:maxCardinality 1 ; owl:onProperty tvbo:distribution ] ; skos:definition "Prior belief over one inferred parameter. In `Inference.priors` the collection KEY is the parameter's dotted name; the value wraps a `Distribution` as the belief (reusing the standard distribution vocabulary rather than inventing a new one). Distinct from `Parameter.distribution`, which specifies per-node SAMPLING, not a prior." ; skos:exactMatch tvbo:Prior ; @@ -3872,6 +3954,9 @@ tvbo:Procedure a owl:Class ; rdfs:label "Procedure" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom tvbo:ProcedureStep ; + owl:onProperty tvbo:output ], + [ a owl:Restriction ; owl:allValuesFrom tvbo:ProcedureStep ; owl:onProperty tvbo:steps ], [ a owl:Restriction ; @@ -3879,10 +3964,7 @@ tvbo:Procedure a owl:Class ; owl:onProperty tvbo:output ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:steps ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:ProcedureStep ; - owl:onProperty tvbo:output ] ; + owl:onProperty tvbo:steps ] ; skos:definition "Symbolic procedure: an ordered list of steps producing named outputs. Documents a derived generator's algorithm independently of any backend binding." ; skos:exactMatch tvbo:Procedure ; skos:inScheme <https://w3id.org/tvbo> . @@ -3891,62 +3973,62 @@ tvbo:Provenance a owl:Class ; rdfs:label "Provenance" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:minCardinality 0 ; owl:onProperty tvbo:generated_by ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty tvbo:license ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:experiment_yaml_hash ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:generated_by ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:license ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:derived_from ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:references ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:generated_by ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:date_created ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:inputs ], + owl:onProperty tvbo:date_created ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:generated_by ], + owl:onProperty tvbo:license ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:minCardinality 0 ; + owl:onProperty tvbo:experiment_yaml_hash ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty tvbo:references ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:license ], + owl:onProperty tvbo:derived_from ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:date_created ], + owl:onProperty tvbo:derived_from ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:date_created ], + owl:onProperty tvbo:inputs ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:date_created ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:derived_from ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:references ], [ a owl:Restriction ; owl:allValuesFrom tvbo:ReferenceFingerprint ; owl:onProperty tvbo:inputs ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:experiment_yaml_hash ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:generated_by ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:experiment_yaml_hash ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:derived_from ] ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:experiment_yaml_hash ] ; skos:definition "W3C PROV-O aligned provenance. Reusable on any entity (Network, TimeSeries, Dynamics, etc.)." ; skos:exactMatch prov:Entity ; skos:inScheme <https://w3id.org/tvbo> . @@ -3955,7 +4037,7 @@ tvbo:RandomStream a owl:Class ; rdfs:label "RandomStream" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:maxCardinality 1 ; @@ -3966,21 +4048,21 @@ tvbo:RandomStream a owl:Class ; [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:description ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:label ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:description ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ] ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:label ] ; skos:exactMatch tvbo:RandomStream ; skos:inScheme <https://w3id.org/tvbo> . @@ -4023,14 +4105,14 @@ tvbo:Reference a owl:Class ; rdfs:label "Reference" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty tvbo:iri ], - [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:field ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:iri ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty tvbo:iri ], [ a owl:Restriction ; owl:allValuesFrom xsd:anyURI ; owl:onProperty tvbo:iri ], @@ -4049,49 +4131,49 @@ tvbo:ReferenceFingerprint a owl:Class ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:hash ], - [ a owl:Restriction ; - owl:minCardinality 0 ; owl:onProperty tvbo:field ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:field ], + owl:minCardinality 0 ; + owl:onProperty tvbo:size ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty tvbo:iri ], [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:mtime ], + owl:minCardinality 0 ; + owl:onProperty tvbo:hash ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:field ], + owl:onProperty tvbo:size ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:mtime ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:anyURI ; + owl:onProperty tvbo:iri ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:iri ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:size ], + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:mtime ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:mtime ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:hash ], + owl:onProperty tvbo:field ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:hash ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:size ], + owl:onProperty tvbo:hash ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom xsd:integer ; owl:onProperty tvbo:size ], [ a owl:Restriction ; - owl:allValuesFrom xsd:anyURI ; - owl:onProperty tvbo:iri ] ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:field ] ; skos:definition "Cache-invalidation fingerprint for one ``aux_data`` reference. Captures enough about the upstream artifact that a downstream cache can decide cheaply (via mtime + size) whether to trust the cached result, falling back to a hash recompute on mismatch." ; skos:exactMatch tvbo:ReferenceFingerprint ; skos:inScheme <https://w3id.org/tvbo> . @@ -4100,56 +4182,56 @@ tvbo:RegionMapping a owl:Class ; rdfs:label "RegionMapping" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:n_regions ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:vertex_to_region ], - [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:label ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:n_vertices ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:n_regions ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:n_vertices ], + owl:minCardinality 0 ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:vertex_to_region ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:n_regions ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], + owl:minCardinality 0 ; + owl:onProperty tvbo:n_vertices ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:description ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:n_regions ], + owl:onProperty tvbo:n_vertices ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:description ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:n_vertices ], + owl:onProperty tvbo:n_regions ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:n_vertices ] ; + owl:onProperty tvbo:vertex_to_region ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ] ; skos:definition "Maps vertices to parent regions for hierarchical/aggregated coupling" ; skos:exactMatch tvbo:RegionMapping ; skos:inScheme <https://w3id.org/tvbo> . @@ -4193,20 +4275,20 @@ tvbo:Sample a owl:Class ; rdfs:label "Sample" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:size ], + [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:size ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:groups ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:groups ], + owl:onProperty tvbo:size ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:size ], + owl:onProperty tvbo:groups ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:size ] ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:groups ] ; skos:exactMatch tvbo:Sample ; skos:inScheme <https://w3id.org/tvbo> . @@ -4224,6 +4306,31 @@ tvbo:Sample a owl:Class ; skos:definition "Resample every integration timestep (stochastic time-varying input)." ; skos:notation "time" . +tvbo:SchedulerDirective a owl:Class ; + rdfs:label "SchedulerDirective" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty tvbo:value ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:value ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:value ] ; + skos:definition "One engine-native scheduler directive passed through verbatim by the engine's emitter (e.g. a Slurm ``#SBATCH --<name>=<value>`` line). The open extension point of WorkflowEngineConfig: it carries any directive the typed fields do not name, so a new scheduler flag needs no schema change." ; + skos:exactMatch tvbo:SchedulerDirective ; + skos:inScheme <https://w3id.org/tvbo> . + <https://w3id.org/tvbo/SexEnum#female> a owl:Class ; rdfs:label "female (SexEnum)" ; rdfs:isDefinedBy tvbo:struct ; @@ -4249,200 +4356,209 @@ tvbo:SimulationExperiment a owl:Class ; rdfs:label "SimulationExperiment" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:dynamics ], + owl:allValuesFrom <https://w3id.org/tvbo/software/SoftwareRequirement> ; + owl:onProperty tvbo:software ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Coupling ; - owl:onProperty tvbo:coupling ], + owl:minCardinality 1 ; + owl:onProperty tvbo:id ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:stimulation ], + owl:minCardinality 0 ; + owl:onProperty tvbo:software ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:environment ], + owl:onProperty tvbo:observations ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Inference ; - owl:onProperty tvbo:inferences ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:execution ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:explorations ], + owl:onProperty tvbo:dataset ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Dynamics ; - owl:onProperty tvbo:model ], + owl:minCardinality 0 ; + owl:onProperty tvbo:optimizations ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:id ], + owl:allValuesFrom <https://w3id.org/tvbo/software/SoftwareEnvironment> ; + owl:onProperty tvbo:environment ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:field_dynamics ], + owl:allValuesFrom tvbo:Network ; + owl:onProperty tvbo:connectivity ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:coupling ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Stimulus ; - owl:onProperty tvbo:stimulation ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:workflow ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:id ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:inferences ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:algorithms ], + owl:allValuesFrom <https://w3id.org/tvbo/study/Dataset> ; + owl:onProperty tvbo:dataset ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:network ], + owl:allValuesFrom tvbo:Dynamics ; + owl:onProperty tvbo:dynamics ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Continuation ; - owl:onProperty tvbo:continuations ], + owl:minCardinality 0 ; + owl:onProperty tvbo:integration ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:coupling ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:network ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Optimization ; - owl:onProperty tvbo:optimizations ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:connectivity ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Network ; - owl:onProperty tvbo:connectivity ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Network ; - owl:onProperty tvbo:network ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:environment ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Event ; - owl:onProperty tvbo:events ], + owl:allValuesFrom tvbo:Dynamics ; + owl:onProperty tvbo:model ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:label ], + owl:allValuesFrom tvbo:Inference ; + owl:onProperty tvbo:inferences ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:functions ], + owl:onProperty tvbo:additional_equations ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:field_dynamics ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:execution ], - [ a owl:Restriction ; - owl:allValuesFrom <https://w3id.org/tvbo/software/SoftwareEnvironment> ; - owl:onProperty tvbo:environment ], + owl:allValuesFrom tvbo:Integrator ; + owl:onProperty tvbo:integration ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:integration ], + owl:onProperty tvbo:continuations ], [ a owl:Restriction ; - owl:allValuesFrom <https://w3id.org/tvbo/software/SoftwareRequirement> ; - owl:onProperty tvbo:software ], + owl:allValuesFrom tvbo:ExecutionConfig ; + owl:onProperty tvbo:execution ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty tvbo:connectivity ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:id ], + owl:onProperty tvbo:coupling ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Exploration ; + owl:minCardinality 0 ; owl:onProperty tvbo:explorations ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:allValuesFrom tvbo:Equation ; + owl:onProperty tvbo:additional_equations ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:WorkflowConfig ; + owl:onProperty tvbo:workflow ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:dynamics ], + owl:onProperty tvbo:references ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Dynamics ; + owl:allValuesFrom tvbo:Continuation ; + owl:onProperty tvbo:continuations ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Algorithm ; + owl:onProperty tvbo:algorithms ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty tvbo:dynamics ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:observations ], + owl:onProperty tvbo:workflow ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:model ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty tvbo:id ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:software ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:references ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:dataset ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:functions ], [ a owl:Restriction ; owl:allValuesFrom tvbo:PDE ; owl:onProperty tvbo:field_dynamics ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:model ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:allValuesFrom <https://w3id.org/tvbo/study/Dataset> ; - owl:onProperty tvbo:dataset ], + owl:allValuesFrom tvbo:Observation ; + owl:onProperty tvbo:observations ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:continuations ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:references ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Integrator ; - owl:onProperty tvbo:integration ], + owl:onProperty tvbo:coupling ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:software ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:model ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Algorithm ; - owl:onProperty tvbo:algorithms ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:id ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:ExecutionConfig ; - owl:onProperty tvbo:execution ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:stimulation ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom tvbo:Stimulus ; owl:onProperty tvbo:stimulation ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:additional_equations ], + owl:onProperty tvbo:algorithms ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:model ], + owl:onProperty tvbo:stimulation ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:integration ], + owl:minCardinality 0 ; + owl:onProperty tvbo:field_dynamics ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:dataset ], + owl:onProperty tvbo:execution ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:references ], + owl:minCardinality 0 ; + owl:onProperty tvbo:events ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:connectivity ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], + owl:allValuesFrom tvbo:Function ; + owl:onProperty tvbo:functions ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:dataset ], + owl:allValuesFrom tvbo:Optimization ; + owl:onProperty tvbo:optimizations ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Observation ; - owl:onProperty tvbo:observations ], + owl:allValuesFrom tvbo:Network ; + owl:onProperty tvbo:network ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:environment ], + owl:onProperty tvbo:integration ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Function ; - owl:onProperty tvbo:functions ], + owl:allValuesFrom tvbo:Event ; + owl:onProperty tvbo:events ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Equation ; - owl:onProperty tvbo:additional_equations ], + owl:allValuesFrom tvbo:Coupling ; + owl:onProperty tvbo:coupling ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:optimizations ], + owl:onProperty tvbo:network ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:events ], + owl:onProperty tvbo:environment ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:execution ] ; + owl:onProperty tvbo:dynamics ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Exploration ; + owl:onProperty tvbo:explorations ] ; skos:exactMatch tvbo:Simulation ; skos:inScheme <https://w3id.org/tvbo> . @@ -4471,32 +4587,35 @@ tvbo:SpatialDomain a owl:Class ; rdfs:label "SpatialDomain" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:region ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:geometry ], + owl:minCardinality 0 ; + owl:onProperty tvbo:region ], [ a owl:Restriction ; owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/CommonCoordinateSpace> ; owl:onProperty tvbo:coordinate_space ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:description ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:geometry ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:coordinate_space ], + owl:onProperty tvbo:region ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:coordinate_space ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:region ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:description ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:geometry ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:geometry ], @@ -4504,17 +4623,14 @@ tvbo:SpatialDomain a owl:Class ; owl:minCardinality 0 ; owl:onProperty tvbo:coordinate_space ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:geometry ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:region ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:region ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:label ] ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:description ] ; skos:exactMatch tvbo:SpatialDomain ; skos:inScheme <https://w3id.org/tvbo> . @@ -4619,19 +4735,19 @@ tvbo:StateValue a owl:Class ; owl:minCardinality 1 ; owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom [ owl:intersectionOf ( tvbo:ScalarValue tvbo:ScalarValue ) ] ; owl:onProperty tvbo:value ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:value ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:value ], - [ a owl:Restriction ; - owl:allValuesFrom [ owl:intersectionOf ( tvbo:ScalarValue tvbo:ScalarValue ) ] ; owl:onProperty tvbo:value ] ; skos:definition "A named state variable value for per-node initialization." ; skos:exactMatch tvbo:StateValue ; @@ -4641,69 +4757,104 @@ tvbo:Study a owl:Class ; rdfs:label "Study" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:title ], - [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:doi ], + owl:onProperty tvbo:type ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:minCardinality 0 ; + owl:onProperty tvbo:title ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:citekey ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:citekey ], + owl:onProperty tvbo:authors ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:type ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:title ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; owl:onProperty tvbo:year ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:doi ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:type ], + owl:onProperty tvbo:title ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:doi ], + owl:onProperty tvbo:authors ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:authors ], + owl:onProperty tvbo:title ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:type ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:doi ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:title ], + owl:onProperty tvbo:citekey ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:year ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:doi ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:authors ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:doi ], + owl:onProperty tvbo:citekey ], [ a owl:Restriction ; owl:maxCardinality 1 ; + owl:onProperty tvbo:citekey ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:integer ; owl:onProperty tvbo:year ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:citekey ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:description ] ; + owl:onProperty tvbo:type ] ; skos:definition "Bibliographic anchor for a source publication, identified by its citation key (``citekey``). The full bibliographic record lives in the project BibTeX library (references.bib) and is resolved by citekey; this node carries only identity, display fields and the knowledge-graph hooks (the concepts that cite it). Specialised by SimulationStudy, which adds the experiments derived from the source." ; skos:exactMatch tvbo:Study ; skos:inScheme <https://w3id.org/tvbo> . +<https://w3id.org/tvbo/SweepDirection#bidirectional> a owl:Class ; + rdfs:label "bidirectional (SweepDirection)" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf tvbo:SweepDirection ; + skos:definition "Increase then decrease over the same values, recording both branches. Where the two branches differ, the sweep traces a hysteresis loop that exposes coexisting stable states (bistability / multistability). The multivalued generalisation of Continuation.bothside." ; + skos:notation "bidirectional" . + +<https://w3id.org/tvbo/SweepDirection#down> a owl:Class ; + rdfs:label "down (SweepDirection)" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf tvbo:SweepDirection ; + skos:definition "Decrease the parameter monotonically (high to low), once." ; + skos:notation "down" . + +<https://w3id.org/tvbo/SweepDirection#up> a owl:Class ; + rdfs:label "up (SweepDirection)" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf tvbo:SweepDirection ; + skos:definition "Increase the parameter monotonically (low to high), once." ; + skos:notation "up" . + +<https://w3id.org/tvbo/SweepSeeding#from_previous> a owl:Class ; + rdfs:label "from_previous (SweepSeeding)" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf tvbo:SweepSeeding ; + skos:definition "Each point is seeded from the final state of the preceding point, so the trajectory follows the solution branch as the swept parameter changes quasi-statically. Forces sequential, order-dependent execution (emitted as a scan, not a vmap). Used to reach a working point by slowly ramping a parameter (e.g. global coupling) and, with sweep_direction, to expose hysteresis / multistability. Sweep-granularity analogue of InitialStateMethod.from_branch." ; + skos:notation "from_previous" . + +<https://w3id.org/tvbo/SweepSeeding#independent> a owl:Class ; + rdfs:label "independent (SweepSeeding)" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf tvbo:SweepSeeding ; + skos:definition "Each point is initialised independently from the model's initial values (a cold start), so points are order-independent and may be evaluated in parallel (see parallel_mode). Default; today's behaviour." ; + skos:notation "independent" . + <https://w3id.org/tvbo/SystemType#continuous> a owl:Class ; rdfs:label "continuous (SystemType)" ; rdfs:isDefinedBy tvbo:struct ; @@ -4722,200 +4873,200 @@ tvbo:TimeSeries a owl:Class ; rdfs:label "TimeSeries" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom tvbo:ImagingModality ; + owl:maxCardinality 1 ; owl:onProperty tvbo:modality ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:subject_id ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:connectivity_ref ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:time ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:model_param_ref ], + owl:onProperty tvbo:source_experiment ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:sampling_period ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:session_id ], + owl:onProperty tvbo:labels_dimensions ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:unit ], + owl:onProperty tvbo:model_equation_ref ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:source_experiment ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:task_name ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:labels_ordering ], + owl:onProperty tvbo:model_equation_ref ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:run_id ], + owl:minCardinality 0 ; + owl:onProperty tvbo:task_name ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:sampling_rate ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:subject_id ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:modality ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:task_name ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:sampling_period ], + owl:allValuesFrom tvbo:ImagingModality ; + owl:onProperty tvbo:modality ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:model_equation_ref ], + owl:allValuesFrom tvbo:SimulationExperiment ; + owl:onProperty tvbo:source_experiment ], [ a owl:Restriction ; - owl:allValuesFrom xsd:dateTime ; - owl:onProperty tvbo:generated_at ], + owl:allValuesFrom tvbo:Matrix ; + owl:onProperty tvbo:time ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:generated_at ], + owl:onProperty tvbo:session_id ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty tvbo:subject_id ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], + owl:onProperty tvbo:connectivity_ref ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:software_environment ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:session_id ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:source_experiment ], + owl:allValuesFrom xsd:dateTime ; + owl:onProperty tvbo:generated_at ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:label ], + owl:allValuesFrom <https://w3id.org/tvbo/software/SoftwareEnvironment> ; + owl:onProperty tvbo:software_environment ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:software_environment ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:model_param_ref ], + owl:minCardinality 0 ; + owl:onProperty tvbo:connectivity_ref ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:model_equation_ref ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:unit ], [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:sampling_rate ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:data ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Matrix ; + owl:minCardinality 0 ; owl:onProperty tvbo:time ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty tvbo:session_id ], + owl:minCardinality 0 ; + owl:onProperty tvbo:sampling_period ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], + owl:minCardinality 0 ; + owl:onProperty tvbo:sampling_rate ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty tvbo:subject_id ], + owl:minCardinality 0 ; + owl:onProperty tvbo:labels_ordering ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:sampling_period_unit ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:run_id ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:time ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:model_param_ref ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:sampling_period ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:unit ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:task_name ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Matrix ; - owl:onProperty tvbo:data ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:time ], + owl:onProperty tvbo:model_param_ref ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:labels_dimensions ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:description ], + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:run_id ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:software_environment ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:model_param_ref ], + owl:onProperty tvbo:labels_ordering ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:sampling_period_unit ], + owl:minCardinality 0 ; + owl:onProperty tvbo:run_id ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:data ], + owl:onProperty tvbo:source_experiment ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:labels_dimensions ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:sampling_rate ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:SimulationExperiment ; - owl:onProperty tvbo:source_experiment ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:sampling_period_unit ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:model_equation_ref ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:sampling_period ], + owl:onProperty tvbo:run_id ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:connectivity_ref ], + owl:onProperty tvbo:subject_id ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:data ], + owl:onProperty tvbo:software_environment ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:labels_dimensions ], + owl:minCardinality 1 ; + owl:onProperty tvbo:session_id ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:label ], - [ a owl:Restriction ; - owl:allValuesFrom <https://w3id.org/tvbo/software/SoftwareEnvironment> ; - owl:onProperty tvbo:software_environment ], + owl:onProperty tvbo:model_param_ref ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:labels_ordering ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:session_id ], + owl:onProperty tvbo:data ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:sampling_period_unit ], + owl:allValuesFrom tvbo:Matrix ; + owl:onProperty tvbo:data ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:subject_id ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:generated_at ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:modality ], + owl:onProperty tvbo:unit ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:run_id ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:sampling_period ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:generated_at ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:sampling_rate ], + owl:onProperty tvbo:model_equation_ref ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:modality ], + owl:onProperty tvbo:sampling_rate ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:connectivity_ref ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:unit ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:connectivity_ref ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:task_name ] ; + owl:onProperty tvbo:sampling_period_unit ] ; skos:definition "Time series data from simulations or measurements. Supports BIDS-compatible export for computational modeling (BEP034)." ; skos:exactMatch tvbo:TimeSeries ; skos:inScheme <https://w3id.org/tvbo> ; @@ -4940,86 +5091,86 @@ tvbo:Tractogram a owl:Class ; rdfs:label "Tractogram" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:anyURI ; - owl:onProperty tvbo:iri ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:reference ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:data_source ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; owl:onProperty tvbo:iri ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:acquisition ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:data_source ], [ a owl:Restriction ; owl:minCardinality 0 ; + owl:onProperty tvbo:description ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty tvbo:acquisition ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:number_of_subjects ], + owl:onProperty tvbo:acquisition ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:label ], + owl:minCardinality 0 ; + owl:onProperty tvbo:processing_pipeline ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:minCardinality 1 ; + owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:data_source ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:number_of_subjects ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:iri ], + owl:onProperty tvbo:number_of_subjects ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:processing_pipeline ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:acquisition ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:data_source ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:data_source ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:reference ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:processing_pipeline ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:data_source ], + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:processing_pipeline ], + owl:onProperty tvbo:iri ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:number_of_subjects ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:name ], + owl:onProperty tvbo:label ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:anyURI ; + owl:onProperty tvbo:iri ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:name ], + owl:onProperty tvbo:acquisition ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:reference ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:processing_pipeline ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom xsd:integer ; owl:onProperty tvbo:number_of_subjects ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:processing_pipeline ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:reference ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:description ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty tvbo:name ] ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:description ] ; skos:definition "Reference to tractography/diffusion MRI data used to derive structural connectivity" ; skos:exactMatch tvbo:Tractogram ; skos:inScheme <https://w3id.org/tvbo> . @@ -5029,67 +5180,67 @@ tvbo:TuningObjective a owl:Class ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:target_variable ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:type ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:metric ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:type ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Equation ; - owl:onProperty tvbo:metric ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty tvbo:target_data ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:target_value ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:StateVariable ; - owl:onProperty tvbo:target_variable ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:description ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:target_value ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Observation ; owl:onProperty tvbo:target_data ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:metric ], + owl:onProperty tvbo:target_value ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:target_variable ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:description ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:target_variable ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:type ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:target_value ], + owl:onProperty tvbo:type ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:target_data ], + owl:onProperty tvbo:target_value ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:allValuesFrom tvbo:Equation ; + owl:onProperty tvbo:metric ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:type ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom tvbo:StateVariable ; + owl:onProperty tvbo:target_variable ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Observation ; + owl:onProperty tvbo:target_data ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:metric ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:description ] ; + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:target_value ] ; skos:definition "Defines what the tuning algorithm optimizes for. Can be an activity target (FIC) or a connectivity target (EIB)." ; skos:exactMatch tvbo:TuningObjective ; skos:inScheme <https://w3id.org/tvbo> . @@ -5203,69 +5354,90 @@ tvbo:UpdateRule a owl:Class ; rdfs:label "UpdateRule" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom tvbo:Parameter ; - owl:onProperty tvbo:target_parameter ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:warmup ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:equation ], - [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty tvbo:equation ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:description ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Observation ; - owl:onProperty tvbo:requires ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty tvbo:target_parameter ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:equation ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:target_parameter ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:boolean ; + owl:onProperty tvbo:warmup ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Observation ; + owl:onProperty tvbo:requires ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:bounds ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:minCardinality 0 ; owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Range ; + owl:minCardinality 0 ; owl:onProperty tvbo:bounds ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:warmup ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Equation ; owl:onProperty tvbo:equation ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:bounds ], + owl:onProperty tvbo:warmup ], [ a owl:Restriction ; owl:minCardinality 1 ; - owl:onProperty tvbo:name ], + owl:onProperty tvbo:target_parameter ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:bounds ], + owl:onProperty tvbo:requires ], [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty tvbo:warmup ], + owl:allValuesFrom tvbo:Range ; + owl:onProperty tvbo:bounds ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:requires ], + owl:allValuesFrom tvbo:Parameter ; + owl:onProperty tvbo:target_parameter ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:warmup ] ; + owl:onProperty tvbo:target_parameter ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty tvbo:name ] ; skos:definition "Defines how a parameter is updated based on observables. Represents iterative learning rules like FIC or EIB updates. Functions from experiment.functions are available in the equation." ; skos:exactMatch tvbo:UpdateRule ; skos:inScheme <https://w3id.org/tvbo> . +<https://w3id.org/tvbo/WorkflowDistributeBy#auto> a owl:Class ; + rdfs:label "auto (WorkflowDistributeBy)" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf tvbo:WorkflowDistributeBy ; + skos:definition "Vectorize every axis the backend can batch; fan out the rest." ; + skos:notation "auto" . + +<https://w3id.org/tvbo/WorkflowDistributeBy#vectorize> a owl:Class ; + rdfs:label "vectorize (WorkflowDistributeBy)" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf tvbo:WorkflowDistributeBy ; + skos:definition "Place all otherwise-unassigned axes on the vectorized tier." ; + skos:notation "vectorize" . + +<https://w3id.org/tvbo/WorkflowDistributeBy#workflow> a owl:Class ; + rdfs:label "workflow (WorkflowDistributeBy)" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf tvbo:WorkflowDistributeBy ; + skos:definition "Fan out all otherwise-unassigned axes as scheduler tasks." ; + skos:notation "workflow" . + tvbo:additional_equations a owl:ObjectProperty ; rdfs:label "additional_equations (slot)" ; skos:inScheme <https://w3id.org/tvbo> ; @@ -5375,98 +5547,98 @@ tvbo:coupling_terms a owl:ObjectProperty ; rdfs:label "Electrode (dbs)" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/dbs/manufacturer> ], + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/dbs/contacts> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/dbs/manufacturer> ], + owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/Coordinate> ; + owl:onProperty <https://w3id.org/tvbo/dbs/trajectory> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/target_structure> ], + owl:onProperty <https://w3id.org/tvbo/dbs/coordinate_space> ], [ a owl:Restriction ; owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/dbs/coordinate_space> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty <https://w3id.org/tvbo/dbs/head> ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty <https://w3id.org/tvbo/dbs/hemisphere> ], [ a owl:Restriction ; - owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/Coordinate> ; - owl:onProperty <https://w3id.org/tvbo/dbs/head> ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/dbs/tail> ], + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/dbs/electrode_id> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/tail> ], + owl:onProperty <https://w3id.org/tvbo/dbs/target_structure> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/trajectory> ], + owl:onProperty <https://w3id.org/tvbo/dbs/manufacturer> ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/electrode_id> ], + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/dbs/model> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/dbs/hemisphere> ], + owl:onProperty <https://w3id.org/tvbo/dbs/manufacturer> ], [ a owl:Restriction ; - owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/ParcellationEntity> ; - owl:onProperty <https://w3id.org/tvbo/dbs/target_structure> ], + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/dbs/recon_path> ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/dbs/electrode_id> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/dbs/tail> ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/dbs/recon_path> ], + [ a owl:Restriction ; + owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/Coordinate> ; + owl:onProperty <https://w3id.org/tvbo/dbs/tail> ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/dbs/hemisphere> ], + [ a owl:Restriction ; + owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/Coordinate> ; + owl:onProperty <https://w3id.org/tvbo/dbs/head> ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty <https://w3id.org/tvbo/dbs/recon_path> ], [ a owl:Restriction ; owl:allValuesFrom <https://w3id.org/tvbo/dbs/Contact> ; owl:onProperty <https://w3id.org/tvbo/dbs/contacts> ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/head> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/dbs/recon_path> ], + owl:onProperty <https://w3id.org/tvbo/dbs/target_structure> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/dbs/model> ], + owl:onProperty <https://w3id.org/tvbo/dbs/hemisphere> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/manufacturer> ], + owl:onProperty <https://w3id.org/tvbo/dbs/electrode_id> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/dbs/target_structure> ], - [ a owl:Restriction ; - owl:minCardinality 0 ; owl:onProperty <https://w3id.org/tvbo/dbs/model> ], [ a owl:Restriction ; owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/dbs/head> ], + [ a owl:Restriction ; + owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/ParcellationEntity> ; + owl:onProperty <https://w3id.org/tvbo/dbs/target_structure> ], + [ a owl:Restriction ; + owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/CommonCoordinateSpace> ; owl:onProperty <https://w3id.org/tvbo/dbs/coordinate_space> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/dbs/model> ], - [ a owl:Restriction ; - owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/Coordinate> ; - owl:onProperty <https://w3id.org/tvbo/dbs/trajectory> ], - [ a owl:Restriction ; - owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/CommonCoordinateSpace> ; - owl:onProperty <https://w3id.org/tvbo/dbs/coordinate_space> ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/contacts> ], + owl:onProperty <https://w3id.org/tvbo/dbs/tail> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/dbs/electrode_id> ], + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/dbs/manufacturer> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/hemisphere> ], + owl:onProperty <https://w3id.org/tvbo/dbs/trajectory> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/coordinate_space> ], - [ a owl:Restriction ; - owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/Coordinate> ; - owl:onProperty <https://w3id.org/tvbo/dbs/tail> ] ; + owl:onProperty <https://w3id.org/tvbo/dbs/model> ] ; skos:definition "Implanted DBS electrode and contact geometry." ; skos:inScheme tvbo:dbs ; skos:notation "Electrode" . @@ -5532,6 +5704,12 @@ tvbo:edges a owl:ObjectProperty ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "edges" . +tvbo:env a owl:ObjectProperty ; + rdfs:label "env (slot)" ; + skos:definition "Environment variables exported before the task command on every engine (e.g. XLA_PYTHON_CLIENT_PREALLOCATE=false). An ordered list of {name, value}; values are shell-quoted at emit time." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "env" . + tvbo:explorations a owl:ObjectProperty ; rdfs:label "explorations (slot)" ; skos:definition "Parameter exploration/grid search specifications" ; @@ -5615,6 +5793,12 @@ tvbo:modes a owl:ObjectProperty ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "modes" . +tvbo:modules a owl:DatatypeProperty ; + rdfs:label "modules (slot)" ; + skos:definition "Environment modules to load before running (module load …)." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "modules" . + tvbo:objectives a owl:DatatypeProperty ; rdfs:label "objectives (slot)" ; skos:definition "Names of observations minimised by an adaptive `strategy` (e.g. 'nsga2'). Each entry references an existing observation already framed lower-is-better (e.g. `one_minus_fc`, `psd_mae`). Count sets the semantics: 0 β†’ pure sweep (use `record`), 1 β†’ single-objective, β‰₯2 β†’ multi-objective / Pareto. Ignored when strategy is 'grid'. Forward-compatible with `Search.objectives`." ; @@ -5668,6 +5852,12 @@ tvbo:requires a owl:ObjectProperty ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "requires" . +tvbo:setup a owl:DatatypeProperty ; + rdfs:label "setup (slot)" ; + skos:definition "Shell lines run verbatim before the task command, after ``set -euo pipefail`` and any module/venv activation. The general hook for environment setup the typed fields do not cover, e.g. activating a conda env (``conda activate <name>``), sourcing a profile, or exporting a computed path. Ordered; each line is emitted as-is." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "setup" . + tvbo:simulation_experiments a owl:ObjectProperty ; rdfs:label "simulation_experiments (slot)" ; skos:inScheme <https://w3id.org/tvbo> ; @@ -5678,65 +5868,65 @@ tvbo:simulation_experiments a owl:ObjectProperty ; rdfs:label "SoftwarePackage (software)" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/description> ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/software/repository> ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/software/license> ], - [ a owl:Restriction ; owl:allValuesFrom xsd:anyURI ; - owl:onProperty <https://w3id.org/tvbo/software/repository> ], + owl:onProperty <https://w3id.org/tvbo/software/homepage> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/ecosystem> ], + owl:onProperty <https://w3id.org/tvbo/software/license> ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/license> ], + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/software/doi> ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/software/description> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/software/repository> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/software/license> ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:EcosystemEnum ; + owl:onProperty <https://w3id.org/tvbo/software/ecosystem> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty <https://w3id.org/tvbo/software/description> ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty <https://w3id.org/tvbo/software/doi> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:minCardinality 1 ; owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/software/doi> ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:allValuesFrom xsd:anyURI ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/software/ecosystem> ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/software/homepage> ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:EcosystemEnum ; - owl:onProperty <https://w3id.org/tvbo/software/ecosystem> ], + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/software/license> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/software/license> ], + owl:onProperty <https://w3id.org/tvbo/software/description> ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom xsd:string ; owl:onProperty <https://w3id.org/tvbo/software/doi> ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom xsd:anyURI ; owl:onProperty <https://w3id.org/tvbo/software/repository> ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/homepage> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/software/homepage> ], + owl:onProperty <https://w3id.org/tvbo/software/repository> ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:name ] ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/software/homepage> ] ; skos:definition "Identity and metadata for a software package, aligned with schema.org/SoftwareApplication and CodeMeta v3." ; skos:exactMatch schema1:SoftwareApplication ; skos:inScheme tvbo:software ; @@ -5871,61 +6061,61 @@ tvbo:structural_measures a owl:DatatypeProperty ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/study/bids_root> ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/study/description> ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/study/dataset_id> ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/study/label> ], - [ a owl:Restriction ; - owl:minCardinality 0 ; owl:onProperty <https://w3id.org/tvbo/study/reference> ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/study/subjects> ], + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/study/bids_root> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/study/conditions> ], + owl:onProperty <https://w3id.org/tvbo/study/label> ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty <https://w3id.org/tvbo/study/bids_root> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/study/label> ], + owl:onProperty <https://w3id.org/tvbo/study/dataset_id> ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/study/label> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:maxCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/study/bids_root> ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/study/dataset_id> ], + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/study/description> ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/study/description> ], + [ a owl:Restriction ; + owl:allValuesFrom <https://w3id.org/tvbo/study/Subject> ; + owl:onProperty <https://w3id.org/tvbo/study/subjects> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/study/conditions> ], + owl:onProperty <https://w3id.org/tvbo/study/description> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/study/label> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/study/description> ], + owl:onProperty <https://w3id.org/tvbo/study/conditions> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/study/reference> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty <https://w3id.org/tvbo/study/dataset_id> ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/study/reference> ], + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/study/subjects> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty <https://w3id.org/tvbo/study/reference> ], [ a owl:Restriction ; - owl:allValuesFrom <https://w3id.org/tvbo/study/Subject> ; - owl:onProperty <https://w3id.org/tvbo/study/subjects> ] ; + owl:minCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/study/dataset_id> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/study/conditions> ] ; skos:definition "A collection of subjects for a multi-subject study. Provides the subject/session structure needed for workflow rendering. Optionally backed by a BIDS directory layout." ; skos:inScheme tvbo:study ; skos:notation "Dataset" . @@ -5985,6 +6175,12 @@ tvbo:update_rules a owl:ObjectProperty ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "update_rules" . +tvbo:vectorize a owl:DatatypeProperty ; + rdfs:label "vectorize (slot)" ; + skos:definition "Axis names or parameters to pack into a single vectorized backend call. It is an error to name an axis the backend cannot batch." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "vectorize" . + tvbo:vertex_to_region a owl:DatatypeProperty ; rdfs:label "vertex_to_region (slot)" ; skos:definition "Array mapping each vertex index to its parent region index. Can use dataLocation instead for large arrays." ; @@ -6094,148 +6290,209 @@ tvbo:AlgorithmCompositionMode a owl:Class ; linkml:permissible_values <https://w3id.org/tvbo/AlgorithmCompositionMode#combined>, <https://w3id.org/tvbo/AlgorithmCompositionMode#nested> . -tvbo:BoundaryCondition a owl:Class ; - rdfs:label "BoundaryCondition" ; +tvbo:BidsEntities a owl:Class ; + rdfs:label "BidsEntities" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:label ], + owl:minCardinality 0 ; + owl:onProperty tvbo:reconstruction ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:template ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:label ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:cohort ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:bc_type ], + owl:onProperty tvbo:atlas ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:on_region ], + owl:onProperty tvbo:segmentation ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:time_dependent ], + owl:onProperty tvbo:atlas ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Equation ; - owl:onProperty tvbo:value ], + owl:minCardinality 0 ; + owl:onProperty tvbo:hemi ], [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty tvbo:time_dependent ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:atlas ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:bc_type ], + owl:onProperty tvbo:suffix ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:on_region ], + owl:onProperty tvbo:scale ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:time_dependent ], + owl:onProperty tvbo:scale ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:acquisition ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:suffix ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:on_region ], + owl:onProperty tvbo:segmentation ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:hemi ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:suffix ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:acquisition ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:desc ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:segmentation ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:reconstruction ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:value ], + owl:onProperty tvbo:hemi ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:BoundaryConditionType ; - owl:onProperty tvbo:bc_type ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:template ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:desc ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:value ] ; - skos:exactMatch tvbo:BoundaryCondition ; - skos:inScheme <https://w3id.org/tvbo> . - -tvbo:BrainRegionSeries a owl:Class ; - rdfs:label "BrainRegionSeries" ; - rdfs:isDefinedBy tvbo:struct ; - rdfs:subClassOf [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:values ], + owl:onProperty tvbo:desc ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:reconstruction ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:cohort ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:scale ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:values ] ; - skos:definition "A series whose values represent latitude" ; - skos:exactMatch tvbo:BrainRegionSeries ; + owl:onProperty tvbo:cohort ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:template ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:acquisition ] ; + skos:definition "BIDS filename entities (BEP017-aligned) for provenance and data discovery. Reusable on Network, BrainAtlas, Tractogram, or any dataset with BIDS-conformant naming." ; + skos:exactMatch tvbo:BidsEntities ; skos:inScheme <https://w3id.org/tvbo> . -tvbo:ClassReference a owl:Class ; - rdfs:label "ClassReference" ; +tvbo:BoundaryCondition a owl:Class ; + rdfs:label "BoundaryCondition" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:constructor_args ], + owl:allValuesFrom tvbo:BoundaryConditionType ; + owl:onProperty tvbo:bc_type ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:call_args ], + owl:onProperty tvbo:value ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:bc_type ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:warmup_source ], + owl:onProperty tvbo:on_region ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:warmup_source ], + owl:onProperty tvbo:time_dependent ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:warmup_source ], + owl:onProperty tvbo:on_region ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Argument ; - owl:onProperty tvbo:call_args ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:label ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:on_region ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Argument ; - owl:onProperty tvbo:constructor_args ], - tvbo:Callable ; - skos:definition "Reference to a class that can be instantiated and called. Used for external library classes (e.g., tvboptim.Bold, custom monitors). The class is instantiated with constructor_args, then called with call_args. Generalizable pattern: works for tvboptim, TVB, or any Python class." ; - skos:exactMatch tvbo:ClassReference ; - skos:inScheme <https://w3id.org/tvbo> . - -tvbo:Continuation a owl:Class ; - rdfs:label "Continuation" ; - rdfs:isDefinedBy tvbo:struct ; - rdfs:subClassOf [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:initial_state ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:ds_min ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:time_dependent ], [ a owl:Restriction ; owl:allValuesFrom xsd:boolean ; - owl:onProperty tvbo:bothside ], + owl:onProperty tvbo:time_dependent ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:options ], + owl:allValuesFrom tvbo:Equation ; + owl:onProperty tvbo:value ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:nev ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:detect_bifurcation ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:software ], + owl:onProperty tvbo:bc_type ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:max_bisection_steps ], + owl:onProperty tvbo:value ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:bothside ], + owl:onProperty tvbo:description ] ; + skos:exactMatch tvbo:BoundaryCondition ; + skos:inScheme <https://w3id.org/tvbo> . + +tvbo:BrainRegionSeries a owl:Class ; + rdfs:label "BrainRegionSeries" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:values ], [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:ds_max ], + owl:minCardinality 0 ; + owl:onProperty tvbo:values ] ; + skos:definition "A series whose values represent latitude" ; + skos:exactMatch tvbo:BrainRegionSeries ; + skos:inScheme <https://w3id.org/tvbo> . + +tvbo:ClassReference a owl:Class ; + rdfs:label "ClassReference" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom tvbo:Argument ; + owl:onProperty tvbo:constructor_args ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:detect_bifurcation ], + owl:onProperty tvbo:call_args ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:algorithm ], + owl:onProperty tvbo:constructor_args ], [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:warmup_source ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Argument ; + owl:onProperty tvbo:call_args ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:warmup_source ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:warmup_source ], + tvbo:Callable ; + skos:definition "Reference to a class that can be instantiated and called. Used for external library classes (e.g., tvboptim.Bold, custom monitors). The class is instantiated with constructor_args, then called with call_args. Generalizable pattern: works for tvboptim, TVB, or any Python class." ; + skos:exactMatch tvbo:ClassReference ; + skos:inScheme <https://w3id.org/tvbo> . + +tvbo:Continuation a owl:Class ; + rdfs:label "Continuation" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:algorithm ], [ a owl:Restriction ; @@ -6243,562 +6500,625 @@ tvbo:Continuation a owl:Class ; owl:onProperty tvbo:max_steps ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:ds_min ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:BranchSwitch ; - owl:onProperty tvbo:branches ], + owl:onProperty tvbo:ds_max ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:dynamics ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:execution ], + owl:minCardinality 0 ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:bothside ], + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:ds_min ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:n_inversion ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:free_parameters ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:name ], + owl:onProperty tvbo:ds_min ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:initial_state ], + owl:onProperty tvbo:execution ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:newton_tol ], + owl:allValuesFrom xsd:boolean ; + owl:onProperty tvbo:bothside ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:ds_max ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; owl:onProperty tvbo:tol_stability ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:newton_max_iterations ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:detect_fold ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:detect_fold ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:tol_stability ], + owl:onProperty tvbo:ds_min ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty tvbo:name ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:tol_stability ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:ds ], + owl:onProperty tvbo:branches ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:ds ], [ a owl:Restriction ; owl:maxCardinality 1 ; + owl:onProperty tvbo:max_bisection_steps ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty tvbo:newton_tol ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:newton_max_iterations ], + owl:onProperty tvbo:initial_state ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:dynamics ], + owl:onProperty tvbo:max_bisection_steps ], [ a owl:Restriction ; - owl:allValuesFrom <https://w3id.org/tvbo/software/SoftwareRequirement> ; - owl:onProperty tvbo:software ], + owl:allValuesFrom tvbo:Dynamics ; + owl:onProperty tvbo:dynamics ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:max_steps ], + owl:onProperty tvbo:options ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:n_inversion ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:newton_tol ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:description ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Dynamics ; - owl:onProperty tvbo:dynamics ], + owl:onProperty tvbo:nev ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:max_steps ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Option ; - owl:onProperty tvbo:options ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:n_inversion ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:nev ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:ExecutionConfig ; - owl:onProperty tvbo:execution ], + owl:onProperty tvbo:software ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Parameter ; - owl:onProperty tvbo:free_parameters ], + owl:minCardinality 1 ; + owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:label ], + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:ds ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:nev ], + owl:onProperty tvbo:detect_fold ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:max_bisection_steps ], + owl:onProperty tvbo:bothside ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:ds_min ], + owl:minCardinality 0 ; + owl:onProperty tvbo:dynamics ], [ a owl:Restriction ; owl:allValuesFrom xsd:boolean ; owl:onProperty tvbo:detect_fold ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:detect_bifurcation ], [ a owl:Restriction ; owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:newton_max_iterations ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:ds_max ], + owl:onProperty tvbo:n_inversion ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:tol_stability ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:ContinuationAlgorithm ; - owl:onProperty tvbo:algorithm ], + owl:onProperty tvbo:max_steps ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:max_bisection_steps ], + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:tol_stability ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:name ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:label ], + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:newton_max_iterations ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:detect_bifurcation ], + owl:onProperty tvbo:nev ], [ a owl:Restriction ; owl:allValuesFrom tvbo:InitialState ; owl:onProperty tvbo:initial_state ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:execution ], + owl:onProperty tvbo:n_inversion ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:software ], + owl:onProperty tvbo:ds_max ], [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; + owl:minCardinality 0 ; owl:onProperty tvbo:ds ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom tvbo:BranchSwitch ; owl:onProperty tvbo:branches ], [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:newton_tol ], + owl:allValuesFrom tvbo:Option ; + owl:onProperty tvbo:options ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:ds ] ; - skos:definition "Complete specification of a numerical continuation / bifurcation analysis. All universal solver settings live directly here. Toolkit-specific string options go in the options slot. When used inside a BranchSwitch, only explicitly set attributes override the parent's values." ; - skos:exactMatch tvbo:Continuation ; - skos:inScheme <https://w3id.org/tvbo> . - -tvbo:DerivedParameter a owl:Class ; - rdfs:label "DerivedParameter" ; - rdfs:isDefinedBy tvbo:struct ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom tvbo:UnitEnum ; - owl:onProperty tvbo:unit ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:software ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:description ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:name ], + owl:onProperty tvbo:newton_max_iterations ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:unit ], + owl:allValuesFrom tvbo:Parameter ; + owl:onProperty tvbo:free_parameters ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:unit ], + owl:allValuesFrom tvbo:ContinuationAlgorithm ; + owl:onProperty tvbo:algorithm ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:symbol ], + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:newton_tol ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:equation ], + owl:allValuesFrom tvbo:ExecutionConfig ; + owl:onProperty tvbo:execution ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:detect_bifurcation ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:nev ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:symbol ], + owl:onProperty tvbo:bothside ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:symbol ], + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:ds_max ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:name ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:execution ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:equation ], + owl:onProperty tvbo:newton_max_iterations ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Equation ; - owl:onProperty tvbo:equation ], + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:max_bisection_steps ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty tvbo:name ], - tvbo:Parameter ; - skos:exactMatch tvbo:DerivedParameter ; - skos:inScheme <https://w3id.org/tvbo> . - -tvbo:Edge a owl:Class ; - rdfs:label "Edge" ; - rdfs:isDefinedBy tvbo:struct ; - rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:dynamics ], + owl:onProperty tvbo:algorithm ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:initial_state ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:label ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:detect_bifurcation ], + [ a owl:Restriction ; + owl:allValuesFrom <https://w3id.org/tvbo/software/SoftwareRequirement> ; + owl:onProperty tvbo:software ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:source_network ], + owl:onProperty tvbo:dynamics ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:non_negative ], + owl:onProperty tvbo:free_parameters ] ; + skos:definition "Complete specification of a numerical continuation / bifurcation analysis. All universal solver settings live directly here. Toolkit-specific string options go in the options slot. When used inside a BranchSwitch, only explicitly set attributes override the parent's values." ; + skos:exactMatch tvbo:Continuation ; + skos:inScheme <https://w3id.org/tvbo> . + +tvbo:CouplingStageEvaluation a owl:Class ; + rdfs:label "CouplingStageEvaluation" ; + rdfs:isDefinedBy tvbo:struct ; + owl:unionOf ( <https://w3id.org/tvbo/CouplingStageEvaluation#per_stage> <https://w3id.org/tvbo/CouplingStageEvaluation#per_step> ) ; + skos:definition "How the network coupling term is evaluated within one step of a multi-stage integrator (Heun, RK4, ...). A backend-neutral numerical contract: whether the coupling is part of the vector field, re-evaluated at each solver stage, or computed once per step and held constant across the stages. Matters because the two choices integrate a different effective system β€” for stiff / chaotic / multistable dynamics they can converge to different trajectories or attractors." ; + skos:inScheme <https://w3id.org/tvbo> ; + linkml:permissible_values <https://w3id.org/tvbo/CouplingStageEvaluation#per_stage>, + <https://w3id.org/tvbo/CouplingStageEvaluation#per_step> . + +tvbo:DerivedParameter a owl:Class ; + rdfs:label "DerivedParameter" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:unit ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Parameter ; - owl:onProperty tvbo:parameters ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:target_var ], + owl:allValuesFrom tvbo:Equation ; + owl:onProperty tvbo:equation ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:weighted ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:non_negative ], + owl:onProperty tvbo:symbol ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:target ], + owl:onProperty tvbo:symbol ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:valid_diagonal ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:coupling ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:target_network ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:weight ], + owl:onProperty tvbo:equation ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:target_var ], + owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:source_var ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:unit ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:label ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Dynamics ; - owl:onProperty tvbo:dynamics ], + owl:onProperty tvbo:symbol ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:target_network ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:valid_diagonal ], + owl:onProperty tvbo:equation ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:target ], + owl:allValuesFrom tvbo:UnitEnum ; + owl:onProperty tvbo:unit ], + tvbo:Parameter ; + skos:exactMatch tvbo:DerivedParameter ; + skos:inScheme <https://w3id.org/tvbo> . + +tvbo:Edge a owl:Class ; + rdfs:label "Edge" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:coupling ], [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; + owl:minCardinality 0 ; owl:onProperty tvbo:delay ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:weighted ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:distance ], + owl:onProperty tvbo:parameters ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:format ], + owl:onProperty tvbo:directed ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Coupling ; - owl:onProperty tvbo:coupling ], + owl:allValuesFrom xsd:boolean ; + owl:onProperty tvbo:valid_diagonal ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:source_var ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:format ], + owl:onProperty tvbo:distance ], [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty tvbo:weighted ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:target_var ], [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty tvbo:non_negative ], + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:distance ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty tvbo:directed ], + owl:onProperty tvbo:target_network ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:source_network ], + owl:onProperty tvbo:unit ], [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty tvbo:valid_diagonal ], + owl:minCardinality 0 ; + owl:onProperty tvbo:target ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:target ], + owl:onProperty tvbo:dynamics ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:directed ], + owl:onProperty tvbo:dynamics ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:source ], + owl:allValuesFrom tvbo:Parameter ; + owl:onProperty tvbo:parameters ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:weight ], + owl:onProperty tvbo:target_var ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:delay ], + owl:onProperty tvbo:weighted ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:unit ], + owl:onProperty tvbo:dimension_labels ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:label ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:coupling ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:dynamics ], + owl:onProperty tvbo:target ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Coupling ; + owl:onProperty tvbo:coupling ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:directed ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:target ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:distance ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:source_network ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:weight ], + owl:onProperty tvbo:valid_diagonal ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:unit ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:delay ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:weight ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:boolean ; + owl:onProperty tvbo:directed ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:valid_diagonal ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:parameters ], + owl:onProperty tvbo:source_network ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:unit ], [ a owl:Restriction ; owl:allValuesFrom xsd:integer ; owl:onProperty tvbo:source ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:target_var ], + owl:minCardinality 0 ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:target_network ], + owl:minCardinality 0 ; + owl:onProperty tvbo:unit ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:distance ], + owl:onProperty tvbo:target_var ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:dimension_labels ], + owl:onProperty tvbo:non_negative ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:SparseFormat ; - owl:onProperty tvbo:format ], + owl:allValuesFrom tvbo:Dynamics ; + owl:onProperty tvbo:dynamics ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:source_var ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:target_network ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:unit ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:coupling ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:dimension_labels ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:events ], + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:weight ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:label ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:source_network ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Event ; owl:onProperty tvbo:events ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:non_negative ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:dimension_labels ], + owl:onProperty tvbo:source_network ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:directed ], + owl:onProperty tvbo:format ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom xsd:float ; owl:onProperty tvbo:delay ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty tvbo:source ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:source_var ] ; - skos:definition "An edge in a network. Two modes: explicit (source+target set, scalar parameters in YAML) or template (no source/target, NΓ—N matrix measure in HDF5). Both coexist in the same edges list." ; - skos:exactMatch tvbo:Edge ; - skos:inScheme <https://w3id.org/tvbo> . - -tvbo:Exploration a owl:Class ; - rdfs:label "Exploration" ; - rdfs:isDefinedBy tvbo:struct ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:average ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:algorithms ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:weighted ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:ExplorationAxis ; - owl:onProperty tvbo:space ], + owl:minCardinality 0 ; + owl:onProperty tvbo:events ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:mode ], + owl:allValuesFrom xsd:boolean ; + owl:onProperty tvbo:weighted ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:n_trials ], + owl:allValuesFrom tvbo:SparseFormat ; + owl:onProperty tvbo:format ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:objectives ], + owl:onProperty tvbo:source ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:name ], + owl:onProperty tvbo:source_var ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:target_network ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:boolean ; + owl:onProperty tvbo:non_negative ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Parameter ; + owl:minCardinality 0 ; + owl:onProperty tvbo:format ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:weight ] ; + skos:definition "An edge in a network. Two modes: explicit (source+target set, scalar parameters in YAML) or template (no source/target, NΓ—N matrix measure in HDF5). Both coexist in the same edges list." ; + skos:exactMatch tvbo:Edge ; + skos:inScheme <https://w3id.org/tvbo> . + +tvbo:Exploration a owl:Class ; + rdfs:label "Exploration" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty tvbo:parameters ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:parallel_batch_size ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:n_parallel ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:strategy ], + owl:onProperty tvbo:execution ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], + owl:minCardinality 0 ; + owl:onProperty tvbo:algorithms ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:parallel_batch_size ], + owl:onProperty tvbo:n_parallel ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:FunctionCall ; - owl:onProperty tvbo:observable ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:average ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:ParallelMode ; - owl:onProperty tvbo:parallel_mode ], + owl:minCardinality 0 ; + owl:onProperty tvbo:strategy ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:observable ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:ExecutionConfig ; + owl:minCardinality 0 ; owl:onProperty tvbo:execution ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:n_trials ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:execution ], + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:mode ], + owl:onProperty tvbo:average ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:objectives ], + owl:minCardinality 0 ; + owl:onProperty tvbo:space ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty tvbo:name ], + owl:allValuesFrom tvbo:SweepSeeding ; + owl:onProperty tvbo:sweep_seeding ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:record ], + owl:onProperty tvbo:average ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:record ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:parallel_mode ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:strategy ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:label ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:sweep_seeding ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:mode ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:n_parallel ], + owl:onProperty tvbo:parallel_batch_size ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:n_parallel ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:observable ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:parallel_mode ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:record ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:parallel_batch_size ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:sweep_direction ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:record ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:mode ], [ a owl:Restriction ; owl:allValuesFrom xsd:integer ; owl:onProperty tvbo:parallel_batch_size ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:average ], + owl:onProperty tvbo:strategy ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:observable ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:n_trials ], + owl:onProperty tvbo:parallel_mode ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:FunctionCall ; + owl:onProperty tvbo:observable ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:ExecutionConfig ; + owl:onProperty tvbo:execution ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:algorithms ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:objectives ], [ a owl:Restriction ; owl:allValuesFrom xsd:integer ; owl:onProperty tvbo:n_parallel ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:n_trials ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:ExplorationAxis ; owl:onProperty tvbo:space ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:parameters ], + owl:onProperty tvbo:mode ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:n_trials ], + owl:minCardinality 0 ; + owl:onProperty tvbo:objectives ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:execution ], + owl:onProperty tvbo:sweep_seeding ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:strategy ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:ParallelMode ; + owl:onProperty tvbo:parallel_mode ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:strategy ], + owl:onProperty tvbo:n_trials ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:SweepDirection ; + owl:onProperty tvbo:sweep_direction ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:sweep_direction ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:label ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Parameter ; + owl:onProperty tvbo:parameters ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:algorithms ] ; + owl:onProperty tvbo:average ] ; skos:definition "Parameter space exploration (grid search, sweep)." ; skos:exactMatch tvbo:Exploration ; skos:inScheme <https://w3id.org/tvbo> . @@ -6807,104 +7127,125 @@ tvbo:Node a owl:Class ; rdfs:label "Node" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/Coordinate> ; + owl:onProperty tvbo:position ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty tvbo:id ], + [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:parameters ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Dynamics ; - owl:onProperty tvbo:dynamics ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:dynamics ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:record ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:subnetwork ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:id ], + owl:allValuesFrom tvbo:Dynamics ; + owl:onProperty tvbo:dynamics ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:subnetwork ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:events ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:subnetwork ], - [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:state ], + owl:onProperty tvbo:record ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:dynamics ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:allValuesFrom xsd:integer ; owl:onProperty tvbo:id ], - [ a owl:Restriction ; - owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/Coordinate> ; - owl:onProperty tvbo:position ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:position ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:region ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Network ; - owl:onProperty tvbo:subnetwork ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:record ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:events ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Parameter ; owl:onProperty tvbo:parameters ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:region ], [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty tvbo:record ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:region ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:state ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:id ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:allValuesFrom tvbo:StateValue ; owl:onProperty tvbo:state ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:dynamics ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty tvbo:region ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:allValuesFrom xsd:string ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/alternateName> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:position ], + owl:onProperty tvbo:record ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Event ; owl:onProperty tvbo:events ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:dynamics ] ; - skos:definition "A node in a network with its own dynamics and properties" ; + owl:allValuesFrom xsd:boolean ; + owl:onProperty tvbo:record ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:position ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:id ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Network ; + owl:onProperty tvbo:subnetwork ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/alternateName> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:position ] ; + skos:definition "A node in a network with its own dynamics and properties" ; skos:exactMatch tvbo:Node ; skos:inScheme <https://w3id.org/tvbo> . +tvbo:NodeReconciliation a owl:Class ; + rdfs:label "NodeReconciliation" ; + rdfs:isDefinedBy tvbo:struct ; + owl:unionOf ( <https://w3id.org/tvbo/NodeReconciliation#by_label> <https://w3id.org/tvbo/NodeReconciliation#none> ) ; + skos:definition "Strategy for aligning a dataset-sourced empirical target's nodes to the model network before comparison. Keyed alignment is the default so a differing node count or ordering (e.g. a 998-parcel empirical FC against a 1000-parcel model) cannot silently misalign the comparison." ; + skos:inScheme <https://w3id.org/tvbo> ; + linkml:permissible_values <https://w3id.org/tvbo/NodeReconciliation#by_label>, + <https://w3id.org/tvbo/NodeReconciliation#none> . + tvbo:Parcellation a owl:Class ; rdfs:label "Parcellation" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/BrainAtlas> ; + owl:onProperty tvbo:atlas ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:data_source ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:anyURI ; owl:onProperty tvbo:iri ], [ a owl:Restriction ; owl:minCardinality 0 ; @@ -6912,11 +7253,17 @@ tvbo:Parcellation a owl:Class ; [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:label ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:data_source ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/BrainAtlas> ; + owl:minCardinality 0 ; + owl:onProperty tvbo:iri ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty tvbo:atlas ], [ a owl:Restriction ; owl:maxCardinality 1 ; @@ -6924,20 +7271,8 @@ tvbo:Parcellation a owl:Class ; [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:iri ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:data_source ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:data_source ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:atlas ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:anyURI ; - owl:onProperty tvbo:iri ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; owl:onProperty tvbo:data_source ] ; skos:exactMatch tvbo:Parcellation ; skos:inScheme <https://w3id.org/tvbo> . @@ -6946,31 +7281,31 @@ tvbo:ProcedureStep a owl:Class ; rdfs:label "ProcedureStep" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:allValuesFrom tvbo:Equation ; + owl:onProperty tvbo:equation ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 1 ; owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:maxCardinality 1 ; owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Equation ; - owl:onProperty tvbo:equation ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:description ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:equation ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 0 ; + owl:onProperty tvbo:equation ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty tvbo:equation ] ; skos:definition "A single named step (or output) in a Procedure, carrying the Equation that defines it." ; skos:exactMatch tvbo:ProcedureStep ; @@ -6989,80 +7324,89 @@ tvbo:Stimulus a owl:Class ; rdfs:label "Stimulus" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:parameters ], - [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:description ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:equation ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:label ], + owl:allValuesFrom tvbo:Noise ; + owl:onProperty tvbo:noise ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:weighting ], + owl:onProperty tvbo:parameters ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:label ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:equation ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Parameter ; + owl:onProperty tvbo:parameters ], [ a owl:Restriction ; owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:weighting ], + owl:onProperty tvbo:duration ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty tvbo:duration ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:regions ], [ a owl:Restriction ; owl:maxCardinality 1 ; + owl:onProperty tvbo:duration ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:label ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:weighting ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:equation ], + owl:onProperty tvbo:noise ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:regions ], + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:weighting ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:duration ], + owl:onProperty tvbo:regions ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:noise ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; + owl:onProperty tvbo:description ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty tvbo:noise ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:regions ], + owl:minCardinality 0 ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Equation ; owl:onProperty tvbo:equation ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Parameter ; - owl:onProperty tvbo:parameters ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:duration ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Noise ; - owl:onProperty tvbo:noise ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:description ] ; + owl:minCardinality 0 ; + owl:onProperty tvbo:equation ] ; skos:exactMatch tvbo:Stimulus ; skos:inScheme <https://w3id.org/tvbo> . +tvbo:SweepSeeding a owl:Class ; + rdfs:label "SweepSeeding" ; + rdfs:isDefinedBy tvbo:struct ; + owl:unionOf ( <https://w3id.org/tvbo/SweepSeeding#independent> <https://w3id.org/tvbo/SweepSeeding#from_previous> ) ; + skos:definition "How each point of a parameter sweep (Exploration) obtains its initial state. Determines whether the sweep points are independent (and therefore parallelisable) or whether the trajectory follows a solution branch as the swept parameter is changed quasi-statically. The latter is forward-time-integration branch following β€” distinct from numerical continuation of equilibria (the Continuation class), which tracks branches with a Newton corrector rather than by simulation." ; + skos:inScheme <https://w3id.org/tvbo> ; + linkml:permissible_values <https://w3id.org/tvbo/SweepSeeding#from_previous>, + <https://w3id.org/tvbo/SweepSeeding#independent> . + tvbo:SystemType a owl:Class ; rdfs:label "SystemType" ; rdfs:isDefinedBy tvbo:struct ; @@ -7071,12 +7415,127 @@ tvbo:SystemType a owl:Class ; linkml:permissible_values <https://w3id.org/tvbo/SystemType#continuous>, <https://w3id.org/tvbo/SystemType#discrete> . +tvbo:WorkflowConfig a owl:Class ; + rdfs:label "WorkflowConfig" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:retries ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:container ], + [ a owl:Restriction ; + owl:allValuesFrom [ a rdfs:Datatype ; + owl:intersectionOf ( xsd:integer [ a rdfs:Datatype ; + owl:onDatatype xsd:integer ; + owl:withRestrictions ( [ xsd:minInclusive 0 ] ) ] ) ] ; + owl:onProperty tvbo:retries ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:distribute ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:container ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:out_dir ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:chunk ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:boolean ; + owl:onProperty tvbo:provenance ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:provenance ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:DistributionConfig ; + owl:onProperty tvbo:distribute ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:snakemake ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:slurm ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:snakemake ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:container ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:WorkflowEngineConfig ; + owl:onProperty tvbo:snakemake ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:retries ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:distribute ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:rng ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:nextflow ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:WorkflowEngineConfig ; + owl:onProperty tvbo:nextflow ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:out_dir ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:rng ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:rng ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:requirements ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:WorkflowEngineConfig ; + owl:onProperty tvbo:slurm ], + [ a owl:Restriction ; + owl:allValuesFrom <https://w3id.org/tvbo/software/SoftwareRequirement> ; + owl:onProperty tvbo:requirements ], + [ a owl:Restriction ; + owl:allValuesFrom [ a rdfs:Datatype ; + owl:intersectionOf ( xsd:integer [ a rdfs:Datatype ; + owl:onDatatype xsd:integer ; + owl:withRestrictions ( [ xsd:minInclusive 1 ] ) ] ) ] ; + owl:onProperty tvbo:chunk ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:nextflow ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:chunk ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:slurm ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:provenance ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:out_dir ] ; + skos:definition "Declarative orchestration for rendering a parameter sweep into a distributed, reproducible workflow (Slurm array, Snakemake, Nextflow). Backend- and engine-independent: it names *what* to distribute, *where* results go, and the per-engine resources, while each engine emitter renders the concrete artefact. Declared on a study as ``workflow`` and refined per experiment via ``workflow_overrides``; unset fields fall back to the emitter's defaults so an override sets only what it names." ; + skos:exactMatch tvbo:WorkflowConfig ; + skos:inScheme <https://w3id.org/tvbo> . + tvbo:accelerator a owl:DatatypeProperty ; rdfs:label "accelerator (slot)" ; skos:definition "Hardware accelerator: 'cpu', 'gpu', 'tpu'" ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "accelerator" . +tvbo:account a owl:DatatypeProperty ; + rdfs:label "account (slot)" ; + skos:definition "Accounting allocation to charge the tasks against (Slurm)." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "account" . + tvbo:additive a owl:DatatypeProperty ; rdfs:label "additive (slot)" ; skos:definition "Indicates whether the noise is additive" ; @@ -7107,6 +7566,12 @@ tvbo:apply_every a owl:DatatypeProperty ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "apply_every" . +tvbo:array_chunk a owl:DatatypeProperty ; + rdfs:label "array_chunk (slot)" ; + skos:definition "Overrides ``distribute.chunk`` for this engine only: the number of array-task shards to split the vectorized sweep across." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "array_chunk" . + tvbo:autonomous a owl:DatatypeProperty ; rdfs:label "autonomous (slot)" ; skos:definition "Whether the system is autonomous (equations do not depend explicitly on time t). Non-autonomous systems have explicit time dependence, e.g. f*cos(omega*t)." ; @@ -7154,12 +7619,11 @@ tvbo:bounds a owl:ObjectProperty ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "bounds" . -tvbo:builder a owl:ObjectProperty ; - rdfs:label "builder (slot)" ; - skos:definition """Optional Python callable that builds the network at YAML load time. When set, ``Network._resolve`` imports ``<module>.<name>`` and invokes it with the ``parameters`` block as keyword arguments. The callable must return either a ``Network`` instance or a tuple ``(weights, lengths, node_params)``. Use the existing ``Callable`` slots (``name`` is the function name, ``module`` is its dotted module path). Reuses the same idiom as TVB monitor class references; no free ``module:function`` strings. -""" ; +tvbo:by a owl:ObjectProperty ; + rdfs:label "by (slot)" ; + skos:definition "Default tier for axes not named in ``vectorize`` or ``workflow``. Unset means ``auto``." ; skos:inScheme <https://w3id.org/tvbo> ; - skos:notation "builder" . + skos:notation "by" . tvbo:category a owl:DatatypeProperty ; rdfs:label "category (slot)" ; @@ -7229,12 +7693,24 @@ tvbo:connectivity_ref a owl:DatatypeProperty ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "connectivity_ref" . +tvbo:container a owl:DatatypeProperty ; + rdfs:label "container (slot)" ; + skos:definition "Container image wrapping each task (Apptainer/Singularity/Docker reference); tasks run as ``<runtime> exec <image> …``." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "container" . + tvbo:continuation a owl:ObjectProperty ; rdfs:label "continuation (slot)" ; skos:definition "Override solver settings for this branch. Uses the same Continuation type β€” only explicitly set attributes override the parent's values." ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "continuation" . +tvbo:cores a owl:DatatypeProperty ; + rdfs:label "cores (slot)" ; + skos:definition "Total cores for local engines (Snakemake --cores)." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "cores" . + tvbo:correlated a owl:DatatypeProperty ; rdfs:label "correlated (slot)" ; skos:inScheme <https://w3id.org/tvbo> ; @@ -7245,6 +7721,12 @@ tvbo:correlation a owl:ObjectProperty ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "correlation" . +tvbo:coupling_evaluation a owl:ObjectProperty ; + rdfs:label "coupling_evaluation (slot)" ; + skos:definition "Backend-neutral numerical treatment of the network coupling term across the stages of a multi-stage integrator (Heun, RK4, ...): re-evaluated at every stage (per_stage β€” standard ODE accuracy) or computed once per step and held constant across stages (per_step β€” a TVB-style efficiency shortcut). Single- stage methods (Euler) and always-recompute solvers (diffrax) ignore it. per_stage is required to match reference integrators for stiff / chaotic / multistable systems, where the frozen- coupling error can select a different trajectory or attractor. See CouplingStageEvaluation." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "coupling_evaluation" . + tvbo:coupling_function a owl:ObjectProperty ; rdfs:label "coupling_function (slot)" ; skos:definition "Mathematical function defining the coupling" ; @@ -7257,6 +7739,12 @@ tvbo:coupling_variable a owl:DatatypeProperty ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "coupling_variable" . +tvbo:cpus_per_task a owl:DatatypeProperty ; + rdfs:label "cpus_per_task (slot)" ; + skos:definition "CPU cores requested per task (Slurm --cpus-per-task)." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "cpus_per_task" . + tvbo:cse a owl:DatatypeProperty ; rdfs:label "cse (slot)" ; skos:definition "Code-generation hint (opt-in, backend-independent): eliminate common subexpressions. When true, the generator evaluates each repeated subexpression β€” including repeated calls to model-defined functions β€” once and reuses the result instead of re-emitting it at every occurrence. Purely a performance hint: results are numerically identical. A backend whose compiler already performs this elimination may honour it as a no-op. Off by default (expressions are emitted in flat form)." ; @@ -7304,68 +7792,68 @@ tvbo:date_created a owl:DatatypeProperty ; rdfs:label "ClinicalScore (dbs)" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/reference> ], - [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom <https://w3id.org/tvbo/dbs/ClinicalScale> ; owl:onProperty <https://w3id.org/tvbo/dbs/scale> ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/domain> ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom <https://w3id.org/tvbo/dbs/ClinicalScore> ; owl:onProperty <https://w3id.org/tvbo/dbs/parent_score> ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/dbs/scale> ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/dbs/name> ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/dbs/acronym> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty <https://w3id.org/tvbo/dbs/description> ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/dbs/description> ], - [ a owl:Restriction ; - owl:allValuesFrom <https://w3id.org/tvbo/dbs/ClinicalScore> ; - owl:onProperty <https://w3id.org/tvbo/dbs/parent_score> ], + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/dbs/acronym> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/acronym> ], + owl:onProperty <https://w3id.org/tvbo/dbs/reference> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:maxCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/dbs/acronym> ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/dbs/reference> ], - [ a owl:Restriction ; - owl:allValuesFrom <https://w3id.org/tvbo/dbs/ClinicalScale> ; - owl:onProperty <https://w3id.org/tvbo/dbs/scale> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/description> ], + owl:onProperty <https://w3id.org/tvbo/dbs/acronym> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:maxCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/dbs/domain> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/dbs/name> ], + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/dbs/scale> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty <https://w3id.org/tvbo/dbs/reference> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/dbs/parent_score> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/dbs/description> ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/dbs/name> ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/dbs/name> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/dbs/domain> ], + owl:onProperty <https://w3id.org/tvbo/dbs/scale> ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/dbs/parent_score> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/dbs/parent_score> ] ; + owl:onProperty <https://w3id.org/tvbo/dbs/domain> ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/dbs/description> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/dbs/name> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/dbs/domain> ] ; skos:definition "Metadata about a clinical score or scale." ; skos:inScheme tvbo:dbs ; skos:notation "ClinicalScore" . @@ -7593,6 +8081,12 @@ tvbo:derived_from_model a owl:ObjectProperty ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "derived_from_model" . +tvbo:desc a owl:DatatypeProperty ; + rdfs:label "desc (slot)" ; + skos:definition "BIDS desc- entity (e.g., FCavg, SC), for disambiguating derived data variants" ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "desc" . + tvbo:descriptor a owl:DatatypeProperty ; rdfs:label "descriptor (slot)" ; skos:definition "Short alphanumeric identifier for the BIDS desc- filename entity (e.g., SC, FC, EC, SCFC). Classifies the connectivity modality of the network's edge measures." ; @@ -7635,6 +8129,12 @@ tvbo:distance_unit a owl:ObjectProperty ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "distance_unit" . +tvbo:distribute a owl:ObjectProperty ; + rdfs:label "distribute (slot)" ; + skos:definition "How exploration axes map onto the vectorized vs fanned-out tiers." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "distribute" . + tvbo:doi a owl:DatatypeProperty ; rdfs:label "doi (slot)" ; skos:inScheme <https://w3id.org/tvbo> ; @@ -7723,6 +8223,12 @@ tvbo:event_type a owl:ObjectProperty ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "event_type" . +tvbo:executor a owl:DatatypeProperty ; + rdfs:label "executor (slot)" ; + skos:definition "Executor to run the pipeline through (Nextflow process.executor)." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "executor" . + tvbo:experiment_yaml_hash a owl:DatatypeProperty ; rdfs:label "experiment_yaml_hash (slot)" ; skos:definition "SHA-256 hex digest of the normalised experiment YAML that produced this artifact. Used by the cross-experiment cache (see :class:`SimulationStudy.from_file`) to detect when a cached upstream result has gone stale because the experiment's spec was edited. Computed as ``hashlib.sha256(yaml.safe_dump(normalized_yaml).encode()).hexdigest()`` over the fully resolved (post-``!include``) experiment block." ; @@ -7781,6 +8287,18 @@ tvbo:graph_generator a owl:ObjectProperty ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "graph_generator" . +tvbo:graph_representation a owl:ObjectProperty ; + rdfs:label "graph_representation (slot)" ; + skos:definition "Representation used to evaluate coupling over this network's connectivity (``auto`` | ``dense`` | ``sparse``). ``auto`` lets the backend choose by connection density. This names whether to exploit edge sparsity, not a concrete data structure, so it is backend-independent; the delayed-vs-instantaneous graph kind is decided separately from the couplings' conduction delays." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "graph_representation" . + +tvbo:gres a owl:DatatypeProperty ; + rdfs:label "gres (slot)" ; + skos:definition "Generic scheduler resources, e.g. 'gpu:1' (Slurm --gres)." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "gres" . + tvbo:has_reference a owl:DatatypeProperty ; rdfs:label "has_reference (slot)" ; rdfs:range xsd:string ; @@ -7945,6 +8463,18 @@ tvbo:loss a owl:ObjectProperty ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "loss" . +tvbo:mail_type a owl:DatatypeProperty ; + rdfs:label "mail_type (slot)" ; + skos:definition "Scheduler notification trigger (e.g. 'END,FAIL')." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "mail_type" . + +tvbo:mail_user a owl:DatatypeProperty ; + rdfs:label "mail_user (slot)" ; + skos:definition "Notification email address." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "mail_user" . + tvbo:max_bisection_steps a owl:DatatypeProperty ; rdfs:label "max_bisection_steps (slot)" ; skos:definition "Maximum bisection steps for bifurcation point localization." ; @@ -7974,6 +8504,12 @@ tvbo:measure_type a owl:DatatypeProperty ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "measure_type" . +tvbo:mem a owl:DatatypeProperty ; + rdfs:label "mem (slot)" ; + skos:definition "Memory per task in scheduler syntax (e.g. '16G')." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "mem" . + tvbo:mesh_file a owl:DatatypeProperty ; rdfs:label "mesh_file (slot)" ; skos:definition "Path to external mesh file (GIFTI, VTK, MSH, FreeSurfer, etc.)." ; @@ -7998,6 +8534,12 @@ tvbo:metric a owl:ObjectProperty ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "metric" . +tvbo:min_coverage a owl:DatatypeProperty ; + rdfs:label "min_coverage (slot)" ; + skos:definition "Minimum fraction of the model network's nodes that a ``by_label`` reconciliation must cover, else resolution raises. The realised coverage is always logged. Absent (``null``) means require full coverage (``1.0``) for a dataset-sourced target β€” silently fitting on a partial node subset must be an explicit opt-in (e.g. ``0.95`` to tolerate a few genuinely-missing empirical parcels), never the default." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "min_coverage" . + tvbo:modality a owl:ObjectProperty ; rdfs:label "modality (slot)" ; skos:definition "Imaging modality or simulation output type." ; @@ -8052,7 +8594,7 @@ tvbo:n_inversion a owl:DatatypeProperty ; tvbo:n_parallel a owl:DatatypeProperty ; rdfs:label "n_parallel (slot)" ; - skos:definition "Parallel evaluations" ; + skos:definition "Parallel evaluations / batch size for parameter exploration. Backends translate this into their own execution primitive (e.g. tvboptim's vectorised chunk size) without exposing any backend-specific names in the schema." ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "n_parallel" . @@ -8115,6 +8657,12 @@ tvbo:newton_tol a owl:DatatypeProperty ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "newton_tol" . +tvbo:nextflow a owl:ObjectProperty ; + rdfs:label "nextflow (slot)" ; + skos:definition "Nextflow execution directives." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "nextflow" . + tvbo:node_mapping a owl:DatatypeProperty ; rdfs:label "node_mapping (slot)" ; skos:definition "HDF5 dataset path for node-to-parent mapping. Int32 array of shape (N,) where entry i is the parent node ID. Required when parent_network is set." ; @@ -8227,6 +8775,12 @@ tvbo:operator_type a owl:ObjectProperty ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "operator_type" . +tvbo:out_dir a owl:DatatypeProperty ; + rdfs:label "out_dir (slot)" ; + skos:definition "Output directory template. ``{study}`` and ``{experiment}`` are substituted with the study and experiment keys at emit time. Unset means ``out/{study}/{experiment}``." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "out_dir" . + tvbo:output_equation a owl:ObjectProperty ; rdfs:label "output_equation (slot)" ; skos:definition "Output transformation equation (if equation-based)" ; @@ -8263,6 +8817,12 @@ tvbo:parent_network a owl:DatatypeProperty ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "parent_network" . +tvbo:partition a owl:DatatypeProperty ; + rdfs:label "partition (slot)" ; + skos:definition "Scheduler partition to submit to (Slurm)." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "partition" . + tvbo:period a owl:DatatypeProperty ; rdfs:label "period (slot)" ; skos:definition "Sampling period for monitors (ms). For BOLD: TR in ms." ; @@ -8329,6 +8889,18 @@ tvbo:quantity_kind a owl:DatatypeProperty ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "quantity_kind" . +tvbo:query a owl:ObjectProperty ; + rdfs:label "query (slot)" ; + skos:definition "BIDS entity filter that selects one per-subject file under the experiment's ``dataset.bids_root`` when ``source`` is dataset-sourced (``dataset.subject.<measure>``). The active subject fills the ``sub-`` entity at resolution time; the remaining entities (e.g. ``desc: FCavg, atlas: Schaefer1000, suffix: relmat``) disambiguate among the subject's several networks/measurements. The same filter enumerates the cohort for the per-subject workflow fan-out, so one declaration drives both discovery and resolution." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "query" . + +tvbo:queue a owl:DatatypeProperty ; + rdfs:label "queue (slot)" ; + skos:definition "Scheduler queue for the executor (Nextflow process.queue)." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "queue" . + tvbo:random_seed a owl:DatatypeProperty ; rdfs:label "random_seed (slot)" ; skos:definition "Base random seed for reproducibility" ; @@ -8340,6 +8912,12 @@ tvbo:random_state a owl:ObjectProperty ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "random_state" . +tvbo:reconcile a owl:ObjectProperty ; + rdfs:label "reconcile (slot)" ; + skos:definition "How a dataset-sourced target's nodes are aligned to the model network before comparison. ``by_label`` selects the shared node labels on both sides by name (keyed ``.sel``), never by position, so a differing node count or order cannot silently misalign the comparison. Matching is alias-aware: a target label matches a model node when it equals that node's ``label`` or any of its ``alternateName`` entries, so a differing nomenclature reconciles without relabelling either side. ``none`` disables reconciliation (identical node sets)." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "reconcile" . + tvbo:reconstruction a owl:DatatypeProperty ; rdfs:label "reconstruction (slot)" ; skos:definition "BIDS rec- entity (e.g., dTOR)" ; @@ -8376,12 +8954,24 @@ tvbo:required a owl:DatatypeProperty ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "required" . +tvbo:retries a owl:DatatypeProperty ; + rdfs:label "retries (slot)" ; + skos:definition "Automatic retries per failed task. Unset means none." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "retries" . + tvbo:rhs a owl:DatatypeProperty ; rdfs:label "rhs (slot)" ; skos:altLabel "righthandside" ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "rhs" . +tvbo:rng a owl:DatatypeProperty ; + rdfs:label "rng (slot)" ; + skos:definition "Random-seed policy across shards. ``deterministic`` (the default when unset) derives each task's seed from its shard index so the fan-out is reproducible." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "rng" . + tvbo:run_id a owl:DatatypeProperty ; rdfs:label "run_id (slot)" ; skos:definition "BIDS run number." ; @@ -8452,6 +9042,18 @@ tvbo:skip_t a owl:DatatypeProperty ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "skip_t" . +tvbo:slurm a owl:ObjectProperty ; + rdfs:label "slurm (slot)" ; + skos:definition "Slurm sbatch directives for array-job execution." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "slurm" . + +tvbo:snakemake a owl:ObjectProperty ; + rdfs:label "snakemake (slot)" ; + skos:definition "Snakemake execution directives." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "snakemake" . + <https://w3id.org/tvbo/software/application_category> a owl:DatatypeProperty ; rdfs:label "application_category (software)" ; skos:definition "High-level category (e.g., simulation, analysis, specification)." ; @@ -8654,74 +9256,74 @@ tvbo:strategy a owl:DatatypeProperty ; rdfs:label "Subject (study)" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom xsd:float ; + owl:onProperty <https://w3id.org/tvbo/study/age> ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/study/subject_id> ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/study/label> ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/study/group> ], + [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty <https://w3id.org/tvbo/study/subject_id> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/study/label> ], + owl:onProperty <https://w3id.org/tvbo/study/network> ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty <https://w3id.org/tvbo/study/sex> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/study/metadata> ], + owl:onProperty <https://w3id.org/tvbo/study/group> ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom xsd:string ; owl:onProperty <https://w3id.org/tvbo/study/network> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/study/subject_id> ], + owl:onProperty <https://w3id.org/tvbo/study/network> ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/study/sex> ], + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/study/label> ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/study/metadata> ], + owl:minCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/study/subject_id> ], [ a owl:Restriction ; owl:allValuesFrom <https://w3id.org/tvbo/study/Session> ; owl:onProperty <https://w3id.org/tvbo/study/sessions> ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/study/network> ], + owl:allValuesFrom tvbo:SexEnum ; + owl:onProperty <https://w3id.org/tvbo/study/sex> ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/study/age> ], + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/study/metadata> ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty <https://w3id.org/tvbo/study/sessions> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/study/label> ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/study/group> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; + owl:minCardinality 0 ; owl:onProperty <https://w3id.org/tvbo/study/age> ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/study/label> ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/study/subject_id> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/study/group> ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; owl:onProperty <https://w3id.org/tvbo/study/metadata> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/study/network> ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:SexEnum ; - owl:onProperty <https://w3id.org/tvbo/study/sex> ], + owl:onProperty <https://w3id.org/tvbo/study/metadata> ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/study/age> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/study/group> ] ; + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/study/sex> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/study/label> ] ; skos:definition "A participant in a study. Each subject typically has their own brain network (connectome) and empirical recordings. Corresponds to a BIDS 'sub-' entity." ; skos:inScheme tvbo:study ; skos:notation "Subject" . @@ -8807,6 +9409,24 @@ tvbo:subnetwork a owl:ObjectProperty ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "subnetwork" . +tvbo:suffix a owl:DatatypeProperty ; + rdfs:label "suffix (slot)" ; + skos:definition "BIDS suffix (e.g., relmat), the trailing name component before the extension" ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "suffix" . + +tvbo:sweep_direction a owl:ObjectProperty ; + rdfs:label "sweep_direction (slot)" ; + skos:definition "Order in which a branch-following axis (sweep_seeding: from_previous) is traversed: 'up' increases the parameter once, 'down' decreases it once, 'bidirectional' increases then decreases over the same values and records both branches β€” a hysteresis loop where they differ. Ignored when sweep_seeding is 'independent'. Applies to a single swept axis." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "sweep_direction" . + +tvbo:sweep_seeding a owl:ObjectProperty ; + rdfs:label "sweep_seeding (slot)" ; + skos:definition "How each sweep point's initial state is obtained. 'independent' (default) cold-starts every point from the model's initial values, so points are order-independent and may run in parallel (see parallel_mode). 'from_previous' seeds each point from the final state of the preceding point, so the trajectory follows the solution branch as the swept parameter changes quasi-statically; this forces sequential execution (a scan, not a vmap) and, with sweep_direction, exposes hysteresis / multistability. It is forward-integration branch following, not numerical continuation (cf. the Continuation class)." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "sweep_seeding" . + tvbo:symmetry a owl:DatatypeProperty ; rdfs:label "symmetry (slot)" ; skos:definition "Edge symmetry type for NetworkDynamics.jl EdgeModel: 'directed' (default), 'antisymmetric', or 'symmetric'. AntiSymmetric edges flip sign for the reverse direction." ; @@ -8884,11 +9504,6 @@ tvbo:tensor_coefficient a owl:ObjectProperty ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "tensor_coefficient" . -tvbo:time a owl:ObjectProperty ; - rdfs:label "time (slot)" ; - skos:inScheme <https://w3id.org/tvbo> ; - skos:notation "time" . - tvbo:time_integrator a owl:DatatypeProperty ; rdfs:label "time_integrator (slot)" ; skos:definition "e.g., implicit Euler, Crank-Nicolson." ; @@ -8963,6 +9578,12 @@ tvbo:vectorized a owl:DatatypeProperty ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "vectorized" . +tvbo:venv a owl:DatatypeProperty ; + rdfs:label "venv (slot)" ; + skos:definition "Path to a virtual environment to activate before running." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "venv" . + tvbo:vertices_field a owl:DatatypeProperty ; rdfs:label "vertices_field (slot)" ; skos:definition "When the mesh is inlined on a Network, the dotted path inside the parent's h5 to vertex coordinates. Default: ``nodes/coordinates``." ; @@ -9031,89 +9652,89 @@ tvbo:year a owl:DatatypeProperty ; dcterms:subject <file:///Users/leonmartin_bih/tools/tvbo/ontology/anatomicalLocation>, <file:///Users/leonmartin_bih/tools/tvbo/ontology/studyTarget> ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:name ], - [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/lookupLabel> ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/color> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/abbreviation> ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/center> ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/hemisphere> ], + owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/ParcellationEntity> ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/hasParent> ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/hemisphere> ], + owl:allValuesFrom xsd:integer ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/originalLookupLabel> ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/color> ], + owl:minCardinality 0 ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/versionIdentifier> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/versionIdentifier> ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/lookupLabel> ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/center> ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/originalLookupLabel> ], - [ a owl:Restriction ; - owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/Coordinate> ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/center> ], + owl:maxCardinality 1 ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/lookupLabel> ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/hasParent> ], + owl:allValuesFrom xsd:string ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/versionIdentifier> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/abbreviation> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/originalLookupLabel> ], + owl:maxCardinality 1 ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/hemisphere> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/ontologyIdentifier> ], + owl:maxCardinality 1 ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/relatedUBERONTerm> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/lookupLabel> ], + owl:minCardinality 0 ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/hasParent> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/relatedUBERONTerm> ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/ParcellationEntity> ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/hasParent> ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/versionIdentifier> ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/center> ], + owl:minCardinality 0 ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/ontologyIdentifier> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/alternateName> ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/ontologyIdentifier> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:integer ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/lookupLabel> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/ontologyIdentifier> ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/hemisphere> ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/color> ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/versionIdentifier> ], + owl:allValuesFrom xsd:string ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/alternateName> ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/originalLookupLabel> ], + owl:allValuesFrom xsd:string ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/relatedUBERONTerm> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/relatedUBERONTerm> ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/originalLookupLabel> ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/alternateName> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/abbreviation> ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/center> ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Hemisphere ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/hemisphere> ], + [ a owl:Restriction ; + owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/Coordinate> ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/center> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/color> ], @@ -9121,24 +9742,18 @@ tvbo:year a owl:DatatypeProperty ; owl:maxCardinality 1 ; owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/relatedUBERONTerm> ], + owl:minCardinality 0 ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/abbreviation> ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Hemisphere ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/hemisphere> ], + owl:maxCardinality 1 ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/originalLookupLabel> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/relatedUBERONTerm> ] ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/abbreviation> ] ; skos:definition "A schema for representing a parcellation entity, which is an anatomical location or study target." ; skos:exactMatch <http://uri.interlex.org/tgbugs/uris/readable/atlas/Region> ; skos:inScheme <https://openminds.ebrains.eu/sands/BrainAtlas> . -<http://uri.interlex.org/tgbugs/uris/readable/alternateName> a owl:DatatypeProperty ; - rdfs:label "alternateName" ; - rdfs:range xsd:string ; - skos:definition "Enter any alternate names, including abbreviations, for this entity." ; - skos:inScheme <https://openminds.ebrains.eu/sands/BrainAtlas> . - <http://uri.interlex.org/tgbugs/uris/readable/ontologyIdentifier> a owl:DatatypeProperty ; rdfs:label "ontologyIdentifier" ; rdfs:range xsd:string ; @@ -9157,23 +9772,23 @@ tvbo:Aggregation a owl:Class ; rdfs:label "Aggregation" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty tvbo:type ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty tvbo:over ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:ReductionType ; - owl:onProperty tvbo:type ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:over ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty tvbo:type ], [ a owl:Restriction ; owl:allValuesFrom tvbo:DimensionType ; owl:onProperty tvbo:over ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:over ] ; + owl:allValuesFrom tvbo:ReductionType ; + owl:onProperty tvbo:type ] ; skos:definition "Specifies how to aggregate values across a dimension. Used for loss functions to define per-element loss with reduction." ; skos:exactMatch tvbo:Aggregation ; skos:inScheme <https://w3id.org/tvbo> . @@ -9198,6 +9813,16 @@ tvbo:DomainEnforcement a owl:Class ; <https://w3id.org/tvbo/DomainEnforcement#none>, <https://w3id.org/tvbo/DomainEnforcement#wrap> . +tvbo:GraphRepresentation a owl:Class ; + rdfs:label "GraphRepresentation" ; + rdfs:isDefinedBy tvbo:struct ; + owl:unionOf ( <https://w3id.org/tvbo/GraphRepresentation#auto> <https://w3id.org/tvbo/GraphRepresentation#dense> <https://w3id.org/tvbo/GraphRepresentation#sparse> ) ; + skos:definition "How a Network's connectivity is represented when evaluating coupling. This is a backend-independent performance contract, not a numerical one: both representations compute the same coupling, but a sparse representation sums over the existing edges (cost scales with the number of edges) while a dense representation operates on the full adjacency (cost scales with nodes-squared). A backend maps the choice onto its own primitives (edge gather / segment-sum vs matrix product). Orthogonal to whether the coupling reads *delayed* states β€” that is decided per coupling by its conduction delay β€” so the two dimensions together yield the four backend graph kinds: dense/sparse Γ— instantaneous/delayed." ; + skos:inScheme <https://w3id.org/tvbo> ; + linkml:permissible_values <https://w3id.org/tvbo/GraphRepresentation#auto>, + <https://w3id.org/tvbo/GraphRepresentation#dense>, + <https://w3id.org/tvbo/GraphRepresentation#sparse> . + tvbo:Hemisphere a owl:Class ; rdfs:label "Hemisphere" ; rdfs:isDefinedBy tvbo:struct ; @@ -9212,148 +9837,157 @@ tvbo:Integrator a owl:Class ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:steps ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:transient_time ], + owl:onProperty tvbo:time_scale ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:unit ], + owl:onProperty tvbo:duration ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:number_of_stages ], + owl:allValuesFrom tvbo:CouplingStageEvaluation ; + owl:onProperty tvbo:coupling_evaluation ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Differentiation ; - owl:onProperty tvbo:differentiation ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:steps ], [ a owl:Restriction ; owl:allValuesFrom tvbo:DerivedVariable ; owl:onProperty tvbo:intermediate_expressions ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:step_size ], + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:number_of_stages ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:DerivedVariable ; - owl:onProperty tvbo:update_expression ], + owl:allValuesFrom tvbo:UnitEnum ; + owl:onProperty tvbo:unit ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:method ], + owl:onProperty tvbo:unit ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:UnitEnum ; - owl:onProperty tvbo:time_scale ], + owl:minCardinality 0 ; + owl:onProperty tvbo:transient_time ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:transient_time ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:UnitEnum ; + owl:minCardinality 0 ; + owl:onProperty tvbo:coupling_evaluation ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty tvbo:unit ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:scipy_ode_base ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:noise ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:duration ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:scipy_ode_base ], + owl:onProperty tvbo:step_size ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:delayed ], + owl:onProperty tvbo:number_of_stages ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:differentiation ], + owl:onProperty tvbo:delayed ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:time_scale ], + owl:onProperty tvbo:state_wise_sigma ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:method ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:method ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Noise ; + owl:onProperty tvbo:noise ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:steps ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:number_of_stages ], [ a owl:Restriction ; owl:allValuesFrom xsd:boolean ; owl:onProperty tvbo:scipy_ode_base ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:intermediate_expressions ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:steps ], [ a owl:Restriction ; owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:duration ], + owl:onProperty tvbo:state_wise_sigma ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:DerivedVariable ; + owl:onProperty tvbo:update_expression ], [ a owl:Restriction ; owl:allValuesFrom xsd:float ; owl:onProperty tvbo:step_size ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:differentiation ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:parameters ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:unit ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:step_size ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:scipy_ode_base ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:transient_time ], + owl:allValuesFrom tvbo:Differentiation ; + owl:onProperty tvbo:differentiation ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:time_scale ], + owl:allValuesFrom tvbo:Parameter ; + owl:onProperty tvbo:parameters ], [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:state_wise_sigma ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:duration ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:number_of_stages ], + owl:onProperty tvbo:steps ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:state_wise_sigma ], + owl:allValuesFrom xsd:boolean ; + owl:onProperty tvbo:delayed ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:update_expression ], + owl:onProperty tvbo:method ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:duration ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Parameter ; - owl:onProperty tvbo:parameters ], + owl:onProperty tvbo:time_scale ], [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:transient_time ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:update_expression ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:update_expression ], + owl:onProperty tvbo:step_size ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:delayed ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:method ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:steps ], + owl:onProperty tvbo:differentiation ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:method ], + owl:minCardinality 0 ; + owl:onProperty tvbo:update_expression ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Noise ; - owl:onProperty tvbo:noise ], + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:transient_time ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:description ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:differentiation ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:noise ], + owl:onProperty tvbo:coupling_evaluation ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:number_of_stages ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:duration ], + owl:allValuesFrom tvbo:UnitEnum ; + owl:onProperty tvbo:time_scale ], [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty tvbo:delayed ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:noise ], tvbo:Solver ; skos:definition "Fixed-step or adaptive ODE integrator with TVB-specific extensions (noise, transient time, etc.). Inherits abs_tol, rel_tol from Solver. Overrides method default to 'euler'." ; skos:exactMatch tvbo:Integrator ; @@ -9363,80 +9997,80 @@ tvbo:Matrix a owl:Class ; rdfs:label "Matrix" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:dtype ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:label ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:y ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:BrainRegionSeries ; + owl:maxCardinality 1 ; owl:onProperty tvbo:x ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; + owl:onProperty tvbo:shape ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:shape ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:shape ], + owl:onProperty tvbo:y ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:values ], + owl:onProperty tvbo:format ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:allValuesFrom tvbo:BrainRegionSeries ; + owl:onProperty tvbo:y ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:dtype ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:dtype ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:shape ], + owl:allValuesFrom tvbo:BrainRegionSeries ; + owl:onProperty tvbo:x ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:x ], + owl:onProperty tvbo:description ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:format ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:x ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:dtype ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:dtype ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom tvbo:SparseFormat ; owl:onProperty tvbo:format ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], + owl:onProperty tvbo:values ], [ a owl:Restriction ; owl:allValuesFrom xsd:float ; owl:onProperty tvbo:values ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:format ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:BrainRegionSeries ; - owl:onProperty tvbo:y ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:label ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:y ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:dtype ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:y ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:SparseFormat ; - owl:onProperty tvbo:format ] ; + owl:onProperty tvbo:description ] ; skos:definition "Adjacency matrix of a network." ; skos:exactMatch tvbo:Matrix ; skos:inScheme <https://w3id.org/tvbo> . @@ -9445,116 +10079,116 @@ tvbo:Noise a owl:Class ; rdfs:label "Noise" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty tvbo:correlated ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:correlated ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:seed ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:RandomStream ; - owl:onProperty tvbo:random_state ], + owl:minCardinality 0 ; + owl:onProperty tvbo:targets ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Parameter ; + owl:minCardinality 0 ; owl:onProperty tvbo:parameters ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:pycode ], + owl:onProperty tvbo:distribution ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:noise_type ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:gaussian ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:pycode ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:intensity ], + owl:allValuesFrom tvbo:Parameter ; + owl:onProperty tvbo:parameters ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:random_state ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:distribution ], + owl:onProperty tvbo:additive ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Function ; + owl:maxCardinality 1 ; owl:onProperty tvbo:function ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:random_state ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:pycode ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Distribution ; - owl:onProperty tvbo:distribution ], + owl:onProperty tvbo:noise_type ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:parameters ], + owl:onProperty tvbo:additive ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:seed ], + owl:onProperty tvbo:noise_type ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:function ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty tvbo:additive ], + owl:onProperty tvbo:correlated ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Parameter ; owl:onProperty tvbo:intensity ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:intensity ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:noise_type ], + owl:onProperty tvbo:seed ], [ a owl:Restriction ; owl:minCardinality 0 ; + owl:onProperty tvbo:gaussian ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:RandomStream ; + owl:onProperty tvbo:random_state ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:boolean ; owl:onProperty tvbo:additive ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Function ; + owl:onProperty tvbo:function ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:seed ], [ a owl:Restriction ; owl:minCardinality 0 ; + owl:onProperty tvbo:intensity ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Equation ; owl:onProperty tvbo:equation ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Distribution ; + owl:onProperty tvbo:distribution ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:correlated ], + owl:onProperty tvbo:equation ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:seed ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:pycode ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:random_state ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom tvbo:StateVariable ; + owl:onProperty tvbo:targets ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:boolean ; owl:onProperty tvbo:gaussian ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:additive ], + owl:allValuesFrom xsd:boolean ; + owl:onProperty tvbo:correlated ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:equation ], + owl:onProperty tvbo:distribution ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:gaussian ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:intensity ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:function ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:targets ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:noise_type ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:distribution ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:StateVariable ; - owl:onProperty tvbo:targets ], + owl:onProperty tvbo:pycode ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Equation ; + owl:maxCardinality 1 ; owl:onProperty tvbo:equation ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:noise_type ], + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:seed ], [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty tvbo:gaussian ] ; + owl:minCardinality 0 ; + owl:onProperty tvbo:correlated ] ; skos:exactMatch tvbo:Noise ; skos:inScheme <https://w3id.org/tvbo> . @@ -9572,86 +10206,86 @@ tvbo:OptimizationStage a owl:Class ; rdfs:label "OptimizationStage" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:algorithm ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:OptimizationStage ; + owl:minCardinality 0 ; owl:onProperty tvbo:warmup_from ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Parameter ; - owl:onProperty tvbo:hyperparameters ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:algorithm ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:FreeParameter ; - owl:onProperty tvbo:free_parameters ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:free_parameters ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:algorithm ], + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:learning_rate ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:learning_rate ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:learning_rate ], + owl:onProperty tvbo:max_iterations ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:free_parameters ], [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:learning_rate ], + owl:allValuesFrom tvbo:FreeParameter ; + owl:onProperty tvbo:free_parameters ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:warmup_from ], + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:max_iterations ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:freeze_parameters ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:max_iterations ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:warmup_from ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty tvbo:name ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:name ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:hyperparameters ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:label ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:warmup_from ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:description ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty tvbo:label ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:OptimizationStage ; + owl:onProperty tvbo:warmup_from ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:max_iterations ], + owl:onProperty tvbo:freeze_parameters ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:name ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:max_iterations ], + owl:onProperty tvbo:description ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:learning_rate ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:algorithm ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:algorithm ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Parameter ; + owl:onProperty tvbo:hyperparameters ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Parameter ; owl:onProperty tvbo:freeze_parameters ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:max_iterations ] ; + owl:minCardinality 0 ; + owl:onProperty tvbo:algorithm ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:hyperparameters ] ; skos:definition "A single stage in a multi-stage optimization workflow. Stages run sequentially, with each stage potentially using different parameters, shapes, learning rates, and algorithms." ; skos:exactMatch tvbo:OptimizationStage ; skos:inScheme <https://w3id.org/tvbo> . @@ -9660,22 +10294,22 @@ tvbo:Option a owl:Class ; rdfs:label "Option" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 1 ; owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:maxCardinality 1 ; owl:onProperty tvbo:value ], [ a owl:Restriction ; owl:minCardinality 1 ; - owl:onProperty tvbo:name ], + owl:onProperty tvbo:value ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:value ], + owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:value ] ; skos:definition "A toolkit-specific key-value option (string name + string value). Used for backend settings that are not universal numeric parameters (e.g., solver name, tangent method, jacobian type)." ; skos:exactMatch tvbo:Option ; @@ -9701,97 +10335,268 @@ tvbo:SpecimenEnum a owl:Class ; <https://w3id.org/tvbo/SpecimenEnum#TissueSample>, <https://w3id.org/tvbo/SpecimenEnum#TissueSampleCollection> . -tvbo:algorithms a owl:DatatypeProperty, - owl:ObjectProperty . - -tvbo:boundary_conditions a owl:ObjectProperty . - -tvbo:data a owl:ObjectProperty ; - rdfs:label "data (slot)" ; - skos:inScheme <https://w3id.org/tvbo> ; - skos:notation "data" . - -tvbo:derived_parameters a owl:ObjectProperty . - -tvbo:derived_variables a owl:ObjectProperty . - -tvbo:element_domains a owl:ObjectProperty . - -tvbo:free_parameters a owl:ObjectProperty . - -tvbo:hyperparameters a owl:ObjectProperty . - -tvbo:nodes a owl:DatatypeProperty, - owl:ObjectProperty . - -tvbo:observations a owl:ObjectProperty . - -tvbo:observed a owl:ObjectProperty . - -tvbo:requirements a owl:ObjectProperty ; - rdfs:label "requirements (slot)" ; - rdfs:range <https://w3id.org/tvbo/software/SoftwareRequirement> ; +tvbo:SweepDirection a owl:Class ; + rdfs:label "SweepDirection" ; + rdfs:isDefinedBy tvbo:struct ; + owl:unionOf ( <https://w3id.org/tvbo/SweepDirection#up> <https://w3id.org/tvbo/SweepDirection#down> <https://w3id.org/tvbo/SweepDirection#bidirectional> ) ; + skos:definition "Order in which a branch-following sweep (SweepSeeding.from_previous) traverses its axis. Ignored for independent seeding, where order is irrelevant." ; skos:inScheme <https://w3id.org/tvbo> ; - skos:notation "requirements" . + linkml:permissible_values <https://w3id.org/tvbo/SweepDirection#bidirectional>, + <https://w3id.org/tvbo/SweepDirection#down>, + <https://w3id.org/tvbo/SweepDirection#up> . -tvbo:stages a owl:ObjectProperty . - -tvbo:state_variables a owl:ObjectProperty . - -tvbo:subjects a owl:DatatypeProperty ; - rdfs:label "subjects (slot)" ; - skos:definition "Ordered list of subject IDs (e.g. HCP-YA 6-digit IDs). Each ``measures/<name>`` array in the h5 companion is indexed by this order." ; +tvbo:WorkflowDistributeBy a owl:Class ; + rdfs:label "WorkflowDistributeBy" ; + rdfs:isDefinedBy tvbo:struct ; + owl:unionOf ( <https://w3id.org/tvbo/WorkflowDistributeBy#auto> <https://w3id.org/tvbo/WorkflowDistributeBy#vectorize> <https://w3id.org/tvbo/WorkflowDistributeBy#workflow> ) ; + skos:definition "Default tier a sweep axis is placed on when it is not named explicitly in a DistributionConfig. Vectorized axes are packed into one batched backend call; workflow axes are fanned out into independent scheduler tasks." ; skos:inScheme <https://w3id.org/tvbo> ; - skos:notation "subjects" . - -wd:Q7003015 a owl:Class ; - rdfs:label "neural_field" ; - rdfs:subClassOf tvbo:ModelParadigm, - tvbo:SimulationScale ; - skos:altLabel "neural_mass" ; - skos:definition "Continuous neural field equations (Amari, Wilson-Cowan field).", - "Phenomenological population-rate / neural-mass models.", - "Population-level neural mass or mean-field model." . + linkml:permissible_values <https://w3id.org/tvbo/WorkflowDistributeBy#auto>, + <https://w3id.org/tvbo/WorkflowDistributeBy#vectorize>, + <https://w3id.org/tvbo/WorkflowDistributeBy#workflow> . -tvbo:Argument a owl:Class ; - rdfs:label "Argument" ; +tvbo:WorkflowEngineConfig a owl:Class ; + rdfs:label "WorkflowEngineConfig" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:unit ], + owl:minCardinality 0 ; + owl:onProperty tvbo:account ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:SchedulerDirective ; + owl:onProperty tvbo:options ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:setup ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:cpus_per_task ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:options ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:env ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:mail_user ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:name ], + owl:onProperty tvbo:account ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:value ], + owl:onProperty tvbo:mail_type ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty tvbo:name ], + owl:allValuesFrom [ a rdfs:Datatype ; + owl:intersectionOf ( xsd:integer [ a rdfs:Datatype ; + owl:onDatatype xsd:integer ; + owl:withRestrictions ( [ xsd:minInclusive 1 ] ) ] ) ] ; + owl:onProperty tvbo:cpus_per_task ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:partition ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:unit ], + owl:onProperty tvbo:gres ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:mail_user ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:value ], + owl:onProperty tvbo:mail_type ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:mail_user ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:name ], + owl:onProperty tvbo:queue ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:time ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:modules ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:array_chunk ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:time ], [ a owl:Restriction ; - owl:allValuesFrom [ owl:intersectionOf ( tvbo:ScalarValue tvbo:ScalarValue ) ] ; - owl:onProperty tvbo:value ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:mem ], + [ a owl:Restriction ; + owl:allValuesFrom [ a rdfs:Datatype ; + owl:intersectionOf ( xsd:integer [ a rdfs:Datatype ; + owl:onDatatype xsd:integer ; + owl:withRestrictions ( [ xsd:minInclusive 1 ] ) ] ) ] ; + owl:onProperty tvbo:array_chunk ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:unit ], + owl:onProperty tvbo:cores ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:description ] ; + owl:minCardinality 0 ; + owl:onProperty tvbo:queue ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:executor ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:EnvironmentVariable ; + owl:onProperty tvbo:env ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:gres ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:account ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:venv ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:mem ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:gres ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:partition ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:queue ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:venv ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:executor ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:cores ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:mail_type ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:modules ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:cpus_per_task ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:setup ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:time ], + [ a owl:Restriction ; + owl:allValuesFrom [ a rdfs:Datatype ; + owl:intersectionOf ( xsd:integer [ a rdfs:Datatype ; + owl:onDatatype xsd:integer ; + owl:withRestrictions ( [ xsd:minInclusive 1 ] ) ] ) ] ; + owl:onProperty tvbo:cores ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:partition ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:venv ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:executor ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:array_chunk ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:mem ] ; + skos:definition "Execution directives for a workflow engine. Every field is optional and each engine's emitter consumes the subset it supports, so one block may carry directives for more than one target. The generic resource fields (cpus_per_task, mem, time) map across engines; the remaining fields are named for the engine that reads them (Slurm: partition/account/gres/ mail_*/array_chunk; Snakemake: cores; Nextflow: executor/queue). Any directive not named here is passed through ``options`` verbatim, so the block stays extensible without a schema change." ; + skos:exactMatch tvbo:WorkflowEngineConfig ; + skos:inScheme <https://w3id.org/tvbo> . + +tvbo:algorithms a owl:DatatypeProperty, + owl:ObjectProperty . + +tvbo:boundary_conditions a owl:ObjectProperty . + +tvbo:data a owl:ObjectProperty ; + rdfs:label "data (slot)" ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "data" . + +tvbo:derived_parameters a owl:ObjectProperty . + +tvbo:derived_variables a owl:ObjectProperty . + +tvbo:element_domains a owl:ObjectProperty . + +tvbo:free_parameters a owl:ObjectProperty . + +tvbo:hyperparameters a owl:ObjectProperty . + +tvbo:nodes a owl:DatatypeProperty, + owl:ObjectProperty . + +tvbo:observations a owl:ObjectProperty . + +tvbo:observed a owl:ObjectProperty . + +tvbo:stages a owl:ObjectProperty . + +tvbo:state_variables a owl:ObjectProperty . + +tvbo:subjects a owl:DatatypeProperty ; + rdfs:label "subjects (slot)" ; + skos:definition "Ordered list of subject IDs (e.g. HCP-YA 6-digit IDs). Each ``measures/<name>`` array in the h5 companion is indexed by this order." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "subjects" . + +wd:Q7003015 a owl:Class ; + rdfs:label "neural_field" ; + rdfs:subClassOf tvbo:ModelParadigm, + tvbo:SimulationScale ; + skos:altLabel "neural_mass" ; + skos:definition "Continuous neural field equations (Amari, Wilson-Cowan field).", + "Phenomenological population-rate / neural-mass models.", + "Population-level neural mass or mean-field model." . + +tvbo:Argument a owl:Class ; + rdfs:label "Argument" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:value ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:description ], + [ a owl:Restriction ; + owl:allValuesFrom [ owl:intersectionOf ( tvbo:ScalarValue tvbo:ScalarValue ) ] ; + owl:onProperty tvbo:value ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:unit ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:description ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:unit ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:value ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:unit ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:description ] ; skos:definition "A function argument with explicit value specification. Value can be: literal (number/string), reference to input (input.key), or cross-observation reference (observation_name.output_key)." ; skos:exactMatch tvbo:Argument ; skos:inScheme <https://w3id.org/tvbo> . @@ -9810,188 +10615,188 @@ tvbo:Coupling a owl:Class ; rdfs:label "Coupling" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom tvbo:Coupling ; - owl:onProperty tvbo:inner_coupling ], + owl:allValuesFrom xsd:anyURI ; + owl:onProperty tvbo:iri ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:symmetry ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:sparse ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:distribution ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:inner_coupling ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:region_mapping ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Equation ; owl:onProperty tvbo:pre_expression ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:parameters ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:coupling_function ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:aggregation ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:StateVariable ; - owl:onProperty tvbo:local_states ], + owl:onProperty tvbo:vectorized ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Network ; - owl:onProperty tvbo:regional_connectivity ], + owl:allValuesFrom xsd:boolean ; + owl:onProperty tvbo:vectorized ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:regional_connectivity ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:symmetry ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:distribution ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:DerivedVariable ; - owl:onProperty tvbo:observed ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:label ], + owl:minCardinality 0 ; + owl:onProperty tvbo:aggregation ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:pre_expression ], - [ a owl:Restriction ; - owl:minCardinality 0 ; owl:onProperty tvbo:aggregation ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:regional_connectivity ], + owl:onProperty tvbo:pre_expression ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:local_states ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:region_mapping ], + owl:onProperty tvbo:coupling_function ], [ a owl:Restriction ; owl:allValuesFrom [ owl:unionOf ( xsd:string tvbo:Function ) ] ; - owl:onProperty tvbo:distribution ], + owl:onProperty tvbo:aggregation ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:observed ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:name ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:delayed ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:anyURI ; - owl:onProperty tvbo:iri ], + owl:allValuesFrom tvbo:StateVariable ; + owl:onProperty tvbo:local_states ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:post_expression ], + owl:onProperty tvbo:interpolate_delays ], [ a owl:Restriction ; owl:allValuesFrom xsd:boolean ; - owl:onProperty tvbo:interpolate_delays ], + owl:onProperty tvbo:sparse ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:inner_coupling ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:outsym ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:StateVariable ; - owl:onProperty tvbo:incoming_states ], + owl:minCardinality 1 ; + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:name ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty tvbo:delayed ], + owl:allValuesFrom tvbo:DerivedVariable ; + owl:onProperty tvbo:observed ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:interpolate_delays ], + owl:onProperty tvbo:sparse ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:outsym ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty tvbo:vectorized ], + owl:minCardinality 0 ; + owl:onProperty tvbo:regional_connectivity ], [ a owl:Restriction ; owl:allValuesFrom [ owl:unionOf ( xsd:string tvbo:Function ) ] ; - owl:onProperty tvbo:aggregation ], + owl:onProperty tvbo:distribution ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:iri ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:delayed ], + owl:onProperty tvbo:vectorized ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:symmetry ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:interpolate_delays ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:symmetry ], + owl:onProperty tvbo:iri ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Equation ; owl:onProperty tvbo:post_expression ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:incoming_states ], + owl:onProperty tvbo:region_mapping ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:outsym ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:pre_expression ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:symmetry ], + owl:allValuesFrom tvbo:Parameter ; + owl:onProperty tvbo:parameters ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:vectorized ], + owl:allValuesFrom xsd:boolean ; + owl:onProperty tvbo:interpolate_delays ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:delayed ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:iri ], + owl:onProperty tvbo:distribution ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:RegionMapping ; - owl:onProperty tvbo:region_mapping ], + owl:minCardinality 0 ; + owl:onProperty tvbo:local_states ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:delayed ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:interpolate_delays ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:boolean ; + owl:onProperty tvbo:delayed ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:pre_expression ], + owl:onProperty tvbo:outsym ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Equation ; owl:onProperty tvbo:coupling_function ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Parameter ; - owl:onProperty tvbo:parameters ], + owl:minCardinality 0 ; + owl:onProperty tvbo:inner_coupling ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:vectorized ], + owl:allValuesFrom tvbo:RegionMapping ; + owl:onProperty tvbo:region_mapping ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:coupling_function ], + owl:allValuesFrom tvbo:Network ; + owl:onProperty tvbo:regional_connectivity ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:post_expression ], + owl:allValuesFrom tvbo:StateVariable ; + owl:onProperty tvbo:incoming_states ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty tvbo:sparse ], + owl:onProperty tvbo:post_expression ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:parameters ], + owl:onProperty tvbo:symmetry ], [ a owl:Restriction ; owl:maxCardinality 1 ; + owl:onProperty tvbo:region_mapping ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Coupling ; owl:onProperty tvbo:inner_coupling ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:sparse ], + owl:minCardinality 0 ; + owl:onProperty tvbo:post_expression ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:incoming_states ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:iri ] ; + owl:onProperty tvbo:coupling_function ] ; skos:exactMatch tvbo:Coupling ; skos:inScheme <https://w3id.org/tvbo> . @@ -10023,341 +10828,202 @@ tvbo:EnvironmentType a owl:Class ; linkml:permissible_values <https://w3id.org/tvbo/EnvironmentType#conda>, <https://w3id.org/tvbo/EnvironmentType#docker>, <https://w3id.org/tvbo/EnvironmentType#singularity>, - <https://w3id.org/tvbo/EnvironmentType#venv> . - -tvbo:Event a owl:Class ; - rdfs:label "Event" ; - rdfs:isDefinedBy tvbo:struct ; - rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:weight_distribution ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:affect_states ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:interpolation ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:affect ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:condition_parameters ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:condition ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:name ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:trigger_times ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:target_variable ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:equation ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:sampling_rate ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:label ], - [ a owl:Restriction ; + <https://w3id.org/tvbo/EnvironmentType#venv> . + +tvbo:Event a owl:Class ; + rdfs:label "Event" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:target_variable ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:condition_parameters ], + owl:onProperty tvbo:affect ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:condition_states ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:description ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:event_type ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:duration ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:event_type ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:affect_parameters ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:parameters ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:sampling_rate ], + owl:onProperty tvbo:interpolation ], [ a owl:Restriction ; owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:weights ], + owl:onProperty tvbo:trigger_times ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:dataLocation ], + owl:allValuesFrom tvbo:Equation ; + owl:onProperty tvbo:condition ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:target_component ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:target_variable ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Parameter ; - owl:onProperty tvbo:parameters ], + owl:onProperty tvbo:weight_distribution ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:dataLocation ], + owl:onProperty tvbo:condition_parameters ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Equation ; - owl:onProperty tvbo:affect ], + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:nodes ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:target_regions ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:affect ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:trigger_times ], + owl:onProperty tvbo:sampling_rate ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:weights ], + owl:onProperty tvbo:condition ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:interpolation ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Distribution ; - owl:onProperty tvbo:weight_distribution ], + owl:onProperty tvbo:duration ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:label ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Equation ; - owl:onProperty tvbo:equation ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:affect_negative ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:EventType ; - owl:onProperty tvbo:event_type ], + owl:onProperty tvbo:weight_distribution ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:dataLocation ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:weight_distribution ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty tvbo:name ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:interpolation ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Equation ; - owl:onProperty tvbo:condition ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:target_regions ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:nodes ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:target_component ], + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:affect_negative ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:condition_states ], + owl:onProperty tvbo:trigger_times ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:target_component ], + owl:onProperty tvbo:affect_negative ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:sampling_rate ], + owl:onProperty tvbo:target_variable ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:condition ], + owl:allValuesFrom tvbo:Distribution ; + owl:onProperty tvbo:weight_distribution ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:nodes ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:target_variable ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:duration ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:allValuesFrom xsd:float ; owl:onProperty tvbo:duration ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:equation ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Equation ; - owl:onProperty tvbo:affect_negative ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:condition ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:affect_parameters ], + owl:onProperty tvbo:dataLocation ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:affect_states ] ; - skos:definition "A discrete or continuous event that modifies the system during simulation. Generalizes Stimulus: can represent external inputs (stimulus type), threshold-triggered state changes (continuous/discrete type), or time-scheduled interventions (preset_time type). Attaches to components (nodes/edges) or to the experiment level." ; - skos:exactMatch tvbo:Event ; - skos:inScheme <https://w3id.org/tvbo> . - -tvbo:FunctionCall a owl:Class ; - rdfs:label "FunctionCall" ; - rdfs:isDefinedBy tvbo:struct ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:name ], + owl:onProperty tvbo:condition_states ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:aggregate ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:equation ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:equation ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Function ; - owl:onProperty tvbo:function ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:output ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:acronym ], + owl:onProperty tvbo:affect_parameters ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:time_range ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:nodes ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:apply_on_dimension ], + owl:onProperty tvbo:dataLocation ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:input ], + owl:onProperty tvbo:duration ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:input ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Callable ; - owl:onProperty tvbo:callable ], + owl:onProperty tvbo:affect_states ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:label ], + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:sampling_rate ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Aggregation ; - owl:onProperty tvbo:aggregate ], + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:weights ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:ClassReference ; - owl:onProperty tvbo:class_call ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:target_component ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:apply_on_dimension ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:name ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:affect_parameters ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:source_code ], + owl:onProperty tvbo:interpolation ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom tvbo:Equation ; owl:onProperty tvbo:equation ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:callable ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:time_range ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:class_call ], + owl:onProperty tvbo:sampling_rate ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:source_code ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:acronym ], + owl:onProperty tvbo:event_type ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:callable ], + owl:minCardinality 1 ; + owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Argument ; - owl:onProperty tvbo:arguments ], + owl:allValuesFrom tvbo:Equation ; + owl:onProperty tvbo:affect_negative ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:output ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:arguments ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:DimensionType ; - owl:onProperty tvbo:apply_on_dimension ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:output ], + owl:onProperty tvbo:event_type ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Equation ; - owl:onProperty tvbo:equation ], + owl:onProperty tvbo:affect ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty tvbo:name ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:target_regions ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:input ], + owl:onProperty tvbo:weights ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:function ], + owl:minCardinality 0 ; + owl:onProperty tvbo:target_component ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:source_code ], + owl:minCardinality 0 ; + owl:onProperty tvbo:affect_states ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:acronym ], + owl:allValuesFrom tvbo:EventType ; + owl:onProperty tvbo:event_type ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:function ], + owl:onProperty tvbo:target_regions ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:condition_states ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:interpolation ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:affect ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Parameter ; + owl:onProperty tvbo:parameters ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:class_call ], + owl:onProperty tvbo:parameters ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:condition_parameters ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:aggregate ], + owl:onProperty tvbo:target_component ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Range ; - owl:onProperty tvbo:time_range ] ; - skos:definition "Invocation of a function in a pipeline. Can reference a defined Function by name, OR inline a callable directly for external library functions, OR inline an equation, OR use class_call for class instantiation. Mirrors Function attributes so pipeline steps can be self-contained. The `name` is an optional step label (used in pipelines for keyed access to step outputs); it is NOT a global identifier (singleton uses like `loss`, `observable` may omit it)." ; - skos:exactMatch tvbo:FunctionCall ; + owl:onProperty tvbo:dataLocation ] ; + skos:definition "A discrete or continuous event that modifies the system during simulation. Generalizes Stimulus: can represent external inputs (stimulus type), threshold-triggered state changes (continuous/discrete type), or time-scheduled interventions (preset_time type). Attaches to components (nodes/edges) or to the experiment level." ; + skos:exactMatch tvbo:Event ; skos:inScheme <https://w3id.org/tvbo> . tvbo:InitialStateMethod a owl:Class ; @@ -10375,146 +11041,146 @@ tvbo:Mesh a owl:Class ; rdfs:label "Mesh" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/Coordinate> ; + owl:onProperty tvbo:coordinates ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:number_of_vertices ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:number_of_vertices ], + [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:elements ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:vertices_field ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:label ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:elements ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:parcel_map_field ], + owl:onProperty tvbo:mesh_file ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:curvature ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:mesh_format ], + owl:onProperty tvbo:elements ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:curvature ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:minCardinality 0 ; owl:onProperty tvbo:mesh_file ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:coordinate_space ], + owl:allValuesFrom xsd:string ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:element_type ], + owl:onProperty tvbo:normals ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:elements ], + owl:onProperty tvbo:vertices_field ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:coordinates ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:curvature ], + owl:onProperty tvbo:coordinate_space ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:normals ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:parcel_map_field ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:vertices_field ], + owl:onProperty tvbo:element_type ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:number_of_vertices ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:mesh_file ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Parcellation ; + owl:minCardinality 0 ; owl:onProperty tvbo:parcellation ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:number_of_elements ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:number_of_vertices ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:elements ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:vertices_field ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty tvbo:coordinate_space ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:ElementType ; - owl:onProperty tvbo:element_type ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:number_of_elements ], + owl:onProperty tvbo:curvature ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:normals ], + owl:onProperty tvbo:parcellation ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:label ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:parcel_map_field ], + owl:minCardinality 0 ; + owl:onProperty tvbo:coordinates ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom tvbo:ElementType ; owl:onProperty tvbo:element_type ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:parcellation ], + owl:onProperty tvbo:curvature ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:number_of_elements ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:mesh_format ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:description ], + owl:allValuesFrom tvbo:Parcellation ; + owl:onProperty tvbo:parcellation ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:mesh_file ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:parcel_map_field ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:mesh_format ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:vertices_field ], + owl:onProperty tvbo:element_type ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:mesh_file ], + owl:onProperty tvbo:parcel_map_field ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:parcel_map_field ], + owl:onProperty tvbo:vertices_field ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:label ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:number_of_elements ], [ a owl:Restriction ; owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/CommonCoordinateSpace> ; owl:onProperty tvbo:coordinate_space ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:mesh_format ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:normals ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom xsd:integer ; owl:onProperty tvbo:number_of_vertices ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:normals ], - [ a owl:Restriction ; - owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/Coordinate> ; - owl:onProperty tvbo:coordinates ], + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:number_of_elements ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:elements ], + owl:onProperty tvbo:description ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:number_of_elements ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:parcellation ], + owl:onProperty tvbo:normals ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:mesh_format ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:curvature ] ; + owl:onProperty tvbo:mesh_format ] ; skos:definition "Triangle (or higher-order) mesh geometry. May stand alone (via ``mesh_file`` pointing at an external GIFTI/VTK/MSH file) OR be inlined on a Network as ``Network.mesh``. In the inlined-on-Network case, the vertices are the parent Network's ``nodes/coordinates`` (so ``coordinates`` here may be left empty), the faces live in the same h5 companion under a path given by ``elements`` (default ``mesh/faces``), and optional per-vertex ``normals`` / ``curvature`` live alongside. The optional ``parcel_map_field`` points at the parent Network's per-vertex parcel-id array (default ``nodes/parent_index`` from the hierarchical-Network pattern, see Network.qmd Β§7.1)." ; skos:exactMatch tvbo:Mesh ; skos:inScheme <https://w3id.org/tvbo> . @@ -10523,239 +11189,248 @@ tvbo:Network a owl:Class ; rdfs:label "Network" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:observational_measures ], + owl:allValuesFrom tvbo:Edge ; + owl:onProperty tvbo:edge_template ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:provenance ], + owl:onProperty tvbo:dynamics ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:label ], + owl:allValuesFrom tvbo:Coupling ; + owl:onProperty tvbo:coupling ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:number_of_nodes ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:graph_generator ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Mesh ; - owl:onProperty tvbo:mesh ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Provenance ; - owl:onProperty tvbo:provenance ], + owl:onProperty tvbo:distance_unit ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:structural_measures ], + owl:minCardinality 0 ; + owl:onProperty tvbo:coordinate_space ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:node_mapping ], + owl:onProperty tvbo:distance_unit ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:number_of_nodes ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty tvbo:description ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:structural_measures ], [ a owl:Restriction ; owl:allValuesFrom tvbo:File ; owl:onProperty tvbo:edge_matrix_files ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:parent_network ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:provenance ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:bids_dir ], + owl:allValuesFrom tvbo:Edge ; + owl:onProperty tvbo:edges ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:node_mapping ], + owl:minCardinality 0 ; + owl:onProperty tvbo:edges ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Parameter ; - owl:onProperty tvbo:parameters ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:coordinate_space ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:number_of_nodes ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:primary_weight ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:transforms ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Function ; - owl:onProperty tvbo:transforms ], + owl:onProperty tvbo:graph_representation ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:observational_measures ], + owl:allValuesFrom tvbo:Mesh ; + owl:onProperty tvbo:mesh ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:descriptor ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:node_mapping ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:mesh ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:bids ], [ a owl:Restriction ; owl:allValuesFrom tvbo:UnitEnum ; owl:onProperty tvbo:distance_unit ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:provenance ], + owl:allValuesFrom tvbo:UnitEnum ; + owl:onProperty tvbo:time_unit ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:edges ], + owl:onProperty tvbo:edge_template ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:node_template ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:edge_matrix_files ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:primary_weight ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Coupling ; - owl:onProperty tvbo:coupling ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:bids_dir ], + owl:allValuesFrom tvbo:GraphRepresentation ; + owl:onProperty tvbo:graph_representation ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:structural_measures ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:node_mapping ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Node ; - owl:onProperty tvbo:node_template ], + owl:onProperty tvbo:nodes ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:distance_unit ], + owl:allValuesFrom tvbo:Function ; + owl:onProperty tvbo:transforms ], + [ a owl:Restriction ; + owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/CommonCoordinateSpace> ; + owl:onProperty tvbo:coordinate_space ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:edge_template ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:tractogram ], + owl:onProperty tvbo:parent_network ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:bids ], + owl:onProperty tvbo:observational_measures ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:descriptor ], + owl:onProperty tvbo:bids_dir ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:parameters ], + owl:onProperty tvbo:edge_matrix_files ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:node_template ], + owl:minCardinality 0 ; + owl:onProperty tvbo:nodes ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:distance_unit ], + owl:onProperty tvbo:time_unit ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:parent_network ], + owl:onProperty tvbo:bids_dir ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:graph_generator ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:data_file ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:node_mapping ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:tractogram ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:nodes ], + owl:onProperty tvbo:node_template ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Dynamics ; - owl:onProperty tvbo:dynamics ], + owl:allValuesFrom tvbo:GraphGenerator ; + owl:onProperty tvbo:graph_generator ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:coupling ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:mesh ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:parcellation ], + owl:allValuesFrom tvbo:Dynamics ; + owl:onProperty tvbo:dynamics ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:time_unit ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:dynamics ], + owl:onProperty tvbo:parcellation ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:bids ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:observational_measures ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:number_of_nodes ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:parent_network ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:primary_weight ], + owl:onProperty tvbo:data_file ], [ a owl:Restriction ; - owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/CommonCoordinateSpace> ; - owl:onProperty tvbo:coordinate_space ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:bids_dir ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Tractogram ; + owl:minCardinality 0 ; owl:onProperty tvbo:tractogram ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Node ; - owl:onProperty tvbo:nodes ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Edge ; - owl:onProperty tvbo:edge_template ], + owl:allValuesFrom tvbo:BidsEntities ; + owl:onProperty tvbo:bids ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:node_mapping ], + owl:allValuesFrom tvbo:Parameter ; + owl:onProperty tvbo:parameters ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Edge ; - owl:onProperty tvbo:edges ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:number_of_nodes ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:primary_weight ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:parcellation ], + owl:onProperty tvbo:primary_weight ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:GraphGenerator ; - owl:onProperty tvbo:graph_generator ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:mesh ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:BidsEntities ; - owl:onProperty tvbo:bids ], + owl:allValuesFrom tvbo:Node ; + owl:onProperty tvbo:node_template ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:bids_dir ], + owl:onProperty tvbo:graph_generator ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:node_template ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:edge_template ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:tractogram ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:parcellation ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:primary_weight ], + owl:minCardinality 0 ; + owl:onProperty tvbo:parameters ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:coordinate_space ], + owl:onProperty tvbo:mesh ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:time_unit ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:data_file ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:descriptor ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Parcellation ; owl:onProperty tvbo:parcellation ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:bids ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Tractogram ; + owl:onProperty tvbo:tractogram ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:parent_network ], + owl:onProperty tvbo:coordinate_space ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:provenance ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:edge_template ], + owl:onProperty tvbo:graph_generator ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Provenance ; + owl:onProperty tvbo:provenance ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:transforms ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:descriptor ], + owl:onProperty tvbo:data_file ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:UnitEnum ; - owl:onProperty tvbo:time_unit ], + owl:minCardinality 0 ; + owl:onProperty tvbo:graph_representation ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:structural_measures ], + owl:onProperty tvbo:descriptor ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:descriptor ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:data_file ] ; + owl:onProperty tvbo:parent_network ] ; skos:altLabel "Connectivity", "Connectome", "Graph", @@ -10800,29 +11475,29 @@ tvbo:Solver a owl:Class ; rdfs:label "Solver" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:rel_tol ], + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:abs_tol ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty tvbo:rel_tol ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:method ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:abs_tol ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:abs_tol ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:method ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:method ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:rel_tol ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:abs_tol ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:method ], [ a owl:Restriction ; owl:allValuesFrom xsd:float ; owl:onProperty tvbo:rel_tol ] ; @@ -10843,50 +11518,44 @@ tvbo:SparseFormat a owl:Class ; rdfs:label "SoftwareEnvironment (software)" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom <https://w3id.org/tvbo/software/SoftwareRequirement> ; - owl:onProperty <https://w3id.org/tvbo/software/requirements> ], + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/software/description> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/label> ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/software/label> ], + owl:onProperty <https://w3id.org/tvbo/software/version> ], [ a owl:Restriction ; owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/software/environment_type> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; owl:onProperty <https://w3id.org/tvbo/software/description> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty <https://w3id.org/tvbo/software/platform> ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/version> ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:maxCardinality 1 ; owl:onProperty <https://w3id.org/tvbo/software/dataLocation> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:minCardinality 0 ; owl:onProperty <https://w3id.org/tvbo/software/build_hash> ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/software/build_hash> ], + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/software/dataLocation> ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/software/version> ], + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/software/dataLocation> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/platform> ], + owl:onProperty <https://w3id.org/tvbo/software/requirements> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty <https://w3id.org/tvbo/software/version> ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/software/description> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/software/platform> ], + owl:onProperty <https://w3id.org/tvbo/software/version> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/software/label> ], + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty <https://w3id.org/tvbo/software/container_image> ], @@ -10894,41 +11563,47 @@ tvbo:SparseFormat a owl:Class ; owl:allValuesFrom tvbo:EnvironmentType ; owl:onProperty <https://w3id.org/tvbo/software/environment_type> ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty tvbo:name ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/software/description> ], + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/software/build_hash> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/software/environment_type> ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/environment_type> ], + owl:onProperty <https://w3id.org/tvbo/software/label> ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/dataLocation> ], + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/software/label> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/software/container_image> ], - [ a owl:Restriction ; - owl:minCardinality 0 ; owl:onProperty <https://w3id.org/tvbo/software/build_hash> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/software/dataLocation> ], + owl:onProperty <https://w3id.org/tvbo/software/container_image> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/software/container_image> ], + [ a owl:Restriction ; + owl:minCardinality 1 ; owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/software/label> ], + [ a owl:Restriction ; + owl:allValuesFrom <https://w3id.org/tvbo/software/SoftwareRequirement> ; owl:onProperty <https://w3id.org/tvbo/software/requirements> ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/software/container_image> ] ; + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/software/environment_type> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/software/platform> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/software/description> ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/software/platform> ] ; skos:definition "A reproducible software environment aggregating one or more SoftwareRequirement entries. Used by SimulationExperiment to specify the execution context." ; skos:inScheme tvbo:software ; skos:notation "SoftwareEnvironment" ; @@ -10938,491 +11613,674 @@ tvbo:SparseFormat a owl:Class ; tvbo:steps a owl:DatatypeProperty, owl:ObjectProperty . +<http://uri.interlex.org/tgbugs/uris/readable/alternateName> a owl:DatatypeProperty ; + rdfs:label "alternateName" ; + rdfs:range xsd:string ; + skos:definition "Enter any alternate names, including abbreviations, for this entity." ; + skos:inScheme <https://openminds.ebrains.eu/sands/BrainAtlas> . + <http://uri.interlex.org/tgbugs/uris/readable/coordinateSpace> a owl:ObjectProperty ; rdfs:label "coordinateSpace" ; rdfs:range <http://uri.interlex.org/tgbugs/uris/readable/CommonCoordinateSpace> ; skos:definition "Common coordinate space (e.g. FSLMNI152, MNI152NLin2009cAsym). Reference by name; the CommonCoordinateSpace must be defined in tvbo/database/coordinate_spaces/ (or future equivalent location)." ; skos:inScheme <https://openminds.ebrains.eu/sands/BrainAtlas> . -tvbo:AggregationType a owl:Class ; - rdfs:label "AggregationType" ; - rdfs:isDefinedBy tvbo:struct ; - owl:unionOf ( <https://w3id.org/tvbo/AggregationType#mean> <https://w3id.org/tvbo/AggregationType#last> <https://w3id.org/tvbo/AggregationType#first> <https://w3id.org/tvbo/AggregationType#window> <https://w3id.org/tvbo/AggregationType#none> ) ; - skos:definition "How to aggregate time series data" ; - skos:inScheme <https://w3id.org/tvbo> ; - linkml:permissible_values <https://w3id.org/tvbo/AggregationType#first>, - <https://w3id.org/tvbo/AggregationType#last>, - <https://w3id.org/tvbo/AggregationType#mean>, - <https://w3id.org/tvbo/AggregationType#none>, - <https://w3id.org/tvbo/AggregationType#window> . - tvbo:Algorithm a owl:Class ; rdfs:label "Algorithm" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom tvbo:AlgorithmStage ; - owl:onProperty tvbo:stages ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:learning_rate_warmup ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:simulation_period ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:type ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:maxCardinality 1 ; owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:learning_rate_schedule ], + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:simulation_period ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:functions ], + owl:allValuesFrom tvbo:Algorithm ; + owl:onProperty tvbo:depends_on ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:execution ], + owl:onProperty tvbo:type ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:apply_every ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Observation ; + owl:onProperty tvbo:observations ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:n_iterations ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:name ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:learning_rate_schedule ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:AlgorithmInclude ; + owl:onProperty tvbo:includes ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:execution ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:FunctionCall ; + owl:minCardinality 0 ; owl:onProperty tvbo:functions ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:depends_on ], [ a owl:Restriction ; owl:allValuesFrom tvbo:TuningObjective ; owl:onProperty tvbo:objective ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:learning_rate_warmup ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:includes ], + owl:onProperty tvbo:learning_rate_schedule ], [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; + owl:maxCardinality 1 ; owl:onProperty tvbo:simulation_period ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Algorithm ; - owl:onProperty tvbo:depends_on ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:type ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:update_rules ], + owl:onProperty tvbo:observations ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:hyperparameters ], + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:n_iterations ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:n_iterations ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:boolean ; + owl:onProperty tvbo:learning_rate_warmup ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:learning_rate ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:apply_every ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Parameter ; + owl:onProperty tvbo:hyperparameters ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:objective ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:allValuesFrom tvbo:AlgorithmStage ; + owl:onProperty tvbo:stages ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:type ], + owl:onProperty tvbo:includes ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:learning_rate ], [ a owl:Restriction ; owl:maxCardinality 1 ; + owl:onProperty tvbo:learning_rate_schedule ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:learning_rate_warmup ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty tvbo:apply_every ], [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; + owl:minCardinality 0 ; + owl:onProperty tvbo:execution ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:update_rules ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:execution ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty tvbo:learning_rate ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:stages ], + owl:onProperty tvbo:hyperparameters ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:learning_rate_schedule ], + owl:allValuesFrom tvbo:FunctionCall ; + owl:onProperty tvbo:functions ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:ExecutionConfig ; - owl:onProperty tvbo:execution ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:objective ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:description ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:allValuesFrom tvbo:UpdateRule ; owl:onProperty tvbo:update_rules ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:depends_on ], + owl:onProperty tvbo:stages ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:ExecutionConfig ; + owl:onProperty tvbo:execution ] ; + skos:definition "A complete specification of an iterative parameter tuning algorithm. Combines update rules, objectives, observations, and hyperparameters." ; + skos:exactMatch tvbo:Algorithm ; + skos:inScheme <https://w3id.org/tvbo> . + +tvbo:Callable a owl:Class ; + rdfs:label "Callable" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:module ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:type ], + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:learning_rate_schedule ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:simulation_period ], + owl:onProperty tvbo:software ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:learning_rate ], + owl:onProperty tvbo:module ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:n_iterations ], + owl:minCardinality 1 ; + owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:type ], + owl:minCardinality 0 ; + owl:onProperty tvbo:software ], + [ a owl:Restriction ; + owl:allValuesFrom <https://w3id.org/tvbo/software/SoftwareRequirement> ; + owl:onProperty tvbo:software ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:module ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Observation ; - owl:onProperty tvbo:observations ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:description ] ; + skos:exactMatch tvbo:Callable ; + skos:inScheme <https://w3id.org/tvbo> . + +tvbo:Distribution a owl:Class ; + rdfs:label "Distribution" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:parameters ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Range ; + owl:onProperty tvbo:domain ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Function ; + owl:onProperty tvbo:function ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:simulation_period ], + owl:onProperty tvbo:seed ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:SamplingAxis ; + owl:onProperty tvbo:axis ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:observations ], + owl:onProperty tvbo:function ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:objective ], + owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Parameter ; - owl:onProperty tvbo:hyperparameters ], + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:seed ], [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty tvbo:learning_rate_warmup ], + owl:minCardinality 0 ; + owl:onProperty tvbo:correlation ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:n_iterations ], + owl:onProperty tvbo:function ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:apply_every ], + owl:onProperty tvbo:domain ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:apply_every ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:domain ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:learning_rate_warmup ], + owl:onProperty tvbo:seed ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:AlgorithmInclude ; - owl:onProperty tvbo:includes ] ; - skos:definition "A complete specification of an iterative parameter tuning algorithm. Combines update rules, objectives, observations, and hyperparameters." ; - skos:exactMatch tvbo:Algorithm ; + owl:minCardinality 0 ; + owl:onProperty tvbo:axis ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:correlation ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Matrix ; + owl:onProperty tvbo:correlation ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Parameter ; + owl:onProperty tvbo:parameters ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:axis ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty tvbo:name ] ; + skos:definition "A probability distribution for sampling parameters or initial conditions. Standard distributions (Uniform, Gaussian) are specified by name and domain/parameters. Custom distributions use a Function for the PDF/sampling rule. Default name is Uniform when only domain is given." ; + skos:exactMatch tvbo:Distribution ; skos:inScheme <https://w3id.org/tvbo> . -tvbo:Callable a owl:Class ; - rdfs:label "Callable" ; +tvbo:EventType a owl:Class ; + rdfs:label "EventType" ; + rdfs:isDefinedBy tvbo:struct ; + owl:unionOf ( <https://w3id.org/tvbo/EventType#continuous> <https://w3id.org/tvbo/EventType#discrete> <https://w3id.org/tvbo/EventType#preset_time> <https://w3id.org/tvbo/EventType#stimulus> <https://w3id.org/tvbo/EventType#stimulation> ) ; + skos:definition "Type of event triggering mechanism." ; + skos:inScheme <https://w3id.org/tvbo> ; + linkml:permissible_values <https://w3id.org/tvbo/EventType#continuous>, + <https://w3id.org/tvbo/EventType#discrete>, + <https://w3id.org/tvbo/EventType#preset_time>, + <https://w3id.org/tvbo/EventType#stimulation>, + <https://w3id.org/tvbo/EventType#stimulus> . + +tvbo:FunctionCall a owl:Class ; + rdfs:label "FunctionCall" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:callable ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:acronym ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:arguments ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:callable ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:equation ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:output ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:source_code ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:function ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:software ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:allValuesFrom <https://w3id.org/tvbo/software/SoftwareRequirement> ; - owl:onProperty tvbo:software ], + owl:minCardinality 0 ; + owl:onProperty tvbo:source_code ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:name ], + owl:onProperty tvbo:input ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:module ], + owl:onProperty tvbo:source_code ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:module ], + owl:onProperty tvbo:class_call ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:software ], + owl:onProperty tvbo:aggregate ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:name ], + owl:minCardinality 0 ; + owl:onProperty tvbo:input ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty tvbo:name ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:acronym ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:module ] ; - skos:exactMatch tvbo:Callable ; - skos:inScheme <https://w3id.org/tvbo> . - -tvbo:Distribution a owl:Class ; - rdfs:label "Distribution" ; - rdfs:isDefinedBy tvbo:struct ; - rdfs:subClassOf [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:axis ], + owl:onProperty tvbo:apply_on_dimension ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Aggregation ; + owl:onProperty tvbo:aggregate ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:seed ], + owl:onProperty tvbo:function ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:SamplingAxis ; - owl:onProperty tvbo:axis ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:input ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:axis ], + owl:allValuesFrom tvbo:Argument ; + owl:onProperty tvbo:arguments ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:correlation ], + owl:allValuesFrom tvbo:ClassReference ; + owl:onProperty tvbo:class_call ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Parameter ; - owl:onProperty tvbo:parameters ], + owl:allValuesFrom tvbo:Equation ; + owl:onProperty tvbo:equation ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:name ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:class_call ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:function ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Matrix ; - owl:onProperty tvbo:correlation ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:aggregate ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom tvbo:Function ; owl:onProperty tvbo:function ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:domain ], - [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:maxCardinality 1 ; owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Function ; - owl:onProperty tvbo:function ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:correlation ], + owl:onProperty tvbo:equation ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:seed ], + owl:allValuesFrom tvbo:Range ; + owl:onProperty tvbo:time_range ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:seed ], + owl:onProperty tvbo:output ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:DimensionType ; + owl:onProperty tvbo:apply_on_dimension ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:parameters ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Range ; - owl:onProperty tvbo:domain ], + owl:minCardinality 0 ; + owl:onProperty tvbo:apply_on_dimension ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:domain ], + owl:minCardinality 0 ; + owl:onProperty tvbo:time_range ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:name ] ; - skos:definition "A probability distribution for sampling parameters or initial conditions. Standard distributions (Uniform, Gaussian) are specified by name and domain/parameters. Custom distributions use a Function for the PDF/sampling rule. Default name is Uniform when only domain is given." ; - skos:exactMatch tvbo:Distribution ; + owl:onProperty tvbo:time_range ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:output ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:acronym ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Callable ; + owl:onProperty tvbo:callable ] ; + skos:definition "Invocation of a function in a pipeline. Can reference a defined Function by name, OR inline a callable directly for external library functions, OR inline an equation, OR use class_call for class instantiation. Mirrors Function attributes so pipeline steps can be self-contained. The `name` is an optional step label (used in pipelines for keyed access to step outputs); it is NOT a global identifier (singleton uses like `loss`, `observable` may omit it)." ; + skos:exactMatch tvbo:FunctionCall ; skos:inScheme <https://w3id.org/tvbo> . -tvbo:EventType a owl:Class ; - rdfs:label "EventType" ; - rdfs:isDefinedBy tvbo:struct ; - owl:unionOf ( <https://w3id.org/tvbo/EventType#continuous> <https://w3id.org/tvbo/EventType#discrete> <https://w3id.org/tvbo/EventType#preset_time> <https://w3id.org/tvbo/EventType#stimulus> <https://w3id.org/tvbo/EventType#stimulation> ) ; - skos:definition "Type of event triggering mechanism." ; - skos:inScheme <https://w3id.org/tvbo> ; - linkml:permissible_values <https://w3id.org/tvbo/EventType#continuous>, - <https://w3id.org/tvbo/EventType#discrete>, - <https://w3id.org/tvbo/EventType#preset_time>, - <https://w3id.org/tvbo/EventType#stimulation>, - <https://w3id.org/tvbo/EventType#stimulus> . - tvbo:Observation a owl:Class ; rdfs:label "Observation" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom tvbo:ClassReference ; - owl:onProperty tvbo:class_reference ], - [ a owl:Restriction ; - owl:allValuesFrom [ owl:unionOf ( tvbo:StateVariable tvbo:Observation ) ] ; - owl:onProperty tvbo:source ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:skip_t ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:voi ], + owl:onProperty tvbo:reconcile ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Equation ; owl:onProperty tvbo:equation ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:name ], - [ a owl:Restriction ; - owl:minCardinality 0 ; owl:onProperty tvbo:warmup_source ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:time_scale ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:BidsEntities ; + owl:onProperty tvbo:query ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:window_size ], + owl:onProperty tvbo:time_scale ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:environment ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:tail_samples ], + owl:onProperty tvbo:pipeline ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:voi ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:downsample_period ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:analysis ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:dynamics ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:boolean ; + owl:onProperty tvbo:record ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:voi ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:tail_samples ], + [ a owl:Restriction ; + owl:allValuesFrom <https://w3id.org/tvbo/software/SoftwareEnvironment> ; + owl:onProperty tvbo:environment ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:data_source ], + owl:onProperty tvbo:equation ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:analysis ], + owl:onProperty tvbo:acronym ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:description ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:record ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:parameters ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:imaging_modality ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:class_reference ], [ a owl:Restriction ; owl:maxCardinality 1 ; + owl:onProperty tvbo:dynamics ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:ImagingModality ; owl:onProperty tvbo:imaging_modality ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:ClassReference ; + owl:onProperty tvbo:class_reference ], [ a owl:Restriction ; owl:allValuesFrom tvbo:FunctionCall ; owl:onProperty tvbo:pipeline ], [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:period ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:min_coverage ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty tvbo:acronym ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:skip_t ], + owl:onProperty tvbo:imaging_modality ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:tail_samples ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], - [ a owl:Restriction ; - owl:allValuesFrom <https://w3id.org/tvbo/software/SoftwareEnvironment> ; - owl:onProperty tvbo:environment ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:voi ], + owl:allValuesFrom tvbo:DataSource ; + owl:onProperty tvbo:data_source ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Parameter ; - owl:onProperty tvbo:parameters ], + owl:allValuesFrom tvbo:UnitEnum ; + owl:onProperty tvbo:time_scale ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:ImagingModality ; - owl:onProperty tvbo:imaging_modality ], + owl:minCardinality 0 ; + owl:onProperty tvbo:period ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:warmup_source ], + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:skip_t ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:warmup_source ], + owl:onProperty tvbo:aggregation ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:source ], + owl:onProperty tvbo:data_source ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:allValuesFrom [ a rdfs:Datatype ; + owl:intersectionOf ( xsd:float [ a rdfs:Datatype ; + owl:onDatatype xsd:float ; + owl:withRestrictions ( [ xsd:minInclusive "0.0"^^xsd:float ] ) ] [ a rdfs:Datatype ; + owl:onDatatype xsd:float ; + owl:withRestrictions ( [ xsd:maxInclusive "1.0"^^xsd:float ] ) ] ) ] ; + owl:onProperty tvbo:min_coverage ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:window_size ], + owl:onProperty tvbo:downsample_period ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:AggregationType ; + owl:minCardinality 0 ; + owl:onProperty tvbo:skip_t ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty tvbo:aggregation ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:data_source ], + owl:minCardinality 0 ; + owl:onProperty tvbo:window_size ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:aggregation ], + owl:onProperty tvbo:reconcile ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:tail_samples ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty tvbo:name ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:acronym ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:class_reference ], + owl:onProperty tvbo:data_source ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Parameter ; + owl:onProperty tvbo:parameters ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:window_size ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:pipeline ], + owl:onProperty tvbo:min_coverage ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:acronym ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:equation ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:query ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:aggregation ], + owl:onProperty tvbo:period ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:downsample_period ], + owl:minCardinality 0 ; + owl:onProperty tvbo:tail_samples ], [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:downsample_period ], + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:tail_samples ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:downsample_period ], + owl:allValuesFrom tvbo:Reference ; + owl:onProperty tvbo:aux_data ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:period ], + owl:onProperty tvbo:environment ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:time_scale ], + owl:onProperty tvbo:record ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:equation ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom xsd:float ; owl:onProperty tvbo:period ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:imaging_modality ], + owl:onProperty tvbo:environment ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:acronym ], + owl:minCardinality 0 ; + owl:onProperty tvbo:source ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Analysis ; owl:onProperty tvbo:analysis ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:DataSource ; - owl:onProperty tvbo:data_source ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Reference ; - owl:onProperty tvbo:aux_data ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:class_reference ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:warmup_source ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:environment ], + owl:minCardinality 1 ; + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:equation ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:time_scale ], + owl:onProperty tvbo:voi ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:window_size ], + owl:allValuesFrom [ owl:unionOf ( tvbo:StateVariable tvbo:Observation ) ] ; + owl:onProperty tvbo:source ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:skip_t ], + owl:onProperty tvbo:query ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:aux_data ], + owl:onProperty tvbo:analysis ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:NodeReconciliation ; + owl:onProperty tvbo:reconcile ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:window_size ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Dynamics ; + owl:onProperty tvbo:dynamics ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:downsample_period ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:parameters ], + owl:onProperty tvbo:class_reference ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:UnitEnum ; - owl:onProperty tvbo:time_scale ], + owl:minCardinality 0 ; + owl:onProperty tvbo:warmup_source ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:label ], + owl:allValuesFrom tvbo:AggregationType ; + owl:onProperty tvbo:aggregation ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:skip_t ] ; + owl:minCardinality 0 ; + owl:onProperty tvbo:aux_data ] ; skos:definition "Unified class for all observation/measurement specifications. Covers monitors (BOLD, EEG), tuning observables, and derived quantities. Pipeline is a sequence of Functions with input -> output flow." ; skos:exactMatch tvbo:Observation ; skos:inScheme <https://w3id.org/tvbo> . @@ -11464,6 +12322,10 @@ tvbo:atlas a owl:DatatypeProperty, tvbo:bothside a owl:DatatypeProperty . +tvbo:builder a owl:ObjectProperty . + +tvbo:chunk a owl:DatatypeProperty . + tvbo:cohort a owl:DatatypeProperty . tvbo:dataLocation a owl:DatatypeProperty . @@ -11540,8 +12402,6 @@ tvbo:model a owl:ObjectProperty ; tvbo:n_iterations a owl:DatatypeProperty . -tvbo:options a owl:ObjectProperty . - tvbo:parameter a owl:DatatypeProperty, owl:ObjectProperty . @@ -11549,14 +12409,19 @@ tvbo:parcellation a owl:ObjectProperty . tvbo:path a owl:DatatypeProperty . -tvbo:provenance a owl:ObjectProperty . - tvbo:pycode a owl:DatatypeProperty . tvbo:region a owl:DatatypeProperty . tvbo:rel_tol a owl:DatatypeProperty . +tvbo:requirements a owl:ObjectProperty ; + rdfs:label "requirements (slot)" ; + rdfs:range <https://w3id.org/tvbo/software/SoftwareRequirement> ; + skos:definition "Software requirements for the workflow environment; overrides ``experiment.environment.requirements`` when set." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "requirements" . + tvbo:sampling_rate a owl:DatatypeProperty . tvbo:size a owl:DatatypeProperty . @@ -11582,6 +12447,9 @@ tvbo:target a owl:DatatypeProperty . tvbo:target_variable a owl:DatatypeProperty, owl:ObjectProperty . +tvbo:time a owl:DatatypeProperty, + owl:ObjectProperty . + tvbo:time_range a owl:ObjectProperty . tvbo:time_scale a owl:ObjectProperty ; @@ -11596,41 +12464,41 @@ tvbo:warmup_source a owl:DatatypeProperty . <http://uri.interlex.org/tgbugs/uris/readable/Coordinate> a owl:Class ; rdfs:label "Coordinate" ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/coordinateSpace> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/z> ], [ a owl:Restriction ; owl:allValuesFrom xsd:float ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/x> ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/z> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:float ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/y> ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/x> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/x> ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/z> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/z> ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/coordinateSpace> ], [ a owl:Restriction ; owl:allValuesFrom xsd:float ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/z> ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/x> ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/CommonCoordinateSpace> ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/coordinateSpace> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; + owl:minCardinality 0 ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/y> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/y> ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/x> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/z> ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/y> ], - [ a owl:Restriction ; - owl:allValuesFrom <http://uri.interlex.org/tgbugs/uris/readable/CommonCoordinateSpace> ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/coordinateSpace> ] ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/y> ] ; skos:definition "A 3D coordinate with X, Y, Z values." ; skos:inScheme <https://openminds.ebrains.eu/sands/BrainAtlas> . @@ -11638,89 +12506,89 @@ tvbo:DerivedVariable a owl:Class ; rdfs:label "DerivedVariable" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:conditional ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:equation ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:record ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:label ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty tvbo:name ], + owl:minCardinality 0 ; + owl:onProperty tvbo:cases ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:equation ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:conditional ], + owl:allValuesFrom tvbo:Case ; + owl:onProperty tvbo:cases ], [ a owl:Restriction ; - owl:allValuesFrom xsd:anyURI ; - owl:onProperty tvbo:grounding ], + owl:allValuesFrom tvbo:UnitEnum ; + owl:onProperty tvbo:unit ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Equation ; + owl:onProperty tvbo:equation ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:symbol ], + owl:onProperty tvbo:conditional ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:maxCardinality 1 ; owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom xsd:boolean ; owl:onProperty tvbo:record ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:grounding ], + owl:onProperty tvbo:conditional ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:description ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:unit ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:symbol ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:name ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:allValuesFrom xsd:anyURI ; + owl:onProperty tvbo:grounding ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:cases ], + owl:onProperty tvbo:symbol ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:label ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:allValuesFrom xsd:boolean ; owl:onProperty tvbo:conditional ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Case ; - owl:onProperty tvbo:cases ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:UnitEnum ; - owl:onProperty tvbo:unit ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:unit ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], + owl:minCardinality 1 ; + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:label ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty tvbo:symbol ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Equation ; + owl:maxCardinality 1 ; owl:onProperty tvbo:equation ], [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty tvbo:record ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:unit ] ; + owl:minCardinality 0 ; + owl:onProperty tvbo:grounding ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:description ] ; skos:exactMatch tvbo:DerivedVariable ; skos:inScheme <https://w3id.org/tvbo> . @@ -11729,67 +12597,67 @@ tvbo:ExecutionConfig a owl:Class ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:precision ], + owl:onProperty tvbo:n_threads ], [ a owl:Restriction ; owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:random_seed ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:accelerator ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; owl:onProperty tvbo:batch_size ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:n_workers ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; + owl:maxCardinality 1 ; owl:onProperty tvbo:find_fixpoint ], [ a owl:Restriction ; owl:minCardinality 0 ; + owl:onProperty tvbo:batch_size ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:integer ; owl:onProperty tvbo:random_seed ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:n_workers ], + owl:onProperty tvbo:accelerator ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:random_seed ], + owl:onProperty tvbo:precision ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:batch_size ], + owl:onProperty tvbo:n_workers ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:accelerator ], + owl:onProperty tvbo:random_seed ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:find_fixpoint ], + owl:minCardinality 0 ; + owl:onProperty tvbo:random_seed ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:precision ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:find_fixpoint ], + owl:onProperty tvbo:precision ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:accelerator ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:integer ; owl:onProperty tvbo:n_workers ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:boolean ; + owl:onProperty tvbo:find_fixpoint ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:accelerator ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:find_fixpoint ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:n_threads ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; + owl:maxCardinality 1 ; owl:onProperty tvbo:batch_size ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:precision ], [ a owl:Restriction ; owl:allValuesFrom xsd:integer ; owl:onProperty tvbo:n_threads ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:n_threads ] ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:n_workers ] ; skos:definition "Configuration for computational execution (parallelization, precision, hardware)." ; skos:exactMatch tvbo:ExecutionConfig ; skos:inScheme <https://w3id.org/tvbo> . @@ -11821,6 +12689,20 @@ tvbo:SimulationScale a owl:Class ; tvbo:values a owl:DatatypeProperty, owl:ObjectProperty . +tvbo:AggregationType a owl:Class ; + rdfs:label "AggregationType" ; + rdfs:isDefinedBy tvbo:struct ; + owl:unionOf ( <https://w3id.org/tvbo/AggregationType#mean> <https://w3id.org/tvbo/AggregationType#variance> <https://w3id.org/tvbo/AggregationType#std> <https://w3id.org/tvbo/AggregationType#last> <https://w3id.org/tvbo/AggregationType#first> <https://w3id.org/tvbo/AggregationType#window> <https://w3id.org/tvbo/AggregationType#none> ) ; + skos:definition "How to aggregate time series data" ; + skos:inScheme <https://w3id.org/tvbo> ; + linkml:permissible_values <https://w3id.org/tvbo/AggregationType#first>, + <https://w3id.org/tvbo/AggregationType#last>, + <https://w3id.org/tvbo/AggregationType#mean>, + <https://w3id.org/tvbo/AggregationType#none>, + <https://w3id.org/tvbo/AggregationType#std>, + <https://w3id.org/tvbo/AggregationType#variance>, + <https://w3id.org/tvbo/AggregationType#window> . + tvbo:DevelopmentStatus a owl:Class ; rdfs:label "DevelopmentStatus" ; rdfs:isDefinedBy tvbo:struct ; @@ -11853,324 +12735,206 @@ tvbo:StateVariable a owl:Class ; rdfs:label "StateVariable" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:derivative_initial_value ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:symbol ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:record ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Noise ; - owl:onProperty tvbo:noise ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty tvbo:variable_of_interest ], - [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:domain ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; owl:onProperty tvbo:record ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:label ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:equation_type ], + owl:allValuesFrom xsd:boolean ; + owl:onProperty tvbo:stimulation_variable ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:definition ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Range ; - owl:onProperty tvbo:domain ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:stimulation_variable ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:stimulation_variable ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:equation ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:allValuesFrom xsd:boolean ; + owl:onProperty tvbo:variable_of_interest ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:distribution ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:symbol ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:equation_order ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:equation_order ], + owl:onProperty tvbo:initial_value ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:name ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Distribution ; - owl:onProperty tvbo:distribution ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:label ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:distribution ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:unit ], - [ a owl:Restriction ; - owl:minCardinality 0 ; owl:onProperty tvbo:history ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:name ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:equation_order ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:definition ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:initial_value ], + owl:allValuesFrom tvbo:Equation ; + owl:onProperty tvbo:equation ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:label ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:noise ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty tvbo:stimulation_variable ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:coupling_variable ], + owl:onProperty tvbo:distribution ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:definition ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:variable_of_interest ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:derivative_initial_value ], + owl:onProperty tvbo:symbol ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:TimeSeries ; - owl:onProperty tvbo:history ], + owl:allValuesFrom tvbo:UnitEnum ; + owl:onProperty tvbo:unit ], [ a owl:Restriction ; - owl:minCardinality 1 ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:name ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:initial_value ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:record ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:domain ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty tvbo:coupling_variable ], [ a owl:Restriction ; owl:allValuesFrom xsd:float ; owl:onProperty tvbo:derivative_initial_value ], [ a owl:Restriction ; owl:allValuesFrom xsd:anyURI ; owl:onProperty tvbo:grounding ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:noise ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:history ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:equation ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:unit ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:equation_type ], + owl:onProperty tvbo:equation ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:initial_value ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:definition ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Equation ; - owl:onProperty tvbo:equation ], + owl:onProperty tvbo:symbol ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:equation_type ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:grounding ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:equation ], + owl:allValuesFrom tvbo:TimeSeries ; + owl:onProperty tvbo:history ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:coupling_variable ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:UnitEnum ; - owl:onProperty tvbo:unit ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:symbol ], + owl:onProperty tvbo:definition ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:variable_of_interest ] ; - skos:exactMatch tvbo:StateVariable ; - skos:inScheme <https://w3id.org/tvbo> . - -tvbo:arguments a owl:ObjectProperty . - -tvbo:coupling a owl:ObjectProperty . - -tvbo:depends_on a owl:DatatypeProperty, - owl:ObjectProperty . - -tvbo:events a owl:ObjectProperty . - -tvbo:functions a owl:ObjectProperty . - -tvbo:references a owl:DatatypeProperty ; - rdfs:label "references (slot)" ; - rdfs:range xsd:string ; - skos:inScheme <https://w3id.org/tvbo> ; - skos:notation "references" . - -<https://w3id.org/tvbo/software/SoftwareRequirement> a owl:Class ; - rdfs:label "SoftwareRequirement (software)" ; - rdfs:isDefinedBy tvbo:struct ; - rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/software/version> ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/optional> ], + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/software/hash> ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/dataLocation> ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/software/hash> ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/software/source_url> ], + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:initial_value ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/version> ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty <https://w3id.org/tvbo/software/optional> ], - [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty tvbo:name ], + owl:onProperty tvbo:equation_order ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/url> ], + owl:onProperty tvbo:variable_of_interest ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/software/description> ], + owl:minCardinality 0 ; + owl:onProperty tvbo:distribution ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/software/version_spec> ], + owl:onProperty tvbo:equation_type ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/software/description> ], - [ a owl:Restriction ; - owl:allValuesFrom <https://w3id.org/tvbo/software/SoftwarePackage> ; - owl:onProperty <https://w3id.org/tvbo/software/package> ], + owl:onProperty tvbo:noise ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/software/license> ], + owl:onProperty tvbo:label ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:boolean ; + owl:onProperty tvbo:record ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/role> ], + owl:onProperty tvbo:history ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:name ], + owl:minCardinality 0 ; + owl:onProperty tvbo:stimulation_variable ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/software/source_url> ], + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:equation_order ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/software/version_spec> ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/modules> ], + owl:onProperty tvbo:unit ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/version_spec> ], + owl:allValuesFrom xsd:boolean ; + owl:onProperty tvbo:coupling_variable ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/software/license> ], + owl:allValuesFrom tvbo:Range ; + owl:onProperty tvbo:domain ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/software/url> ], + owl:minCardinality 0 ; + owl:onProperty tvbo:derivative_initial_value ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:equation_type ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:name ], + owl:onProperty tvbo:equation_order ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/software/role> ], + owl:onProperty tvbo:record ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/description> ], + owl:allValuesFrom tvbo:Distribution ; + owl:onProperty tvbo:distribution ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/software/dataLocation> ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/software/version> ], + owl:onProperty tvbo:coupling_variable ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/package> ], + owl:onProperty tvbo:coupling_variable ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Noise ; + owl:onProperty tvbo:noise ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/hash> ], + owl:onProperty tvbo:unit ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:stimulation_variable ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/source_url> ], + owl:onProperty tvbo:domain ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/software/modules> ], + owl:minCardinality 1 ; + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/software/dataLocation> ], + owl:onProperty tvbo:derivative_initial_value ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/software/optional> ], + owl:onProperty tvbo:domain ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:variable_of_interest ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <https://w3id.org/tvbo/software/license> ], + owl:onProperty tvbo:grounding ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:RequirementRole ; - owl:onProperty <https://w3id.org/tvbo/software/role> ], + owl:minCardinality 0 ; + owl:onProperty tvbo:initial_value ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <https://w3id.org/tvbo/software/package> ], + owl:minCardinality 0 ; + owl:onProperty tvbo:noise ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <https://w3id.org/tvbo/software/url> ] ; - skos:definition "An individual software requirement binding a package to a version constraint and a role within an environment." ; - skos:inScheme tvbo:software ; - skos:notation "SoftwareRequirement" ; - skos:note "Represents an individual requirement (package/module/library).", - "Use 'version_spec' instead of 'version' for semantic clarity." . + owl:minCardinality 0 ; + owl:onProperty tvbo:label ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:symbol ] ; + skos:exactMatch tvbo:StateVariable ; + skos:inScheme <https://w3id.org/tvbo> . + +tvbo:arguments a owl:ObjectProperty . + +tvbo:coupling a owl:ObjectProperty . + +tvbo:depends_on a owl:DatatypeProperty, + owl:ObjectProperty . + +tvbo:events a owl:ObjectProperty . + +tvbo:functions a owl:ObjectProperty . + +tvbo:options a owl:ObjectProperty . + +tvbo:references a owl:DatatypeProperty ; + rdfs:label "references (slot)" ; + rdfs:range xsd:string ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "references" . + +tvbo:workflow a owl:DatatypeProperty, + owl:ObjectProperty . <http://uri.interlex.org/tgbugs/uris/readable/abbreviation> a owl:DatatypeProperty ; rdfs:label "abbreviation" ; @@ -12230,6 +12994,132 @@ tvbo:mode a owl:DatatypeProperty, tvbo:noise a owl:ObjectProperty . +tvbo:provenance a owl:DatatypeProperty, + owl:ObjectProperty . + +<https://w3id.org/tvbo/software/SoftwareRequirement> a owl:Class ; + rdfs:label "SoftwareRequirement (software)" ; + rdfs:isDefinedBy tvbo:struct ; + rdfs:subClassOf [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/software/description> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/software/hash> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/software/version_spec> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/software/modules> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/software/url> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/software/package> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:boolean ; + owl:onProperty <https://w3id.org/tvbo/software/optional> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/software/optional> ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/software/license> ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/software/package> ], + [ a owl:Restriction ; + owl:allValuesFrom <https://w3id.org/tvbo/software/SoftwarePackage> ; + owl:onProperty <https://w3id.org/tvbo/software/package> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/software/dataLocation> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/software/source_url> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/software/license> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/software/modules> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/software/version> ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/software/description> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/software/dataLocation> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/software/description> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty <https://w3id.org/tvbo/software/url> ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/software/version_spec> ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/software/dataLocation> ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/software/source_url> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/software/license> ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:RequirementRole ; + owl:onProperty <https://w3id.org/tvbo/software/role> ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/software/url> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/software/source_url> ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/software/optional> ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/software/role> ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/software/version> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/software/version_spec> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/software/hash> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/software/version> ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty <https://w3id.org/tvbo/software/hash> ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty <https://w3id.org/tvbo/software/role> ] ; + skos:definition "An individual software requirement binding a package to a version constraint and a role within an environment." ; + skos:inScheme tvbo:software ; + skos:notation "SoftwareRequirement" ; + skos:note "Represents an individual requirement (package/module/library).", + "Use 'version_spec' instead of 'version' for semantic clarity." . + <https://w3id.org/tvbo/software/description> a owl:DatatypeProperty ; rdfs:label "description (software)" ; skos:inScheme tvbo:software ; @@ -12251,79 +13141,79 @@ tvbo:time_dependent a owl:DatatypeProperty . rdfs:label "CommonCoordinateSpace" ; rdfs:subClassOf [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/axesOrigin> ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/alternateName> ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/license> ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty tvbo:name ], + owl:minCardinality 0 ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/defaultImage> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/anatomicalAxesOrientation> ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:UnitEnum ; - owl:onProperty tvbo:unit ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/abbreviation> ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/nativeUnit> ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/abbreviation> ], + owl:minCardinality 0 ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/anatomicalAxesOrientation> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/abbreviation> ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/axesOrigin> ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/alternateName> ], + owl:maxCardinality 1 ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/axesOrigin> ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/license> ], + owl:allValuesFrom xsd:string ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/alternateName> ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:unit ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/nativeUnit> ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:UnitEnum ; + owl:onProperty tvbo:unit ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/anatomicalAxesOrientation> ], + owl:onProperty tvbo:unit ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/license> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/license> ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/anatomicalAxesOrientation> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/axesOrigin> ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/anatomicalAxesOrientation> ], + [ a owl:Restriction ; + owl:minCardinality 1 ; + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:minCardinality 0 ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/alternateName> ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/defaultImage> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:name ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/nativeUnit> ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/abbreviation> ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/nativeUnit> ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/axesOrigin> ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:unit ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/axesOrigin> ], + owl:maxCardinality 1 ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/nativeUnit> ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/anatomicalAxesOrientation> ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/abbreviation> ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/defaultImage> ] ; + owl:minCardinality 0 ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/license> ] ; skos:definition "A schema for representing a version of a common coordinate space." ; skos:exactMatch <http://uri.interlex.org/tgbugs/uris/readable/atlas/Transformation> ; skos:inScheme <https://openminds.ebrains.eu/sands/BrainAtlas> . @@ -12384,315 +13274,307 @@ tvbo:Dynamics a owl:Class ; rdfs:label "Dynamics" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:allValuesFrom tvbo:DerivedVariable ; - owl:onProperty tvbo:derived_variables ], + owl:allValuesFrom tvbo:SystemType ; + owl:onProperty tvbo:system_type ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:local_coupling_term ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:StateVariable ; - owl:onProperty tvbo:state_variables ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; owl:onProperty tvbo:name ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:cse ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:number_of_modes ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Event ; - owl:onProperty tvbo:events ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:autonomous ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:references ], + owl:allValuesFrom tvbo:CouplingInput ; + owl:onProperty tvbo:coupling_inputs ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:derived_from_model ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:system_type ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Dynamics ; - owl:onProperty tvbo:derived_from_model ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:compile ], + owl:onProperty tvbo:output ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:derived_parameters ], [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty tvbo:modified ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:autonomous ], + owl:allValuesFrom tvbo:Parameter ; + owl:onProperty tvbo:local_coupling_term ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:modes ], + owl:allValuesFrom tvbo:DerivedVariable ; + owl:onProperty tvbo:observed ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:stimulus ], + owl:allValuesFrom xsd:boolean ; + owl:onProperty tvbo:cse ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:stimulus ], + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:number_of_modes ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:coupling_inputs ], + owl:onProperty tvbo:events ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:DerivedVariable ; + owl:onProperty tvbo:derived_variables ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:functions ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:allValuesFrom xsd:anyURI ; - owl:onProperty tvbo:iri ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:local_coupling_term ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:output ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:system_type ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:source ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:DerivedParameter ; - owl:onProperty tvbo:derived_parameters ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:derived_from_model ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:model_type ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Parameter ; owl:onProperty tvbo:local_coupling_term ], [ a owl:Restriction ; owl:allValuesFrom xsd:boolean ; owl:onProperty tvbo:compile ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:description ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Event ; + owl:onProperty tvbo:events ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:references ], + owl:onProperty tvbo:cse ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:derived_from_model ], + owl:onProperty tvbo:autonomous ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:iri ], + owl:onProperty tvbo:autonomous ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:CouplingInput ; - owl:onProperty tvbo:coupling_inputs ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:references ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:source ], + owl:onProperty tvbo:derived_from_model ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Function ; - owl:onProperty tvbo:functions ], + owl:minCardinality 0 ; + owl:onProperty tvbo:coupling_inputs ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:cse ], + owl:allValuesFrom tvbo:StateVariable ; + owl:onProperty tvbo:state_variables ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:source ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:iri ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:name ], + owl:minCardinality 0 ; + owl:onProperty tvbo:coupling_terms ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:modified ], + owl:minCardinality 0 ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty tvbo:has_reference ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:system_type ], + owl:allValuesFrom tvbo:Function ; + owl:onProperty tvbo:functions ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], + owl:allValuesFrom tvbo:DerivedParameter ; + owl:onProperty tvbo:derived_parameters ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty tvbo:name ], + owl:maxCardinality 1 ; + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:events ], + owl:allValuesFrom tvbo:ModelType ; + owl:onProperty tvbo:model_type ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:output ], + owl:allValuesFrom tvbo:Parameter ; + owl:onProperty tvbo:coupling_terms ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:has_reference ], + owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:compile ], + owl:onProperty tvbo:model_type ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:local_coupling_term ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Parameter ; - owl:onProperty tvbo:coupling_terms ], + owl:onProperty tvbo:model_type ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Stimulus ; + owl:maxCardinality 1 ; owl:onProperty tvbo:stimulus ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:modified ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:observed ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:number_of_modes ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:has_reference ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:coupling_terms ], + owl:onProperty tvbo:parameters ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], + owl:onProperty tvbo:compile ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], + owl:onProperty tvbo:number_of_modes ], [ a owl:Restriction ; owl:allValuesFrom xsd:boolean ; owl:onProperty tvbo:autonomous ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:number_of_modes ], + owl:minCardinality 0 ; + owl:onProperty tvbo:references ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:derived_variables ], + owl:onProperty tvbo:modified ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:stimulus ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:source ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:modes ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Dynamics ; owl:onProperty tvbo:modes ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:number_of_modes ], + owl:allValuesFrom xsd:anyURI ; + owl:onProperty tvbo:iri ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Parameter ; - owl:onProperty tvbo:parameters ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:iri ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:DerivedVariable ; - owl:onProperty tvbo:observed ], + owl:allValuesFrom tvbo:Stimulus ; + owl:onProperty tvbo:stimulus ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:source ], + owl:minCardinality 1 ; + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:source ], + owl:onProperty tvbo:has_reference ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:ModelType ; - owl:onProperty tvbo:model_type ], + owl:minCardinality 0 ; + owl:onProperty tvbo:derived_variables ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:model_type ], + owl:onProperty tvbo:system_type ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:parameters ], + owl:allValuesFrom tvbo:Dynamics ; + owl:onProperty tvbo:derived_from_model ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:SystemType ; - owl:onProperty tvbo:system_type ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:cse ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:has_reference ], + owl:allValuesFrom xsd:boolean ; + owl:onProperty tvbo:modified ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Parameter ; + owl:onProperty tvbo:parameters ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:state_variables ], + owl:onProperty tvbo:compile ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:modified ], [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty tvbo:cse ] ; + owl:minCardinality 0 ; + owl:onProperty tvbo:state_variables ] ; skos:altLabel "NeuralMassModel" ; - skos:exactMatch tvbo:Dynamics ; - skos:inScheme <https://w3id.org/tvbo> ; - skos:note "Successor class replacing deprecated NeuralMassModel." . - -tvbo:record a owl:DatatypeProperty ; - rdfs:label "record (slot)" ; - rdfs:range xsd:boolean ; - skos:definition "Names of observations to compute and record at EACH grid point, stacked over the sweep into one array per name. Entries may be derived observations (e.g. `loss`) or `analysis` diagnostics (e.g. `ad_gradient`, `fd_gradient`, `lyapunov`) β€” this is how a sweep of the diagnostics themselves is declared, replacing any per-point Python driver. Complementary to `observable` (a single scalar reduction); when both are absent the full observation Bunch is recorded.", - "Whether to include this element in simulation output files. Applicable to state variables (default true), derived variables (default false), and network nodes (default true). Set false to suppress recording." ; + skos:exactMatch tvbo:Dynamics ; skos:inScheme <https://w3id.org/tvbo> ; - skos:notation "record" . + skos:note "Successor class replacing deprecated NeuralMassModel." . tvbo:Range a owl:Class ; rdfs:label "Range" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; + owl:allValuesFrom tvbo:DomainEnforcement ; + owl:onProperty tvbo:enforce ], + [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:log_scale ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:step ], + owl:onProperty tvbo:lo ], [ a owl:Restriction ; owl:allValuesFrom xsd:integer ; owl:onProperty tvbo:n ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:hi ], + owl:minCardinality 0 ; + owl:onProperty tvbo:explored_values ], [ a owl:Restriction ; - owl:allValuesFrom xsd:integer ; - owl:onProperty tvbo:element ], + owl:allValuesFrom xsd:boolean ; + owl:onProperty tvbo:log_scale ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:enforce ], + owl:onProperty tvbo:n ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:hi ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:enforce ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:explored_values ], + owl:onProperty tvbo:enforce ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:ScalarValue ; - owl:onProperty tvbo:step ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:hi ], [ a owl:Restriction ; owl:allValuesFrom tvbo:ScalarValue ; - owl:onProperty tvbo:hi ], + owl:onProperty tvbo:lo ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:step ], + owl:allValuesFrom xsd:integer ; + owl:onProperty tvbo:element ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:element ], + owl:onProperty tvbo:step ], [ a owl:Restriction ; owl:allValuesFrom xsd:float ; owl:onProperty tvbo:explored_values ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:enforce ], + owl:onProperty tvbo:lo ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:lo ], + owl:onProperty tvbo:step ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:ScalarValue ; + owl:onProperty tvbo:hi ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:n ], + owl:onProperty tvbo:hi ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:n ], + owl:onProperty tvbo:element ], [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty tvbo:log_scale ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:n ], [ a owl:Restriction ; owl:allValuesFrom tvbo:ScalarValue ; - owl:onProperty tvbo:lo ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:log_scale ], + owl:onProperty tvbo:step ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:lo ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; owl:onProperty tvbo:element ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:DomainEnforcement ; - owl:onProperty tvbo:enforce ] ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:log_scale ] ; skos:definition "Specifies a range for array generation, parameter bounds, or grid exploration." ; skos:exactMatch tvbo:Range ; skos:inScheme <https://w3id.org/tvbo> . @@ -12731,152 +13613,152 @@ tvbo:Function a owl:Class ; rdfs:label "Function" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:acronym ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:aggregate ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:source_code ], + owl:minCardinality 0 ; + owl:onProperty tvbo:time_range ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:maxCardinality 1 ; owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:apply_on_dimension ], + owl:allValuesFrom tvbo:Range ; + owl:onProperty tvbo:time_range ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:acronym ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:callable ], + owl:onProperty tvbo:aggregate ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:definition ], + owl:allValuesFrom tvbo:DimensionType ; + owl:onProperty tvbo:apply_on_dimension ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:equation ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:output_equation ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:iri ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:time_range ], + owl:onProperty tvbo:requirements ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:iri ], + owl:onProperty tvbo:callable ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:callable ], + owl:onProperty tvbo:source_code ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:name ], + owl:onProperty tvbo:equation ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:input ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; owl:onProperty tvbo:acronym ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:source_code ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:output ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Function ; - owl:onProperty tvbo:input ], + owl:minCardinality 0 ; + owl:onProperty tvbo:equation ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:definition ], + owl:allValuesFrom xsd:anyURI ; + owl:onProperty tvbo:iri ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:description ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Aggregation ; owl:onProperty tvbo:aggregate ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:requirements ], + owl:allValuesFrom tvbo:Argument ; + owl:onProperty tvbo:arguments ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:definition ], + owl:onProperty tvbo:source_code ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:apply_on_dimension ], + owl:onProperty tvbo:source_code ], [ a owl:Restriction ; - owl:allValuesFrom <https://w3id.org/tvbo/software/SoftwareRequirement> ; - owl:onProperty tvbo:requirements ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:input ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:equation ], + owl:onProperty tvbo:apply_on_dimension ], [ a owl:Restriction ; - owl:allValuesFrom xsd:anyURI ; - owl:onProperty tvbo:iri ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:callable ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Range ; - owl:onProperty tvbo:time_range ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:output ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:aggregate ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Argument ; - owl:onProperty tvbo:arguments ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:definition ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:source_code ], + owl:allValuesFrom tvbo:Callable ; + owl:onProperty tvbo:callable ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:input ], + owl:onProperty tvbo:output_equation ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:time_range ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:minCardinality 1 ; owl:onProperty tvbo:name ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:output ], + owl:allValuesFrom tvbo:Function ; + owl:onProperty tvbo:input ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:iri ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:DimensionType ; + owl:maxCardinality 1 ; owl:onProperty tvbo:apply_on_dimension ], [ a owl:Restriction ; owl:maxCardinality 1 ; + owl:onProperty tvbo:definition ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty tvbo:output_equation ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:arguments ], + owl:onProperty tvbo:aggregate ], + [ a owl:Restriction ; + owl:allValuesFrom <https://w3id.org/tvbo/software/SoftwareRequirement> ; + owl:onProperty tvbo:requirements ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:definition ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:iri ], + owl:onProperty tvbo:acronym ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Equation ; owl:onProperty tvbo:equation ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Callable ; - owl:onProperty tvbo:callable ], + owl:minCardinality 0 ; + owl:onProperty tvbo:arguments ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:maxCardinality 1 ; owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:output ], + owl:minCardinality 0 ; + owl:onProperty tvbo:input ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Equation ; + owl:onProperty tvbo:output_equation ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:time_range ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Equation ; - owl:onProperty tvbo:output_equation ] ; + owl:minCardinality 0 ; + owl:onProperty tvbo:description ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:output ] ; skos:definition "A function with explicit input -> transformation -> output flow. Can be equation-based (symbolic) or software-based (callable). In a pipeline, functions are chained: output of one becomes input of next." ; skos:exactMatch tvbo:Function ; skos:inScheme <https://w3id.org/tvbo> . @@ -12921,7 +13803,13 @@ tvbo:PhysicalDimension a owl:Class ; <https://w3id.org/tvbo/PhysicalDimension#voltage>, <https://w3id.org/tvbo/PhysicalDimension#volume> . -tvbo:dynamics a owl:ObjectProperty . +tvbo:record a owl:DatatypeProperty ; + rdfs:label "record (slot)" ; + rdfs:range xsd:boolean ; + skos:definition "Names of observations to compute and record at EACH grid point, stacked over the sweep into one array per name. Entries may be derived observations (e.g. `loss`) or `analysis` diagnostics (e.g. `ad_gradient`, `fd_gradient`, `lyapunov`) β€” this is how a sweep of the diagnostics themselves is declared, replacing any per-point Python driver. Complementary to `observable` (a single scalar reduction); when both are absent the full observation Bunch is recorded.", + "Whether to include this element in simulation output files. Applicable to state variables (default true), derived variables (default false), and network nodes (default true). On an observation it forces (true) or suppresses (false) persistence in the result; left unset, a terminal observation (one not consumed by another observation or a loss) is recorded and an intermediate one is not. Set false to suppress recording." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "record" . tvbo:ProgrammingLanguageEnum a owl:Class ; rdfs:label "ProgrammingLanguageEnum" ; @@ -12953,14 +13841,6 @@ tvbo:definition a owl:DatatypeProperty ; tvbo:distribution a owl:DatatypeProperty, owl:ObjectProperty . -tvbo:value a owl:DatatypeProperty, - owl:ObjectProperty ; - rdfs:label "value (slot)" ; - rdfs:range [ owl:intersectionOf ( tvbo:ScalarValue tvbo:ScalarValue ) ] ; - skos:definition "Numeric, string, or boolean value, OR an array (nested list) for array-valued constants such as mode-coupling coefficient matrices. ScalarValue accepts any literal primitive type, allowing parameters to carry control flags (e.g., booleans) or symbolic placeholders alongside numeric defaults." ; - skos:inScheme <https://w3id.org/tvbo> ; - skos:notation "value" . - tvbo:ModelParadigm a owl:Class ; rdfs:label "ModelParadigm" ; rdfs:isDefinedBy tvbo:struct ; @@ -12989,6 +13869,8 @@ tvbo:source a owl:DatatypeProperty ; skos:inScheme <https://w3id.org/tvbo> ; skos:notation "source" . +tvbo:dynamics a owl:ObjectProperty . + tvbo:domain a owl:ObjectProperty ; rdfs:label "domain (slot)" ; rdfs:range tvbo:Range ; @@ -13002,6 +13884,14 @@ tvbo:execution a owl:ObjectProperty . tvbo:type a owl:DatatypeProperty, owl:ObjectProperty . +tvbo:value a owl:DatatypeProperty, + owl:ObjectProperty ; + rdfs:label "value (slot)" ; + rdfs:range [ owl:intersectionOf ( tvbo:ScalarValue tvbo:ScalarValue ) ] ; + skos:definition "Numeric, string, or boolean value, OR an array (nested list) for array-valued constants such as mode-coupling coefficient matrices. ScalarValue accepts any literal primitive type, allowing parameters to carry control flags (e.g., booleans) or symbolic placeholders alongside numeric defaults." ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "value" . + <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> a owl:DatatypeProperty ; rdfs:label "dataLocation" ; rdfs:range xsd:string ; @@ -13020,79 +13910,79 @@ tvbo:Equation a owl:Class ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:label ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:conditionals ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:definition ], + owl:allValuesFrom tvbo:ConditionalBlock ; + owl:onProperty tvbo:conditionals ], [ a owl:Restriction ; owl:allValuesFrom <https://w3id.org/tvbo/software/SoftwareRequirement> ; owl:onProperty tvbo:engine ], [ a owl:Restriction ; owl:maxCardinality 1 ; + owl:onProperty tvbo:rhs ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:rhs ], + owl:onProperty tvbo:engine ], [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; + owl:minCardinality 0 ; + owl:onProperty tvbo:label ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty tvbo:latex ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:pycode ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:pycode ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:definition ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:parameters ], + owl:onProperty tvbo:definition ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:maxCardinality 1 ; owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:conditionals ], - [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom xsd:boolean ; owl:onProperty tvbo:latex ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:ConditionalBlock ; - owl:onProperty tvbo:conditionals ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:lhs ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty tvbo:engine ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Parameter ; - owl:onProperty tvbo:parameters ], + owl:minCardinality 0 ; + owl:onProperty tvbo:rhs ], [ a owl:Restriction ; owl:maxCardinality 1 ; owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:pycode ], - [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:definition ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:lhs ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty tvbo:latex ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; + owl:minCardinality 0 ; owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:engine ], + owl:onProperty tvbo:pycode ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:lhs ], + owl:allValuesFrom tvbo:Parameter ; + owl:onProperty tvbo:parameters ], + [ a owl:Restriction ; + owl:minCardinality 0 ; + owl:onProperty tvbo:parameters ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:pycode ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:rhs ], @@ -13100,8 +13990,8 @@ tvbo:Equation a owl:Class ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:lhs ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:rhs ] ; + owl:minCardinality 0 ; + owl:onProperty tvbo:lhs ] ; skos:exactMatch tvbo:Equation ; skos:inScheme <https://w3id.org/tvbo> . @@ -13109,212 +13999,212 @@ tvbo:Parameter a owl:Class ; rdfs:label "Parameter" ; rdfs:isDefinedBy tvbo:struct ; rdfs:subClassOf [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:source ], + owl:minCardinality 1 ; + owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:reported_optimum ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:definition ], + owl:onProperty tvbo:shape ], [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty tvbo:required ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:grounding ], + owl:onProperty tvbo:source ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:unit ], + owl:allValuesFrom tvbo:Distribution ; + owl:onProperty tvbo:distribution ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:source ], + owl:onProperty tvbo:shape ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:dataset_path ], + owl:onProperty tvbo:equation ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Equation ; + owl:onProperty tvbo:equation ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:boolean ; + owl:onProperty tvbo:required ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:comment ], + owl:onProperty tvbo:datatype ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:label ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:measure ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:description ], + owl:onProperty tvbo:measure ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:shape ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:shape ], + owl:onProperty tvbo:source ], [ a owl:Restriction ; owl:allValuesFrom xsd:boolean ; + owl:onProperty tvbo:heterogeneous ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; owl:onProperty tvbo:free ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:Range ; + owl:onProperty tvbo:domain ], + [ a owl:Restriction ; + owl:allValuesFrom tvbo:UnitEnum ; + owl:onProperty tvbo:unit ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:heterogeneous ], + owl:onProperty tvbo:unit ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:name ], + owl:minCardinality 0 ; + owl:onProperty tvbo:label ], [ a owl:Restriction ; - owl:allValuesFrom xsd:anyURI ; - owl:onProperty tvbo:grounding ], + owl:minCardinality 0 ; + owl:onProperty tvbo:domain ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:default ], + owl:onProperty tvbo:heterogeneous ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:domain ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:datatype ], + owl:onProperty tvbo:comment ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:free ], + owl:onProperty tvbo:value ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:label ], + owl:onProperty tvbo:description ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:definition ], + owl:onProperty tvbo:default ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:value ], + owl:onProperty tvbo:dataset_path ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Distribution ; - owl:onProperty tvbo:distribution ], + owl:allValuesFrom xsd:anyURI ; + owl:onProperty tvbo:grounding ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:datatype ], - [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:equation ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:distribution ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; owl:onProperty tvbo:default ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:reported_optimum ], + owl:onProperty tvbo:heterogeneous ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:element_domains ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:shape ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:measure ], [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:description ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:symbol ], [ a owl:Restriction ; - owl:minCardinality 0 ; + owl:maxCardinality 1 ; owl:onProperty tvbo:distribution ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:domain ], + owl:onProperty tvbo:shape ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom xsd:anyURI ; + owl:onProperty tvbo:source ], + [ a owl:Restriction ; + owl:minCardinality 0 ; owl:onProperty tvbo:equation ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:explored_values ], + owl:onProperty tvbo:grounding ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:UnitEnum ; - owl:onProperty tvbo:unit ], + owl:minCardinality 0 ; + owl:onProperty tvbo:description ], [ a owl:Restriction ; - owl:minCardinality 1 ; - owl:onProperty tvbo:name ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:default ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:label ], - [ a owl:Restriction ; - owl:allValuesFrom tvbo:Equation ; - owl:onProperty tvbo:equation ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:measure ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:dataset_path ], + owl:onProperty tvbo:unit ], [ a owl:Restriction ; owl:minCardinality 0 ; owl:onProperty tvbo:comment ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:minCardinality 0 ; owl:onProperty tvbo:definition ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:symbol ], + owl:onProperty tvbo:datatype ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:free ], + owl:onProperty tvbo:value ], [ a owl:Restriction ; - owl:minCardinality 0 ; - owl:onProperty tvbo:symbol ], + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:dataset_path ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:default ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:boolean ; - owl:onProperty tvbo:heterogeneous ], + owl:onProperty tvbo:comment ], [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:reported_optimum ], + owl:allValuesFrom [ owl:intersectionOf ( tvbo:ScalarValue tvbo:ScalarValue ) ] ; + owl:onProperty tvbo:value ], [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:measure ], + owl:minCardinality 0 ; + owl:onProperty tvbo:free ], [ a owl:Restriction ; - owl:allValuesFrom tvbo:Range ; - owl:onProperty tvbo:domain ], + owl:allValuesFrom xsd:boolean ; + owl:onProperty tvbo:free ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:dataset_path ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:float ; - owl:onProperty tvbo:explored_values ], + owl:onProperty tvbo:element_domains ], [ a owl:Restriction ; owl:allValuesFrom xsd:string ; owl:onProperty tvbo:symbol ], [ a owl:Restriction ; - owl:maxCardinality 1 ; + owl:allValuesFrom xsd:string ; owl:onProperty tvbo:name ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:required ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:unit ], + owl:onProperty tvbo:reported_optimum ], [ a owl:Restriction ; - owl:allValuesFrom xsd:anyURI ; - owl:onProperty tvbo:source ], + owl:minCardinality 0 ; + owl:onProperty tvbo:required ], [ a owl:Restriction ; owl:allValuesFrom tvbo:Range ; owl:onProperty tvbo:element_domains ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:description ], - [ a owl:Restriction ; - owl:maxCardinality 1 ; - owl:onProperty tvbo:datatype ], - [ a owl:Restriction ; - owl:allValuesFrom xsd:string ; - owl:onProperty tvbo:measure ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:domain ], + owl:onProperty tvbo:reported_optimum ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:required ], + owl:onProperty tvbo:distribution ], [ a owl:Restriction ; - owl:allValuesFrom [ owl:intersectionOf ( tvbo:ScalarValue tvbo:ScalarValue ) ] ; - owl:onProperty tvbo:value ], + owl:maxCardinality 1 ; + owl:onProperty tvbo:definition ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:heterogeneous ], + owl:onProperty tvbo:explored_values ], [ a owl:Restriction ; owl:minCardinality 0 ; - owl:onProperty tvbo:reported_optimum ], + owl:onProperty tvbo:symbol ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:comment ], + owl:onProperty tvbo:dataset_path ], [ a owl:Restriction ; owl:maxCardinality 1 ; - owl:onProperty tvbo:value ] ; + owl:onProperty tvbo:name ], + [ a owl:Restriction ; + owl:maxCardinality 1 ; + owl:onProperty tvbo:required ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:string ; + owl:onProperty tvbo:definition ], + [ a owl:Restriction ; + owl:allValuesFrom xsd:float ; + owl:onProperty tvbo:explored_values ] ; skos:exactMatch tvbo:Parameter ; skos:inScheme <https://w3id.org/tvbo> . @@ -13343,7 +14233,7 @@ tvbo:software a owl:ObjectProperty . tvbo:UnitEnum a owl:Class ; rdfs:label "UnitEnum" ; rdfs:isDefinedBy tvbo:struct ; - owl:unionOf ( qudt:SEC qudt:MilliSEC qudt:MicroSEC qudt:PER-SEC qudt:PER-MilliSEC qudt:HZ qudt:KiloHZ qudt:V qudt:MilliV qudt:PER-MilliV qudt:MilliV-PER-MilliSEC qudt:MilliV-PER-SEC qudt:A qudt:NanoA qudt:PicoA <https://w3id.org/tvbo/UnitEnum#uA_per_cm2> qudt:PicoFARAD qudt:NanoFARAD <https://w3id.org/tvbo/UnitEnum#uF_per_cm2> qudt:NanoS qudt:MicroS qudt:PicoS <https://w3id.org/tvbo/UnitEnum#S_per_cm2> <https://w3id.org/tvbo/UnitEnum#mS_per_cm2> <https://w3id.org/tvbo/UnitEnum#S_per_m2> <https://w3id.org/tvbo/UnitEnum#nS_per_mV> qudt:PER-NanoC qudt:PER-PicoC qudt:MOL-PER-M3 <https://w3id.org/tvbo/UnitEnum#mol_per_cm3> qudt:MilliMOL-PER-M3 <https://w3id.org/tvbo/UnitEnum#mol_per_m_per_A_per_s> qudt:MicroM3 qudt:M qudt:MilliM qudt:CentiM qudt:M-PER-SEC qudt:MilliM-PER-MilliSEC <https://w3id.org/tvbo/UnitEnum#Hz_per_nA> qudt:S-PER-M qudt:H-PER-M qudt:OHM <https://w3id.org/tvbo/UnitEnum#Mohm> <https://w3id.org/tvbo/UnitEnum#kohm_cm> qudt:DEG_C <https://w3id.org/tvbo/UnitEnum#rad_per_ms> qudt:UNITLESS qudt:PERCENT <https://w3id.org/tvbo/UnitEnum#arbitrary_unit> qudt:KiloGM <https://w3id.org/tvbo/UnitEnum#kg_per_s> qudt:M-PER-SEC2 qudt:N-PER-M qudt:RAD qudt:RAD-PER-SEC qudt:SEC2 <https://w3id.org/tvbo/UnitEnum#per_unit> ) ; + owl:unionOf ( qudt:SEC qudt:MilliSEC qudt:MicroSEC qudt:PER-SEC qudt:PER-MilliSEC qudt:HZ qudt:KiloHZ qudt:V qudt:MilliV qudt:PER-MilliV qudt:MilliV-PER-MilliSEC qudt:MilliV-PER-SEC qudt:A qudt:NanoA qudt:PicoA <https://w3id.org/tvbo/UnitEnum#uA_per_cm2> qudt:PicoFARAD qudt:NanoFARAD <https://w3id.org/tvbo/UnitEnum#uF_per_cm2> qudt:NanoS qudt:MicroS qudt:PicoS <https://w3id.org/tvbo/UnitEnum#S_per_cm2> <https://w3id.org/tvbo/UnitEnum#mS_per_cm2> <https://w3id.org/tvbo/UnitEnum#S_per_m2> <https://w3id.org/tvbo/UnitEnum#nS_per_mV> qudt:PER-NanoC qudt:PER-PicoC qudt:MOL-PER-M3 <https://w3id.org/tvbo/UnitEnum#mol_per_cm3> qudt:MilliMOL-PER-M3 <https://w3id.org/tvbo/UnitEnum#mol_per_m_per_A_per_s> qudt:MicroM3 qudt:M qudt:MilliM qudt:CentiM qudt:M-PER-SEC qudt:MilliM-PER-MilliSEC <https://w3id.org/tvbo/UnitEnum#Hz_per_nA> qudt:S-PER-M qudt:H-PER-M qudt:OHM <https://w3id.org/tvbo/UnitEnum#Mohm> <https://w3id.org/tvbo/UnitEnum#kohm_cm> qudt:DEG_C <https://w3id.org/tvbo/UnitEnum#rad_per_ms> qudt:UNITLESS qudt:PERCENT <https://w3id.org/tvbo/UnitEnum#arbitrary_unit> qudt:KiloGM <https://w3id.org/tvbo/UnitEnum#kg_per_s> qudt:KiloGM-M2 qudt:M-PER-SEC2 qudt:N-PER-M qudt:RAD qudt:RAD-PER-SEC qudt:SEC2 qudt:W qudt:MegaW <https://w3id.org/tvbo/UnitEnum#per_unit> ) ; skos:definition "Physical units of measurement for model parameters, state variables, and integration settings. Uses conventional abbreviations as values, mapped to the QUDT ontology (http://qudt.org/vocab/unit/) with UO cross-references where available." ; skos:inScheme tvbo:units ; linkml:permissible_values qudt:A, @@ -13352,11 +14242,13 @@ tvbo:UnitEnum a owl:Class ; qudt:H-PER-M, qudt:HZ, qudt:KiloGM, + qudt:KiloGM-M2, qudt:KiloHZ, qudt:M, qudt:M-PER-SEC, qudt:M-PER-SEC2, qudt:MOL-PER-M3, + qudt:MegaW, qudt:MicroM3, qudt:MicroS, qudt:MicroSEC, @@ -13388,6 +14280,7 @@ tvbo:UnitEnum a owl:Class ; qudt:SEC2, qudt:UNITLESS, qudt:V, + qudt:W, <https://w3id.org/tvbo/UnitEnum#Hz_per_nA>, <https://w3id.org/tvbo/UnitEnum#Mohm>, <https://w3id.org/tvbo/UnitEnum#S_per_cm2>, @@ -13404,6 +14297,12 @@ tvbo:UnitEnum a owl:Class ; <https://w3id.org/tvbo/UnitEnum#uA_per_cm2>, <https://w3id.org/tvbo/UnitEnum#uF_per_cm2> . +tvbo:label a owl:DatatypeProperty ; + rdfs:label "label (slot)" ; + rdfs:range xsd:string ; + skos:inScheme <https://w3id.org/tvbo> ; + skos:notation "label" . + tvbo:name a owl:DatatypeProperty ; rdfs:label "name (slot)" ; rdfs:range xsd:string ; @@ -13411,12 +14310,6 @@ tvbo:name a owl:DatatypeProperty ; skos:inScheme tvbo:common ; skos:notation "name" . -tvbo:label a owl:DatatypeProperty ; - rdfs:label "label (slot)" ; - rdfs:range xsd:string ; - skos:inScheme <https://w3id.org/tvbo> ; - skos:notation "label" . - tvbo:description a owl:DatatypeProperty ; rdfs:label "description (slot)" ; rdfs:range xsd:string ; @@ -13429,7 +14322,7 @@ tvbo:struct a owl:Ontology ; dcterms:created "2024-01-01"^^xsd:date ; dcterms:description "Metadata schema for simulation studies using The Virtual Brain neuroinformatics platform or other dynamic network models of large-scale brain activity." ; dcterms:license <https://spdx.org/licenses/EUPL-1.2> ; - dcterms:modified "2026-07-08"^^xsd:date ; + dcterms:modified "2026-07-13"^^xsd:date ; dcterms:publisher <https://www.thevirtualbrain.org/> ; dcterms:title "The Virtual Brain Data Model" ; pav:version "0.4.0" ; diff --git a/ontology/tvb-o.shacl.ttl b/ontology/tvb-o.shacl.ttl index bcef0a27b..a97f6e843 100644 --- a/ontology/tvb-o.shacl.ttl +++ b/ontology/tvb-o.shacl.ttl @@ -26,31 +26,31 @@ tvbo:LossFunction a sh:NodeShape ; sh:property [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path skos:notation ], - [ sh:class tvbo:Equation ; - sh:description "Output transformation equation (if equation-based)" ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 12 ; - sh:path tvbo:output_equation ], - [ sh:datatype xsd:string ; - sh:description "Name for this function's output (referenced by subsequent functions)" ; + sh:order 13 ; + sh:path tvbo:source_code ], + [ sh:class tvbo:Function ; + sh:description "Simple input reference: name of previous function's output in pipeline. For multi-argument functions, use arguments with value references instead." ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 10 ; - sh:path tvbo:output ], + sh:nodeKind sh:IRI ; + sh:order 9 ; + sh:path tvbo:input ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 13 ; - sh:path tvbo:source_code ], + sh:order 7 ; + sh:path dcterms:description ], [ sh:class tvbo:Callable ; sh:description "Software implementation reference (if software-based)" ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; sh:order 14 ; sh:path tvbo:callable ], + [ sh:class tvbo:Range ; + sh:description "Time range for generated TimeSeries (for kernel generators). Equation is evaluated at each time point." ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 16 ; + sh:path tvbo:time_range ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; @@ -62,65 +62,70 @@ tvbo:LossFunction a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 1 ; sh:path schema1:name ], + [ sh:datatype xsd:string ; + sh:description "Name for this function's output (referenced by subsequent functions)" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 10 ; + sh:path tvbo:output ], + [ sh:class tvbo:Argument ; + sh:description "Variables consumed by the function (referenced in the equation), keyed by argument name. Each value carries the optional metadata (value, description, unit); the key is the name (no redundant `name:` inside)." ; + sh:nodeKind sh:IRI ; + sh:order 11 ; + sh:path tvbo:arguments ], [ sh:class <https://w3id.org/tvbo/software/SoftwareRequirement> ; sh:nodeKind sh:IRI ; sh:order 8 ; sh:path tvbo:requirements ], - [ sh:class tvbo:Equation ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 5 ; - sh:path tvbo:Equation ], - [ sh:class tvbo:Aggregation ; - sh:description "How to aggregate the loss across dimensions. Example: aggregate.over=node, aggregate.type=mean computes loss per node, then averages." ; + [ sh:datatype xsd:string ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 0 ; - sh:path tvbo:aggregate ], + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path skos:notation ], [ sh:description "Optional stable IRI (or compact URI) for this entity in an external ontology or knowledge base. Used to load metadata from an external source; not required when the entity is fully self-contained (equations, parameters, etc. defined in the file itself)." ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; sh:order 4 ; sh:path dcterms:identifier ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path rdfs:label ], [ sh:description "Which dimension to apply the transformation on" ; sh:in ( "time" "state" "node" "region" "mode" "sample" "batch" "frequency" ) ; sh:maxCount 1 ; sh:order 15 ; sh:path tvbo:apply_on_dimension ], - [ sh:class tvbo:Range ; - sh:description "Time range for generated TimeSeries (for kernel generators). Equation is evaluated at each time point." ; + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path rdfs:label ], + [ sh:class tvbo:Aggregation ; + sh:description "How to aggregate the loss across dimensions. Example: aggregate.over=node, aggregate.type=mean computes loss per node, then averages." ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 16 ; - sh:path tvbo:time_range ], - [ sh:class tvbo:Function ; - sh:description "Simple input reference: name of previous function's output in pipeline. For multi-argument functions, use arguments with value references instead." ; + sh:order 0 ; + sh:path tvbo:aggregate ], + [ sh:class tvbo:Equation ; sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 9 ; - sh:path tvbo:input ], - [ sh:class tvbo:Argument ; - sh:description "Variables consumed by the function (referenced in the equation), keyed by argument name. Each value carries the optional metadata (value, description, unit); the key is the name (no redundant `name:` inside)." ; - sh:nodeKind sh:IRI ; - sh:order 11 ; - sh:path tvbo:arguments ], - [ sh:datatype xsd:string ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 5 ; + sh:path tvbo:Equation ], + [ sh:class tvbo:Equation ; + sh:description "Output transformation equation (if equation-based)" ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 7 ; - sh:path dcterms:description ] ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 12 ; + sh:path tvbo:output_equation ] ; sh:targetClass tvbo:LossFunction . tvbo:NamedArray a sh:NodeShape ; rdfs:comment "A named numeric array. Used as a sidecar slot value where a schema-typed object (e.g. ``ExperimentResult.parameters``) holds multiple arrays addressable by name (``w_LRE``, ``w_FFI``, ``J_i``, ...). The actual numeric data lives in the companion ``.h5`` at ``parameters/<name>``; the YAML carries only the descriptor." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; + sh:property [ sh:datatype xsd:integer ; + sh:description "Array dimensions." ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path tvbo:shape ], + [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 4 ; @@ -133,23 +138,18 @@ tvbo:NamedArray a sh:NodeShape ; sh:order 2 ; sh:path tvbo:dtype ], [ sh:datatype xsd:string ; - sh:description "Field name; matches the h5 dataset path under ``parameters/``." ; + sh:description "Optional unit annotation (e.g. 'nA')." ; sh:maxCount 1 ; - sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path tvbo:name ], - [ sh:datatype xsd:integer ; - sh:description "Array dimensions." ; - sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path tvbo:shape ], + sh:order 3 ; + sh:path tvbo:unit ], [ sh:datatype xsd:string ; - sh:description "Optional unit annotation (e.g. 'nA')." ; + sh:description "Field name; matches the h5 dataset path under ``parameters/``." ; sh:maxCount 1 ; + sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path tvbo:unit ] ; + sh:order 0 ; + sh:path tvbo:name ] ; sh:targetClass tvbo:NamedArray . tvbo:Phenotype a sh:NodeShape ; @@ -158,44 +158,12 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. sh:closed true ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "Names of the measures present in the h5 companion (one ``measures/<name>`` dataset per name). Example: ``[g_factor, PMAT24_A_CR, PMAT24_A_RTCR, CardSort_Unadj, ProcSpeed_Unadj]``." ; - sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path tvbo:measures ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path rdfs:label ], - [ sh:class tvbo:MeasureSpec ; - sh:description "Optional per-measure metadata (Cognitive Atlas IRIs, units, description). When present, each entry's ``name`` must match an entry in ``measures``." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 5 ; - sh:path tvbo:measure_specs ], - [ sh:datatype xsd:string ; sh:description "Unique identifier for this phenotype bundle." ; sh:maxCount 1 ; sh:minCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; sh:path dcterms:identifier ], - [ sh:class prov:Entity ; - sh:description "W3C PROV-O metadata for the source of these scores." ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 9 ; - sh:path tvbo:provenance ], - [ sh:datatype xsd:string ; - sh:description "Cohort label (e.g. 'HCPYA', 'PPMI')." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 8 ; - sh:path tvbo:cohort ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path dcterms:description ], [ sh:datatype xsd:string ; sh:description "Path to the h5 companion (relative to the yaml)." ; sh:maxCount 1 ; @@ -203,44 +171,105 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. sh:nodeKind sh:Literal ; sh:order 7 ; sh:path tvbo:data_file ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path rdfs:label ], + [ sh:class prov:Entity ; + sh:description "W3C PROV-O metadata for the source of these scores." ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 9 ; + sh:path tvbo:provenance ], [ sh:datatype xsd:string ; sh:description "Ordered list of subject IDs (e.g. HCP-YA 6-digit IDs). Each ``measures/<name>`` array in the h5 companion is indexed by this order." ; sh:minCount 1 ; sh:nodeKind sh:Literal ; sh:order 3 ; sh:path tvbo:subjects ], + [ sh:class tvbo:MeasureSpec ; + sh:description "Optional per-measure metadata (Cognitive Atlas IRIs, units, description). When present, each entry's ``name`` must match an entry in ``measures``." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 5 ; + sh:path tvbo:measure_specs ], [ sh:datatype xsd:string ; sh:defaultValue "cognitive"^^xsd:string ; sh:description "Coarse classification of the phenotype bundle, used for filtering in larger study libraries. Canonical values: ``cognitive`` (intelligence / memory / attention scores), ``clinical`` (UPDRS, MMSE, …), ``behavioral`` (raw task outputs), ``demographic``, ``physiological``, ``derived`` (composite scores like g-factor or brain-age). Free string β€” extend as needed." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 6 ; - sh:path tvbo:category ] ; + sh:path tvbo:category ], + [ sh:datatype xsd:string ; + sh:description "Names of the measures present in the h5 companion (one ``measures/<name>`` dataset per name). Example: ``[g_factor, PMAT24_A_CR, PMAT24_A_RTCR, CardSort_Unadj, ProcSpeed_Unadj]``." ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path tvbo:measures ], + [ sh:datatype xsd:string ; + sh:description "Cohort label (e.g. 'HCPYA', 'PPMI')." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 8 ; + sh:path tvbo:cohort ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path dcterms:description ] ; sh:targetClass tvbo:Phenotype . tvbo:SimulationStudy a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "BibTeX citation key; the join key into references.bib for full bibliographic detail. A study is identified by its key/citekey and described by its title β€” no ``name`` needed." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path rdfs:label ], + [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 8 ; - sh:path tvbo:citekey ], + sh:path dcterms:description ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 10 ; + sh:order 1 ; + sh:path prov:wasDerivedFrom ], + [ sh:class tvbo:Dynamics ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path tvbo:model ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 11 ; sh:path dcterms:title ], + [ sh:class tvbo:Simulation ; + sh:nodeKind sh:IRI ; + sh:order 7 ; + sh:path tvbo:simulation_experiments ], + [ sh:class tvbo:WorkflowConfig ; + sh:description "Study-wide default orchestration for rendering its experiments' sweeps into distributed workflows (Slurm/Snakemake/Nextflow). Individual experiments refine it via ``workflow_overrides``." ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 6 ; + sh:path tvbo:workflow ], [ sh:datatype xsd:string ; sh:nodeKind sh:Literal ; sh:order 3 ; sh:path dcterms:references ], [ sh:datatype xsd:string ; - sh:maxCount 1 ; + sh:description "Author display strings (full detail in references.bib)." ; sh:nodeKind sh:Literal ; - sh:order 7 ; - sh:path dcterms:description ], + sh:order 12 ; + sh:path tvbo:authors ], + [ sh:class tvbo:Sample ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 5 ; + sh:path tvbo:sample ], [ sh:datatype xsd:string ; sh:description "Deprecated alias of the inherited ``citekey``; retained for back-compatibility with existing tooling." ; sh:maxCount 1 ; @@ -251,161 +280,127 @@ tvbo:SimulationStudy a sh:NodeShape ; sh:description "Publication type (article, book, inproceedings, …)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 9 ; + sh:order 10 ; sh:path tvbo:type ], - [ sh:class tvbo:Simulation ; - sh:nodeKind sh:IRI ; - sh:order 6 ; - sh:path tvbo:simulation_experiments ], [ sh:datatype xsd:integer ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 12 ; + sh:order 13 ; sh:path dcterms:issued ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path prov:wasDerivedFrom ], - [ sh:class tvbo:Sample ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 5 ; - sh:path tvbo:sample ], - [ sh:datatype xsd:string ; - sh:description "Author display strings (full detail in references.bib)." ; - sh:nodeKind sh:Literal ; - sh:order 11 ; - sh:path tvbo:authors ], - [ sh:class tvbo:Dynamics ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 2 ; - sh:path tvbo:model ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 13 ; + sh:order 14 ; sh:path bibo:doi ], [ sh:datatype xsd:string ; + sh:description "BibTeX citation key; the join key into references.bib for full bibliographic detail. A study is identified by its key/citekey and described by its title β€” no ``name`` needed." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path rdfs:label ] ; + sh:order 9 ; + sh:path tvbo:citekey ] ; sh:targetClass tvbo:SimulationStudy . tvbo:SpatialField a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:class tvbo:Mesh ; - sh:maxCount 1 ; + sh:property [ sh:datatype xsd:string ; + sh:description "Scalar, vector, or tensor." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path tvbo:quantity_kind ], + [ sh:class tvbo:NDArray ; + sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 4 ; - sh:path tvbo:mesh ], + sh:order 5 ; + sh:path tvbo:values ], [ sh:class tvbo:Equation ; sh:description "Analytic initial condition for the field." ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 8 ; sh:path tvbo:initial_expression ], - [ sh:datatype xsd:float ; - sh:defaultValue "0.1"^^xsd:float ; - sh:description "Constant initial value for the field." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 7 ; - sh:path tvbo:initial_value ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path dcterms:description ], + sh:order 3 ; + sh:path tvbo:unit ], + [ sh:class tvbo:Mesh ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 4 ; + sh:path tvbo:mesh ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path rdfs:label ], - [ sh:datatype xsd:boolean ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path tvbo:time_dependent ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path tvbo:unit ], - [ sh:datatype xsd:string ; - sh:description "Scalar, vector, or tensor." ; + sh:order 1 ; + sh:path dcterms:description ], + [ sh:datatype xsd:float ; + sh:defaultValue "0.1"^^xsd:float ; + sh:description "Constant initial value for the field." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path tvbo:quantity_kind ], - [ sh:class tvbo:NDArray ; + sh:order 7 ; + sh:path tvbo:initial_value ], + [ sh:datatype xsd:boolean ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 5 ; - sh:path tvbo:values ] ; + sh:nodeKind sh:Literal ; + sh:order 6 ; + sh:path tvbo:time_dependent ] ; sh:targetClass tvbo:SpatialField . tvbo:Study a sh:NodeShape ; rdfs:comment "Bibliographic anchor for a source publication, identified by its citation key (``citekey``). The full bibliographic record lives in the project BibTeX library (references.bib) and is resolved by citekey; this node carries only identity, display fields and the knowledge-graph hooks (the concepts that cite it). Specialised by SimulationStudy, which adds the experiments derived from the source." ; sh:closed true ; - sh:ignoredProperties ( tvbo:simulation_experiments tvbo:sample dcterms:references tvbo:model rdf:type tvbo:key rdfs:label prov:wasDerivedFrom ) ; + sh:ignoredProperties ( prov:wasDerivedFrom rdf:type tvbo:simulation_experiments tvbo:workflow tvbo:model tvbo:key tvbo:sample rdfs:label dcterms:references ) ; sh:property [ sh:datatype xsd:string ; - sh:description "Publication type (article, book, inproceedings, …)." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path tvbo:type ], - [ sh:datatype xsd:string ; sh:description "Author display strings (full detail in references.bib)." ; sh:nodeKind sh:Literal ; sh:order 4 ; sh:path tvbo:authors ], - [ sh:datatype xsd:integer ; + [ sh:datatype xsd:string ; + sh:description "BibTeX citation key; the join key into references.bib for full bibliographic detail. A study is identified by its key/citekey and described by its title β€” no ``name`` needed." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path dcterms:issued ], + sh:order 1 ; + sh:path tvbo:citekey ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path dcterms:description ], + [ sh:datatype xsd:integer ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path dcterms:issued ], [ sh:datatype xsd:string ; - sh:description "BibTeX citation key; the join key into references.bib for full bibliographic detail. A study is identified by its key/citekey and described by its title β€” no ``name`` needed." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path tvbo:citekey ], + sh:order 3 ; + sh:path dcterms:title ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 6 ; sh:path bibo:doi ], [ sh:datatype xsd:string ; + sh:description "Publication type (article, book, inproceedings, …)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path dcterms:title ] ; + sh:order 2 ; + sh:path tvbo:type ] ; sh:targetClass tvbo:Study . tvbo:TemporalApplicableEquation a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path rdfs:label ], - [ sh:class <https://w3id.org/tvbo/software/SoftwareRequirement> ; - sh:description "Primary engine (must appear in environment.requirements; migration target replacing deprecated 'software')." ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 8 ; - sh:path tvbo:engine ], - [ sh:class tvbo:Parameter ; + sh:property [ sh:class tvbo:Parameter ; sh:nodeKind sh:IRI ; sh:order 0 ; sh:path tvbo:parameters ], @@ -414,42 +409,53 @@ tvbo:TemporalApplicableEquation a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 5 ; sh:path tvbo:lhs ], - [ sh:datatype xsd:boolean ; + [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path tvbo:time_dependent ], + sh:order 6 ; + sh:path tvbo:rhs ], + [ sh:datatype xsd:string ; + sh:description "Python code for the equation." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 9 ; + sh:path tvbo:pycode ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 3 ; sh:path skos:definition ], + [ sh:datatype xsd:boolean ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path tvbo:time_dependent ], [ sh:class tvbo:ConditionalBlock ; sh:description "Conditional logic for piecewise equations." ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 7 ; sh:path tvbo:conditionals ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path tvbo:rhs ], [ sh:datatype xsd:boolean ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 10 ; sh:path tvbo:latex ], + [ sh:class <https://w3id.org/tvbo/software/SoftwareRequirement> ; + sh:description "Primary engine (must appear in environment.requirements; migration target replacing deprecated 'software')." ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 8 ; + sh:path tvbo:engine ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 4 ; sh:path dcterms:description ], [ sh:datatype xsd:string ; - sh:description "Python code for the equation." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 9 ; - sh:path tvbo:pycode ] ; + sh:order 2 ; + sh:path rdfs:label ] ; sh:targetClass tvbo:TemporalApplicableEquation . <https://w3id.org/tvbo/dbs/DBSDataset> a sh:NodeShape ; @@ -457,41 +463,26 @@ tvbo:TemporalApplicableEquation a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "Human-readable dataset name." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path rdfs:label ], + sh:order 5 ; + sh:path dcterms:description ], [ sh:datatype xsd:string ; sh:description "Global condition labels applied across all subjects (e.g., ['rest', 'task-nback', 'task-motor'])." ; sh:nodeKind sh:Literal ; sh:order 7 ; sh:path <https://w3id.org/tvbo/study/conditions> ], [ sh:datatype xsd:string ; - sh:description "DOI or citation for this dataset." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 8 ; - sh:path dcterms:references ], - [ sh:class <https://w3id.org/tvbo/dbs/DBSSubject> ; - sh:description "Subjects in a dataset." ; - sh:nodeKind sh:IRI ; - sh:order 3 ; - sh:path <https://w3id.org/tvbo/study/subjects> ], - [ sh:datatype xsd:string ; + sh:description "Unique identifier for the dataset." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path dcterms:description ], + sh:order 2 ; + sh:path dcterms:identifier ], [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/atlas/Transformation> ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; sh:order 1 ; sh:path <https://w3id.org/tvbo/dbs/coordinate_space> ], - [ sh:class <https://w3id.org/tvbo/dbs/ClinicalScore> ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 0 ; - sh:path <https://w3id.org/tvbo/dbs/clinical_scores> ], [ sh:datatype xsd:string ; sh:description "Path to BIDS dataset root directory. When set, subject networks and empirical data paths are resolved relative to this root." ; sh:maxCount 1 ; @@ -499,11 +490,26 @@ tvbo:TemporalApplicableEquation a sh:NodeShape ; sh:order 6 ; sh:path <https://w3id.org/tvbo/study/bids_root> ], [ sh:datatype xsd:string ; - sh:description "Unique identifier for the dataset." ; + sh:description "DOI or citation for this dataset." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path dcterms:identifier ] ; + sh:order 8 ; + sh:path dcterms:references ], + [ sh:datatype xsd:string ; + sh:description "Human-readable dataset name." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path rdfs:label ], + [ sh:class <https://w3id.org/tvbo/dbs/ClinicalScore> ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 0 ; + sh:path <https://w3id.org/tvbo/dbs/clinical_scores> ], + [ sh:class <https://w3id.org/tvbo/dbs/DBSSubject> ; + sh:description "Subjects in a dataset." ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path <https://w3id.org/tvbo/study/subjects> ] ; sh:targetClass <https://w3id.org/tvbo/dbs/DBSDataset> . <http://uri.interlex.org/tgbugs/uris/readable/atlas/Atlas> a sh:NodeShape ; @@ -516,16 +522,24 @@ tvbo:TemporalApplicableEquation a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 2 ; sh:path skos:notation ], + [ sh:datatype xsd:string ; + sh:description "Globally unique identifier for the entity." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path schema1:name ], + [ sh:datatype xsd:string ; + sh:description "Linked type for the version of a brain atlas or coordinate space." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path dcterms:isVersionOf ], [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/atlas/Transformation> ; sh:description "Common coordinate space (e.g. FSLMNI152, MNI152NLin2009cAsym). Reference by name; the CommonCoordinateSpace must be defined in tvbo/database/coordinate_spaces/ (or future equivalent location)." ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; sh:order 0 ; sh:path <http://uri.interlex.org/tgbugs/uris/readable/coordinateSpace> ], - [ sh:datatype xsd:string ; - sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path dcterms:creator ], [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/parcellationTerminology> ; sh:description "Add the parcellation terminology version used for this brain atlas version." ; sh:maxCount 1 ; @@ -533,23 +547,15 @@ tvbo:TemporalApplicableEquation a sh:NodeShape ; sh:order 6 ; sh:path <http://uri.interlex.org/tgbugs/uris/readable/terminology> ], [ sh:datatype xsd:string ; - sh:description "Enter the version identifier of this brain atlas or coordinate space version." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path dcterms:hasVersion ], - [ sh:datatype xsd:string ; - sh:description "Globally unique identifier for the entity." ; - sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path schema1:name ], + sh:order 3 ; + sh:path dcterms:creator ], [ sh:datatype xsd:string ; - sh:description "Linked type for the version of a brain atlas or coordinate space." ; + sh:description "Enter the version identifier of this brain atlas or coordinate space version." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path dcterms:isVersionOf ] ; + sh:order 5 ; + sh:path dcterms:hasVersion ] ; sh:targetClass <http://uri.interlex.org/tgbugs/uris/readable/atlas/Atlas> . <http://uri.interlex.org/tgbugs/uris/readable/parcellationTerminology> a sh:NodeShape ; @@ -561,21 +567,21 @@ tvbo:TemporalApplicableEquation a sh:NodeShape ; sh:order 4 ; sh:path <http://uri.interlex.org/tgbugs/uris/readable/entities> ], [ sh:datatype xsd:string ; - sh:description "Add the location of the data file containing the parcellation terminology." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], + sh:order 0 ; + sh:path rdfs:label ], [ sh:datatype xsd:string ; sh:description "Enter the internationalized resource identifier (IRI) to the related ontological terms." ; sh:nodeKind sh:Literal ; sh:order 2 ; sh:path <http://uri.interlex.org/tgbugs/uris/readable/atlas/hasIlxId> ], [ sh:datatype xsd:string ; + sh:description "Add the location of the data file containing the parcellation terminology." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path rdfs:label ], + sh:order 1 ; + sh:path <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], [ sh:datatype xsd:string ; sh:description "Enter the version identifier of this brain atlas or coordinate space version." ; sh:maxCount 1 ; @@ -588,30 +594,30 @@ tvbo:AlgorithmInclude a sh:NodeShape ; rdfs:comment "Reference to an included algorithm with optional argument overrides. Allows combining algorithms with different hyperparameter values." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:class tvbo:Parameter ; - sh:description "Override hyperparameter values for the included algorithm. Maps parameter names to new values." ; - sh:nodeKind sh:IRI ; - sh:order 1 ; - sh:path tvbo:arguments ], - [ sh:defaultValue "combined" ; + sh:property [ sh:defaultValue "combined" ; sh:description "How the included algorithm composes with the outer one. 'combined' (default) merges its update rules into the outer loop (applied once per outer iteration); 'nested' runs it as a converging inner loop on each outer iteration before the outer update rules. Use 'nested' when the inner algorithm maintains an invariant the outer would perturb (e.g. FIC holding the working point while EIB retunes coupling)." ; sh:in ( "combined" "nested" ) ; sh:maxCount 1 ; sh:order 2 ; sh:path tvbo:mode ], - [ sh:class tvbo:Algorithm ; - sh:description "Reference to the algorithm to include" ; - sh:maxCount 1 ; - sh:minCount 1 ; + [ sh:class tvbo:Parameter ; + sh:description "Override hyperparameter values for the included algorithm. Maps parameter names to new values." ; sh:nodeKind sh:IRI ; - sh:order 0 ; - sh:path tvbo:algorithm ], + sh:order 1 ; + sh:path tvbo:arguments ], [ sh:datatype xsd:integer ; sh:description "For mode=nested only: number of inner-loop iterations to run per outer iteration. Defaults to the included algorithm's own n_iterations. A small value (e.g. 5-10) is usually enough to correct the drift introduced by one outer step." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 3 ; - sh:path tvbo:inner_iterations ] ; + sh:path tvbo:inner_iterations ], + [ sh:class tvbo:Algorithm ; + sh:description "Reference to the algorithm to include" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path tvbo:algorithm ] ; sh:targetClass tvbo:AlgorithmInclude . tvbo:AlgorithmStage a sh:NodeShape ; @@ -623,23 +629,23 @@ tvbo:AlgorithmStage a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path rdfs:label ], - [ sh:datatype xsd:integer ; - sh:description "Number of outer iterations to run in this stage." ; + [ sh:datatype xsd:string ; sh:maxCount 1 ; - sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path tvbo:n_iterations ], + sh:order 1 ; + sh:path dcterms:description ], [ sh:class tvbo:Parameter ; sh:description "Hyperparameter overrides for this stage (e.g. eta, window_size). Names not listed fall back to the algorithm's own hyperparameter defaults." ; sh:nodeKind sh:IRI ; sh:order 3 ; sh:path tvbo:arguments ], - [ sh:datatype xsd:string ; + [ sh:datatype xsd:integer ; + sh:description "Number of outer iterations to run in this stage." ; sh:maxCount 1 ; + sh:minCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path dcterms:description ] ; + sh:order 2 ; + sh:path tvbo:n_iterations ] ; sh:targetClass tvbo:AlgorithmStage . tvbo:Analysis a sh:NodeShape ; @@ -647,26 +653,26 @@ tvbo:Analysis a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; + sh:description "The analysis kind, e.g. 'gradient', 'finite_difference', 'lyapunov', 'bifurcation', 'identifiability', 'sensitivity'. Extensible β€” backends dispatch on it." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path tvbo:type ], + [ sh:datatype xsd:string ; sh:description "What is analyzed: typically an observation or loss name (e.g. 'loss' for a gradient). Omitted when the analysis acts on the whole solve (e.g. a Lyapunov spectrum)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; sh:path tvbo:target ], - [ sh:class tvbo:Parameter ; - sh:nodeKind sh:IRI ; - sh:order 0 ; - sh:path tvbo:parameters ], - [ sh:datatype xsd:string ; - sh:description "The analysis kind, e.g. 'gradient', 'finite_difference', 'lyapunov', 'bifurcation', 'identifiability', 'sensitivity'. Extensible β€” backends dispatch on it." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path tvbo:type ], [ sh:datatype xsd:string ; sh:description "Quantity/quantities the analysis is taken with respect to, e.g. a parameter 'c_sigmJR.G' for a gradient/sensitivity. Omitted for analyses that need no explicit differentiation target." ; sh:nodeKind sh:Literal ; sh:order 3 ; - sh:path tvbo:wrt ] ; + sh:path tvbo:wrt ], + [ sh:class tvbo:Parameter ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path tvbo:parameters ] ; sh:targetClass tvbo:Analysis . tvbo:BidsEntities a sh:NodeShape ; @@ -674,18 +680,6 @@ tvbo:BidsEntities a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "BIDS rec- entity (e.g., dTOR)" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path tvbo:reconstruction ], - [ sh:datatype xsd:string ; - sh:description "BIDS seg- entity (e.g., ordered, ranked, 17Networks)" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path tvbo:segmentation ], - [ sh:datatype xsd:string ; sh:description "BIDS tpl- entity (e.g., FSLMNI152, MNI152NLin2009cAsym)" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; @@ -698,17 +692,23 @@ tvbo:BidsEntities a sh:NodeShape ; sh:order 4 ; sh:path tvbo:scale ], [ sh:datatype xsd:string ; - sh:description "BIDS atlas- entity (e.g., Schaefer2018, HCPMMP1)" ; + sh:description "BIDS seg- entity (e.g., ordered, ranked, 17Networks)" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path tvbo:atlas ], + sh:order 3 ; + sh:path tvbo:segmentation ], [ sh:datatype xsd:string ; - sh:description "BIDS acq- entity (e.g., EEGstandard1005, MEGBrainstorm)" ; + sh:description "BIDS rec- entity (e.g., dTOR)" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path tvbo:acquisition ], + sh:order 2 ; + sh:path tvbo:reconstruction ], + [ sh:datatype xsd:string ; + sh:description "BIDS hemi- entity (L or R) for hemisphere-specific surface/volume data" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 7 ; + sh:path tvbo:hemi ], [ sh:datatype xsd:string ; sh:description "BIDS cohort- entity (e.g., HCPYA, PPMI85)" ; sh:maxCount 1 ; @@ -716,11 +716,17 @@ tvbo:BidsEntities a sh:NodeShape ; sh:order 1 ; sh:path tvbo:cohort ], [ sh:datatype xsd:string ; - sh:description "BIDS hemi- entity (L or R) for hemisphere-specific surface/volume data" ; + sh:description "BIDS acq- entity (e.g., EEGstandard1005, MEGBrainstorm)" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 7 ; - sh:path tvbo:hemi ] ; + sh:order 6 ; + sh:path tvbo:acquisition ], + [ sh:datatype xsd:string ; + sh:description "BIDS atlas- entity (e.g., Schaefer2018, HCPMMP1)" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path tvbo:atlas ] ; sh:targetClass tvbo:BidsEntities . tvbo:Binding a sh:NodeShape ; @@ -728,6 +734,17 @@ tvbo:Binding a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; + sh:description "Ordered parameter names passed to the callable." ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path tvbo:args ], + [ sh:datatype xsd:string ; + sh:description "Name of the constructor function in the library." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path tvbo:callable ], + [ sh:datatype xsd:string ; sh:description "Native library/module providing the callable." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; @@ -738,69 +755,58 @@ tvbo:Binding a sh:NodeShape ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; - sh:path schema1:name ], - [ sh:datatype xsd:string ; - sh:description "Name of the constructor function in the library." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path tvbo:callable ], - [ sh:datatype xsd:string ; - sh:description "Ordered parameter names passed to the callable." ; - sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path tvbo:args ] ; + sh:path schema1:name ] ; sh:targetClass tvbo:Binding . tvbo:BranchSwitch a sh:NodeShape ; rdfs:comment "Specification for switching from a detected bifurcation point to a new branch (periodic orbits from Hopf, fold continuation, etc.). Each BranchSwitch says: \"from which special point on the parent branch, continue what kind of object, with what settings.\" Override parent solver settings via the inline continuation field β€” only explicitly set attributes take effect; everything else is inherited from the parent Continuation." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:class tvbo:Continuation ; - sh:description "Override solver settings for this branch. Uses the same Continuation type β€” only explicitly set attributes override the parent's values." ; + sh:property [ sh:datatype xsd:boolean ; + sh:description "Continue branch in both directions." ; sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 5 ; - sh:path tvbo:continuation ], + sh:nodeKind sh:Literal ; + sh:order 7 ; + sh:path tvbo:bothside ], + [ sh:class tvbo:Discretization ; + sh:description "Discretization method for the branch solution. Required for periodic orbit branches (Hopf β†’ PO). Not needed for codim-2 branches (fold/Hopf continuation)." ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 6 ; + sh:path tvbo:discretization ], + [ sh:datatype xsd:string ; + sh:description "Which bifurcation point to start from. Syntax: - 'hopf:-1' = last Hopf (default) - 'hopf:all' = all Hopf points - 'hopf:1' = first Hopf - 'fold:2' = second fold - integer = specific special point index" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path tvbo:source_point ], [ sh:datatype xsd:string ; sh:description "Globally unique identifier for the entity." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path schema1:name ], + [ sh:class tvbo:Continuation ; + sh:description "Override solver settings for this branch. Uses the same Continuation type β€” only explicitly set attributes override the parent's values." ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 5 ; + sh:path tvbo:continuation ], [ sh:datatype xsd:float ; sh:description "Initial parameter offset from the bifurcation point." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 4 ; sh:path tvbo:delta_p ], - [ sh:datatype xsd:string ; - sh:description "Which bifurcation point to start from. Syntax: - 'hopf:-1' = last Hopf (default) - 'hopf:all' = all Hopf points - 'hopf:1' = first Hopf - 'fold:2' = second fold - integer = specific special point index" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path tvbo:source_point ], + [ sh:class tvbo:Parameter ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path tvbo:parameters ], [ sh:class tvbo:Option ; sh:description "Toolkit-specific string options for this branch (linear solver, etc.)." ; sh:nodeKind sh:IRI ; sh:order 8 ; sh:path tvbo:options ], - [ sh:class tvbo:Parameter ; - sh:nodeKind sh:IRI ; - sh:order 2 ; - sh:path tvbo:parameters ], - [ sh:class tvbo:Discretization ; - sh:description "Discretization method for the branch solution. Required for periodic orbit branches (Hopf β†’ PO). Not needed for codim-2 branches (fold/Hopf continuation)." ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 6 ; - sh:path tvbo:discretization ], - [ sh:datatype xsd:boolean ; - sh:description "Continue branch in both directions." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 7 ; - sh:path tvbo:bothside ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; @@ -827,29 +833,17 @@ tvbo:CouplingInput a sh:NodeShape ; rdfs:comment "Specification of a coupling input channel for multi-coupling dynamics" ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:integer ; - sh:defaultValue 1 ; - sh:description "Dimensionality of the coupling input (number of coupled values)" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path tvbo:dimension ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path dcterms:description ], - [ sh:datatype xsd:boolean ; - sh:description "Marks this as a LOCAL (surface/local-connectivity) coupling term rather than a global long-range coupling. Local terms are never wired to the connectome; they evaluate to 0 unless a local/surface connectivity is supplied (TVB's ``local_coupling``). Global coupling inputs (the default) are driven by ``Network.coupling``." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path tvbo:local ], - [ sh:datatype xsd:string ; + sh:property [ sh:datatype xsd:string ; sh:description "Named keys for multi-dimensional coupling. When dimension > 1, provides symbolic names for each index (e.g., keys: [lre, ffi] for dimension: 2). Used in equations as variable names." ; sh:nodeKind sh:Literal ; sh:order 4 ; sh:path tvbo:keys ], + [ sh:datatype xsd:string ; + sh:description "Globally unique identifier for the entity." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path schema1:name ], [ sh:datatype xsd:string ; sh:description "Name of the coupling function that feeds this input. When omitted, resolved automatically: (1) same name as a coupling function β†’ direct match, (2) single coupling input and single coupling function β†’ auto-mapped, (3) multiple of each β†’ positional order." ; sh:maxCount 1 ; @@ -857,40 +851,51 @@ tvbo:CouplingInput a sh:NodeShape ; sh:order 2 ; sh:path tvbo:source ], [ sh:datatype xsd:string ; - sh:description "Globally unique identifier for the entity." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path schema1:name ] ; + sh:order 1 ; + sh:path dcterms:description ], + [ sh:datatype xsd:integer ; + sh:defaultValue 1 ; + sh:description "Dimensionality of the coupling input (number of coupled values)" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path tvbo:dimension ], + [ sh:datatype xsd:boolean ; + sh:description "Marks this as a LOCAL (surface/local-connectivity) coupling term rather than a global long-range coupling. Local terms are never wired to the connectome; they evaluate to 0 unless a local/surface connectivity is supplied (TVB's ``local_coupling``). Global coupling inputs (the default) are driven by ``Network.coupling``." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path tvbo:local ] ; sh:targetClass tvbo:CouplingInput . tvbo:DataSource a sh:NodeShape ; rdfs:comment "Specification for loading external/empirical data." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "Key/variable name within the file (for .mat, .npz, etc.)" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path tvbo:key ], - [ sh:class tvbo:Callable ; - sh:description "Callable that loads the data (e.g., load_functional_connectivity)" ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 4 ; - sh:path tvbo:loader ], - [ sh:class tvbo:Function ; + sh:property [ sh:class tvbo:Function ; sh:description "Optional preprocessing to apply after loading" ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; sh:order 7 ; sh:path tvbo:preprocessing ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path rdfs:label ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; sh:path dcterms:description ], + [ sh:class tvbo:Callable ; + sh:description "Callable that loads the data (e.g., load_functional_connectivity)" ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path tvbo:loader ], [ sh:datatype xsd:string ; sh:description "File path or URI to the data" ; sh:maxCount 1 ; @@ -898,16 +903,17 @@ tvbo:DataSource a sh:NodeShape ; sh:order 3 ; sh:path tvbo:path ], [ sh:datatype xsd:string ; - sh:description "Globally unique identifier for the entity." ; + sh:description "Key/variable name within the file (for .mat, .npz, etc.)" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path schema1:name ], + sh:order 6 ; + sh:path tvbo:key ], [ sh:datatype xsd:string ; + sh:description "Globally unique identifier for the entity." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path rdfs:label ], + sh:order 0 ; + sh:path schema1:name ], [ sh:datatype xsd:string ; sh:description "Data format: 'npy', 'mat', 'csv', 'nifti', etc." ; sh:maxCount 1 ; @@ -924,81 +930,96 @@ tvbo:DifferentialOperator a sh:NodeShape ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 2 ; sh:path tvbo:Equation ], - [ sh:datatype xsd:string ; + [ sh:class tvbo:Parameter ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path skos:definition ], - [ sh:in ( "gradient" "divergence" "laplacian" "curl" ) ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path tvbo:coefficient ], + [ sh:class tvbo:Parameter ; + sh:description "Optional anisotropic tensor (e.g., diffusion)." ; sh:maxCount 1 ; - sh:order 3 ; - sh:path tvbo:operator_type ], + sh:nodeKind sh:IRI ; + sh:order 5 ; + sh:path tvbo:tensor_coefficient ], [ sh:class tvbo:Equation ; sh:description "Symbolic form (e.g., '-div(D * grad(u))')." ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 6 ; sh:path tvbo:expression ], - [ sh:class tvbo:Parameter ; + [ sh:datatype xsd:string ; sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 4 ; - sh:path tvbo:coefficient ], + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path skos:definition ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path rdfs:label ], - [ sh:class tvbo:Parameter ; - sh:description "Optional anisotropic tensor (e.g., diffusion)." ; + [ sh:in ( "gradient" "divergence" "laplacian" "curl" ) ; sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 5 ; - sh:path tvbo:tensor_coefficient ] ; + sh:order 3 ; + sh:path tvbo:operator_type ] ; sh:targetClass tvbo:DifferentialOperator . tvbo:Differentiation a sh:NodeShape ; rdfs:comment "Backend-neutral configuration for how gradients are propagated through the temporal integration. Expressed in physical/semantic terms; each backend maps it to its own mechanism (JAX solver grad_horizon / block_size, Julia adjoint sensitivity, ...). Backends without autodiff (e.g. MATLAB) emit a comment noting differentiation is unsupported and proceed with the plain forward integration -- they do not raise." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:float ; - sh:description "Gradient-checkpointing interval in milliseconds (backward-pass memory/time trade-off). Omit for no checkpointing." ; + sh:property [ sh:datatype xsd:string ; + sh:defaultValue "reverse"^^xsd:string ; + sh:description "Autodiff direction: 'reverse' (default) or 'forward'." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path tvbo:checkpoint_interval ], + sh:order 2 ; + sh:path tvbo:mode ], [ sh:datatype xsd:float ; sh:description "Truncated-BPTT window in milliseconds of simulated time: gradients flow back at most this far. Omit for full BPTT." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path tvbo:truncation_window ], - [ sh:datatype xsd:string ; - sh:defaultValue "reverse"^^xsd:string ; - sh:description "Autodiff direction: 'reverse' (default) or 'forward'." ; + [ sh:datatype xsd:float ; + sh:description "Gradient-checkpointing interval in milliseconds (backward-pass memory/time trade-off). Omit for no checkpointing." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path tvbo:mode ] ; + sh:order 1 ; + sh:path tvbo:checkpoint_interval ] ; sh:targetClass tvbo:Differentiation . tvbo:Discretization a sh:NodeShape ; rdfs:comment "Discretization method for boundary value problems in continuation (periodic orbits, connecting orbits, quasi-periodic tori). Specifies the method; method-specific numerics go in parameters." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:defaultValue "collocation" ; - sh:description "Discretization method." ; - sh:in ( "collocation" "trapezoid" "shooting" "poincare" ) ; - sh:maxCount 1 ; - sh:order 1 ; - sh:path tvbo:method ], + sh:property [ sh:class tvbo:Option ; + sh:description "Toolkit-specific string options (jacobian type, etc.)." ; + sh:nodeKind sh:IRI ; + sh:order 7 ; + sh:path tvbo:options ], [ sh:datatype xsd:integer ; - sh:defaultValue 50 ; - sh:description "Number of mesh intervals (time slices) for collocation or trapezoid methods. Collocation: N in PeriodicOrbitOCollProblem(N, m). Trapezoid: M in PeriodicOrbitTrapProblem(M=...)." ; + sh:defaultValue 4 ; + sh:description "Polynomial degree per mesh interval for collocation. The m in PeriodicOrbitOCollProblem(N, m)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path tvbo:mesh_intervals ], + sh:order 5 ; + sh:path tvbo:degree ], + [ sh:class tvbo:Solver ; + sh:description "ODE solver for flow-based methods (shooting, poincarΓ©). Specifies algorithm (e.g. Vern9, Rodas5) and tolerances. Not needed for collocation or trapezoid." ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 2 ; + sh:path tvbo:ode_solver ], + [ sh:class tvbo:Parameter ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path tvbo:parameters ], + [ sh:defaultValue "collocation" ; + sh:description "Discretization method." ; + sh:in ( "collocation" "trapezoid" "shooting" "poincare" ) ; + sh:maxCount 1 ; + sh:order 1 ; + sh:path tvbo:method ], [ sh:datatype xsd:integer ; sh:defaultValue 3 ; sh:description "Number of shooting sections for shooting or PoincarΓ© methods." ; @@ -1006,92 +1027,160 @@ tvbo:Discretization a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 6 ; sh:path tvbo:n_sections ], - [ sh:class tvbo:Option ; - sh:description "Toolkit-specific string options (jacobian type, etc.)." ; - sh:nodeKind sh:IRI ; - sh:order 7 ; - sh:path tvbo:options ], - [ sh:class tvbo:Solver ; - sh:description "ODE solver for flow-based methods (shooting, poincarΓ©). Specifies algorithm (e.g. Vern9, Rodas5) and tolerances. Not needed for collocation or trapezoid." ; + [ sh:datatype xsd:integer ; + sh:defaultValue 50 ; + sh:description "Number of mesh intervals (time slices) for collocation or trapezoid methods. Collocation: N in PeriodicOrbitOCollProblem(N, m). Trapezoid: M in PeriodicOrbitTrapProblem(M=...)." ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 2 ; - sh:path tvbo:ode_solver ], + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path tvbo:mesh_intervals ], [ sh:class tvbo:Solver ; sh:description "Linear solver for the Newton bordered system. E.g. COPBLS (collocation), MatrixBLS (shooting/poincarΓ©)." ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 3 ; - sh:path tvbo:linear_solver ], - [ sh:class tvbo:Parameter ; - sh:nodeKind sh:IRI ; + sh:path tvbo:linear_solver ] ; + sh:targetClass tvbo:Discretization . + +tvbo:DistributionConfig a sh:NodeShape ; + rdfs:comment "Policy for mapping a parameter sweep's exploration axes onto the two parallelism tiers when rendering a distributed workflow. Vectorized axes are packed into a single batched backend call (e.g. vmap/pmap); workflow axes are fanned out into independent scheduler tasks, one per value combination. Backend-independent: the emitter validates that a requested vectorized axis is one the chosen backend can actually batch." ; + sh:closed true ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:datatype xsd:string ; + sh:description "Axis names or parameters to fan out into independent scheduler tasks (one workflow cell per value combination)." ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path tvbo:workflow ], + [ sh:description "Default tier for axes not named in ``vectorize`` or ``workflow``. Unset means ``auto``." ; + sh:in ( "auto" "vectorize" "workflow" ) ; + sh:maxCount 1 ; sh:order 0 ; - sh:path tvbo:parameters ], + sh:path tvbo:by ], + [ sh:datatype xsd:string ; + sh:description "Axis names or parameters to pack into a single vectorized backend call. It is an error to name an axis the backend cannot batch." ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path tvbo:vectorize ], [ sh:datatype xsd:integer ; - sh:defaultValue 4 ; - sh:description "Polynomial degree per mesh interval for collocation. The m in PeriodicOrbitOCollProblem(N, m)." ; + sh:description "Sharding granularity. For a fully vectorized sweep, the number of scheduler shards to split the batched cells across (each task runs ``1/chunk`` of the grid). For a fanned sweep, the number of workflow cells packed into one task. Unset means one shard." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path tvbo:degree ] ; - sh:targetClass tvbo:Discretization . + sh:order 3 ; + sh:path tvbo:chunk ] ; + sh:targetClass tvbo:DistributionConfig . + +tvbo:EnvironmentVariable a sh:NodeShape ; + rdfs:comment "One environment variable assignment exported before executing the workflow task command. Use this for reproducible runtime knobs such as XLA/OMP settings in emitted workflow artefacts." ; + sh:closed true ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:datatype xsd:string ; + sh:description "Value exported for this variable." ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path tvbo:value ], + [ sh:datatype xsd:string ; + sh:description "Environment variable name (e.g. XLA_FLAGS)." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path tvbo:name ] ; + sh:targetClass tvbo:EnvironmentVariable . tvbo:ExplorationAxis a sh:NodeShape ; rdfs:comment "One axis of a parameter exploration grid. Points to an existing Parameter (by dotted reference, e.g. \"ReducedWongWang.w\" or \"FastLinearCoupling.G\") and supplies the sweep specification (domain, explored_values, or per-element overrides). No new Parameter is created." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "Optional axis unit (defaults to the referenced Parameter's unit)." ; + sh:description "Dotted reference to the Parameter being swept; also the key of the enclosing `Exploration.space` collection. Format: \"<scope>.<param_name>\" where <scope> is either a Dynamics class name (e.g. \"ReducedWongWang\") or a coupling key (e.g. \"FastLinearCoupling\"). Resolved against the enclosing experiment at runtime." ; sh:maxCount 1 ; + sh:minCount 1 ; sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path tvbo:parameter ], + [ sh:class tvbo:Range ; + sh:description "Sweep range for this axis (lo, hi, n, step, log_scale)." ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 3 ; + sh:path tvbo:domain ], + [ sh:class tvbo:FunctionCall ; + sh:description "Callable that generates this axis's swept values, as an alternative to domain / explored_values. Use when the points cannot be written as a static list because each is an array or depends on other results β€” e.g. per-count control-gain vectors g whose entries are chosen from a runtime-computed solitary-node ordering. The callable returns the stacked sweep values (leading axis = sweep points); its `arguments` may reference other observations by name. The value-supplying analogue of graph_generator.builder, keeping computed sweeps declarative rather than requiring a Python driver." ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; sh:order 7 ; - sh:path tvbo:unit ], + sh:path tvbo:builder ], [ sh:datatype xsd:float ; sh:description "Explicit list of values to sweep (overrides domain)." ; sh:nodeKind sh:Literal ; sh:order 5 ; sh:path tvbo:explored_values ], [ sh:datatype xsd:string ; + sh:description "Optional axis unit (defaults to the referenced Parameter's unit)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path rdfs:label ], + sh:order 8 ; + sh:path tvbo:unit ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path dcterms:description ], [ sh:class tvbo:Range ; sh:description "Per-element sweep overrides for heterogeneous parameters (e.g. shape \"(n_nodes,)\"). When set, element_domains[i] replaces the shared domain for element i." ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 6 ; sh:path tvbo:element_domains ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path rdfs:label ], [ sh:datatype xsd:string ; sh:defaultValue "none"^^xsd:string ; sh:description "Optional decode applied to this axis's value before it is bound to the referenced Parameter: 'none' (default) or 'log10' (the parameter is set to 10 ** value, so an adaptive strategy searches the raw bounds in log10 units β€” e.g. sigma searched over domain {lo: -2.0, hi: -0.5}). Distinct from a logarithmic grid *spacing*; this is an evaluation-time decode. Forward-compatible with the harmonised `Axis` (see dev/tvboptim_harmonization.md)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 4 ; - sh:path tvbo:transform ], + sh:path tvbo:transform ] ; + sh:targetClass tvbo:ExplorationAxis . + +tvbo:FieldStateVariable a sh:NodeShape ; + sh:closed true ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:class tvbo:Distribution ; + sh:description "Distribution for sampling initial conditions per node. If present, initial_value is used as fallback/mean." ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 20 ; + sh:path tvbo:distribution ], + [ sh:datatype xsd:boolean ; + sh:description "Whether this state variable is transmitted to connected nodes through the coupling function. In TVB terms, this determines the cvar indices (state variables extracted from history and fed into the coupling function). The coupling function may override this via its incoming_states attribute." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 13 ; + sh:path tvbo:coupling_variable ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path dcterms:description ], - [ sh:class tvbo:Range ; - sh:description "Sweep range for this axis (lo, hi, n, step, log_scale)." ; + sh:order 6 ; + sh:path skos:definition ], + [ sh:description "External ontology IRIs (typically GO, ChEBI, UBERON, CL, MeSH) that this entity is a surrogate / abstraction / model of. Realized as the `tvbo:surrogate_of` object property, carried inline with the YAML data instance. Multiple IRIs allowed: a single parameter may abstract several biological processes (e.g. a synaptic conductance grounding both GO:0060079 (excitatory PSP) and GO:0007268 (chemical synaptic transmission))." ; + sh:nodeKind sh:IRI ; + sh:order 11 ; + sh:path tvbo:surrogate_of ], + [ sh:datatype xsd:boolean ; + sh:defaultValue true ; sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 12 ; + sh:path tvbo:variable_of_interest ], + [ sh:class tvbo:BoundaryCondition ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 3 ; - sh:path tvbo:domain ], + sh:path tvbo:boundary_conditions ], [ sh:datatype xsd:string ; - sh:description "Dotted reference to the Parameter being swept; also the key of the enclosing `Exploration.space` collection. Format: \"<scope>.<param_name>\" where <scope> is either a Dynamics class name (e.g. \"ReducedWongWang\") or a coupling key (e.g. \"FastLinearCoupling\"). Resolved against the enclosing experiment at runtime." ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path tvbo:parameter ] ; - sh:targetClass tvbo:ExplorationAxis . - -tvbo:FieldStateVariable a sh:NodeShape ; - sh:closed true ; - sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; sh:defaultValue "differential"^^xsd:string ; sh:description "Type of equation: 'differential' (default) means dx/dt = rhs, 'algebraic' means 0 = rhs or x ~ rhs (DAE constraint). Algebraic equations are used by ModelingToolkit.jl backend." ; sh:maxCount 1 ; @@ -1099,64 +1188,61 @@ tvbo:FieldStateVariable a sh:NodeShape ; sh:order 14 ; sh:path tvbo:equation_type ], [ sh:description "Physical unit of measurement. Values are drawn from the QUDT ontology (http://qudt.org/vocab/unit/) with UO cross-references where available." ; - sh:in ( qudt:SEC qudt:MilliSEC qudt:MicroSEC qudt:PER-SEC qudt:PER-MilliSEC qudt:HZ qudt:KiloHZ qudt:V qudt:MilliV qudt:PER-MilliV qudt:MilliV-PER-MilliSEC qudt:MilliV-PER-SEC qudt:A qudt:NanoA qudt:PicoA "uA_per_cm2" qudt:PicoFARAD qudt:NanoFARAD "uF_per_cm2" qudt:NanoS qudt:MicroS qudt:PicoS "S_per_cm2" "mS_per_cm2" "S_per_m2" "nS_per_mV" qudt:PER-NanoC qudt:PER-PicoC qudt:MOL-PER-M3 "mol_per_cm3" qudt:MilliMOL-PER-M3 "mol_per_m_per_A_per_s" qudt:MicroM3 qudt:M qudt:MilliM qudt:CentiM qudt:M-PER-SEC qudt:MilliM-PER-MilliSEC "Hz_per_nA" qudt:S-PER-M qudt:H-PER-M qudt:OHM "Mohm" "kohm_cm" qudt:DEG_C "rad_per_ms" qudt:UNITLESS qudt:PERCENT "arbitrary_unit" qudt:KiloGM "kg_per_s" qudt:M-PER-SEC2 qudt:N-PER-M qudt:RAD qudt:RAD-PER-SEC qudt:SEC2 "per_unit" ) ; + sh:in ( qudt:SEC qudt:MilliSEC qudt:MicroSEC qudt:PER-SEC qudt:PER-MilliSEC qudt:HZ qudt:KiloHZ qudt:V qudt:MilliV qudt:PER-MilliV qudt:MilliV-PER-MilliSEC qudt:MilliV-PER-SEC qudt:A qudt:NanoA qudt:PicoA "uA_per_cm2" qudt:PicoFARAD qudt:NanoFARAD "uF_per_cm2" qudt:NanoS qudt:MicroS qudt:PicoS "S_per_cm2" "mS_per_cm2" "S_per_m2" "nS_per_mV" qudt:PER-NanoC qudt:PER-PicoC qudt:MOL-PER-M3 "mol_per_cm3" qudt:MilliMOL-PER-M3 "mol_per_m_per_A_per_s" qudt:MicroM3 qudt:M qudt:MilliM qudt:CentiM qudt:M-PER-SEC qudt:MilliM-PER-MilliSEC "Hz_per_nA" qudt:S-PER-M qudt:H-PER-M qudt:OHM "Mohm" "kohm_cm" qudt:DEG_C "rad_per_ms" qudt:UNITLESS qudt:PERCENT "arbitrary_unit" qudt:KiloGM "kg_per_s" qudt:KiloGM-M2 qudt:M-PER-SEC2 qudt:N-PER-M qudt:RAD qudt:RAD-PER-SEC qudt:SEC2 qudt:W qudt:MegaW "per_unit" ) ; sh:maxCount 1 ; sh:order 9 ; sh:path qudt:unit ], + [ sh:class tvbo:Noise ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 16 ; + sh:path tvbo:noise ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path rdfs:label ], - [ sh:class tvbo:Mesh ; + [ sh:datatype xsd:boolean ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 2 ; - sh:path tvbo:mesh ], + sh:nodeKind sh:Literal ; + sh:order 17 ; + sh:path tvbo:stimulation_variable ], + [ sh:datatype xsd:string ; + sh:description "Globally unique identifier for the entity." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path schema1:name ], [ sh:class tvbo:TimeSeries ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 21 ; sh:path tvbo:history ], - [ sh:datatype xsd:float ; - sh:defaultValue "0.1"^^xsd:float ; + [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 18 ; - sh:path tvbo:initial_value ], + sh:order 5 ; + sh:path tvbo:symbol ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; sh:path dcterms:description ], + [ sh:class tvbo:Range ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 7 ; + sh:path tvbo:domain ], [ sh:class tvbo:Equation ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 8 ; sh:path tvbo:Equation ], - [ sh:datatype xsd:integer ; - sh:defaultValue 1 ; - sh:description "Order of the time derivative on the LHS. Default 1 means dx/dt = rhs (first-order ODE). Order 2 means dΒ²x/dtΒ² = rhs (second-order ODE), etc. Higher-order ODEs are automatically lowered to coupled first-order systems by backends like ModelingToolkit.jl via mtkcompile." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 15 ; - sh:path tvbo:equation_order ], - [ sh:class tvbo:Noise ; + [ sh:class tvbo:Mesh ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 16 ; - sh:path tvbo:noise ], - [ sh:datatype xsd:string ; - sh:description "Globally unique identifier for the entity." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path schema1:name ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path skos:definition ], + sh:order 2 ; + sh:path tvbo:mesh ], [ sh:datatype xsd:boolean ; sh:defaultValue true ; sh:description "Whether to include this element in simulation output files. Applicable to state variables (default true), derived variables (default false), and network nodes (default true). Set false to suppress recording." ; @@ -1164,53 +1250,25 @@ tvbo:FieldStateVariable a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 10 ; sh:path tvbo:record ], - [ sh:class tvbo:Distribution ; - sh:description "Distribution for sampling initial conditions per node. If present, initial_value is used as fallback/mean." ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 20 ; - sh:path tvbo:distribution ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path tvbo:symbol ], - [ sh:class tvbo:BoundaryCondition ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 3 ; - sh:path tvbo:boundary_conditions ], - [ sh:class tvbo:Range ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 7 ; - sh:path tvbo:domain ], - [ sh:datatype xsd:boolean ; - sh:description "Whether this state variable is transmitted to connected nodes through the coupling function. In TVB terms, this determines the cvar indices (state variables extracted from history and fed into the coupling function). The coupling function may override this via its incoming_states attribute." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 13 ; - sh:path tvbo:coupling_variable ], - [ sh:datatype xsd:boolean ; + [ sh:datatype xsd:float ; + sh:description "Initial value for the first time derivative, used when equation_order > 1. For a second-order ODE dΒ²x/dtΒ² = f, this sets dx/dt(0). Required by ModelingToolkit.jl to fully specify higher-order initial value problems." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 17 ; - sh:path tvbo:stimulation_variable ], - [ sh:datatype xsd:boolean ; - sh:defaultValue true ; + sh:order 19 ; + sh:path tvbo:derivative_initial_value ], + [ sh:datatype xsd:float ; + sh:defaultValue "0.1"^^xsd:float ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 12 ; - sh:path tvbo:variable_of_interest ], - [ sh:description "External ontology IRIs (typically GO, ChEBI, UBERON, CL, MeSH) that this entity is a surrogate / abstraction / model of. Realized as the `tvbo:surrogate_of` object property, carried inline with the YAML data instance. Multiple IRIs allowed: a single parameter may abstract several biological processes (e.g. a synaptic conductance grounding both GO:0060079 (excitatory PSP) and GO:0007268 (chemical synaptic transmission))." ; - sh:nodeKind sh:IRI ; - sh:order 11 ; - sh:path tvbo:surrogate_of ], - [ sh:datatype xsd:float ; - sh:description "Initial value for the first time derivative, used when equation_order > 1. For a second-order ODE dΒ²x/dtΒ² = f, this sets dx/dt(0). Required by ModelingToolkit.jl to fully specify higher-order initial value problems." ; + sh:order 18 ; + sh:path tvbo:initial_value ], + [ sh:datatype xsd:integer ; + sh:defaultValue 1 ; + sh:description "Order of the time derivative on the LHS. Default 1 means dx/dt = rhs (first-order ODE). Order 2 means dΒ²x/dtΒ² = rhs (second-order ODE), etc. Higher-order ODEs are automatically lowered to coupled first-order systems by backends like ModelingToolkit.jl via mtkcompile." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 19 ; - sh:path tvbo:derivative_initial_value ] ; + sh:order 15 ; + sh:path tvbo:equation_order ] ; sh:targetClass tvbo:FieldStateVariable . tvbo:File a sh:NodeShape ; @@ -1219,8 +1277,14 @@ tvbo:File a sh:NodeShape ; sh:property [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path tvbo:path ], + sh:order 1 ; + sh:path dcterms:description ], + [ sh:datatype xsd:string ; + sh:description "Globally unique identifier for the entity." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path schema1:name ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; @@ -1234,14 +1298,8 @@ tvbo:File a sh:NodeShape ; [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path dcterms:description ], - [ sh:datatype xsd:string ; - sh:description "Globally unique identifier for the entity." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path schema1:name ] ; + sh:order 3 ; + sh:path tvbo:path ] ; sh:targetClass tvbo:File . tvbo:GraphGenerator a sh:NodeShape ; @@ -1249,33 +1307,7 @@ tvbo:GraphGenerator a sh:NodeShape ; """ ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:class tvbo:Procedure ; - sh:description """Optional symbolic procedure for derived generators (e.g. null-model shuffles): ordered steps and named outputs, each carrying an Equation. -""" ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 8 ; - sh:path tvbo:procedure ], - [ sh:datatype xsd:integer ; - sh:description "Random seed for reproducible graph generation." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path tvbo:seed ], - [ sh:class tvbo:Binding ; - sh:description """Per-backend construction bindings, keyed by backend id (e.g. python, julia, networkx). Each names the native library, callable and the ordered parameter names to pass. -""" ; - sh:nodeKind sh:IRI ; - sh:order 7 ; - sh:path tvbo:bindings ], - [ sh:class tvbo:Callable ; - sh:description """Optional Python callable that builds the network at YAML load time. When set, ``Network._resolve`` imports ``<module>.<name>`` and invokes it with the ``parameters`` block as keyword arguments. The callable must return either a ``Network`` instance or a tuple ``(weights, lengths, node_params)``. Use the existing ``Callable`` slots (``name`` is the function name, ``module`` is its dotted module path). Reuses the same idiom as TVB monitor class references; no free ``module:function`` strings. -""" ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 9 ; - sh:path tvbo:builder ], - [ sh:datatype xsd:string ; + sh:property [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; @@ -1293,23 +1325,49 @@ tvbo:GraphGenerator a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 3 ; sh:path tvbo:type ], + [ sh:datatype xsd:integer ; + sh:description "Random seed for reproducible graph generation." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path tvbo:seed ], [ sh:description "Optional stable IRI (or compact URI) for this entity in an external ontology or knowledge base. Used to load metadata from an external source; not required when the entity is fully self-contained (equations, parameters, etc. defined in the file itself)." ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; sh:order 2 ; sh:path dcterms:identifier ], - [ sh:datatype xsd:string ; - sh:description "Globally unique identifier for the entity." ; + [ sh:class tvbo:Procedure ; + sh:description """Optional symbolic procedure for derived generators (e.g. null-model shuffles): ordered steps and named outputs, each carrying an Equation. +""" ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path schema1:name ], + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 8 ; + sh:path tvbo:procedure ], + [ sh:class tvbo:Binding ; + sh:description """Per-backend construction bindings, keyed by backend id (e.g. python, julia, networkx). Each names the native library, callable and the ordered parameter names to pass. +""" ; + sh:nodeKind sh:IRI ; + sh:order 7 ; + sh:path tvbo:bindings ], + [ sh:class tvbo:Callable ; + sh:description """Optional Python callable that builds the network at YAML load time. When set, ``Network._resolve`` imports ``<module>.<name>`` and invokes it with the ``parameters`` block as keyword arguments. The callable must return either a ``Network`` instance or a tuple ``(weights, lengths, node_params)``. Use the existing ``Callable`` slots (``name`` is the function name, ``module`` is its dotted module path). Reuses the same idiom as TVB monitor class references; no free ``module:function`` strings. +""" ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 9 ; + sh:path tvbo:builder ], [ sh:datatype xsd:boolean ; sh:description "Whether to generate a directed graph." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 5 ; - sh:path tvbo:directed ] ; + sh:path tvbo:directed ], + [ sh:datatype xsd:string ; + sh:description "Globally unique identifier for the entity." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path schema1:name ] ; sh:targetClass tvbo:GraphGenerator . tvbo:Inference a sh:NodeShape ; @@ -1321,18 +1379,31 @@ tvbo:Inference a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 1 ; sh:path rdfs:label ], - [ sh:class tvbo:Integrator ; - sh:description "Forward-model integration settings (overrides experiment defaults)." ; + [ sh:datatype xsd:integer ; + sh:defaultValue 1 ; + sh:description "Independent MCMC chains." ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 11 ; - sh:path tvbo:integration ], + sh:nodeKind sh:Literal ; + sh:order 8 ; + sh:path tvbo:num_chains ], [ sh:class tvbo:ExecutionConfig ; sh:description "Per-inference execution config (overrides experiment defaults)." ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 10 ; sh:path tvbo:execution ], + [ sh:class tvbo:Integrator ; + sh:description "Forward-model integration settings (overrides experiment defaults)." ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 11 ; + sh:path tvbo:integration ], + [ sh:datatype xsd:integer ; + sh:description "PRNG seed for reproducible sampling." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 9 ; + sh:path tvbo:seed ], [ sh:datatype xsd:string ; sh:defaultValue "nuts"^^xsd:string ; sh:description "MCMC sampler ('nuts'). Each backend maps its own way." ; @@ -1340,31 +1411,17 @@ tvbo:Inference a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 5 ; sh:path tvbo:sampler ], - [ sh:class tvbo:Algorithm ; - sh:description "Optional algorithm whose result state seeds the inference." ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 12 ; - sh:path tvbo:depends_on ], [ sh:datatype xsd:string ; sh:description "Globally unique identifier for the entity." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path schema1:name ], - [ sh:datatype xsd:integer ; - sh:description "PRNG seed for reproducible sampling." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 9 ; - sh:path tvbo:seed ], - [ sh:datatype xsd:integer ; - sh:defaultValue 1 ; - sh:description "Independent MCMC chains." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 8 ; - sh:path tvbo:num_chains ], + [ sh:class tvbo:Prior ; + sh:description "Priors over the inferred parameters, keyed by each parameter's dotted name (e.g. \"Generic2dOscillator.eta\" or \"PulseInput.amplitude\"). The KEYS are the inferred parameters β€” there is no separate free-parameter list." ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path tvbo:priors ], [ sh:class tvbo:Likelihood ; sh:description "Observation model p(data | sim(theta))." ; sh:maxCount 1 ; @@ -1372,11 +1429,6 @@ tvbo:Inference a sh:NodeShape ; sh:nodeKind sh:IRI ; sh:order 4 ; sh:path tvbo:likelihood ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path dcterms:description ], [ sh:datatype xsd:integer ; sh:defaultValue 1000 ; sh:description "Warmup/adaptation steps before sampling." ; @@ -1384,18 +1436,24 @@ tvbo:Inference a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 7 ; sh:path tvbo:num_warmup ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path dcterms:description ], + [ sh:class tvbo:Algorithm ; + sh:description "Optional algorithm whose result state seeds the inference." ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 12 ; + sh:path tvbo:depends_on ], [ sh:datatype xsd:integer ; sh:defaultValue 1000 ; sh:description "Posterior samples to draw." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 6 ; - sh:path tvbo:num_samples ], - [ sh:class tvbo:Prior ; - sh:description "Priors over the inferred parameters, keyed by each parameter's dotted name (e.g. \"Generic2dOscillator.eta\" or \"PulseInput.amplitude\"). The KEYS are the inferred parameters β€” there is no separate free-parameter list." ; - sh:nodeKind sh:IRI ; - sh:order 3 ; - sh:path tvbo:priors ] ; + sh:path tvbo:num_samples ] ; sh:targetClass tvbo:Inference . tvbo:InitialState a sh:NodeShape ; @@ -1403,6 +1461,13 @@ tvbo:InitialState a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:float ; + sh:defaultValue "1e-10"^^xsd:float ; + sh:description "Relative tolerance for ODE integration." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path tvbo:rel_tol ], + [ sh:datatype xsd:float ; sh:defaultValue "1e-10"^^xsd:float ; sh:description "Absolute tolerance for ODE integration." ; sh:maxCount 1 ; @@ -1422,19 +1487,12 @@ tvbo:InitialState a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 1 ; sh:path tvbo:duration ], - [ sh:datatype xsd:float ; - sh:defaultValue "1e-10"^^xsd:float ; - sh:description "Relative tolerance for ODE integration." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path tvbo:rel_tol ], [ sh:datatype xsd:string ; - sh:description "Name of a previously computed branch (for from_branch method)." ; + sh:description "Which point on the source branch: 'endpoint', 'hopf:1', 'fold:2', a step number, etc." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path tvbo:source_branch ], + sh:order 6 ; + sh:path tvbo:source_point ], [ sh:defaultValue "time_integration" ; sh:description "Strategy for finding the initial state." ; sh:in ( "time_integration" "newton" "given" "from_branch" ) ; @@ -1442,11 +1500,11 @@ tvbo:InitialState a sh:NodeShape ; sh:order 0 ; sh:path tvbo:method ], [ sh:datatype xsd:string ; - sh:description "Which point on the source branch: 'endpoint', 'hopf:1', 'fold:2', a step number, etc." ; + sh:description "Name of a previously computed branch (for from_branch method)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path tvbo:source_point ] ; + sh:order 5 ; + sh:path tvbo:source_branch ] ; sh:targetClass tvbo:InitialState . tvbo:Likelihood a sh:NodeShape ; @@ -1459,12 +1517,6 @@ tvbo:Likelihood a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 3 ; sh:path tvbo:sigma ], - [ sh:datatype xsd:string ; - sh:description "Observation(s) providing the observed data." ; - sh:minCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path tvbo:source ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; @@ -1476,7 +1528,13 @@ tvbo:Likelihood a sh:NodeShape ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; - sh:path schema1:name ] ; + sh:path schema1:name ], + [ sh:datatype xsd:string ; + sh:description "Observation(s) providing the observed data." ; + sh:minCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path tvbo:source ] ; sh:targetClass tvbo:Likelihood . tvbo:MeasureSpec a sh:NodeShape ; @@ -1484,23 +1542,10 @@ tvbo:MeasureSpec a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "Cognitive Atlas IRI of the cognitive construct measured (e.g. ``cogat:trm_521ef89ce5e84`` for fluid intelligence)." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path tvbo:concept_iri ], - [ sh:datatype xsd:string ; - sh:description "Unit annotation (e.g. 'count', 'ms', 'z-score')." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path tvbo:unit ], - [ sh:datatype xsd:string ; - sh:description "Sub-type within the phenotype (e.g. 'raw', 'unadjusted', 'age-corrected', 'derived', 'RT', 'accuracy')." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path tvbo:measure_type ], + sh:order 5 ; + sh:path tvbo:description ], [ sh:datatype xsd:string ; sh:description "Must match the measure name in ``Phenotype.measures``." ; sh:maxCount 1 ; @@ -1515,44 +1560,57 @@ tvbo:MeasureSpec a sh:NodeShape ; sh:order 1 ; sh:path tvbo:task_iri ], [ sh:datatype xsd:string ; + sh:description "Cognitive Atlas IRI of the cognitive construct measured (e.g. ``cogat:trm_521ef89ce5e84`` for fluid intelligence)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path tvbo:description ] ; + sh:order 2 ; + sh:path tvbo:concept_iri ], + [ sh:datatype xsd:string ; + sh:description "Unit annotation (e.g. 'count', 'ms', 'z-score')." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path tvbo:unit ], + [ sh:datatype xsd:string ; + sh:description "Sub-type within the phenotype (e.g. 'raw', 'unadjusted', 'age-corrected', 'derived', 'RT', 'accuracy')." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path tvbo:measure_type ] ; sh:targetClass tvbo:MeasureSpec . tvbo:NDArray a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path rdfs:label ], + [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 4 ; sh:path tvbo:dataLocation ], - [ sh:datatype xsd:integer ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path tvbo:shape ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path tvbo:unit ], + sh:order 3 ; + sh:path tvbo:dtype ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; sh:path dcterms:description ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; + [ sh:datatype xsd:integer ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path rdfs:label ], + sh:order 2 ; + sh:path tvbo:shape ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path tvbo:dtype ] ; + sh:order 5 ; + sh:path tvbo:unit ] ; sh:targetClass tvbo:NDArray . tvbo:Optimization a sh:NodeShape ; @@ -1560,204 +1618,204 @@ tvbo:Optimization a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 7 ; + sh:path dcterms:description ], + [ sh:class tvbo:Parameter ; + sh:description "Parameters from previous stages to freeze (keep at optimized value but not update)" ; + sh:nodeKind sh:IRI ; + sh:order 13 ; + sh:path tvbo:freeze_parameters ], + [ sh:datatype xsd:string ; sh:defaultValue "adam"^^xsd:string ; sh:description "Optimizer for this stage: 'adam', 'adamw', 'sgd', etc." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 9 ; sh:path tvbo:algorithm ], - [ sh:class tvbo:ExecutionConfig ; - sh:description "Per-optimization execution configuration (overrides experiment-level defaults). Useful for setting random_seed, precision, or hardware for optimization phase." ; + [ sh:description "Upstream task whose result seeds this optimization. An `Algorithm` supplies a single tuned state (start from it). An `Exploration` with an adaptive `strategy` (e.g. nsga2) supplies a *front* of N non-dominated solutions: the optimization then runs batched-parallel β€” one gradient refinement per Pareto seed β€” reusing `parallel_mode`/`n_parallel`. If absent, optimization starts from the initial simulation state. Forward-compatible with the unified `Search.depends_on` (see dev/unified_search.md)." ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 0 ; - sh:path tvbo:execution ], - [ sh:class tvbo:Parameter ; - sh:description "Stage-specific hyperparameters (e.g., b2=0.9999 for adam)" ; - sh:nodeKind sh:IRI ; - sh:order 12 ; - sh:path tvbo:hyperparameters ], - [ sh:class tvbo:OptimizationStage ; - sh:description "Previous stage to initialize from. Final values from that stage become initial values for this stage." ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 14 ; - sh:path tvbo:warmup_from ], - [ sh:datatype xsd:float ; - sh:defaultValue "0.001"^^xsd:float ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 10 ; - sh:path tvbo:learning_rate ], - [ sh:datatype xsd:string ; - sh:description "Globally unique identifier for the entity." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path schema1:name ], - [ sh:datatype xsd:string ; + sh:or ( [ sh:class tvbo:Algorithm ] [ sh:class tvbo:Exploration ] ) ; + sh:order 4 ; + sh:path tvbo:depends_on ], + [ sh:datatype xsd:integer ; + sh:defaultValue 100 ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path rdfs:label ], - [ sh:class tvbo:OptimizationStage ; - sh:description "Ordered list of optimization stages. Stages run sequentially. Stage n+1 starts from optimized values of stage n. When defined, inherited single-stage fields are ignored." ; - sh:nodeKind sh:IRI ; - sh:order 3 ; - sh:path tvbo:stages ], + sh:order 11 ; + sh:path tvbo:max_iterations ], [ sh:class tvbo:Integrator ; sh:description "Integration settings for optimization simulations (overrides experiment defaults). If specified, creates a fresh model_fn and state with prepare() before optimization. Can specify different duration, step_size, method than the experiment. If not specified, uses experiment-level integration settings." ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 1 ; sh:path tvbo:integration ], - [ sh:description "Upstream task whose result seeds this optimization. An `Algorithm` supplies a single tuned state (start from it). An `Exploration` with an adaptive `strategy` (e.g. nsga2) supplies a *front* of N non-dominated solutions: the optimization then runs batched-parallel β€” one gradient refinement per Pareto seed β€” reusing `parallel_mode`/`n_parallel`. If absent, optimization starts from the initial simulation state. Forward-compatible with the unified `Search.depends_on` (see dev/unified_search.md)." ; + [ sh:class tvbo:OptimizationStage ; + sh:description "Previous stage to initialize from. Final values from that stage become initial values for this stage." ; sh:maxCount 1 ; - sh:or ( [ sh:class tvbo:Algorithm ] [ sh:class tvbo:Exploration ] ) ; - sh:order 4 ; - sh:path tvbo:depends_on ], - [ sh:class tvbo:FunctionCall ; - sh:description "Loss function call. Uses FunctionCall to either: 1. Reference existing function: function: rmse 2. Inline callable: callable: {module: ..., name: ...} Arguments specify inputs (simulated_fc, empirical_fc, etc.)" ; + sh:nodeKind sh:IRI ; + sh:order 14 ; + sh:path tvbo:warmup_from ], + [ sh:class tvbo:ExecutionConfig ; + sh:description "Per-optimization execution configuration (overrides experiment-level defaults). Useful for setting random_seed, precision, or hardware for optimization phase." ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 2 ; - sh:path tvbo:loss ], + sh:order 0 ; + sh:path tvbo:execution ], [ sh:class tvbo:FreeParameter ; sh:description "Parameters to optimize in this stage. Each entry is a FreeParameter that references an existing Parameter by dotted scope (e.g. \"ReducedWongWang.w\" or \"FastLinearCoupling.G\") and supplies optimization-specific metadata (heterogeneous, shape, bounds). No new Parameter is created here." ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 8 ; sh:path tvbo:free_parameters ], [ sh:class tvbo:Parameter ; - sh:description "Parameters from previous stages to freeze (keep at optimized value but not update)" ; + sh:description "Stage-specific hyperparameters (e.g., b2=0.9999 for adam)" ; sh:nodeKind sh:IRI ; - sh:order 13 ; - sh:path tvbo:freeze_parameters ], + sh:order 12 ; + sh:path tvbo:hyperparameters ], + [ sh:class tvbo:FunctionCall ; + sh:description "Loss function call. Uses FunctionCall to either: 1. Reference existing function: function: rmse 2. Inline callable: callable: {module: ..., name: ...} Arguments specify inputs (simulated_fc, empirical_fc, etc.)" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 2 ; + sh:path tvbo:loss ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 7 ; - sh:path dcterms:description ], - [ sh:datatype xsd:integer ; - sh:defaultValue 100 ; + sh:order 6 ; + sh:path rdfs:label ], + [ sh:datatype xsd:float ; + sh:defaultValue "0.001"^^xsd:float ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 11 ; - sh:path tvbo:max_iterations ] ; + sh:order 10 ; + sh:path tvbo:learning_rate ], + [ sh:datatype xsd:string ; + sh:description "Globally unique identifier for the entity." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path schema1:name ], + [ sh:class tvbo:OptimizationStage ; + sh:description "Ordered list of optimization stages. Stages run sequentially. Stage n+1 starts from optimized values of stage n. When defined, inherited single-stage fields are ignored." ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path tvbo:stages ] ; sh:targetClass tvbo:Optimization . tvbo:PDE a sh:NodeShape ; rdfs:comment "Partial differential equation problem definition." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; + sh:property [ sh:class tvbo:BoundaryCondition ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 8 ; + sh:path tvbo:boundary_conditions ], + [ sh:class tvbo:SpatialDomain ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path rdfs:label ], - [ sh:class tvbo:Parameter ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 3 ; + sh:path tvbo:domain ], + [ sh:class tvbo:DerivedVariable ; sh:nodeKind sh:IRI ; - sh:order 2 ; - sh:path tvbo:parameters ], + sh:order 11 ; + sh:path tvbo:derived_variables ], [ sh:class tvbo:Mesh ; sh:description "Shared mesh for all field state variables in this PDE." ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 4 ; sh:path tvbo:mesh ], - [ sh:class tvbo:DerivedVariable ; - sh:nodeKind sh:IRI ; - sh:order 11 ; - sh:path tvbo:derived_variables ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path dcterms:description ], - [ sh:class tvbo:FieldStateVariable ; - sh:nodeKind sh:IRI ; - sh:order 5 ; - sh:path tvbo:state_variables ], - [ sh:class tvbo:SpatialDomain ; - sh:maxCount 1 ; + [ sh:class tvbo:DifferentialOperator ; sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 3 ; - sh:path tvbo:domain ], + sh:order 6 ; + sh:path tvbo:operators ], [ sh:class tvbo:PDESolver ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 9 ; sh:path tvbo:solver ], - [ sh:class tvbo:DifferentialOperator ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 6 ; - sh:path tvbo:operators ], [ sh:class tvbo:DerivedParameter ; sh:nodeKind sh:IRI ; sh:order 10 ; sh:path tvbo:derived_parameters ], - [ sh:class tvbo:Equation ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 7 ; - sh:path tvbo:sources ], + [ sh:class tvbo:FieldStateVariable ; + sh:nodeKind sh:IRI ; + sh:order 5 ; + sh:path tvbo:state_variables ], [ sh:class tvbo:Function ; sh:nodeKind sh:IRI ; sh:order 12 ; sh:path tvbo:functions ], - [ sh:class tvbo:BoundaryCondition ; + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path rdfs:label ], + [ sh:class tvbo:Parameter ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path tvbo:parameters ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path dcterms:description ], + [ sh:class tvbo:Equation ; sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 8 ; - sh:path tvbo:boundary_conditions ] ; + sh:order 7 ; + sh:path tvbo:sources ] ; sh:targetClass tvbo:PDE . tvbo:PDESolver a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "Abs/rel tolerances." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 7 ; - sh:path tvbo:tolerances ], + sh:order 1 ; + sh:path dcterms:description ], + [ sh:class <https://w3id.org/tvbo/software/SoftwareRequirement> ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path tvbo:requirements ], + [ sh:class <https://w3id.org/tvbo/software/SoftwareEnvironment> ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path tvbo:environment ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 8 ; sh:path tvbo:preconditioner ], - [ sh:in ( "FDM" "FEM" "FVM" "Spectral" ) ; - sh:maxCount 1 ; - sh:order 4 ; - sh:path tvbo:discretization ], [ sh:datatype xsd:string ; + sh:description "Abs/rel tolerances." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path rdfs:label ], - [ sh:datatype xsd:string ; + sh:order 7 ; + sh:path tvbo:tolerances ], + [ sh:datatype xsd:float ; + sh:description "Time step (s)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path dcterms:description ], - [ sh:class <https://w3id.org/tvbo/software/SoftwareEnvironment> ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 3 ; - sh:path tvbo:environment ], + sh:order 6 ; + sh:path tvbo:dt ], [ sh:datatype xsd:string ; sh:description "e.g., implicit Euler, Crank-Nicolson." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 5 ; sh:path tvbo:time_integrator ], - [ sh:class <https://w3id.org/tvbo/software/SoftwareRequirement> ; - sh:nodeKind sh:IRI ; - sh:order 2 ; - sh:path tvbo:requirements ], - [ sh:datatype xsd:float ; - sh:description "Time step (s)." ; + [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path tvbo:dt ] ; + sh:order 0 ; + sh:path rdfs:label ], + [ sh:in ( "FDM" "FEM" "FVM" "Spectral" ) ; + sh:maxCount 1 ; + sh:order 4 ; + sh:path tvbo:discretization ] ; sh:targetClass tvbo:PDESolver . tvbo:Prior a sh:NodeShape ; @@ -1789,15 +1847,15 @@ tvbo:Procedure a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:class tvbo:ProcedureStep ; - sh:description "Named outputs (keyed by name), e.g. 'weights'." ; - sh:nodeKind sh:IRI ; - sh:order 1 ; - sh:path tvbo:output ], - [ sh:class tvbo:ProcedureStep ; sh:description "Ordered intermediate steps." ; sh:nodeKind sh:IRI ; sh:order 0 ; - sh:path tvbo:steps ] ; + sh:path tvbo:steps ], + [ sh:class tvbo:ProcedureStep ; + sh:description "Named outputs (keyed by name), e.g. 'weights'." ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path tvbo:output ] ; sh:targetClass tvbo:Procedure . tvbo:RandomStream a sh:NodeShape ; @@ -1809,16 +1867,16 @@ tvbo:RandomStream a sh:NodeShape ; sh:order 1 ; sh:path dcterms:description ], [ sh:datatype xsd:string ; + sh:description "Add the location of the data file containing the parcellation terminology." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path rdfs:label ], + sh:order 2 ; + sh:path <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], [ sh:datatype xsd:string ; - sh:description "Add the location of the data file containing the parcellation terminology." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ] ; + sh:order 0 ; + sh:path rdfs:label ] ; sh:targetClass tvbo:RandomStream . tvbo:Reference a sh:NodeShape ; @@ -1849,30 +1907,30 @@ tvbo:ReferenceFingerprint a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 3 ; sh:path tvbo:size ], - [ sh:datatype xsd:string ; - sh:description "Dotted-path subkey within the referenced entity (optional)." ; + [ sh:description "IRI of the referenced artifact (Network, ExperimentResult, BehavioralData, ...)." ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path tvbo:field ], + sh:minCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path tvbo:iri ], [ sh:datatype xsd:string ; sh:description "SHA-256 hex digest of the file at fingerprinting (recomputed lazily when mtime/size differ)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 4 ; sh:path tvbo:hash ], + [ sh:datatype xsd:string ; + sh:description "Dotted-path subkey within the referenced entity (optional)." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path tvbo:field ], [ sh:datatype xsd:float ; sh:description "File modification time at fingerprinting (POSIX timestamp)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; - sh:path tvbo:mtime ], - [ sh:description "IRI of the referenced artifact (Network, ExperimentResult, BehavioralData, ...)." ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 0 ; - sh:path tvbo:iri ] ; + sh:path tvbo:mtime ] ; sh:targetClass tvbo:ReferenceFingerprint . tvbo:RegionMapping a sh:NodeShape ; @@ -1880,16 +1938,16 @@ tvbo:RegionMapping a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:integer ; + sh:description "Array mapping each vertex index to its parent region index. Can use dataLocation instead for large arrays." ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path tvbo:vertex_to_region ], + [ sh:datatype xsd:integer ; sh:description "Total number of regions" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 5 ; sh:path tvbo:n_regions ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path dcterms:description ], [ sh:datatype xsd:integer ; sh:description "Total number of vertices" ; sh:maxCount 1 ; @@ -1901,47 +1959,46 @@ tvbo:RegionMapping a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path rdfs:label ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path dcterms:description ], [ sh:datatype xsd:string ; sh:description "Add the location of the data file containing the parcellation terminology." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; - sh:path <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], - [ sh:datatype xsd:integer ; - sh:description "Array mapping each vertex index to its parent region index. Can use dataLocation instead for large arrays." ; - sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path tvbo:vertex_to_region ] ; + sh:path <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ] ; sh:targetClass tvbo:RegionMapping . tvbo:Sample a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path tvbo:groups ], - [ sh:datatype xsd:integer ; + sh:property [ sh:datatype xsd:integer ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; - sh:path tvbo:size ] ; + sh:path tvbo:size ], + [ sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path tvbo:groups ] ; sh:targetClass tvbo:Sample . tvbo:SpatialDomain a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "Optional named region/ROI in the atlas/parcellation." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path tvbo:region ], - [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/atlas/Transformation> ; + sh:property [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/atlas/Transformation> ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; sh:order 2 ; sh:path tvbo:coordinate_space ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path rdfs:label ], [ sh:datatype xsd:string ; sh:description "Optional file for geometry/ROI mask (e.g., NIfTI, GIfTI)." ; sh:maxCount 1 ; @@ -1951,30 +2008,31 @@ tvbo:SpatialDomain a sh:NodeShape ; [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path rdfs:label ], + sh:order 1 ; + sh:path dcterms:description ], [ sh:datatype xsd:string ; + sh:description "Optional named region/ROI in the atlas/parcellation." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path dcterms:description ] ; + sh:order 3 ; + sh:path tvbo:region ] ; sh:targetClass tvbo:SpatialDomain . tvbo:StateValue a sh:NodeShape ; rdfs:comment "A named state variable value for per-node initialization." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "Numeric, string, or boolean value, OR an array (nested list) for array-valued constants such as mode-coupling coefficient matrices. ScalarValue accepts any literal primitive type, allowing parameters to carry control flags (e.g., booleans) or symbolic placeholders alongside numeric defaults." ; - sh:maxCount 1 ; - sh:or ( [ ] [ ] ) ; - sh:order 1 ; - sh:path schema1:value ], - [ sh:datatype xsd:string ; + sh:property [ sh:datatype xsd:string ; sh:description "Globally unique identifier for the entity." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; - sh:path schema1:name ] ; + sh:path schema1:name ], + [ sh:description "Numeric, string, or boolean value, OR an array (nested list) for array-valued constants such as mode-coupling coefficient matrices. ScalarValue accepts any literal primitive type, allowing parameters to carry control flags (e.g., booleans) or symbolic placeholders alongside numeric defaults." ; + sh:maxCount 1 ; + sh:or ( [ ] [ ] ) ; + sh:order 1 ; + sh:path schema1:value ] ; sh:targetClass tvbo:StateValue . tvbo:Tractogram a sh:NodeShape ; @@ -2002,18 +2060,12 @@ tvbo:Tractogram a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 3 ; sh:path dcterms:description ], - [ sh:datatype xsd:integer ; - sh:description "Number of subjects in the tractography dataset" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path tvbo:number_of_subjects ], [ sh:datatype xsd:string ; - sh:description "Publication or DOI reference for this tractography dataset" ; + sh:description "Path or URI to the tractography data file" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 8 ; - sh:path dcterms:references ], + sh:order 4 ; + sh:path tvbo:data_source ], [ sh:datatype xsd:string ; sh:description "Processing pipeline used to generate the tractography" ; sh:maxCount 1 ; @@ -2021,11 +2073,17 @@ tvbo:Tractogram a sh:NodeShape ; sh:order 7 ; sh:path tvbo:processing_pipeline ], [ sh:datatype xsd:string ; - sh:description "Path or URI to the tractography data file" ; + sh:description "Publication or DOI reference for this tractography dataset" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path tvbo:data_source ], + sh:order 8 ; + sh:path dcterms:references ], + [ sh:datatype xsd:integer ; + sh:description "Number of subjects in the tractography dataset" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path tvbo:number_of_subjects ], [ sh:datatype xsd:string ; sh:description "Globally unique identifier for the entity." ; sh:maxCount 1 ; @@ -2038,24 +2096,24 @@ tvbo:TuningObjective a sh:NodeShape ; rdfs:comment "Defines what the tuning algorithm optimizes for. Can be an activity target (FIC) or a connectivity target (EIB)." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:class tvbo:Observation ; - sh:description "Reference to empirical data observation for matching objectives" ; + sh:property [ sh:datatype xsd:string ; + sh:description "Type of objective: 'activity_target', 'fc_matching', 'custom'" ; sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 5 ; - sh:path tvbo:target_data ], + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path tvbo:type ], [ sh:datatype xsd:float ; sh:description "Target value for activity objectives" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 4 ; sh:path tvbo:target_value ], - [ sh:class tvbo:Equation ; - sh:description "Metric equation for matching (e.g., correlation, rmse)" ; + [ sh:class tvbo:StateVariable ; + sh:description "State variable for activity targets (e.g., S_e)" ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 6 ; - sh:path tvbo:metric ], + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path tvbo:target_variable ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; @@ -2066,43 +2124,42 @@ tvbo:TuningObjective a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 1 ; sh:path dcterms:description ], - [ sh:datatype xsd:string ; - sh:description "Type of objective: 'activity_target', 'fc_matching', 'custom'" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path tvbo:type ], - [ sh:class tvbo:StateVariable ; - sh:description "State variable for activity targets (e.g., S_e)" ; + [ sh:class tvbo:Observation ; + sh:description "Reference to empirical data observation for matching objectives" ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; - sh:order 3 ; - sh:path tvbo:target_variable ] ; + sh:order 5 ; + sh:path tvbo:target_data ], + [ sh:class tvbo:Equation ; + sh:description "Metric equation for matching (e.g., correlation, rmse)" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 6 ; + sh:path tvbo:metric ] ; sh:targetClass tvbo:TuningObjective . tvbo:UpdateRule a sh:NodeShape ; rdfs:comment "Defines how a parameter is updated based on observables. Represents iterative learning rules like FIC or EIB updates. Functions from experiment.functions are available in the equation." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:class tvbo:Parameter ; - sh:description "The parameter to update (e.g., J_i, wLRE)" ; - sh:maxCount 1 ; - sh:minCount 1 ; + sh:property [ sh:class tvbo:Observation ; + sh:description "Observables required by this update rule" ; sh:nodeKind sh:IRI ; - sh:order 2 ; - sh:path tvbo:target_parameter ], - [ sh:datatype xsd:string ; - sh:description "Globally unique identifier for the entity." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path schema1:name ], + sh:order 6 ; + sh:path tvbo:requires ], [ sh:datatype xsd:boolean ; sh:description "Whether to apply learning rate warmup to this update rule. When true, the learning rate (eta) is scaled by (i+1)/n_iterations." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 5 ; sh:path tvbo:warmup ], + [ sh:class tvbo:Parameter ; + sh:description "The parameter to update (e.g., J_i, wLRE)" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path tvbo:target_parameter ], [ sh:class tvbo:Range ; sh:description "Constraints on parameter values after update" ; sh:maxCount 1 ; @@ -2116,16 +2173,17 @@ tvbo:UpdateRule a sh:NodeShape ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 3 ; sh:path tvbo:equation ], - [ sh:class tvbo:Observation ; - sh:description "Observables required by this update rule" ; - sh:nodeKind sh:IRI ; - sh:order 6 ; - sh:path tvbo:requires ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; - sh:path dcterms:description ] ; + sh:path dcterms:description ], + [ sh:datatype xsd:string ; + sh:description "Globally unique identifier for the entity." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path schema1:name ] ; sh:targetClass tvbo:UpdateRule . <https://w3id.org/tvbo/dbs/ClinicalImprovement> a sh:NodeShape ; @@ -2137,12 +2195,6 @@ tvbo:UpdateRule a sh:NodeShape ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 0 ; sh:path <https://w3id.org/tvbo/dbs/score> ], - [ sh:datatype xsd:float ; - sh:description "Timepoint of assessment in days or months after implantation" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path <https://w3id.org/tvbo/dbs/time_post_surgery> ], [ sh:datatype xsd:string ; sh:description "Timepoint of assessment (e.g., \"1 month post-op\", \"6 months post-op\")" ; sh:maxCount 1 ; @@ -2150,29 +2202,35 @@ tvbo:UpdateRule a sh:NodeShape ; sh:order 6 ; sh:path <https://w3id.org/tvbo/dbs/timepoint> ], [ sh:datatype xsd:float ; - sh:description "Percent change compared to preoperative baseline (positive = improvement)" ; + sh:description "Timepoint of assessment in days or months after implantation" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path <https://w3id.org/tvbo/dbs/percent_change> ], + sh:order 4 ; + sh:path <https://w3id.org/tvbo/dbs/time_post_surgery> ], [ sh:datatype xsd:float ; sh:description "Absolute value of the score at the time of assessment" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; sh:path <https://w3id.org/tvbo/dbs/absolute_value> ], - [ sh:datatype xsd:string ; - sh:description "Who performed the rating (e.g., rater initials, clinician ID, or system)" ; + [ sh:datatype xsd:float ; + sh:description "Percent change compared to preoperative baseline (positive = improvement)" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path <https://w3id.org/tvbo/dbs/evaluator> ], + sh:order 3 ; + sh:path <https://w3id.org/tvbo/dbs/percent_change> ], [ sh:datatype xsd:float ; sh:description "Preoperative baseline value of the score" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; - sh:path <https://w3id.org/tvbo/dbs/baseline_value> ] ; + sh:path <https://w3id.org/tvbo/dbs/baseline_value> ], + [ sh:datatype xsd:string ; + sh:description "Who performed the rating (e.g., rater initials, clinician ID, or system)" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path <https://w3id.org/tvbo/dbs/evaluator> ] ; sh:targetClass <https://w3id.org/tvbo/dbs/ClinicalImprovement> . <https://w3id.org/tvbo/dbs/ClinicalScale> a sh:NodeShape ; @@ -2180,23 +2238,11 @@ tvbo:UpdateRule a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "Short abbreviation (e.g., UPDRS)" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path skos:notation ], - [ sh:datatype xsd:string ; sh:description "Version of the instrument (e.g., 3.0)" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; sh:path schema1:softwareVersion ], - [ sh:datatype xsd:string ; - sh:description "Overall clinical domain (e.g., motor, cognition)" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path <https://w3id.org/tvbo/dbs/domain> ], [ sh:datatype xsd:string ; sh:description "DOI, PMID or persistent identifier" ; sh:maxCount 1 ; @@ -2208,25 +2254,37 @@ tvbo:UpdateRule a sh:NodeShape ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; - sh:path schema1:name ] ; + sh:path schema1:name ], + [ sh:datatype xsd:string ; + sh:description "Overall clinical domain (e.g., motor, cognition)" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path <https://w3id.org/tvbo/dbs/domain> ], + [ sh:datatype xsd:string ; + sh:description "Short abbreviation (e.g., UPDRS)" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path skos:notation ] ; sh:targetClass <https://w3id.org/tvbo/dbs/ClinicalScale> . <https://w3id.org/tvbo/dbs/Contact> a sh:NodeShape ; rdfs:comment "Individual contact on a DBS electrode." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/Coordinate> ; - sh:description "3D coordinate of the contact center in the defined coordinate space" ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 1 ; - sh:path <https://w3id.org/tvbo/dbs/coordinate> ], - [ sh:datatype xsd:string ; + sh:property [ sh:datatype xsd:string ; sh:description "Optional human-readable label (e.g., \"1a\")" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; sh:path rdfs:label ], + [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/Coordinate> ; + sh:description "3D coordinate of the contact center in the defined coordinate space" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 1 ; + sh:path <https://w3id.org/tvbo/dbs/coordinate> ], [ sh:datatype xsd:integer ; sh:description "Identifier (e.g., 0, 1, 2)" ; sh:maxCount 1 ; @@ -2239,26 +2297,20 @@ tvbo:UpdateRule a sh:NodeShape ; rdfs:comment "A protocol describing DBS therapy, potentially bilateral or multi-lead." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "Globally unique identifier for the entity." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path schema1:name ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path <https://w3id.org/tvbo/dbs/notes> ], + sh:property [ sh:class <https://w3id.org/tvbo/dbs/StimulationSetting> ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 2 ; + sh:path <https://w3id.org/tvbo/dbs/settings> ], [ sh:class <https://w3id.org/tvbo/dbs/ClinicalImprovement> ; sh:description "Observed improvement relative to baseline based on a defined score." ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 5 ; sh:path <https://w3id.org/tvbo/dbs/clinical_improvement> ], - [ sh:class <https://w3id.org/tvbo/dbs/StimulationSetting> ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 2 ; - sh:path <https://w3id.org/tvbo/dbs/settings> ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path <https://w3id.org/tvbo/dbs/notes> ], [ sh:class <https://w3id.org/tvbo/dbs/Electrode> ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 1 ; @@ -2267,44 +2319,50 @@ tvbo:UpdateRule a sh:NodeShape ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 3 ; - sh:path <https://w3id.org/tvbo/dbs/timing_info> ] ; + sh:path <https://w3id.org/tvbo/dbs/timing_info> ], + [ sh:datatype xsd:string ; + sh:description "Globally unique identifier for the entity." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path schema1:name ] ; sh:targetClass <https://w3id.org/tvbo/dbs/DBSProtocol> . <https://w3id.org/tvbo/dbs/DBSSubject> a sh:NodeShape ; rdfs:comment "Human or animal subject receiving DBS." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/atlas/Transformation> ; - sh:description "Coordinate space used for this subject's data" ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 3 ; - sh:path <https://w3id.org/tvbo/dbs/coordinate_space> ], - [ sh:datatype xsd:string ; - sh:description "Additional subject metadata as key-value pairs or path to a sidecar JSON file." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 11 ; - sh:path <https://w3id.org/tvbo/study/metadata> ], - [ sh:datatype xsd:string ; + sh:property [ sh:datatype xsd:string ; sh:description "Path to subject-specific connectome (when not session-dependent). Relative to dataset root or BIDS derivatives. For session-specific networks, use Session.network instead." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 10 ; sh:path <https://w3id.org/tvbo/study/network> ], - [ sh:class <https://w3id.org/tvbo/dbs/DBSProtocol> ; - sh:description "All DBS protocols assigned to this subject." ; - sh:nodeKind sh:IRI ; - sh:order 2 ; - sh:path <https://w3id.org/tvbo/dbs/protocols> ], - [ sh:datatype xsd:string ; - sh:description "Human-readable label for the subject." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path rdfs:label ], [ sh:datatype xsd:string ; - sh:description "BIDS-compatible subject identifier (without 'sub-' prefix). Examples: '01', 'ctrl03', 'patient17'." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path <https://w3id.org/tvbo/dbs/handedness> ], + [ sh:datatype xsd:float ; + sh:description "Age at time of study (years)." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 7 ; + sh:path <https://w3id.org/tvbo/study/age> ], + [ sh:datatype xsd:string ; + sh:description "Human-readable label for the subject." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path rdfs:label ], + [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/atlas/Transformation> ; + sh:description "Coordinate space used for this subject's data" ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path <https://w3id.org/tvbo/dbs/coordinate_space> ], + [ sh:datatype xsd:string ; + sh:description "BIDS-compatible subject identifier (without 'sub-' prefix). Examples: '01', 'ctrl03', 'patient17'." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 4 ; @@ -2319,11 +2377,16 @@ tvbo:UpdateRule a sh:NodeShape ; sh:maxCount 1 ; sh:order 8 ; sh:path <https://w3id.org/tvbo/study/sex> ], + [ sh:class <https://w3id.org/tvbo/dbs/DBSProtocol> ; + sh:description "All DBS protocols assigned to this subject." ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path <https://w3id.org/tvbo/dbs/protocols> ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path <https://w3id.org/tvbo/dbs/handedness> ], + sh:order 0 ; + sh:path <https://w3id.org/tvbo/dbs/diagnosis> ], [ sh:datatype xsd:string ; sh:description "Group assignment (e.g., 'control', 'patient', 'healthy'). Maps to participants.tsv 'group' column in BIDS." ; sh:maxCount 1 ; @@ -2331,23 +2394,24 @@ tvbo:UpdateRule a sh:NodeShape ; sh:order 6 ; sh:path <https://w3id.org/tvbo/study/group> ], [ sh:datatype xsd:string ; + sh:description "Additional subject metadata as key-value pairs or path to a sidecar JSON file." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path <https://w3id.org/tvbo/dbs/diagnosis> ], - [ sh:datatype xsd:float ; - sh:description "Age at time of study (years)." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 7 ; - sh:path <https://w3id.org/tvbo/study/age> ] ; + sh:order 11 ; + sh:path <https://w3id.org/tvbo/study/metadata> ] ; sh:targetClass <https://w3id.org/tvbo/dbs/DBSSubject> . <https://w3id.org/tvbo/dbs/EField> a sh:NodeShape ; rdfs:comment "Simulated electric field from DBS modeling." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; + sh:property [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/atlas/Transformation> ; + sh:description "Reference to a common coordinate space (e.g. MNI152)" ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path <https://w3id.org/tvbo/dbs/coordinate_space> ], + [ sh:datatype xsd:string ; sh:description "Reference to raw or thresholded volume" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; @@ -2358,24 +2422,14 @@ tvbo:UpdateRule a sh:NodeShape ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; - sh:path <https://w3id.org/tvbo/dbs/threshold_applied> ], - [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/atlas/Transformation> ; - sh:description "Reference to a common coordinate space (e.g. MNI152)" ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 1 ; - sh:path <https://w3id.org/tvbo/dbs/coordinate_space> ] ; + sh:path <https://w3id.org/tvbo/dbs/threshold_applied> ] ; sh:targetClass <https://w3id.org/tvbo/dbs/EField> . <https://w3id.org/tvbo/dbs/StimulationSetting> a sh:NodeShape ; rdfs:comment "DBS parameters for a specific session." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:integer ; - sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path <https://w3id.org/tvbo/dbs/active_contacts> ], - [ sh:class <https://w3id.org/tvbo/dbs/Electrode> ; + sh:property [ sh:class <https://w3id.org/tvbo/dbs/Electrode> ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 0 ; @@ -2383,14 +2437,23 @@ tvbo:UpdateRule a sh:NodeShape ; [ sh:class tvbo:Parameter ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; - sh:order 2 ; - sh:path <https://w3id.org/tvbo/dbs/frequency> ], + sh:order 3 ; + sh:path <https://w3id.org/tvbo/dbs/pulse_width> ], [ sh:class <https://w3id.org/tvbo/dbs/EField> ; sh:description "Metadata about the E-field result for this setting" ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 6 ; sh:path <https://w3id.org/tvbo/dbs/efield> ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path <https://w3id.org/tvbo/dbs/mode> ], + [ sh:datatype xsd:integer ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path <https://w3id.org/tvbo/dbs/active_contacts> ], [ sh:class tvbo:Parameter ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; @@ -2399,13 +2462,8 @@ tvbo:UpdateRule a sh:NodeShape ; [ sh:class tvbo:Parameter ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; - sh:order 3 ; - sh:path <https://w3id.org/tvbo/dbs/pulse_width> ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path <https://w3id.org/tvbo/dbs/mode> ] ; + sh:order 2 ; + sh:path <https://w3id.org/tvbo/dbs/frequency> ] ; sh:targetClass <https://w3id.org/tvbo/dbs/StimulationSetting> . <https://w3id.org/tvbo/study/Dataset> a sh:NodeShape ; @@ -2413,17 +2471,16 @@ tvbo:UpdateRule a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( tvbo:coordinate_space <https://w3id.org/tvbo/dbs/clinical_scores> rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "Unique identifier for the dataset." ; - sh:maxCount 1 ; + sh:description "Global condition labels applied across all subjects (e.g., ['rest', 'task-nback', 'task-motor'])." ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path dcterms:identifier ], + sh:order 5 ; + sh:path <https://w3id.org/tvbo/study/conditions> ], [ sh:datatype xsd:string ; - sh:description "Path to BIDS dataset root directory. When set, subject networks and empirical data paths are resolved relative to this root." ; + sh:description "Human-readable dataset name." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path <https://w3id.org/tvbo/study/bids_root> ], + sh:order 2 ; + sh:path rdfs:label ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; @@ -2435,34 +2492,30 @@ tvbo:UpdateRule a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 6 ; sh:path dcterms:references ], + [ sh:datatype xsd:string ; + sh:description "Unique identifier for the dataset." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path dcterms:identifier ], [ sh:class <https://w3id.org/tvbo/study/Subject> ; sh:description "Subjects in a dataset." ; sh:nodeKind sh:IRI ; sh:order 1 ; sh:path <https://w3id.org/tvbo/study/subjects> ], [ sh:datatype xsd:string ; - sh:description "Global condition labels applied across all subjects (e.g., ['rest', 'task-nback', 'task-motor'])." ; - sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path <https://w3id.org/tvbo/study/conditions> ], - [ sh:datatype xsd:string ; - sh:description "Human-readable dataset name." ; + sh:description "Path to BIDS dataset root directory. When set, subject networks and empirical data paths are resolved relative to this root." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path rdfs:label ] ; + sh:order 4 ; + sh:path <https://w3id.org/tvbo/study/bids_root> ] ; sh:targetClass <https://w3id.org/tvbo/study/Dataset> . <https://w3id.org/tvbo/study/Subject> a sh:NodeShape ; rdfs:comment "A participant in a study. Each subject typically has their own brain network (connectome) and empirical recordings. Corresponds to a BIDS 'sub-' entity." ; sh:closed true ; - sh:ignoredProperties ( <https://w3id.org/tvbo/dbs/diagnosis> rdf:type <https://w3id.org/tvbo/dbs/handedness> tvbo:coordinate_space <https://w3id.org/tvbo/dbs/protocols> ) ; - sh:property [ sh:class <https://w3id.org/tvbo/study/Session> ; - sh:description "Data collection sessions for this subject. Each session can have its own network, empirical data, and conditions." ; - sh:nodeKind sh:IRI ; - sh:order 5 ; - sh:path <https://w3id.org/tvbo/study/sessions> ], - [ sh:datatype xsd:string ; + sh:ignoredProperties ( <https://w3id.org/tvbo/dbs/protocols> <https://w3id.org/tvbo/dbs/diagnosis> rdf:type tvbo:coordinate_space <https://w3id.org/tvbo/dbs/handedness> ) ; + sh:property [ sh:datatype xsd:string ; sh:description "Human-readable label for the subject." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; @@ -2474,11 +2527,17 @@ tvbo:UpdateRule a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 6 ; sh:path <https://w3id.org/tvbo/study/network> ], - [ sh:description "Biological sex." ; - sh:in ( "male" "female" "other" ) ; + [ sh:datatype xsd:string ; + sh:description "Group assignment (e.g., 'control', 'patient', 'healthy'). Maps to participants.tsv 'group' column in BIDS." ; sh:maxCount 1 ; - sh:order 4 ; - sh:path <https://w3id.org/tvbo/study/sex> ], + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path <https://w3id.org/tvbo/study/group> ], + [ sh:class <https://w3id.org/tvbo/study/Session> ; + sh:description "Data collection sessions for this subject. Each session can have its own network, empirical data, and conditions." ; + sh:nodeKind sh:IRI ; + sh:order 5 ; + sh:path <https://w3id.org/tvbo/study/sessions> ], [ sh:datatype xsd:float ; sh:description "Age at time of study (years)." ; sh:maxCount 1 ; @@ -2491,12 +2550,11 @@ tvbo:UpdateRule a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 7 ; sh:path <https://w3id.org/tvbo/study/metadata> ], - [ sh:datatype xsd:string ; - sh:description "Group assignment (e.g., 'control', 'patient', 'healthy'). Maps to participants.tsv 'group' column in BIDS." ; + [ sh:description "Biological sex." ; + sh:in ( "male" "female" "other" ) ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path <https://w3id.org/tvbo/study/group> ], + sh:order 4 ; + sh:path <https://w3id.org/tvbo/study/sex> ], [ sh:datatype xsd:string ; sh:description "BIDS-compatible subject identifier (without 'sub-' prefix). Examples: '01', 'ctrl03', 'patient17'." ; sh:maxCount 1 ; @@ -2509,75 +2567,106 @@ schema1:SoftwareApplication a sh:NodeShape ; rdfs:comment "A software tool for computational neuroscience simulation, analysis, or model specification. Extends SoftwarePackage with neuroscience-specific controlled vocabularies for scale, paradigm, role, and interoperability. Aligned with CodeMeta v3 and DOAP.", "Identity and metadata for a software package, aligned with schema.org/SoftwareApplication and CodeMeta v3." ; sh:closed true ; - sh:ignoredProperties ( rdf:type ), - ( dcterms:references schema1:runtimePlatform rdf:type <https://w3id.org/tvbo/software/interoperates_with> <https://w3id.org/tvbo/software/tool_role> schema1:operatingSystem dcterms:creator <https://w3id.org/tvbo/software/version> schema1:citation <https://w3id.org/tvbo/software/issue_tracker> schema1:programmingLanguage schema1:funder <https://w3id.org/tvbo/software/development_status> tvbo:scale <https://w3id.org/tvbo/software/model_paradigm> schema1:applicationCategory schema1:keywords schema1:dateModified schema1:sameAs schema1:isAccessibleForFree schema1:maintainer tvbo:date_created ) ; + sh:ignoredProperties ( schema1:keywords schema1:isAccessibleForFree tvbo:date_created tvbo:scale schema1:maintainer dcterms:references schema1:operatingSystem <https://w3id.org/tvbo/software/tool_role> rdf:type schema1:sameAs schema1:dateModified schema1:programmingLanguage schema1:citation <https://w3id.org/tvbo/software/version> schema1:funder <https://w3id.org/tvbo/software/interoperates_with> schema1:runtimePlatform <https://w3id.org/tvbo/software/issue_tracker> schema1:applicationCategory <https://w3id.org/tvbo/software/development_status> <https://w3id.org/tvbo/software/model_paradigm> dcterms:creator ), + ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "Globally unique identifier for the entity." ; + sh:description "Digital Object Identifier for the software or its reference publication." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 21 ; - sh:path schema1:name ], - [ sh:datatype xsd:string ; - sh:description "Tags for topic-based discovery and clustering." ; - sh:nodeKind sh:Literal ; - sh:order 17 ; - sh:path schema1:keywords ], + sh:order 26 ; + sh:path bibo:doi ], [ sh:datatype xsd:string ; - sh:description "Current or latest stable version string." ; + sh:description "Digital Object Identifier for the software or its reference publication." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 8 ; - sh:path schema1:softwareVersion ], - [ sh:datatype xsd:string ; - sh:description "Current maintainer(s) or responsible organization(s)." ; - sh:nodeKind sh:Literal ; - sh:order 13 ; - sh:path schema1:maintainer ], - [ sh:description "Spatial/organizational scales the tool operates at." ; - sh:in ( wd:Q898786 wd:Q43054 wd:Q484761 wd:Q7003015 wd:Q1073340 wd:Q239456 ) ; - sh:order 1 ; - sh:path <https://w3id.org/tvbo/software/scale> ], + sh:order 5 ; + sh:path bibo:doi ], + [ sh:description "Package ecosystem(s) through which the software is distributed." ; + sh:in ( wd:Q2984888 wd:Q105593788 wd:Q901584 "julia_registry" wd:Q7067518 "bioconda" "github" wd:Q6795527 wd:Q15206305 ) ; + sh:order 27 ; + sh:path <https://w3id.org/tvbo/software/ecosystem> ], + [ sh:description "Source code repository URL." ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 25 ; + sh:path schema1:codeRepository ], [ sh:datatype xsd:string ; sh:description "Supported operating systems (e.g., Linux, macOS, Windows)." ; sh:nodeKind sh:Literal ; sh:order 6 ; sh:path schema1:operatingSystem ], + [ sh:description "URL of the bug tracker or issue board." ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 19 ; + sh:path <https://w3id.org/tvbo/software/issue_tracker> ], + [ sh:datatype xsd:string ; + sh:description "DOI of the primary reference publication for this tool." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 15 ; + sh:path dcterms:references ], + [ sh:datatype xsd:string ; + sh:description "Globally unique identifier for the entity." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path schema1:name ], [ sh:datatype xsd:string ; sh:description "Funding bodies or grants (e.g., 'EU H2020 945539', 'NIH R01...')." ; sh:nodeKind sh:Literal ; sh:order 14 ; sh:path schema1:funder ], [ sh:datatype xsd:string ; - sh:description "SPDX license identifier (e.g., MIT, GPL-3.0-only)." ; + sh:description "Current or latest stable version string." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 24 ; - sh:path dcterms:license ], - [ sh:description "Package ecosystem(s) through which the software is distributed." ; - sh:in ( wd:Q2984888 wd:Q105593788 wd:Q901584 "julia_registry" wd:Q7067518 "bioconda" "github" wd:Q6795527 wd:Q15206305 ) ; - sh:order 27 ; - sh:path <https://w3id.org/tvbo/software/ecosystem> ], + sh:order 8 ; + sh:path schema1:softwareVersion ], + [ sh:description "Project homepage URL." ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path schema1:url ], + [ sh:description "Spatial/organizational scales the tool operates at." ; + sh:in ( wd:Q898786 wd:Q43054 wd:Q484761 wd:Q7003015 wd:Q1073340 wd:Q239456 ) ; + sh:order 1 ; + sh:path <https://w3id.org/tvbo/software/scale> ], [ sh:description "Computational paradigms supported." ; sh:in ( wd:Q7003015 wd:Q1368960 wd:Q7579783 wd:Q72484 wd:Q5155691 wd:Q3685405 wd:Q634884 wd:Q851270 wd:Q747830 "generic" wd:Q1948412 "dynamic_mean_field" wd:Q7003015 wd:Q317623 "model_description" wd:Q858926 ) ; sh:order 2 ; sh:path <https://w3id.org/tvbo/software/model_paradigm> ], - [ sh:datatype xsd:date ; - sh:description "Date of the most recent release or significant update." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 10 ; - sh:path schema1:dateModified ], [ sh:datatype xsd:string ; - sh:description "Additional citation strings or DOIs." ; + sh:description "Tags for topic-based discovery and clustering." ; sh:nodeKind sh:Literal ; - sh:order 16 ; - sh:path schema1:citation ], - [ sh:datatype xsd:string ; - sh:description "Globally unique identifier for the entity." ; + sh:order 17 ; + sh:path schema1:keywords ], + [ sh:description "Primary function(s) in a simulation workflow." ; + sh:in ( wd:Q1569346 wd:Q271680 "backend_runtime" wd:Q816286 wd:Q2661442 "workflow_framework" biotools:operation_2945 biotools:operation_0337 wd:Q7397 wd:Q858926 wd:Q3508889 wd:Q1392628 ) ; + sh:order 3 ; + sh:path <https://w3id.org/tvbo/software/tool_role> ], + [ sh:description "Implementation languages." ; + sh:in ( wd:Q28865 wd:Q15777 wd:Q2407 wd:Q251 wd:Q4010477 wd:Q182017 wd:Q206904 wd:Q83303 wd:Q34010 wd:Q575650 wd:Q2005 wd:Q2115 wd:Q5765633 wd:Q2370 ) ; + sh:order 4 ; + sh:path schema1:programmingLanguage ], + [ sh:datatype xsd:boolean ; + sh:defaultValue true ; + sh:description "Whether the tool is free/open-source." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path schema1:name ], + sh:order 20 ; + sh:path schema1:isAccessibleForFree ], + [ sh:datatype xsd:date ; + sh:description "Date the software was first released (YYYY-MM-DD)." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 9 ; + sh:path schema1:dateCreated ], + [ sh:description "Source code repository URL." ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path schema1:codeRepository ], [ sh:class schema1:SoftwareApplication ; sh:description "Tools this tool can exchange data with or delegate to." ; sh:nodeKind sh:IRI ; @@ -2589,125 +2678,90 @@ schema1:SoftwareApplication a sh:NodeShape ; sh:order 1 ; sh:path dcterms:description ], [ sh:datatype xsd:string ; - sh:description "Original author(s) or creating organization(s)." ; + sh:description "Additional citation strings or DOIs." ; sh:nodeKind sh:Literal ; - sh:order 12 ; - sh:path dcterms:creator ], - [ sh:description "Primary function(s) in a simulation workflow." ; - sh:in ( wd:Q1569346 wd:Q271680 "backend_runtime" wd:Q816286 wd:Q2661442 "workflow_framework" biotools:operation_2945 biotools:operation_0337 wd:Q7397 wd:Q858926 wd:Q3508889 wd:Q1392628 ) ; - sh:order 3 ; - sh:path <https://w3id.org/tvbo/software/tool_role> ], - [ sh:datatype xsd:string ; - sh:description "Digital Object Identifier for the software or its reference publication." ; - sh:maxCount 1 ; + sh:order 16 ; + sh:path schema1:citation ], + [ sh:datatype xsd:string ; + sh:description "Execution backends or platforms (e.g., MPI, OpenMP, CUDA, JAX)." ; sh:nodeKind sh:Literal ; sh:order 5 ; - sh:path bibo:doi ], + sh:path schema1:runtimePlatform ], + [ sh:description "Package ecosystem(s) through which the software is distributed." ; + sh:in ( wd:Q2984888 wd:Q105593788 wd:Q901584 "julia_registry" wd:Q7067518 "bioconda" "github" wd:Q6795527 wd:Q15206305 ) ; + sh:order 6 ; + sh:path <https://w3id.org/tvbo/software/ecosystem> ], + [ sh:description "URIs that unambiguously identify this tool (Wikidata, bio.tools, RRID, SciCrunch)." ; + sh:nodeKind sh:IRI ; + sh:order 18 ; + sh:path schema1:sameAs ], [ sh:datatype xsd:string ; + sh:description "SPDX license identifier (e.g., MIT, GPL-3.0-only)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 22 ; - sh:path dcterms:description ], - [ sh:description "Project homepage URL." ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 2 ; - sh:path schema1:url ], - [ sh:datatype xsd:boolean ; - sh:defaultValue true ; - sh:description "Whether the tool is free/open-source." ; - sh:maxCount 1 ; + sh:order 3 ; + sh:path dcterms:license ], + [ sh:datatype xsd:string ; + sh:description "Current maintainer(s) or responsible organization(s)." ; sh:nodeKind sh:Literal ; - sh:order 20 ; - sh:path schema1:isAccessibleForFree ], - [ sh:description "Project homepage URL." ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 23 ; - sh:path schema1:url ], + sh:order 13 ; + sh:path schema1:maintainer ], [ sh:datatype xsd:date ; - sh:description "Date the software was first released (YYYY-MM-DD)." ; + sh:description "Date of the most recent release or significant update." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 9 ; - sh:path schema1:dateCreated ], + sh:order 10 ; + sh:path schema1:dateModified ], [ sh:datatype xsd:string ; - sh:description "DOI of the primary reference publication for this tool." ; + sh:description "SPDX license identifier (e.g., MIT, GPL-3.0-only)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 15 ; - sh:path dcterms:references ], + sh:order 24 ; + sh:path dcterms:license ], + [ sh:datatype xsd:string ; + sh:description "Original author(s) or creating organization(s)." ; + sh:nodeKind sh:Literal ; + sh:order 12 ; + sh:path dcterms:creator ], [ sh:description "Development status (repostatus.org aligned)." ; sh:in ( "active" "inactive" "concept" "wip" "suspended" "unsupported" "moved" ) ; sh:maxCount 1 ; sh:order 11 ; sh:path <https://w3id.org/tvbo/software/development_status> ], [ sh:datatype xsd:string ; - sh:description "Digital Object Identifier for the software or its reference publication." ; + sh:description "High-level category (e.g., simulation, analysis, specification)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 26 ; - sh:path bibo:doi ], - [ sh:description "Source code repository URL." ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 25 ; - sh:path schema1:codeRepository ], + sh:order 0 ; + sh:path schema1:applicationCategory ], [ sh:datatype xsd:string ; - sh:description "SPDX license identifier (e.g., MIT, GPL-3.0-only)." ; + sh:description "Globally unique identifier for the entity." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path dcterms:license ], - [ sh:description "URIs that unambiguously identify this tool (Wikidata, bio.tools, RRID, SciCrunch)." ; - sh:nodeKind sh:IRI ; - sh:order 18 ; - sh:path schema1:sameAs ], - [ sh:description "URL of the bug tracker or issue board." ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 19 ; - sh:path <https://w3id.org/tvbo/software/issue_tracker> ], - [ sh:description "Source code repository URL." ; + sh:order 21 ; + sh:path schema1:name ], + [ sh:description "Project homepage URL." ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; - sh:order 4 ; - sh:path schema1:codeRepository ], - [ sh:description "Package ecosystem(s) through which the software is distributed." ; - sh:in ( wd:Q2984888 wd:Q105593788 wd:Q901584 "julia_registry" wd:Q7067518 "bioconda" "github" wd:Q6795527 wd:Q15206305 ) ; - sh:order 6 ; - sh:path <https://w3id.org/tvbo/software/ecosystem> ], - [ sh:datatype xsd:string ; - sh:description "Execution backends or platforms (e.g., MPI, OpenMP, CUDA, JAX)." ; - sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path schema1:runtimePlatform ], - [ sh:description "Implementation languages." ; - sh:in ( wd:Q28865 wd:Q15777 wd:Q2407 wd:Q251 wd:Q4010477 wd:Q182017 wd:Q206904 wd:Q83303 wd:Q34010 wd:Q575650 wd:Q2005 wd:Q2115 wd:Q5765633 wd:Q2370 ) ; - sh:order 4 ; - sh:path schema1:programmingLanguage ], + sh:order 23 ; + sh:path schema1:url ], [ sh:datatype xsd:string ; - sh:description "High-level category (e.g., simulation, analysis, specification)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path schema1:applicationCategory ] ; + sh:order 22 ; + sh:path dcterms:description ] ; sh:targetClass schema1:SoftwareApplication . prov:Entity a sh:NodeShape ; rdfs:comment "W3C PROV-O aligned provenance. Reusable on any entity (Network, TimeSeries, Dynamics, etc.)." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:class tvbo:ReferenceFingerprint ; - sh:description "Per-input fingerprints for cache invalidation. Each entry records the IRI + dotted-field path of an ``aux_data`` reference plus the (mtime, size, sha256) of the underlying file at the time the artifact was produced. A downstream cache hit requires every fingerprint to match the current file state." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 6 ; - sh:path tvbo:inputs ], - [ sh:datatype xsd:string ; + sh:property [ sh:datatype xsd:string ; + sh:description "ISO 8601 (prov:generatedAtTime)" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path tvbo:license ], + sh:order 2 ; + sh:path tvbo:date_created ], [ sh:datatype xsd:string ; sh:nodeKind sh:Literal ; sh:order 1 ; @@ -2719,11 +2773,10 @@ prov:Entity a sh:NodeShape ; sh:order 4 ; sh:path tvbo:generated_by ], [ sh:datatype xsd:string ; - sh:description "ISO 8601 (prov:generatedAtTime)" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path tvbo:date_created ], + sh:order 3 ; + sh:path tvbo:license ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; @@ -2734,32 +2787,27 @@ prov:Entity a sh:NodeShape ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 5 ; - sh:path tvbo:experiment_yaml_hash ] ; + sh:path tvbo:experiment_yaml_hash ], + [ sh:class tvbo:ReferenceFingerprint ; + sh:description "Per-input fingerprints for cache invalidation. Each entry records the IRI + dotted-field path of an ``aux_data`` reference plus the (mtime, size, sha256) of the underlying file at the time the artifact was produced. A downstream cache hit requires every fingerprint to match the current file state." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 6 ; + sh:path tvbo:inputs ] ; sh:targetClass prov:Entity . tvbo:BoundaryCondition a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "Mesh/atlas subset where BC applies." ; + sh:property [ sh:datatype xsd:boolean ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path tvbo:on_region ], - [ sh:in ( "Dirichlet" "Neumann" "Robin" "Periodic" ) ; - sh:maxCount 1 ; - sh:order 2 ; - sh:path tvbo:bc_type ], + sh:order 5 ; + sh:path tvbo:time_dependent ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path dcterms:description ], - [ sh:datatype xsd:boolean ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path tvbo:time_dependent ], + sh:order 0 ; + sh:path rdfs:label ], [ sh:class tvbo:Equation ; sh:description "Constant, parameter, or equation." ; sh:maxCount 1 ; @@ -2767,10 +2815,20 @@ tvbo:BoundaryCondition a sh:NodeShape ; sh:order 4 ; sh:path tvbo:value ], [ sh:datatype xsd:string ; + sh:description "Mesh/atlas subset where BC applies." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path rdfs:label ] ; + sh:order 3 ; + sh:path tvbo:on_region ], + [ sh:in ( "Dirichlet" "Neumann" "Robin" "Periodic" ) ; + sh:maxCount 1 ; + sh:order 2 ; + sh:path tvbo:bc_type ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path dcterms:description ] ; sh:targetClass tvbo:BoundaryCondition . tvbo:BrainRegionSeries a sh:NodeShape ; @@ -2787,38 +2845,38 @@ tvbo:ClassReference a sh:NodeShape ; rdfs:comment "Reference to a class that can be instantiated and called. Used for external library classes (e.g., tvboptim.Bold, custom monitors). The class is instantiated with constructor_args, then called with call_args. Generalizable pattern: works for tvboptim, TVB, or any Python class." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:class tvbo:Argument ; - sh:description "Arguments passed when calling the instance (__call__). Usually the input data from simulation result. Example: result (simulation output array)." ; - sh:nodeKind sh:IRI ; - sh:order 1 ; - sh:path tvbo:call_args ], - [ sh:class <https://w3id.org/tvbo/software/SoftwareRequirement> ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 6 ; - sh:path tvbo:software ], - [ sh:datatype xsd:string ; + sh:property [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 5 ; sh:path tvbo:module ], - [ sh:datatype xsd:string ; - sh:description "Reference to transient simulation result for history initialization. Some monitors (e.g., Bold) require history from warmup simulation. Value should reference a simulation result name (e.g., 'result_init')." ; + [ sh:class <https://w3id.org/tvbo/software/SoftwareRequirement> ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path tvbo:warmup_source ], + sh:nodeKind sh:IRI ; + sh:order 6 ; + sh:path tvbo:software ], [ sh:datatype xsd:string ; sh:description "Globally unique identifier for the entity." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 3 ; sh:path schema1:name ], + [ sh:class tvbo:Argument ; + sh:description "Arguments passed when calling the instance (__call__). Usually the input data from simulation result. Example: result (simulation output array)." ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path tvbo:call_args ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 4 ; sh:path dcterms:description ], + [ sh:datatype xsd:string ; + sh:description "Reference to transient simulation result for history initialization. Some monitors (e.g., Bold) require history from warmup simulation. Value should reference a simulation result name (e.g., 'result_init')." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path tvbo:warmup_source ], [ sh:class tvbo:Argument ; sh:description "Arguments passed to __init__ when instantiating the class. Example: period=1000.0, downsample_period=4.0 for Bold monitor." ; sh:nodeKind sh:IRI ; @@ -2831,162 +2889,162 @@ tvbo:ConditionalBlock a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "The condition for this block (e.g., t > onset)." ; + sh:description "The equation to apply when the condition is met." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path tvbo:condition ], + sh:order 1 ; + sh:path tvbo:expression ], [ sh:datatype xsd:string ; - sh:description "The equation to apply when the condition is met." ; + sh:description "The condition for this block (e.g., t > onset)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path tvbo:expression ] ; + sh:order 0 ; + sh:path tvbo:condition ] ; sh:targetClass tvbo:ConditionalBlock . tvbo:Continuation a sh:NodeShape ; rdfs:comment "Complete specification of a numerical continuation / bifurcation analysis. All universal solver settings live directly here. Toolkit-specific string options go in the options slot. When used inside a BranchSwitch, only explicitly set attributes override the parent's values." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:integer ; - sh:description "Number of eigenvalues to compute. Must be >= number of state variables for reliable Hopf detection." ; + sh:property [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 11 ; - sh:path tvbo:nev ], - [ sh:datatype xsd:integer ; - sh:description "Number of eigenvalue sign inversions to flag a bifurcation. Must be even. Higher = fewer false positives." ; + sh:order 1 ; + sh:path rdfs:label ], + [ sh:datatype xsd:boolean ; + sh:description "Continue in both directions from the starting point." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 15 ; - sh:path tvbo:n_inversion ], - [ sh:class tvbo:Parameter ; - sh:description "Parameters to vary. First parameter is primary (codim-1); second enables codim-2 continuation. Each Parameter has name + domain (Range with lo/hi bounds)." ; - sh:nodeKind sh:IRI ; - sh:order 4 ; - sh:path tvbo:free_parameters ], + sh:order 20 ; + sh:path tvbo:bothside ], + [ sh:datatype xsd:float ; + sh:description "Absolute tolerance for Newton corrector convergence." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 9 ; + sh:path tvbo:newton_tol ], [ sh:class tvbo:Dynamics ; sh:description "Reference to the dynamical system model (by name). Resolved from the experiment's dynamics dict at runtime." ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; sh:order 3 ; sh:path tvbo:dynamics ], - [ sh:class tvbo:InitialState ; - sh:description "How to obtain the initial equilibrium. Default: time integration to steady state." ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 18 ; - sh:path tvbo:initial_state ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path dcterms:description ], - [ sh:datatype xsd:integer ; - sh:description "Maximum continuation steps." ; + [ sh:datatype xsd:float ; + sh:description "Tolerance on real part of eigenvalue for stability boundary." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 8 ; - sh:path tvbo:max_steps ], + sh:order 12 ; + sh:path tvbo:tol_stability ], [ sh:datatype xsd:integer ; sh:description "Maximum bisection steps for bifurcation point localization." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 16 ; sh:path tvbo:max_bisection_steps ], - [ sh:datatype xsd:float ; - sh:description "Minimum adaptive step size." ; + [ sh:datatype xsd:integer ; + sh:description "Number of eigenvalues to compute. Must be >= number of state variables for reliable Hopf detection." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path tvbo:ds_min ], - [ sh:defaultValue "PALC" ; - sh:description "Predictor-corrector algorithm." ; - sh:in ( "PALC" "MoorePenrose" "Natural" ) ; - sh:maxCount 1 ; - sh:order 17 ; - sh:path tvbo:algorithm ], + sh:order 11 ; + sh:path tvbo:nev ], + [ sh:datatype xsd:integer ; + sh:description "Number of eigenvalue sign inversions to flag a bifurcation. Must be even. Higher = fewer false positives." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 15 ; + sh:path tvbo:n_inversion ], + [ sh:class tvbo:ExecutionConfig ; + sh:description "Per-analysis execution configuration." ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 21 ; + sh:path tvbo:execution ], [ sh:class <https://w3id.org/tvbo/software/SoftwareRequirement> ; sh:description "Backend engine (BifurcationKit, AUTO-07p, MatCont, etc.)." ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; sh:order 22 ; sh:path tvbo:software ], - [ sh:datatype xsd:boolean ; - sh:description "Enable fold (limit point) detection." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 14 ; - sh:path tvbo:detect_fold ], - [ sh:class tvbo:BranchSwitch ; - sh:description "Child branches to continue from detected bifurcation points (PO from Hopf, fold continuation, etc.)." ; - sh:nodeKind sh:IRI ; - sh:order 19 ; - sh:path tvbo:branches ], - [ sh:datatype xsd:boolean ; - sh:description "Continue in both directions from the starting point." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 20 ; - sh:path tvbo:bothside ], [ sh:class tvbo:Option ; sh:description "Toolkit-specific string options (tangent method, solver name, etc.)." ; sh:nodeKind sh:IRI ; sh:order 23 ; sh:path tvbo:options ], - [ sh:datatype xsd:float ; - sh:description "Initial arc-length step size." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path tvbo:ds ], - [ sh:class tvbo:ExecutionConfig ; - sh:description "Per-analysis execution configuration." ; + [ sh:defaultValue "PALC" ; + sh:description "Predictor-corrector algorithm." ; + sh:in ( "PALC" "MoorePenrose" "Natural" ) ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 21 ; - sh:path tvbo:execution ], + sh:order 17 ; + sh:path tvbo:algorithm ], [ sh:datatype xsd:integer ; - sh:description "Bifurcation detection level. 0 = off, 1 = eigenvalues only, 2 = detect, 3 = locate precisely." ; + sh:description "Maximum continuation steps." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 13 ; - sh:path tvbo:detect_bifurcation ], + sh:order 8 ; + sh:path tvbo:max_steps ], + [ sh:datatype xsd:string ; + sh:description "Globally unique identifier for the entity." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path schema1:name ], + [ sh:class tvbo:BranchSwitch ; + sh:description "Child branches to continue from detected bifurcation points (PO from Hopf, fold continuation, etc.)." ; + sh:nodeKind sh:IRI ; + sh:order 19 ; + sh:path tvbo:branches ], [ sh:datatype xsd:integer ; sh:description "Maximum Newton corrector iterations per step." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 10 ; sh:path tvbo:newton_max_iterations ], - [ sh:datatype xsd:string ; + [ sh:class tvbo:InitialState ; + sh:description "How to obtain the initial equilibrium. Default: time integration to steady state." ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 18 ; + sh:path tvbo:initial_state ], + [ sh:datatype xsd:float ; + sh:description "Maximum adaptive step size." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path rdfs:label ], + sh:order 7 ; + sh:path tvbo:ds_max ], [ sh:datatype xsd:string ; - sh:description "Globally unique identifier for the entity." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path schema1:name ], - [ sh:datatype xsd:float ; - sh:description "Absolute tolerance for Newton corrector convergence." ; + sh:order 2 ; + sh:path dcterms:description ], + [ sh:datatype xsd:integer ; + sh:description "Bifurcation detection level. 0 = off, 1 = eigenvalues only, 2 = detect, 3 = locate precisely." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 9 ; - sh:path tvbo:newton_tol ], + sh:order 13 ; + sh:path tvbo:detect_bifurcation ], + [ sh:datatype xsd:boolean ; + sh:description "Enable fold (limit point) detection." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 14 ; + sh:path tvbo:detect_fold ], [ sh:datatype xsd:float ; - sh:description "Tolerance on real part of eigenvalue for stability boundary." ; + sh:description "Minimum adaptive step size." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 12 ; - sh:path tvbo:tol_stability ], + sh:order 6 ; + sh:path tvbo:ds_min ], [ sh:datatype xsd:float ; - sh:description "Maximum adaptive step size." ; + sh:description "Initial arc-length step size." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 7 ; - sh:path tvbo:ds_max ] ; + sh:order 5 ; + sh:path tvbo:ds ], + [ sh:class tvbo:Parameter ; + sh:description "Parameters to vary. First parameter is primary (codim-1); second enables codim-2 continuation. Each Parameter has name + domain (Range with lo/hi bounds)." ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path tvbo:free_parameters ] ; sh:targetClass tvbo:Continuation . tvbo:DerivedParameter a sh:NodeShape ; @@ -2995,78 +3053,88 @@ tvbo:DerivedParameter a sh:NodeShape ; sh:property [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 19 ; - sh:path tvbo:shape ], - [ sh:datatype xsd:float ; - sh:nodeKind sh:Literal ; - sh:order 20 ; - sh:path tvbo:explored_values ], - [ sh:description "Physical unit of measurement. Values are drawn from the QUDT ontology (http://qudt.org/vocab/unit/) with UO cross-references where available." ; - sh:in ( qudt:SEC qudt:MilliSEC qudt:MicroSEC qudt:PER-SEC qudt:PER-MilliSEC qudt:HZ qudt:KiloHZ qudt:V qudt:MilliV qudt:PER-MilliV qudt:MilliV-PER-MilliSEC qudt:MilliV-PER-SEC qudt:A qudt:NanoA qudt:PicoA "uA_per_cm2" qudt:PicoFARAD qudt:NanoFARAD "uF_per_cm2" qudt:NanoS qudt:MicroS qudt:PicoS "S_per_cm2" "mS_per_cm2" "S_per_m2" "nS_per_mV" qudt:PER-NanoC qudt:PER-PicoC qudt:MOL-PER-M3 "mol_per_cm3" qudt:MilliMOL-PER-M3 "mol_per_m_per_A_per_s" qudt:MicroM3 qudt:M qudt:MilliM qudt:CentiM qudt:M-PER-SEC qudt:MilliM-PER-MilliSEC "Hz_per_nA" qudt:S-PER-M qudt:H-PER-M qudt:OHM "Mohm" "kohm_cm" qudt:DEG_C "rad_per_ms" qudt:UNITLESS qudt:PERCENT "arbitrary_unit" qudt:KiloGM "kg_per_s" qudt:M-PER-SEC2 qudt:N-PER-M qudt:RAD qudt:RAD-PER-SEC qudt:SEC2 "per_unit" ) ; - sh:maxCount 1 ; - sh:order 4 ; - sh:path qudt:unit ], + sh:order 2 ; + sh:path dcterms:description ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 13 ; - sh:path rdfs:comment ], + sh:order 6 ; + sh:path skos:definition ], [ sh:datatype xsd:string ; - sh:description "Dataset path for array-valued parameters. When set, the parameter value is stored in the binary companion file (HDF5 or Zarr) at this path. The value slot is omitted." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 11 ; - sh:path tvbo:dataset_path ], + sh:order 13 ; + sh:path rdfs:comment ], [ sh:datatype xsd:float ; - sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 10 ; - sh:path tvbo:reported_optimum ], + sh:order 20 ; + sh:path tvbo:explored_values ], [ sh:datatype xsd:string ; sh:description "Globally unique identifier for the entity." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path schema1:name ], - [ sh:datatype xsd:boolean ; + [ sh:description "Physical unit of measurement. Values are drawn from the QUDT ontology (http://qudt.org/vocab/unit/) with UO cross-references where available." ; + sh:in ( qudt:SEC qudt:MilliSEC qudt:MicroSEC qudt:PER-SEC qudt:PER-MilliSEC qudt:HZ qudt:KiloHZ qudt:V qudt:MilliV qudt:PER-MilliV qudt:MilliV-PER-MilliSEC qudt:MilliV-PER-SEC qudt:A qudt:NanoA qudt:PicoA "uA_per_cm2" qudt:PicoFARAD qudt:NanoFARAD "uF_per_cm2" qudt:NanoS qudt:MicroS qudt:PicoS "S_per_cm2" "mS_per_cm2" "S_per_m2" "nS_per_mV" qudt:PER-NanoC qudt:PER-PicoC qudt:MOL-PER-M3 "mol_per_cm3" qudt:MilliMOL-PER-M3 "mol_per_m_per_A_per_s" qudt:MicroM3 qudt:M qudt:MilliM qudt:CentiM qudt:M-PER-SEC qudt:MilliM-PER-MilliSEC "Hz_per_nA" qudt:S-PER-M qudt:H-PER-M qudt:OHM "Mohm" "kohm_cm" qudt:DEG_C "rad_per_ms" qudt:UNITLESS qudt:PERCENT "arbitrary_unit" qudt:KiloGM "kg_per_s" qudt:KiloGM-M2 qudt:M-PER-SEC2 qudt:N-PER-M qudt:RAD qudt:RAD-PER-SEC qudt:SEC2 qudt:W qudt:MegaW "per_unit" ) ; + sh:maxCount 1 ; + sh:order 4 ; + sh:path qudt:unit ], + [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 18 ; - sh:path tvbo:free ], + sh:order 8 ; + sh:path schema1:defaultValue ], + [ sh:description "Data source for this parameter's value. When set, the value is loaded from the referenced entity rather than being a YAML literal. The referent is typically a Network with per-node parameters (dscalar pattern) or a flat dataset (HDF5, TSV). Combine with `measure:` when the source exposes multiple named measures. Distinct from the global `iri:` slot, which is reserved for ontology grounding." ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 16 ; + sh:path tvbo:source ], [ sh:class tvbo:Equation ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 3 ; sh:path tvbo:Equation ], - [ sh:class tvbo:Range ; + [ sh:description "External ontology IRIs (typically GO, ChEBI, UBERON, CL, MeSH) that this entity is a surrogate / abstraction / model of. Realized as the `tvbo:surrogate_of` object property, carried inline with the YAML data instance. Multiple IRIs allowed: a single parameter may abstract several biological processes (e.g. a synaptic conductance grounding both GO:0060079 (excitatory PSP) and GO:0007268 (chemical synaptic transmission))." ; + sh:nodeKind sh:IRI ; + sh:order 12 ; + sh:path tvbo:surrogate_of ], + [ sh:datatype xsd:string ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 9 ; - sh:path tvbo:domain ], + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path tvbo:symbol ], + [ sh:datatype xsd:boolean ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 18 ; + sh:path tvbo:free ], [ sh:datatype xsd:boolean ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 14 ; sh:path tvbo:heterogeneous ], - [ sh:description "Data source for this parameter's value. When set, the value is loaded from the referenced entity rather than being a YAML literal. The referent is typically a Network with per-node parameters (dscalar pattern) or a flat dataset (HDF5, TSV). Combine with `measure:` when the source exposes multiple named measures. Distinct from the global `iri:` slot, which is reserved for ontology grounding." ; + [ sh:class tvbo:Range ; + sh:description "Per-element domain overrides for heterogeneous parameters. When specified, element_domains[i] overrides domain for element i during exploration auto-expansion. Length must match parameter shape (e.g., n_nodes for shape \"(n_nodes,)\"). If not set, all elements share the same domain." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 21 ; + sh:path tvbo:element_domains ], + [ sh:class tvbo:Distribution ; + sh:description "Distribution for heterogeneous per-node parameter sampling. Implies heterogeneous=true." ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; - sh:order 16 ; - sh:path tvbo:source ], + sh:order 15 ; + sh:path tvbo:distribution ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path tvbo:symbol ], - [ sh:description "External ontology IRIs (typically GO, ChEBI, UBERON, CL, MeSH) that this entity is a surrogate / abstraction / model of. Realized as the `tvbo:surrogate_of` object property, carried inline with the YAML data instance. Multiple IRIs allowed: a single parameter may abstract several biological processes (e.g. a synaptic conductance grounding both GO:0060079 (excitatory PSP) and GO:0007268 (chemical synaptic transmission))." ; - sh:nodeKind sh:IRI ; - sh:order 12 ; - sh:path tvbo:surrogate_of ], + sh:order 19 ; + sh:path tvbo:shape ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path dcterms:description ], + sh:order 5 ; + sh:path rdfs:label ], [ sh:datatype xsd:string ; sh:description "Selector into the source. When `source` points at a Network with per-node parameters (or a dscalar with multiple maps), picks which named measure to load. Aligns with names listed in Network.structural_measures / Network.observational_measures. Ignored when the source resolves to a scalar/array dataset." ; sh:maxCount 1 ; @@ -3074,98 +3142,96 @@ tvbo:DerivedParameter a sh:NodeShape ; sh:order 17 ; sh:path tvbo:measure ], [ sh:datatype xsd:string ; + sh:description "Dataset path for array-valued parameters. When set, the parameter value is stored in the binary companion file (HDF5 or Zarr) at this path. The value slot is omitted." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path skos:definition ], - [ sh:description "Numeric, string, or boolean value, OR an array (nested list) for array-valued constants such as mode-coupling coefficient matrices. ScalarValue accepts any literal primitive type, allowing parameters to carry control flags (e.g., booleans) or symbolic placeholders alongside numeric defaults." ; - sh:maxCount 1 ; - sh:or ( [ ] [ ] ) ; - sh:order 7 ; - sh:path schema1:value ], + sh:order 11 ; + sh:path tvbo:dataset_path ], [ sh:class tvbo:Range ; - sh:description "Per-element domain overrides for heterogeneous parameters. When specified, element_domains[i] overrides domain for element i during exploration auto-expansion. Length must match parameter shape (e.g., n_nodes for shape \"(n_nodes,)\"). If not set, all elements share the same domain." ; + sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 21 ; - sh:path tvbo:element_domains ], - [ sh:datatype xsd:string ; + sh:order 9 ; + sh:path tvbo:domain ], + [ sh:datatype xsd:float ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 8 ; - sh:path schema1:defaultValue ], + sh:order 10 ; + sh:path tvbo:reported_optimum ], [ sh:datatype xsd:boolean ; sh:description "Whether a value for this parameter must be supplied. Optional parameters (e.g. a generator's ``seed``) set this to false. Declaration metadata; unset means unconstrained." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 23 ; sh:path tvbo:required ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path rdfs:label ], - [ sh:class tvbo:Distribution ; - sh:description "Distribution for heterogeneous per-node parameter sampling. Implies heterogeneous=true." ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 15 ; - sh:path tvbo:distribution ], [ sh:datatype xsd:string ; sh:description "Declared value type of this parameter, given as a schema range name β€” a primitive (``integer``, ``float``, ``string``, ``uriorcurie``) or a class (e.g. ``Distribution``). Documents the expected type when the parameter is a *declaration* carrying no concrete ``value`` (e.g. a GraphGenerator's typed argument interface). Distinct from ``domain`` (numeric bounds) and ``unit``." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 22 ; - sh:path tvbo:datatype ] ; + sh:path tvbo:datatype ], + [ sh:description "Numeric, string, or boolean value, OR an array (nested list) for array-valued constants such as mode-coupling coefficient matrices. ScalarValue accepts any literal primitive type, allowing parameters to carry control flags (e.g., booleans) or symbolic placeholders alongside numeric defaults." ; + sh:maxCount 1 ; + sh:or ( [ ] [ ] ) ; + sh:order 7 ; + sh:path schema1:value ] ; sh:targetClass tvbo:DerivedParameter . tvbo:Edge a sh:NodeShape ; rdfs:comment "An edge in a network. Two modes: explicit (source+target set, scalar parameters in YAML) or template (no source/target, NΓ—N matrix measure in HDF5). Both coexist in the same edges list." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "Ordered labels for the matrix columns (dim-1) when the matrix is non-square. Row labels (dim-0) are the parent Network's node labels. Stored as HDF5 dimension scales in the companion file." ; + sh:property [ sh:datatype xsd:float ; + sh:description "Connection weight (explicit edges)" ; + sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 19 ; - sh:path tvbo:dimension_labels ], - [ sh:class tvbo:Parameter ; - sh:nodeKind sh:IRI ; - sh:order 2 ; - sh:path tvbo:parameters ], + sh:order 5 ; + sh:path tvbo:weight ], [ sh:datatype xsd:string ; sh:description "Input variable on target node to connect to (e.g., 'c_in'). If not specified, uses first coupling input from target dynamics." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 14 ; sh:path tvbo:target_var ], - [ sh:description "Storage format in HDF5 (template edges only)" ; - sh:in ( "dense" "csr" "coo" ) ; + [ sh:class tvbo:Dynamics ; + sh:description "Dynamics model for this edge. When specified, the edge has its own state variables and ODE (EdgeModel with f in ND.jl). Uses the same Dynamics class as nodes β€” state_variables define edge states, derived_variables define observables, output defines what is visible for plotting/analysis. The coupling_function on Coupling still defines how vertex outputs map to edge outputs for aggregation at vertices." ; sh:maxCount 1 ; - sh:order 9 ; - sh:path tvbo:format ], - [ sh:datatype xsd:boolean ; - sh:description "Self-connections are meaningful" ; + sh:nodeKind sh:IRI ; + sh:order 20 ; + sh:path tvbo:dynamics ], + [ sh:datatype xsd:string ; + sh:description "Unit for matrix values (template edges only)" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 8 ; + sh:path tvbo:unit ], + [ sh:datatype xsd:integer ; + sh:description "Source node ID (set for explicit edges, absent for template edges)" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path tvbo:source ], + [ sh:datatype xsd:boolean ; + sh:description "Self-connections are meaningful" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 11 ; sh:path tvbo:valid_diagonal ], [ sh:datatype xsd:string ; - sh:description "Path or name of the Network whose nodes define the target endpoints (e.g. the columns of a non-square projection matrix such as a gain matrix region β†’ EEG sensors). Also accepts the relative-path sentinel `parent` / `parent/parent` for cross-scale signal flow up the Node.subnetwork hierarchy. One mechanism handles both projection matrices (absolute IRI) and multi-scale boundaries (sentinel)." ; - sh:maxCount 1 ; + sh:description "Ordered labels for the matrix columns (dim-1) when the matrix is non-square. Row labels (dim-0) are the parent Network's node labels. Stored as HDF5 dimension scales in the companion file." ; sh:nodeKind sh:Literal ; - sh:order 18 ; - sh:path tvbo:target_network ], + sh:order 19 ; + sh:path tvbo:dimension_labels ], [ sh:datatype xsd:string ; - sh:description "Output variable from source node to use (e.g., 'x_out'). If not specified, uses first output variable from source dynamics." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 13 ; - sh:path tvbo:source_var ], + sh:order 0 ; + sh:path rdfs:label ], [ sh:datatype xsd:integer ; - sh:description "Source node ID (set for explicit edges, absent for template edges)" ; + sh:description "Target node ID (set for explicit edges, absent for template edges)" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path tvbo:source ], + sh:order 4 ; + sh:path tvbo:target ], [ sh:datatype xsd:boolean ; sh:defaultValue true ; sh:description "All values >= 0" ; @@ -3173,59 +3239,61 @@ tvbo:Edge a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 12 ; sh:path tvbo:non_negative ], - [ sh:datatype xsd:float ; - sh:description "Edge length / tract distance (explicit edges, mm)" ; + [ sh:description "Storage format in HDF5 (template edges only)" ; + sh:in ( "dense" "csr" "coo" ) ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 7 ; - sh:path tvbo:distance ], + sh:order 9 ; + sh:path tvbo:format ], [ sh:datatype xsd:string ; - sh:description "Unit for matrix values (template edges only)" ; + sh:description "Output variable from source node to use (e.g., 'x_out'). If not specified, uses first output variable from source dynamics." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 8 ; - sh:path tvbo:unit ], - [ sh:class tvbo:Coupling ; - sh:description "Coupling function for this edge. Can be a reference (by name) to coupling or inline definition. If not provided, uses experiment's default coupling." ; - sh:maxCount 1 ; + sh:order 13 ; + sh:path tvbo:source_var ], + [ sh:class tvbo:Parameter ; sh:nodeKind sh:IRI ; - sh:order 15 ; - sh:path tvbo:coupling ], - [ sh:datatype xsd:float ; - sh:description "Conduction delay (explicit edges, ms)" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path tvbo:delay ], - [ sh:datatype xsd:float ; - sh:description "Connection weight (explicit edges)" ; + sh:order 2 ; + sh:path tvbo:parameters ], + [ sh:datatype xsd:string ; + sh:description "Path or name of the Network whose nodes define the target endpoints (e.g. the columns of a non-square projection matrix such as a gain matrix region β†’ EEG sensors). Also accepts the relative-path sentinel `parent` / `parent/parent` for cross-scale signal flow up the Node.subnetwork hierarchy. One mechanism handles both projection matrices (absolute IRI) and multi-scale boundaries (sentinel)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path tvbo:weight ], + sh:order 18 ; + sh:path tvbo:target_network ], [ sh:class tvbo:Event ; sh:description "Events attached to this edge (e.g., threshold-based line tripping)." ; sh:nodeKind sh:IRI ; sh:order 21 ; sh:path tvbo:events ], - [ sh:datatype xsd:integer ; - sh:description "Target node ID (set for explicit edges, absent for template edges)" ; + [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path tvbo:target ], + sh:order 1 ; + sh:path dcterms:description ], [ sh:datatype xsd:boolean ; sh:description "Whether the edge is directed. If false, represents a symmetric/bidirectional connection." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 16 ; sh:path tvbo:directed ], + [ sh:class tvbo:Coupling ; + sh:description "Coupling function for this edge. Can be a reference (by name) to coupling or inline definition. If not provided, uses experiment's default coupling." ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 15 ; + sh:path tvbo:coupling ], [ sh:datatype xsd:string ; sh:description "Path or name of the Network whose nodes define the source endpoints of this Edge. Symmetric counterpart to `target_network`. Together they let an Edge bridge any two Networks: both unset (within-Network edge), one set (this Network ↔ the named one), or both set (peer-to-peer projection between two other Networks). Accepts either an absolute IRI (peer Network) or the relative-path sentinel `parent` / `parent/parent` (cross-scale up/down via the Node.subnetwork hierarchy)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 17 ; sh:path tvbo:source_network ], + [ sh:datatype xsd:float ; + sh:description "Conduction delay (explicit edges, ms)" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 6 ; + sh:path tvbo:delay ], [ sh:datatype xsd:boolean ; sh:defaultValue true ; sh:description "Matrix entries carry weights (not just 0/1)" ; @@ -3233,22 +3301,12 @@ tvbo:Edge a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 10 ; sh:path tvbo:weighted ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path dcterms:description ], - [ sh:class tvbo:Dynamics ; - sh:description "Dynamics model for this edge. When specified, the edge has its own state variables and ODE (EdgeModel with f in ND.jl). Uses the same Dynamics class as nodes β€” state_variables define edge states, derived_variables define observables, output defines what is visible for plotting/analysis. The coupling_function on Coupling still defines how vertex outputs map to edge outputs for aggregation at vertices." ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 20 ; - sh:path tvbo:dynamics ], - [ sh:datatype xsd:string ; + [ sh:datatype xsd:float ; + sh:description "Edge length / tract distance (explicit edges, mm)" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path rdfs:label ] ; + sh:order 7 ; + sh:path tvbo:distance ] ; sh:targetClass tvbo:Edge . tvbo:Exploration a sh:NodeShape ; @@ -3260,27 +3318,17 @@ tvbo:Exploration a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 6 ; sh:path tvbo:algorithms ], - [ sh:class tvbo:Parameter ; - sh:description "Hyper-parameters of the exploration itself (e.g. tolerances, sampler settings, grid-refinement controls), keyed by name. Distinct from `space`, which defines what is being swept." ; - sh:nodeKind sh:IRI ; - sh:order 5 ; - sh:path tvbo:parameters ], - [ sh:datatype xsd:string ; - sh:description "Names of observations to compute and record at EACH grid point, stacked over the sweep into one array per name. Entries may be derived observations (e.g. `loss`) or `analysis` diagnostics (e.g. `ad_gradient`, `fd_gradient`, `lyapunov`) β€” this is how a sweep of the diagnostics themselves is declared, replacing any per-point Python driver. Complementary to `observable` (a single scalar reduction); when both are absent the full observation Bunch is recorded." ; - sh:nodeKind sh:Literal ; - sh:order 11 ; - sh:path tvbo:record ], - [ sh:class tvbo:ExplorationAxis ; - sh:description "Exploration axes spanning the search space, keyed by the dotted parameter reference each axis sweeps (e.g. \"ReducedWongWang.w\" or \"FastLinearCoupling.G\"). Insertion order is preserved and defines the grid axis order. Each axis references an existing Parameter and supplies the Range to sweep; no new Parameter is created here." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 4 ; - sh:path tvbo:space ], - [ sh:class tvbo:ExecutionConfig ; - sh:description "Per-exploration execution configuration (overrides experiment-level defaults). Useful for setting random_seed, n_workers for parallel grid search." ; + [ sh:description "How trial-axis parallelism is realised at codegen time. ``vmap`` batches all trials in parallel (fast, peak memory ~n_trials Γ— per-trial working set). ``lax_map`` runs them sequentially via ``jax.lax.map`` (slower, peak memory bounded by one trial). ``pmap`` shards across devices for multi-GPU. ``auto`` (default) picks ``vmap`` when the estimated batched memory fits, ``lax_map`` otherwise." ; + sh:in ( "auto" "vmap" "lax_map" "pmap" ) ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 3 ; - sh:path tvbo:execution ], + sh:order 15 ; + sh:path tvbo:parallel_mode ], + [ sh:defaultValue "independent" ; + sh:description "How each sweep point's initial state is obtained. 'independent' (default) cold-starts every point from the model's initial values, so points are order-independent and may run in parallel (see parallel_mode). 'from_previous' seeds each point from the final state of the preceding point, so the trajectory follows the solution branch as the swept parameter changes quasi-statically; this forces sequential execution (a scan, not a vmap) and, with sweep_direction, exposes hysteresis / multistability. It is forward-integration branch following, not numerical continuation (cf. the Continuation class)." ; + sh:in ( "independent" "from_previous" ) ; + sh:maxCount 1 ; + sh:order 17 ; + sh:path tvbo:sweep_seeding ], [ sh:datatype xsd:string ; sh:defaultValue "product"^^xsd:string ; sh:description "Combination mode: 'product' (full grid), 'zip' (paired)" ; @@ -3288,33 +3336,42 @@ tvbo:Exploration a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 7 ; sh:path tvbo:mode ], + [ sh:datatype xsd:string ; + sh:description "Names of observations to compute and record at EACH grid point, stacked over the sweep into one array per name. Entries may be derived observations (e.g. `loss`) or `analysis` diagnostics (e.g. `ad_gradient`, `fd_gradient`, `lyapunov`) β€” this is how a sweep of the diagnostics themselves is declared, replacing any per-point Python driver. Complementary to `observable` (a single scalar reduction); when both are absent the full observation Bunch is recorded." ; + sh:nodeKind sh:Literal ; + sh:order 11 ; + sh:path tvbo:record ], [ sh:datatype xsd:integer ; sh:description "Chunk size for ``lax_map`` and chunked-``vmap`` modes. ``1`` = strictly sequential (minimum memory). Larger values amortise compile overhead across trials at the cost of memory. Ignored when parallel_mode is ``vmap`` (which always uses the full n_trials axis)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 16 ; sh:path tvbo:parallel_batch_size ], - [ sh:datatype xsd:string ; - sh:description "Names of observations minimised by an adaptive `strategy` (e.g. 'nsga2'). Each entry references an existing observation already framed lower-is-better (e.g. `one_minus_fc`, `psd_mae`). Count sets the semantics: 0 β†’ pure sweep (use `record`), 1 β†’ single-objective, β‰₯2 β†’ multi-objective / Pareto. Ignored when strategy is 'grid'. Forward-compatible with `Search.objectives`." ; - sh:nodeKind sh:Literal ; - sh:order 9 ; - sh:path tvbo:objectives ], - [ sh:datatype xsd:string ; + [ sh:datatype xsd:integer ; + sh:defaultValue 1 ; + sh:description "Number of independent trials per grid point. Each trial uses a different noise seed. Used for averaging stochastic simulations (e.g., VEP = average of 20 trials)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path rdfs:label ], + sh:order 13 ; + sh:path tvbo:n_trials ], + [ sh:class tvbo:ExecutionConfig ; + sh:description "Per-exploration execution configuration (overrides experiment-level defaults). Useful for setting random_seed, n_workers for parallel grid search." ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 3 ; + sh:path tvbo:execution ], [ sh:datatype xsd:string ; - sh:description "Globally unique identifier for the entity." ; + sh:defaultValue "grid"^^xsd:string ; + sh:description "Search strategy over the decision space (the `space` axes). 'grid' (default) exhaustively evaluates the Cartesian/zip grid of axis points β€” today's behaviour. 'nsga2' runs an adaptive multi-objective genetic search (pymoo NSGA-II) that returns the non-dominated Pareto front over `objectives`; axes then supply only decision-variable bounds (domain lo/hi), and per-strategy hyper-parameters (population_size, num_generations, seed, reference_point) live in `parameters`. Extensible later to 'random' / 'sobol' / 'cmaes'. Forward-compatible with the planned unified `Search.strategy` (see dev/unified_search.md)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path schema1:name ], - [ sh:description "How trial-axis parallelism is realised at codegen time. ``vmap`` batches all trials in parallel (fast, peak memory ~n_trials Γ— per-trial working set). ``lax_map`` runs them sequentially via ``jax.lax.map`` (slower, peak memory bounded by one trial). ``pmap`` shards across devices for multi-GPU. ``auto`` (default) picks ``vmap`` when the estimated batched memory fits, ``lax_map`` otherwise." ; - sh:in ( "auto" "vmap" "lax_map" "pmap" ) ; - sh:maxCount 1 ; - sh:order 15 ; - sh:path tvbo:parallel_mode ], + sh:order 8 ; + sh:path tvbo:strategy ], + [ sh:class tvbo:ExplorationAxis ; + sh:description "Exploration axes spanning the search space, keyed by the dotted parameter reference each axis sweeps (e.g. \"ReducedWongWang.w\" or \"FastLinearCoupling.G\"). Insertion order is preserved and defines the grid axis order. Each axis references an existing Parameter and supplies the Range to sweep; no new Parameter is created here." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 4 ; + sh:path tvbo:space ], [ sh:datatype xsd:integer ; sh:defaultValue 1 ; sh:description "Parallel evaluations" ; @@ -3328,64 +3385,71 @@ tvbo:Exploration a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 14 ; sh:path tvbo:average ], + [ sh:class tvbo:FunctionCall ; + sh:description "Observable to compute at each point. Use function: obs_name for simple observation, or function: func_name + arguments for FunctionCall." ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 10 ; + sh:path tvbo:observable ], + [ sh:defaultValue "up" ; + sh:description "Order in which a branch-following axis (sweep_seeding: from_previous) is traversed: 'up' increases the parameter once, 'down' decreases it once, 'bidirectional' increases then decreases over the same values and records both branches β€” a hysteresis loop where they differ. Ignored when sweep_seeding is 'independent'. Applies to a single swept axis." ; + sh:in ( "up" "down" "bidirectional" ) ; + sh:maxCount 1 ; + sh:order 18 ; + sh:path tvbo:sweep_direction ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; sh:path dcterms:description ], - [ sh:datatype xsd:integer ; - sh:defaultValue 1 ; - sh:description "Number of independent trials per grid point. Each trial uses a different noise seed. Used for averaging stochastic simulations (e.g., VEP = average of 20 trials)." ; + [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 13 ; - sh:path tvbo:n_trials ], - [ sh:class tvbo:FunctionCall ; - sh:description "Observable to compute at each point. Use function: obs_name for simple observation, or function: func_name + arguments for FunctionCall." ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 10 ; - sh:path tvbo:observable ], + sh:order 1 ; + sh:path rdfs:label ], [ sh:datatype xsd:string ; - sh:defaultValue "grid"^^xsd:string ; - sh:description "Search strategy over the decision space (the `space` axes). 'grid' (default) exhaustively evaluates the Cartesian/zip grid of axis points β€” today's behaviour. 'nsga2' runs an adaptive multi-objective genetic search (pymoo NSGA-II) that returns the non-dominated Pareto front over `objectives`; axes then supply only decision-variable bounds (domain lo/hi), and per-strategy hyper-parameters (population_size, num_generations, seed, reference_point) live in `parameters`. Extensible later to 'random' / 'sobol' / 'cmaes'. Forward-compatible with the planned unified `Search.strategy` (see dev/unified_search.md)." ; + sh:description "Names of observations minimised by an adaptive `strategy` (e.g. 'nsga2'). Each entry references an existing observation already framed lower-is-better (e.g. `one_minus_fc`, `psd_mae`). Count sets the semantics: 0 β†’ pure sweep (use `record`), 1 β†’ single-objective, β‰₯2 β†’ multi-objective / Pareto. Ignored when strategy is 'grid'. Forward-compatible with `Search.objectives`." ; + sh:nodeKind sh:Literal ; + sh:order 9 ; + sh:path tvbo:objectives ], + [ sh:class tvbo:Parameter ; + sh:description "Hyper-parameters of the exploration itself (e.g. tolerances, sampler settings, grid-refinement controls), keyed by name. Distinct from `space`, which defines what is being swept." ; + sh:nodeKind sh:IRI ; + sh:order 5 ; + sh:path tvbo:parameters ], + [ sh:datatype xsd:string ; + sh:description "Globally unique identifier for the entity." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 8 ; - sh:path tvbo:strategy ] ; + sh:order 0 ; + sh:path schema1:name ] ; sh:targetClass tvbo:Exploration . tvbo:FreeParameter a sh:NodeShape ; rdfs:comment "One degree of freedom in an OptimizationStage. References an existing Parameter by dotted scope (e.g. \"ReducedWongWang.w\" or \"FastLinearCoupling.G\") and supplies optimization-specific metadata (heterogeneous, shape, bounds, initial value). No new Parameter is created here." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "Optional initial value for the optimizer (overrides the referenced Parameter's value)." ; + sh:property [ sh:class tvbo:Parameter ; + sh:description "Dotted reference to the Parameter to optimize. Format: \"<scope>.<param_name>\" where <scope> is either a Dynamics class name or a coupling key." ; sh:maxCount 1 ; - sh:order 5 ; - sh:path tvbo:initial_value ], + sh:minCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path tvbo:parameter ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; sh:path dcterms:description ], + [ sh:description "Optional initial value for the optimizer (overrides the referenced Parameter's value)." ; + sh:maxCount 1 ; + sh:order 5 ; + sh:path tvbo:initial_value ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path rdfs:label ], - [ sh:datatype xsd:string ; - sh:description "Optimization shape as a Python-tuple-style string (e.g. \"(n_nodes,)\" or \"(n_nodes, n_nodes)\"). Required when heterogeneous is true." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path tvbo:shape ], - [ sh:class tvbo:Parameter ; - sh:description "Dotted reference to the Parameter to optimize. Format: \"<scope>.<param_name>\" where <scope> is either a Dynamics class name or a coupling key." ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 2 ; - sh:path tvbo:parameter ], [ sh:class tvbo:Range ; sh:description "Optional bounds (lo, hi) for constrained optimization." ; sh:maxCount 1 ; @@ -3397,18 +3461,23 @@ tvbo:FreeParameter a sh:NodeShape ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 3 ; - sh:path tvbo:heterogeneous ] ; + sh:path tvbo:heterogeneous ], + [ sh:datatype xsd:string ; + sh:description "Optimization shape as a Python-tuple-style string (e.g. \"(n_nodes,)\" or \"(n_nodes, n_nodes)\"). Required when heterogeneous is true." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path tvbo:shape ] ; sh:targetClass tvbo:FreeParameter . tvbo:Node a sh:NodeShape ; rdfs:comment "A node in a network with its own dynamics and properties" ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path dcterms:description ], + sh:property [ sh:class tvbo:Parameter ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path tvbo:parameters ], [ sh:datatype xsd:boolean ; sh:defaultValue true ; sh:description "Whether to include this element in simulation output files. Applicable to state variables (default true), derived variables (default false), and network nodes (default true). Set false to suppress recording." ; @@ -3416,16 +3485,12 @@ tvbo:Node a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 3 ; sh:path tvbo:record ], - [ sh:class tvbo:StateValue ; - sh:description "Per-node initial state variable values, keyed by state variable name." ; - sh:nodeKind sh:IRI ; - sh:order 8 ; - sh:path tvbo:state ], - [ sh:datatype xsd:string ; + [ sh:class tvbo:Dynamics ; + sh:description "Dynamics model governing this node's behavior. Can be a reference (by name) or inline definition. If not provided, uses experiment's dynamics." ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path rdfs:label ], + sh:nodeKind sh:IRI ; + sh:order 5 ; + sh:path tvbo:dynamics ], [ sh:class tvbo:Network ; sh:description "Optional finer-scale Network that \"lives inside\" this Node (network-of-networks / multi-scale primitive). The subnetwork's nodes map (one-to-many) to this single parent Node. Cross-scale signal flow is declared as ordinary Edges in the subnetwork's `edges` list, using `source_network` / `target_network` with the `parent` sentinel to traverse up the hierarchy. The subnetwork may carry its own `graph_generator` (discrete sub-network β€” reservoir, spiking population, jaxley compartments) and/or `mesh` (continuous surface field) β€” one unified slot for reservoirs-per-region, spiking-populations-per-region, cells-per-region, and surface-mesh-patches-per-region. Recursive: a subnetwork's Nodes can themselves carry subnetworks." ; sh:maxCount 1 ; @@ -3438,59 +3503,64 @@ tvbo:Node a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 7 ; sh:path tvbo:region ], - [ sh:class tvbo:Dynamics ; - sh:description "Dynamics model governing this node's behavior. Can be a reference (by name) or inline definition. If not provided, uses experiment's dynamics." ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 5 ; - sh:path tvbo:dynamics ], - [ sh:datatype xsd:integer ; - sh:description "Unique node identifier" ; - sh:maxCount 1 ; - sh:minCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path dcterms:identifier ], - [ sh:class tvbo:Parameter ; - sh:nodeKind sh:IRI ; - sh:order 2 ; - sh:path tvbo:parameters ], [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/Coordinate> ; sh:description "Spatial coordinates (x, y, z) of the node" ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 6 ; sh:path tvbo:position ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path rdfs:label ], [ sh:class tvbo:Event ; sh:description "Events attached to this node (e.g., threshold-based state changes)." ; sh:nodeKind sh:IRI ; sh:order 9 ; - sh:path tvbo:events ] ; + sh:path tvbo:events ], + [ sh:class tvbo:StateValue ; + sh:description "Per-node initial state variable values, keyed by state variable name." ; + sh:nodeKind sh:IRI ; + sh:order 8 ; + sh:path tvbo:state ], + [ sh:datatype xsd:integer ; + sh:description "Unique node identifier" ; + sh:maxCount 1 ; + sh:minCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path dcterms:identifier ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path dcterms:description ] ; sh:targetClass tvbo:Node . tvbo:Parcellation a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "Optional stable IRI (or compact URI) for this entity in an external ontology or knowledge base. Used to load metadata from an external source; not required when the entity is fully self-contained (equations, parameters, etc. defined in the file itself)." ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 1 ; - sh:path dcterms:identifier ], - [ sh:datatype xsd:string ; + sh:property [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path rdfs:label ], + sh:order 2 ; + sh:path tvbo:data_source ], [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/atlas/Atlas> ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; sh:order 3 ; sh:path tvbo:atlas ], + [ sh:description "Optional stable IRI (or compact URI) for this entity in an external ontology or knowledge base. Used to load metadata from an external source; not required when the entity is fully self-contained (equations, parameters, etc. defined in the file itself)." ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path dcterms:identifier ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path tvbo:data_source ] ; + sh:order 0 ; + sh:path rdfs:label ] ; sh:targetClass tvbo:Parcellation . tvbo:ProcedureStep a sh:NodeShape ; @@ -3502,231 +3572,242 @@ tvbo:ProcedureStep a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 1 ; sh:path dcterms:description ], - [ sh:datatype xsd:string ; - sh:description "Globally unique identifier for the entity." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path schema1:name ], [ sh:class tvbo:Equation ; sh:description "The equation defining this step/output." ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 2 ; - sh:path tvbo:equation ] ; + sh:path tvbo:equation ], + [ sh:datatype xsd:string ; + sh:description "Globally unique identifier for the entity." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path schema1:name ] ; sh:targetClass tvbo:ProcedureStep . tvbo:Simulation a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:class tvbo:ExecutionConfig ; - sh:description "Computational execution configuration (parallelization, devices)." ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 22 ; - sh:path tvbo:execution ], - [ sh:class tvbo:Dynamics ; - sh:maxCount 1 ; + sh:property [ sh:class tvbo:Inference ; + sh:description "Bayesian inference configurations (posterior over parameters given an observation, via MCMC). Keyed by name, like optimizations." ; sh:nodeKind sh:IRI ; - sh:order 0 ; - sh:path tvbo:model ], - [ sh:class tvbo:Integrator ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 7 ; - sh:path tvbo:integration ], - [ sh:class <https://w3id.org/tvbo/study/Dataset> ; - sh:description "Multi-subject dataset for workflow rendering. When set, render_workflow() uses dataset.subjects/sessions to generate per-subject parallel jobs." ; + sh:order 18 ; + sh:path tvbo:inferences ], + [ sh:datatype xsd:string ; sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 24 ; - sh:path tvbo:dataset ], - [ sh:class tvbo:Equation ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 4 ; - sh:path tvbo:additional_equations ], - [ sh:class tvbo:Dynamics ; - sh:description "Default dynamics model for all nodes. For heterogeneous networks with multiple dynamics, use network.dynamics instead." ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path rdfs:label ], + [ sh:datatype xsd:string ; sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path dcterms:description ], + [ sh:class tvbo:Algorithm ; + sh:description "Iterative parameter tuning algorithms (FIC, EIB, etc.)" ; sh:nodeKind sh:IRI ; - sh:order 6 ; - sh:path tvbo:dynamics ], - [ sh:class tvbo:Observation ; - sh:description "All observations on this experiment, keyed by name. An Observation is considered derived (computed from other observations rather than directly from state variables) when any item in its multivalued ``source`` slot names another observation in this same dict." ; - sh:nodeKind sh:IRI ; - sh:order 11 ; - sh:path tvbo:observations ], - [ sh:class tvbo:PDE ; + sh:order 19 ; + sh:path tvbo:algorithms ], + [ sh:class tvbo:Network ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 15 ; - sh:path tvbo:field_dynamics ], - [ sh:class tvbo:Optimization ; - sh:description "Parameter optimization configurations" ; + sh:order 8 ; + sh:path tvbo:connectivity ], + [ sh:class tvbo:Coupling ; + sh:maxCount 1 ; sh:nodeKind sh:IRI ; - sh:order 16 ; - sh:path tvbo:optimizations ], + sh:order 10 ; + sh:path tvbo:coupling ], [ sh:class tvbo:Event ; sh:description "Events that apply at the experiment level. For component-level events, attach them to individual nodes or edges instead." ; sh:nodeKind sh:IRI ; sh:order 14 ; sh:path tvbo:events ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path dcterms:description ], - [ sh:class tvbo:Exploration ; - sh:description "Parameter exploration/grid search specifications" ; - sh:nodeKind sh:IRI ; - sh:order 17 ; - sh:path tvbo:explorations ], - [ sh:class tvbo:Stimulus ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 13 ; - sh:path tvbo:stimulation ], [ sh:class <https://w3id.org/tvbo/software/SoftwareEnvironment> ; sh:description "Execution environment (collection of requirements)." ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; sh:order 21 ; sh:path tvbo:environment ], - [ sh:class tvbo:Network ; + [ sh:class tvbo:Function ; + sh:description "Reusable function definitions. Referenced by name in observation pipelines. Enables DRY: define compute_fc once, use in both simulated and empirical paths." ; + sh:nodeKind sh:IRI ; + sh:order 12 ; + sh:path tvbo:functions ], + [ sh:class tvbo:Dynamics ; + sh:description "Default dynamics model for all nodes. For heterogeneous networks with multiple dynamics, use network.dynamics instead." ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 6 ; + sh:path tvbo:dynamics ], + [ sh:datatype xsd:string ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path dcterms:references ], + [ sh:class tvbo:ExecutionConfig ; + sh:description "Computational execution configuration (parallelization, devices)." ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 8 ; - sh:path tvbo:connectivity ], + sh:order 22 ; + sh:path tvbo:execution ], + [ sh:class tvbo:Integrator ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 7 ; + sh:path tvbo:integration ], [ sh:class tvbo:Continuation ; sh:description "Numerical continuation and bifurcation analysis specifications. Each entry defines a continuation experiment (equilibrium branch, codim-2 curve, periodic orbit family, etc.). # Either reference a full reusable environment (preferred) or, for" ; sh:nodeKind sh:IRI ; sh:order 20 ; sh:path tvbo:continuations ], - [ sh:class tvbo:Algorithm ; - sh:description "Iterative parameter tuning algorithms (FIC, EIB, etc.)" ; + [ sh:class tvbo:Dynamics ; + sh:maxCount 1 ; sh:nodeKind sh:IRI ; - sh:order 19 ; - sh:path tvbo:algorithms ], - [ sh:datatype xsd:string ; - sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path dcterms:references ], + sh:order 0 ; + sh:path tvbo:model ], + [ sh:class tvbo:Stimulus ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 13 ; + sh:path tvbo:stimulation ], [ sh:class tvbo:Network ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 9 ; sh:path tvbo:network ], - [ sh:class tvbo:Function ; - sh:description "Reusable function definitions. Referenced by name in observation pipelines. Enables DRY: define compute_fc once, use in both simulated and empirical paths." ; - sh:nodeKind sh:IRI ; - sh:order 12 ; - sh:path tvbo:functions ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path rdfs:label ], - [ sh:class tvbo:Coupling ; + [ sh:class tvbo:PDE ; sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 15 ; + sh:path tvbo:field_dynamics ], + [ sh:class tvbo:Observation ; + sh:description "All observations on this experiment, keyed by name. An Observation is considered derived (computed from other observations rather than directly from state variables) when any item in its multivalued ``source`` slot names another observation in this same dict." ; sh:nodeKind sh:IRI ; - sh:order 10 ; - sh:path tvbo:coupling ], - [ sh:class tvbo:Inference ; - sh:description "Bayesian inference configurations (posterior over parameters given an observation, via MCMC). Keyed by name, like optimizations." ; - sh:nodeKind sh:IRI ; - sh:order 18 ; - sh:path tvbo:inferences ], + sh:order 11 ; + sh:path tvbo:observations ], + [ sh:class tvbo:Equation ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 4 ; + sh:path tvbo:additional_equations ], [ sh:datatype xsd:integer ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; sh:path dcterms:identifier ], + [ sh:class tvbo:WorkflowConfig ; + sh:description "Orchestration for distributing this experiment's sweep across a workflow engine. Refines the study's ``workflow`` block: only the fields it sets take precedence, the rest are inherited. Use it to give one experiment its own shard count or resources." ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 25 ; + sh:path tvbo:workflow ], [ sh:class <https://w3id.org/tvbo/software/SoftwareRequirement> ; sh:description "(Deprecated) Single software requirement; prefer 'environment' with aggregated requirements." ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; sh:order 23 ; - sh:path tvbo:software ] ; + sh:path tvbo:software ], + [ sh:class tvbo:Exploration ; + sh:description "Parameter exploration/grid search specifications" ; + sh:nodeKind sh:IRI ; + sh:order 17 ; + sh:path tvbo:explorations ], + [ sh:class <https://w3id.org/tvbo/study/Dataset> ; + sh:description "Multi-subject dataset for workflow rendering. When set, render_workflow() uses dataset.subjects/sessions to generate per-subject parallel jobs." ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 24 ; + sh:path tvbo:dataset ], + [ sh:class tvbo:Optimization ; + sh:description "Parameter optimization configurations" ; + sh:nodeKind sh:IRI ; + sh:order 16 ; + sh:path tvbo:optimizations ] ; sh:targetClass tvbo:Simulation . tvbo:Stimulus a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:integer ; - sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path tvbo:regions ], - [ sh:class tvbo:Parameter ; + sh:property [ sh:class tvbo:Parameter ; sh:nodeKind sh:IRI ; sh:order 1 ; sh:path tvbo:parameters ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path rdfs:label ], [ sh:datatype xsd:string ; sh:description "Add the location of the data file containing the parcellation terminology." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 3 ; sh:path <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], - [ sh:class tvbo:Equation ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 0 ; - sh:path tvbo:Equation ], - [ sh:datatype xsd:float ; - sh:defaultValue "1000.0"^^xsd:float ; + [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path tvbo:duration ], + sh:order 2 ; + sh:path dcterms:description ], [ sh:datatype xsd:float ; sh:nodeKind sh:Literal ; sh:order 7 ; sh:path tvbo:weighting ], + [ sh:datatype xsd:integer ; + sh:nodeKind sh:Literal ; + sh:order 6 ; + sh:path tvbo:regions ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path dcterms:description ], + sh:order 5 ; + sh:path rdfs:label ], + [ sh:class tvbo:Equation ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 0 ; + sh:path tvbo:Equation ], [ sh:class tvbo:Noise ; sh:description "Optional stochastic contribution to the stimulus. Mirrors state_variables.noise on the Dynamics side. The stimulus value at each integration step is the sum of `equation`'s evaluation (deterministic, if set) and a draw from this Noise process. When only `noise` is set and `equation` is absent, the stimulus IS the noise (pure stochastic source β€” e.g. iid uniform driver for memory-capacity benchmarks; signal+noise paradigms for psychophysics)." ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 8 ; - sh:path tvbo:noise ] ; + sh:path tvbo:noise ], + [ sh:datatype xsd:float ; + sh:defaultValue "1000.0"^^xsd:float ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path tvbo:duration ] ; sh:targetClass tvbo:Stimulus . tvbo:TimeSeries a sh:NodeShape ; rdfs:comment "Time series data from simulations or measurements. Supports BIDS-compatible export for computational modeling (BEP034)." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "BIDS ModelEq reference: path to _eq.xml LEMS file." ; + sh:property [ sh:datatype xsd:float ; + sh:description "Time between samples (inverse of sampling_rate)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 19 ; - sh:path tvbo:model_equation_ref ], + sh:order 6 ; + sh:path tvbo:sampling_period ], [ sh:datatype xsd:string ; - sh:description "BIDS session identifier." ; + sh:description "BIDS ModelParam reference: path to _param.xml LEMS file." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 16 ; - sh:path dcterms:identifier ], + sh:order 20 ; + sh:path tvbo:model_param_ref ], + [ sh:datatype xsd:string ; + sh:description "Reference to connectivity data (_conndata-network_connectivity.tsv)." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 21 ; + sh:path tvbo:connectivity_ref ], [ sh:datatype xsd:float ; sh:description "Sampling rate in Hz." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 5 ; sh:path tvbo:sampling_rate ], - [ sh:datatype xsd:dateTime ; - sh:description "Timestamp when this TimeSeries was generated." ; + [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 12 ; - sh:path tvbo:generated_at ], + sh:order 0 ; + sh:path rdfs:label ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; @@ -3738,45 +3819,52 @@ tvbo:TimeSeries a sh:NodeShape ; sh:nodeKind sh:IRI ; sh:order 13 ; sh:path tvbo:software_environment ], + [ sh:class tvbo:Matrix ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 4 ; + sh:path tvbo:time ], [ sh:datatype xsd:string ; - sh:description "Reference to connectivity data (_conndata-network_connectivity.tsv)." ; + sh:description "BIDS task name for the simulation (e.g., 'rest', 'simulation')." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 21 ; - sh:path tvbo:connectivity_ref ], - [ sh:description "Imaging modality or simulation output type." ; - sh:in ( "BOLD" "EEG" "MEG" "SEEG" "IEEG" ) ; + sh:order 14 ; + sh:path tvbo:task_name ], + [ sh:datatype xsd:string ; + sh:description "Mapping of dimension names to their labels (JSON-encoded dict)." ; sh:maxCount 1 ; - sh:order 18 ; - sh:path tvbo:modality ], - [ sh:datatype xsd:integer ; - sh:description "BIDS run number." ; + sh:nodeKind sh:Literal ; + sh:order 10 ; + sh:path tvbo:labels_dimensions ], + [ sh:datatype xsd:string ; + sh:description "BIDS session identifier." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 17 ; + sh:order 16 ; + sh:path dcterms:identifier ], + [ sh:datatype xsd:string ; + sh:description "BIDS subject identifier." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 15 ; sh:path dcterms:identifier ], [ sh:datatype xsd:string ; sh:description "Ordering of dimensions: Time, State Variable, Space, Mode." ; sh:nodeKind sh:Literal ; sh:order 9 ; sh:path tvbo:labels_ordering ], - [ sh:class tvbo:Matrix ; + [ sh:datatype xsd:string ; + sh:description "Physical unit of the time series values." ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 3 ; - sh:path tvbo:data ], + sh:nodeKind sh:Literal ; + sh:order 8 ; + sh:path qudt:unit ], [ sh:datatype xsd:string ; sh:description "Add the location of the data file containing the parcellation terminology." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; sh:path <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], - [ sh:datatype xsd:string ; - sh:description "BIDS subject identifier." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 15 ; - sh:path dcterms:identifier ], [ sh:datatype xsd:string ; sh:defaultValue "ms"^^xsd:string ; sh:description "Unit of the sampling period (e.g., 'ms', 's')." ; @@ -3784,118 +3872,177 @@ tvbo:TimeSeries a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 7 ; sh:path tvbo:sampling_period_unit ], + [ sh:datatype xsd:integer ; + sh:description "BIDS run number." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 17 ; + sh:path dcterms:identifier ], + [ sh:description "Imaging modality or simulation output type." ; + sh:in ( "BOLD" "EEG" "MEG" "SEEG" "IEEG" ) ; + sh:maxCount 1 ; + sh:order 18 ; + sh:path tvbo:modality ], [ sh:datatype xsd:string ; - sh:description "BIDS ModelParam reference: path to _param.xml LEMS file." ; + sh:description "BIDS ModelEq reference: path to _eq.xml LEMS file." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 20 ; - sh:path tvbo:model_param_ref ], + sh:order 19 ; + sh:path tvbo:model_equation_ref ], [ sh:class tvbo:Simulation ; sh:description "Reference to the SimulationExperiment that generated this TimeSeries." ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; sh:order 11 ; sh:path tvbo:source_experiment ], - [ sh:datatype xsd:string ; - sh:description "BIDS task name for the simulation (e.g., 'rest', 'simulation')." ; + [ sh:class tvbo:Matrix ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 14 ; - sh:path tvbo:task_name ], - [ sh:datatype xsd:string ; - sh:description "Mapping of dimension names to their labels (JSON-encoded dict)." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 3 ; + sh:path tvbo:data ], + [ sh:datatype xsd:dateTime ; + sh:description "Timestamp when this TimeSeries was generated." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 10 ; - sh:path tvbo:labels_dimensions ], - [ sh:datatype xsd:string ; - sh:description "Physical unit of the time series values." ; + sh:order 12 ; + sh:path tvbo:generated_at ] ; + sh:targetClass tvbo:TimeSeries . + +tvbo:WorkflowConfig a sh:NodeShape ; + rdfs:comment "Declarative orchestration for rendering a parameter sweep into a distributed, reproducible workflow (Slurm array, Snakemake, Nextflow). Backend- and engine-independent: it names *what* to distribute, *where* results go, and the per-engine resources, while each engine emitter renders the concrete artefact. Declared on a study as ``workflow`` and refined per experiment via ``workflow_overrides``; unset fields fall back to the emitter's defaults so an override sets only what it names." ; + sh:closed true ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:datatype xsd:string ; + sh:description "Random-seed policy across shards. ``deterministic`` (the default when unset) derives each task's seed from its shard index so the fan-out is reproducible." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 8 ; - sh:path qudt:unit ], - [ sh:class tvbo:Matrix ; + sh:order 3 ; + sh:path tvbo:rng ], + [ sh:datatype xsd:boolean ; + sh:description "Whether to emit provenance sidecars alongside results. Unset means enabled." ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; + sh:nodeKind sh:Literal ; sh:order 4 ; - sh:path tvbo:time ], - [ sh:datatype xsd:float ; - sh:description "Time between samples (inverse of sampling_rate)." ; + sh:path tvbo:provenance ], + [ sh:class <https://w3id.org/tvbo/software/SoftwareRequirement> ; + sh:description "Software requirements for the workflow environment; overrides ``experiment.environment.requirements`` when set." ; + sh:nodeKind sh:IRI ; + sh:order 7 ; + sh:path tvbo:requirements ], + [ sh:datatype xsd:string ; + sh:description "Container image wrapping each task (Apptainer/Singularity/Docker reference); tasks run as ``<runtime> exec <image> …``." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path tvbo:sampling_period ], + sh:order 1 ; + sh:path tvbo:container ], [ sh:datatype xsd:string ; + sh:description "Output directory template. ``{study}`` and ``{experiment}`` are substituted with the study and experiment keys at emit time. Unset means ``out/{study}/{experiment}``." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; - sh:path rdfs:label ] ; - sh:targetClass tvbo:TimeSeries . - -<https://w3id.org/tvbo/dbs/Electrode> a sh:NodeShape ; - rdfs:comment "Implanted DBS electrode and contact geometry." ; - sh:closed true ; - sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/Coordinate> ; + sh:path tvbo:out_dir ], + [ sh:class tvbo:WorkflowEngineConfig ; + sh:description "Snakemake execution directives." ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 9 ; + sh:path tvbo:snakemake ], + [ sh:class tvbo:DistributionConfig ; + sh:description "How exploration axes map onto the vectorized vs fanned-out tiers." ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 6 ; - sh:path <https://w3id.org/tvbo/dbs/tail> ], - [ sh:class <https://w3id.org/tvbo/dbs/Contact> ; - sh:description "List of physical contacts along the electrode" ; + sh:path tvbo:distribute ], + [ sh:class tvbo:WorkflowEngineConfig ; + sh:description "Slurm sbatch directives for array-job execution." ; + sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 4 ; - sh:path <https://w3id.org/tvbo/dbs/contacts> ], - [ sh:datatype xsd:string ; + sh:order 8 ; + sh:path tvbo:slurm ], + [ sh:datatype xsd:integer ; + sh:description "Default shard count used when ``distribute.chunk`` is unset (see DistributionConfig.chunk)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path tvbo:chunk ], + [ sh:class tvbo:WorkflowEngineConfig ; + sh:description "Nextflow execution directives." ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; sh:order 10 ; - sh:path <https://w3id.org/tvbo/dbs/recon_path> ], - [ sh:datatype xsd:string ; + sh:path tvbo:nextflow ], + [ sh:datatype xsd:integer ; + sh:description "Automatic retries per failed task. Unset means none." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; - sh:path <https://w3id.org/tvbo/dbs/model> ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path <https://w3id.org/tvbo/dbs/manufacturer> ], - [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/Coordinate> ; + sh:path tvbo:retries ] ; + sh:targetClass tvbo:WorkflowConfig . + +<https://w3id.org/tvbo/dbs/Electrode> a sh:NodeShape ; + rdfs:comment "Implanted DBS electrode and contact geometry." ; + sh:closed true ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/Coordinate> ; sh:description "The planned trajectory for electrode implantation" ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 7 ; sh:path <https://w3id.org/tvbo/dbs/trajectory> ], - [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/atlas/Transformation> ; - sh:description "Coordinate space used for implantation planning" ; + [ sh:datatype xsd:string ; sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 9 ; - sh:path <https://w3id.org/tvbo/dbs/coordinate_space> ], + sh:nodeKind sh:Literal ; + sh:order 10 ; + sh:path <https://w3id.org/tvbo/dbs/recon_path> ], [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/Coordinate> ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 5 ; - sh:path <https://w3id.org/tvbo/dbs/head> ], + sh:order 6 ; + sh:path <https://w3id.org/tvbo/dbs/tail> ], [ sh:datatype xsd:string ; sh:description "Unique identifier for this electrode" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path dcterms:identifier ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path <https://w3id.org/tvbo/dbs/model> ], [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/atlas/Region> ; sh:description "Anatomical target structure from a brain atlas" ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; sh:order 8 ; sh:path <https://w3id.org/tvbo/dbs/target_structure> ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path <https://w3id.org/tvbo/dbs/manufacturer> ], [ sh:datatype xsd:string ; sh:defaultValue "left"^^xsd:string ; sh:description "Hemisphere of electrode (left/right)" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 3 ; - sh:path <https://w3id.org/tvbo/dbs/hemisphere> ] ; + sh:path <https://w3id.org/tvbo/dbs/hemisphere> ], + [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/atlas/Transformation> ; + sh:description "Coordinate space used for implantation planning" ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 9 ; + sh:path <https://w3id.org/tvbo/dbs/coordinate_space> ], + [ sh:class <https://w3id.org/tvbo/dbs/Contact> ; + sh:description "List of physical contacts along the electrode" ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 4 ; + sh:path <https://w3id.org/tvbo/dbs/contacts> ], + [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/Coordinate> ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 5 ; + sh:path <https://w3id.org/tvbo/dbs/head> ] ; sh:targetClass <https://w3id.org/tvbo/dbs/Electrode> . <https://w3id.org/tvbo/study/Session> a sh:NodeShape ; @@ -3903,34 +4050,34 @@ tvbo:TimeSeries a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "Human-readable session label." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path rdfs:label ], - [ sh:datatype xsd:string ; - sh:description "Experimental condition label (e.g., 'rest', 'task-nback'). Maps to BIDS 'task-' entity." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path <https://w3id.org/tvbo/study/condition> ], - [ sh:datatype xsd:string ; sh:description "Path to session-specific connectome. Overrides Subject.network when set. Relative to dataset root or BIDS derivatives." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; sh:path <https://w3id.org/tvbo/study/network> ], + [ sh:datatype xsd:string ; + sh:description "BIDS session identifier (without 'ses-' prefix). Examples: 'baseline', '6month', 'pre', 'post'." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path dcterms:identifier ], [ sh:datatype xsd:string ; sh:description "Paths to empirical recordings for this session (e.g., BOLD time series, MEG/EEG). Relative to dataset root." ; sh:nodeKind sh:Literal ; sh:order 3 ; sh:path <https://w3id.org/tvbo/study/empirical_data> ], [ sh:datatype xsd:string ; - sh:description "BIDS session identifier (without 'ses-' prefix). Examples: 'baseline', '6month', 'pre', 'post'." ; + sh:description "Experimental condition label (e.g., 'rest', 'task-nback'). Maps to BIDS 'task-' entity." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path dcterms:identifier ] ; + sh:order 4 ; + sh:path <https://w3id.org/tvbo/study/condition> ], + [ sh:datatype xsd:string ; + sh:description "Human-readable session label." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path rdfs:label ] ; sh:targetClass <https://w3id.org/tvbo/study/Session> . <http://uri.interlex.org/tgbugs/uris/readable/atlas/Region> a sh:NodeShape ; @@ -3938,73 +4085,73 @@ tvbo:TimeSeries a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "Globally unique identifier for the entity." ; + sh:description "Enter any alternate names, including abbreviations, for this entity." ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path <http://uri.interlex.org/tgbugs/uris/readable/atlas/hasName> ], + [ sh:datatype xsd:integer ; + sh:description "Enter the label used for looking up this entity in the parcellation terminology." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path schema1:name ], + sh:order 2 ; + sh:path <http://uri.interlex.org/tgbugs/uris/readable/atlas/lookupLabel> ], [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/atlas/Region> ; sh:description "Add all anatomical parent structures for this entity as defined within the corresponding brain atlas." ; sh:nodeKind sh:IRI ; sh:order 3 ; sh:path <http://uri.interlex.org/tgbugs/uris/readable/atlas/hasParent> ], + [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/Coordinate> ; + sh:description "Add the center coordinate of this entity." ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 10 ; + sh:path <http://uri.interlex.org/tgbugs/uris/readable/center> ], + [ sh:datatype xsd:string ; + sh:description "Enter the version identifier of this brain atlas or coordinate space version." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 6 ; + sh:path dcterms:hasVersion ], [ sh:datatype xsd:string ; sh:description "Enter the internationalized resource identifier (IRI) to the related ontological terms." ; sh:nodeKind sh:Literal ; sh:order 5 ; sh:path <http://uri.interlex.org/tgbugs/uris/readable/atlas/hasIlxId> ], + [ sh:description "Add the hemisphere of this entity." ; + sh:in ( "left" "right" "both" ) ; + sh:maxCount 1 ; + sh:order 9 ; + sh:path <http://uri.interlex.org/tgbugs/uris/readable/hemisphere> ], [ sh:datatype xsd:string ; - sh:description "Enter the version identifier of this brain atlas or coordinate space version." ; + sh:description "Slot for the abbreviation of a resource." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path dcterms:hasVersion ], + sh:order 0 ; + sh:path skos:notation ], [ sh:datatype xsd:string ; sh:description "Add the related anatomical entity as defined by the UBERON ontology." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 7 ; sh:path <http://uri.interlex.org/tgbugs/uris/readable/relatedUBERONTerm> ], - [ sh:datatype xsd:integer ; - sh:description "Enter the label used for looking up this entity in the parcellation terminology." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path <http://uri.interlex.org/tgbugs/uris/readable/atlas/lookupLabel> ], [ sh:datatype xsd:integer ; sh:description "Add the original label of this entity as defined in the parcellation terminology." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 8 ; sh:path <http://uri.interlex.org/tgbugs/uris/readable/originalLookupLabel> ], - [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/Coordinate> ; - sh:description "Add the center coordinate of this entity." ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 10 ; - sh:path <http://uri.interlex.org/tgbugs/uris/readable/center> ], - [ sh:datatype xsd:string ; - sh:description "Enter any alternate names, including abbreviations, for this entity." ; - sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path <http://uri.interlex.org/tgbugs/uris/readable/atlas/hasName> ], [ sh:datatype xsd:string ; - sh:description "Slot for the abbreviation of a resource." ; + sh:description "Add the color code used for visual representation of this entity." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path skos:notation ], - [ sh:description "Add the hemisphere of this entity." ; - sh:in ( "left" "right" "both" ) ; - sh:maxCount 1 ; - sh:order 9 ; - sh:path <http://uri.interlex.org/tgbugs/uris/readable/hemisphere> ], + sh:order 11 ; + sh:path <http://uri.interlex.org/tgbugs/uris/readable/color> ], [ sh:datatype xsd:string ; - sh:description "Add the color code used for visual representation of this entity." ; + sh:description "Globally unique identifier for the entity." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 11 ; - sh:path <http://uri.interlex.org/tgbugs/uris/readable/color> ] ; + sh:order 4 ; + sh:path schema1:name ] ; sh:targetClass <http://uri.interlex.org/tgbugs/uris/readable/atlas/Region> . tvbo:Aggregation a sh:NodeShape ; @@ -4028,152 +4175,147 @@ tvbo:Integrator a sh:NodeShape ; rdfs:comment "Fixed-step or adaptive ODE integrator with TVB-specific extensions (noise, transient time, etc.). Inherits abs_tol, rel_tol from Solver. Overrides method default to 'euler'." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:defaultValue "ms" ; - sh:description "Time unit for the integration / simulation. Determines the physical time meaning of one model time-step." ; - sh:in ( qudt:SEC qudt:MilliSEC qudt:MicroSEC qudt:PER-SEC qudt:PER-MilliSEC qudt:HZ qudt:KiloHZ qudt:V qudt:MilliV qudt:PER-MilliV qudt:MilliV-PER-MilliSEC qudt:MilliV-PER-SEC qudt:A qudt:NanoA qudt:PicoA "uA_per_cm2" qudt:PicoFARAD qudt:NanoFARAD "uF_per_cm2" qudt:NanoS qudt:MicroS qudt:PicoS "S_per_cm2" "mS_per_cm2" "S_per_m2" "nS_per_mV" qudt:PER-NanoC qudt:PER-PicoC qudt:MOL-PER-M3 "mol_per_cm3" qudt:MilliMOL-PER-M3 "mol_per_m_per_A_per_s" qudt:MicroM3 qudt:M qudt:MilliM qudt:CentiM qudt:M-PER-SEC qudt:MilliM-PER-MilliSEC "Hz_per_nA" qudt:S-PER-M qudt:H-PER-M qudt:OHM "Mohm" "kohm_cm" qudt:DEG_C "rad_per_ms" qudt:UNITLESS qudt:PERCENT "arbitrary_unit" qudt:KiloGM "kg_per_s" qudt:M-PER-SEC2 qudt:N-PER-M qudt:RAD qudt:RAD-PER-SEC qudt:SEC2 "per_unit" ) ; + sh:property [ sh:datatype xsd:boolean ; sh:maxCount 1 ; - sh:order 0 ; - sh:path tvbo:time_scale ], + sh:nodeKind sh:Literal ; + sh:order 11 ; + sh:path tvbo:scipy_ode_base ], + [ sh:defaultValue "per_step" ; + sh:description "Backend-neutral numerical treatment of the network coupling term across the stages of a multi-stage integrator (Heun, RK4, ...): re-evaluated at every stage (per_stage β€” standard ODE accuracy) or computed once per step and held constant across stages (per_step β€” a TVB-style efficiency shortcut). Single- stage methods (Euler) and always-recompute solvers (diffrax) ignore it. per_stage is required to match reference integrators for stiff / chaotic / multistable systems, where the frozen- coupling error can select a different trajectory or attractor. See CouplingStageEvaluation." ; + sh:in ( "per_stage" "per_step" ) ; + sh:maxCount 1 ; + sh:order 17 ; + sh:path tvbo:coupling_evaluation ], + [ sh:datatype xsd:string ; + sh:defaultValue "euler"^^xsd:string ; + sh:description "Integration method (euler, heun, rk4, etc.)" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path tvbo:method ], [ sh:datatype xsd:boolean ; sh:defaultValue true ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 15 ; sh:path tvbo:delayed ], - [ sh:datatype xsd:float ; - sh:defaultValue "0.01220703125"^^xsd:float ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path tvbo:step_size ], - [ sh:datatype xsd:boolean ; + [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 11 ; - sh:path tvbo:scipy_ode_base ], - [ sh:description "Physical unit of measurement. Values are drawn from the QUDT ontology (http://qudt.org/vocab/unit/) with UO cross-references where available." ; - sh:in ( qudt:SEC qudt:MilliSEC qudt:MicroSEC qudt:PER-SEC qudt:PER-MilliSEC qudt:HZ qudt:KiloHZ qudt:V qudt:MilliV qudt:PER-MilliV qudt:MilliV-PER-MilliSEC qudt:MilliV-PER-SEC qudt:A qudt:NanoA qudt:PicoA "uA_per_cm2" qudt:PicoFARAD qudt:NanoFARAD "uF_per_cm2" qudt:NanoS qudt:MicroS qudt:PicoS "S_per_cm2" "mS_per_cm2" "S_per_m2" "nS_per_mV" qudt:PER-NanoC qudt:PER-PicoC qudt:MOL-PER-M3 "mol_per_cm3" qudt:MilliMOL-PER-M3 "mol_per_m_per_A_per_s" qudt:MicroM3 qudt:M qudt:MilliM qudt:CentiM qudt:M-PER-SEC qudt:MilliM-PER-MilliSEC "Hz_per_nA" qudt:S-PER-M qudt:H-PER-M qudt:OHM "Mohm" "kohm_cm" qudt:DEG_C "rad_per_ms" qudt:UNITLESS qudt:PERCENT "arbitrary_unit" qudt:KiloGM "kg_per_s" qudt:M-PER-SEC2 qudt:N-PER-M qudt:RAD qudt:RAD-PER-SEC qudt:SEC2 "per_unit" ) ; - sh:maxCount 1 ; - sh:order 1 ; - sh:path qudt:unit ], + sh:order 4 ; + sh:path dcterms:description ], [ sh:datatype xsd:float ; + sh:nodeKind sh:Literal ; + sh:order 9 ; + sh:path tvbo:state_wise_sigma ], + [ sh:datatype xsd:integer ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 10 ; - sh:path tvbo:transient_time ], + sh:order 7 ; + sh:path tvbo:steps ], [ sh:class tvbo:Differentiation ; sh:description "Backend-neutral strategy for propagating gradients through the temporal integration (e.g. truncated backprop-through-time)." ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 16 ; sh:path tvbo:differentiation ], - [ sh:datatype xsd:integer ; + [ sh:description "Physical unit of measurement. Values are drawn from the QUDT ontology (http://qudt.org/vocab/unit/) with UO cross-references where available." ; + sh:in ( qudt:SEC qudt:MilliSEC qudt:MicroSEC qudt:PER-SEC qudt:PER-MilliSEC qudt:HZ qudt:KiloHZ qudt:V qudt:MilliV qudt:PER-MilliV qudt:MilliV-PER-MilliSEC qudt:MilliV-PER-SEC qudt:A qudt:NanoA qudt:PicoA "uA_per_cm2" qudt:PicoFARAD qudt:NanoFARAD "uF_per_cm2" qudt:NanoS qudt:MicroS qudt:PicoS "S_per_cm2" "mS_per_cm2" "S_per_m2" "nS_per_mV" qudt:PER-NanoC qudt:PER-PicoC qudt:MOL-PER-M3 "mol_per_cm3" qudt:MilliMOL-PER-M3 "mol_per_m_per_A_per_s" qudt:MicroM3 qudt:M qudt:MilliM qudt:CentiM qudt:M-PER-SEC qudt:MilliM-PER-MilliSEC "Hz_per_nA" qudt:S-PER-M qudt:H-PER-M qudt:OHM "Mohm" "kohm_cm" qudt:DEG_C "rad_per_ms" qudt:UNITLESS qudt:PERCENT "arbitrary_unit" qudt:KiloGM "kg_per_s" qudt:KiloGM-M2 qudt:M-PER-SEC2 qudt:N-PER-M qudt:RAD qudt:RAD-PER-SEC qudt:SEC2 qudt:W qudt:MegaW "per_unit" ) ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 7 ; - sh:path tvbo:steps ], - [ sh:class tvbo:DerivedVariable ; + sh:order 1 ; + sh:path qudt:unit ], + [ sh:defaultValue "ms" ; + sh:description "Time unit for the integration / simulation. Determines the physical time meaning of one model time-step." ; + sh:in ( qudt:SEC qudt:MilliSEC qudt:MicroSEC qudt:PER-SEC qudt:PER-MilliSEC qudt:HZ qudt:KiloHZ qudt:V qudt:MilliV qudt:PER-MilliV qudt:MilliV-PER-MilliSEC qudt:MilliV-PER-SEC qudt:A qudt:NanoA qudt:PicoA "uA_per_cm2" qudt:PicoFARAD qudt:NanoFARAD "uF_per_cm2" qudt:NanoS qudt:MicroS qudt:PicoS "S_per_cm2" "mS_per_cm2" "S_per_m2" "nS_per_mV" qudt:PER-NanoC qudt:PER-PicoC qudt:MOL-PER-M3 "mol_per_cm3" qudt:MilliMOL-PER-M3 "mol_per_m_per_A_per_s" qudt:MicroM3 qudt:M qudt:MilliM qudt:CentiM qudt:M-PER-SEC qudt:MilliM-PER-MilliSEC "Hz_per_nA" qudt:S-PER-M qudt:H-PER-M qudt:OHM "Mohm" "kohm_cm" qudt:DEG_C "rad_per_ms" qudt:UNITLESS qudt:PERCENT "arbitrary_unit" qudt:KiloGM "kg_per_s" qudt:KiloGM-M2 qudt:M-PER-SEC2 qudt:N-PER-M qudt:RAD qudt:RAD-PER-SEC qudt:SEC2 qudt:W qudt:MegaW "per_unit" ) ; sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 14 ; - sh:path tvbo:update_expression ], + sh:order 0 ; + sh:path tvbo:time_scale ], [ sh:datatype xsd:float ; sh:defaultValue "1e-10"^^xsd:float ; - sh:description "Relative tolerance for adaptive solvers." ; + sh:description "Absolute tolerance for adaptive solvers." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 18 ; - sh:path tvbo:rel_tol ], - [ sh:datatype xsd:float ; - sh:defaultValue "1e-10"^^xsd:float ; - sh:description "Absolute tolerance for adaptive solvers." ; + sh:path tvbo:abs_tol ], + [ sh:datatype xsd:integer ; + sh:defaultValue 1 ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 17 ; - sh:path tvbo:abs_tol ], - [ sh:datatype xsd:string ; + sh:order 12 ; + sh:path tvbo:number_of_stages ], + [ sh:datatype xsd:float ; + sh:defaultValue "0.01220703125"^^xsd:float ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path dcterms:description ], + sh:order 6 ; + sh:path tvbo:step_size ], [ sh:datatype xsd:float ; - sh:defaultValue "1000.0"^^xsd:float ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path tvbo:duration ], + sh:order 10 ; + sh:path tvbo:transient_time ], + [ sh:class tvbo:Noise ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 8 ; + sh:path tvbo:noise ], [ sh:datatype xsd:float ; + sh:defaultValue "1e-10"^^xsd:float ; + sh:description "Relative tolerance for adaptive solvers." ; + sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 9 ; - sh:path tvbo:state_wise_sigma ], + sh:order 19 ; + sh:path tvbo:rel_tol ], [ sh:class tvbo:Parameter ; sh:nodeKind sh:IRI ; sh:order 2 ; sh:path tvbo:parameters ], - [ sh:datatype xsd:string ; - sh:defaultValue "euler"^^xsd:string ; - sh:description "Integration method (euler, heun, rk4, etc.)" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path tvbo:method ], [ sh:class tvbo:DerivedVariable ; sh:nodeKind sh:IRI ; sh:order 13 ; sh:path tvbo:intermediate_expressions ], - [ sh:class tvbo:Noise ; + [ sh:class tvbo:DerivedVariable ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 8 ; - sh:path tvbo:noise ], - [ sh:datatype xsd:integer ; - sh:defaultValue 1 ; + sh:nodeKind sh:IRI ; + sh:order 14 ; + sh:path tvbo:update_expression ], + [ sh:datatype xsd:float ; + sh:defaultValue "1000.0"^^xsd:float ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 12 ; - sh:path tvbo:number_of_stages ] ; + sh:order 3 ; + sh:path tvbo:duration ] ; sh:targetClass tvbo:Integrator . tvbo:Matrix a sh:NodeShape ; rdfs:comment "Adjacency matrix of a network." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:float ; - sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path tvbo:values ], - [ sh:class tvbo:BrainRegionSeries ; + sh:property [ sh:class tvbo:BrainRegionSeries ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 4 ; sh:path tvbo:y ], + [ sh:description "Storage format in binary companion (dense, csr, coo)" ; + sh:in ( "dense" "csr" "coo" ) ; + sh:maxCount 1 ; + sh:order 6 ; + sh:path tvbo:format ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; sh:path dcterms:description ], - [ sh:class tvbo:BrainRegionSeries ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 3 ; - sh:path tvbo:x ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path rdfs:label ], - [ sh:datatype xsd:string ; - sh:defaultValue "float32"^^xsd:string ; - sh:description "Data type for matrix values" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 8 ; - sh:path tvbo:dtype ], - [ sh:description "Storage format in binary companion (dense, csr, coo)" ; - sh:in ( "dense" "csr" "coo" ) ; + [ sh:class tvbo:BrainRegionSeries ; sh:maxCount 1 ; - sh:order 6 ; - sh:path tvbo:format ], + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 3 ; + sh:path tvbo:x ], [ sh:datatype xsd:string ; sh:description "Add the location of the data file containing the parcellation terminology." ; sh:maxCount 1 ; @@ -4184,69 +4326,80 @@ tvbo:Matrix a sh:NodeShape ; sh:description "Matrix dimensions [N, M]" ; sh:nodeKind sh:Literal ; sh:order 7 ; - sh:path tvbo:shape ] ; + sh:path tvbo:shape ], + [ sh:datatype xsd:float ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path tvbo:values ], + [ sh:datatype xsd:string ; + sh:defaultValue "float32"^^xsd:string ; + sh:description "Data type for matrix values" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 8 ; + sh:path tvbo:dtype ] ; sh:targetClass tvbo:Matrix . tvbo:OptimizationStage a sh:NodeShape ; rdfs:comment "A single stage in a multi-stage optimization workflow. Stages run sequentially, with each stage potentially using different parameters, shapes, learning rates, and algorithms." ; sh:closed true ; - sh:ignoredProperties ( rdf:type tvbo:integration tvbo:execution tvbo:depends_on tvbo:loss tvbo:stages ) ; - sh:property [ sh:datatype xsd:float ; - sh:defaultValue "0.001"^^xsd:float ; + sh:ignoredProperties ( tvbo:loss rdf:type tvbo:depends_on tvbo:stages tvbo:execution tvbo:integration ) ; + sh:property [ sh:datatype xsd:string ; + sh:defaultValue "adam"^^xsd:string ; + sh:description "Optimizer for this stage: 'adam', 'adamw', 'sgd', etc." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path tvbo:learning_rate ], + sh:order 4 ; + sh:path tvbo:algorithm ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path dcterms:description ], [ sh:class tvbo:Parameter ; - sh:description "Stage-specific hyperparameters (e.g., b2=0.9999 for adam)" ; + sh:description "Parameters from previous stages to freeze (keep at optimized value but not update)" ; sh:nodeKind sh:IRI ; - sh:order 7 ; - sh:path tvbo:hyperparameters ], + sh:order 8 ; + sh:path tvbo:freeze_parameters ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; sh:path rdfs:label ], - [ sh:datatype xsd:integer ; - sh:defaultValue 100 ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path tvbo:max_iterations ], - [ sh:class tvbo:FreeParameter ; - sh:description "Parameters to optimize in this stage. Each entry is a FreeParameter that references an existing Parameter by dotted scope (e.g. \"ReducedWongWang.w\" or \"FastLinearCoupling.G\") and supplies optimization-specific metadata (heterogeneous, shape, bounds). No new Parameter is created here." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 3 ; - sh:path tvbo:free_parameters ], - [ sh:class tvbo:Parameter ; - sh:description "Parameters from previous stages to freeze (keep at optimized value but not update)" ; - sh:nodeKind sh:IRI ; - sh:order 8 ; - sh:path tvbo:freeze_parameters ], - [ sh:datatype xsd:string ; - sh:defaultValue "adam"^^xsd:string ; - sh:description "Optimizer for this stage: 'adam', 'adamw', 'sgd', etc." ; + [ sh:class tvbo:OptimizationStage ; + sh:description "Previous stage to initialize from. Final values from that stage become initial values for this stage." ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path tvbo:algorithm ], + sh:nodeKind sh:IRI ; + sh:order 9 ; + sh:path tvbo:warmup_from ], [ sh:datatype xsd:string ; sh:description "Globally unique identifier for the entity." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path schema1:name ], - [ sh:class tvbo:OptimizationStage ; - sh:description "Previous stage to initialize from. Final values from that stage become initial values for this stage." ; - sh:maxCount 1 ; + [ sh:class tvbo:Parameter ; + sh:description "Stage-specific hyperparameters (e.g., b2=0.9999 for adam)" ; sh:nodeKind sh:IRI ; - sh:order 9 ; - sh:path tvbo:warmup_from ], - [ sh:datatype xsd:string ; + sh:order 7 ; + sh:path tvbo:hyperparameters ], + [ sh:class tvbo:FreeParameter ; + sh:description "Parameters to optimize in this stage. Each entry is a FreeParameter that references an existing Parameter by dotted scope (e.g. \"ReducedWongWang.w\" or \"FastLinearCoupling.G\") and supplies optimization-specific metadata (heterogeneous, shape, bounds). No new Parameter is created here." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 3 ; + sh:path tvbo:free_parameters ], + [ sh:datatype xsd:integer ; + sh:defaultValue 100 ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path dcterms:description ] ; + sh:order 6 ; + sh:path tvbo:max_iterations ], + [ sh:datatype xsd:float ; + sh:defaultValue "0.001"^^xsd:float ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path tvbo:learning_rate ] ; sh:targetClass tvbo:OptimizationStage . tvbo:Option a sh:NodeShape ; @@ -4271,7 +4424,7 @@ tvbo:Option a sh:NodeShape ; tvbo:Solver a sh:NodeShape ; rdfs:comment "Lightweight specification of a numerical ODE solver / integrator. Covers adaptive solvers (Vern9, Rodas5, Tsit5, etc.) used in shooting methods, initial-state integration, and other contexts where only the algorithm and tolerances matter." ; sh:closed true ; - sh:ignoredProperties ( tvbo:noise tvbo:state_wise_sigma tvbo:intermediate_expressions rdf:type tvbo:number_of_stages tvbo:delayed tvbo:update_expression tvbo:steps dcterms:description tvbo:parameters tvbo:differentiation tvbo:time_scale tvbo:transient_time tvbo:step_size tvbo:duration tvbo:scipy_ode_base qudt:unit ) ; + sh:ignoredProperties ( tvbo:transient_time tvbo:step_size tvbo:scipy_ode_base tvbo:coupling_evaluation rdf:type tvbo:delayed tvbo:intermediate_expressions tvbo:parameters tvbo:update_expression tvbo:state_wise_sigma dcterms:description tvbo:differentiation tvbo:time_scale tvbo:duration tvbo:number_of_stages tvbo:noise tvbo:steps qudt:unit ) ; sh:property [ sh:datatype xsd:string ; sh:defaultValue "Tsit5"^^xsd:string ; sh:description "Solver algorithm name (e.g., Vern9, Rodas5, Tsit5, euler, heun, rk4)." ; @@ -4295,170 +4448,252 @@ tvbo:Solver a sh:NodeShape ; sh:path tvbo:rel_tol ] ; sh:targetClass tvbo:Solver . -<https://w3id.org/tvbo/dbs/ClinicalScore> a sh:NodeShape ; - rdfs:comment "Metadata about a clinical score or scale." ; +tvbo:WorkflowEngineConfig a sh:NodeShape ; + rdfs:comment "Execution directives for one target workflow engine (Slurm, Snakemake, Nextflow). Every field is optional; each engine renders the subset it understands, so a single shape serves all three. Resource fields are engine-agnostic; scheduler fields (partition, account, …) pass through verbatim to the target scheduler." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:class <https://w3id.org/tvbo/dbs/ClinicalScore> ; - sh:description "If this score is a subscore of a broader composite" ; + sh:property [ sh:class tvbo:EnvironmentVariable ; + sh:description "Environment variables exported before task execution (e.g. XLA_PYTHON_CLIENT_PREALLOCATE=false)." ; + sh:nodeKind sh:IRI ; + sh:order 12 ; + sh:path tvbo:env ], + [ sh:datatype xsd:string ; + sh:description "Scheduler notification trigger (e.g. 'END,FAIL')." ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; + sh:nodeKind sh:Literal ; + sh:order 9 ; + sh:path tvbo:mail_type ], + [ sh:datatype xsd:integer ; + sh:description "Overrides ``distribute.chunk`` for this engine only: the number of array-task shards to split the vectorized sweep across." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 11 ; + sh:path tvbo:array_chunk ], + [ sh:datatype xsd:integer ; + sh:description "Total cores for local engines (e.g. Snakemake --cores)." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; sh:order 6 ; - sh:path <https://w3id.org/tvbo/dbs/parent_score> ], + sh:path tvbo:cores ], [ sh:datatype xsd:string ; - sh:description "Full name of the score (e.g., Unified Parkinson's Disease Rating Scale - Part III)" ; + sh:description "Environment modules to load before running (module load …)." ; + sh:nodeKind sh:Literal ; + sh:order 7 ; + sh:path tvbo:modules ], + [ sh:datatype xsd:string ; + sh:description "Scheduler partition or queue to submit to." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path tvbo:partition ], + [ sh:datatype xsd:string ; + sh:description "Generic scheduler resources, e.g. 'gpu:1' (Slurm --gres)." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path tvbo:gres ], + [ sh:datatype xsd:string ; + sh:description "Memory per task in scheduler syntax (e.g. '16G')." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; - sh:path schema1:name ], + sh:path tvbo:mem ], [ sh:datatype xsd:string ; + sh:description "Wall-clock limit per task (e.g. '24:00:00')." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; - sh:path dcterms:description ], + sh:path tvbo:time ], [ sh:datatype xsd:string ; - sh:description "PubMed ID, DOI, or other reference to the score definition" ; + sh:description "Accounting allocation to charge the tasks against." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path dcterms:references ], - [ sh:datatype xsd:string ; + sh:order 5 ; + sh:path tvbo:account ], + [ sh:datatype xsd:integer ; + sh:description "CPU cores requested per task." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; - sh:path skos:notation ], + sh:path tvbo:cpus_per_task ], + [ sh:datatype xsd:string ; + sh:description "Path to a virtual environment to activate before running." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 8 ; + sh:path tvbo:venv ], [ sh:datatype xsd:string ; + sh:description "Notification email address." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 10 ; + sh:path tvbo:mail_user ] ; + sh:targetClass tvbo:WorkflowEngineConfig . + +<https://w3id.org/tvbo/dbs/ClinicalScore> a sh:NodeShape ; + rdfs:comment "Metadata about a clinical score or scale." ; + sh:closed true ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:datatype xsd:string ; sh:description "Domain assessed (e.g. motor, mood, pain)" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 3 ; sh:path <https://w3id.org/tvbo/dbs/domain> ], + [ sh:datatype xsd:string ; + sh:description "Full name of the score (e.g., Unified Parkinson's Disease Rating Scale - Part III)" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path schema1:name ], [ sh:class <https://w3id.org/tvbo/dbs/ClinicalScale> ; sh:description "The scale this score belongs to, if applicable" ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 5 ; - sh:path <https://w3id.org/tvbo/dbs/scale> ] ; + sh:path <https://w3id.org/tvbo/dbs/scale> ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path dcterms:description ], + [ sh:class <https://w3id.org/tvbo/dbs/ClinicalScore> ; + sh:description "If this score is a subscore of a broader composite" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 6 ; + sh:path <https://w3id.org/tvbo/dbs/parent_score> ], + [ sh:datatype xsd:string ; + sh:description "PubMed ID, DOI, or other reference to the score definition" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path dcterms:references ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path skos:notation ] ; sh:targetClass <https://w3id.org/tvbo/dbs/ClinicalScore> . tvbo:Coupling a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:description "For hierarchical coupling: aggregation method ('sum', 'mean', 'max') or custom Function" ; - sh:maxCount 1 ; - sh:or ( [ sh:datatype xsd:string ; - sh:nodeKind sh:Literal ] [ sh:class tvbo:Function ] ) ; - sh:order 20 ; - sh:path tvbo:aggregation ], - [ sh:class tvbo:RegionMapping ; - sh:description "For hierarchical coupling: vertex-to-region mapping for aggregation" ; + sh:property [ sh:datatype xsd:string ; + sh:defaultValue "Linear"^^xsd:string ; + sh:description "Globally unique identifier for the entity." ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 18 ; - sh:path tvbo:region_mapping ], + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path schema1:name ], [ sh:datatype xsd:boolean ; - sh:defaultValue true ; - sh:description "Whether coupling includes transmission delays" ; + sh:description "Opt in to the vectorized matmul fast path for a source-only coupling β€” one whose pre_expression depends only on source states (e.g. the angle-addition decomposition [sin(theta_j), cos(theta_j)]). The W-reduction then becomes a single ``pre @ weights`` matmul instead of materialising the dense per-edge tensor. ONLY valid for INSTANTANEOUS coupling on a SYMMETRIC connectome (W == Wα΅€): the matmul contracts W while the per-edge path contracts Wα΅€, so the two agree only when W is symmetric. Default false keeps the always-correct per-edge reduction (and delays are inherently per-edge, so this flag is ignored when delayed=true)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 11 ; - sh:path tvbo:delayed ], - [ sh:class tvbo:StateVariable ; - sh:description "References to state variables from connected (source) nodes. Auto-populated from state_variables with coupling_variable=true when omitted. Used by name in pre_expression." ; - sh:nodeKind sh:IRI ; - sh:order 9 ; - sh:path tvbo:incoming_states ], - [ sh:class tvbo:DerivedVariable ; - sh:description "Observable functions computed from edge inputs and parameters after simulation. Maps to obsf/obssym in ND.jl EdgeModel. Example: absolute force magnitude computed from force components." ; - sh:nodeKind sh:IRI ; - sh:order 16 ; - sh:path tvbo:observed ], - [ sh:class tvbo:StateVariable ; - sh:description "References to state variables from the local (target) node. Used by name in pre_expression." ; + sh:order 13 ; + sh:path tvbo:vectorized ], + [ sh:description "Optional stable IRI (or compact URI) for this entity in an external ontology or knowledge base. Used to load metadata from an external source; not required when the entity is fully self-contained (equations, parameters, etc. defined in the file itself)." ; + sh:maxCount 1 ; sh:nodeKind sh:IRI ; - sh:order 10 ; - sh:path tvbo:local_states ], + sh:order 2 ; + sh:path dcterms:identifier ], [ sh:class tvbo:Equation ; sh:description "Mathematical function defining the coupling" ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 5 ; sh:path tvbo:coupling_function ], + [ sh:class tvbo:Coupling ; + sh:description "For hierarchical coupling: inner coupling applied at regional level" ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 17 ; + sh:path tvbo:inner_coupling ], + [ sh:datatype xsd:boolean ; + sh:description "Whether the coupling uses sparse representations" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 6 ; + sh:path tvbo:sparse ], [ sh:class tvbo:Equation ; sh:description "Post-processing expression applied after coupling" ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 8 ; sh:path tvbo:post_expression ], - [ sh:datatype xsd:string ; - sh:description "Output symbol names for the edge model. E.g. ['P'] for a scalar power flow, ['Fx', 'Fy'] for 2D forces. Maps directly to outsym in ND.jl EdgeModel. If not specified, derived from coupling variables of the connected vertex dynamics." ; - sh:nodeKind sh:Literal ; - sh:order 15 ; - sh:path tvbo:outsym ], - [ sh:datatype xsd:boolean ; - sh:description "Opt in to the vectorized matmul fast path for a source-only coupling β€” one whose pre_expression depends only on source states (e.g. the angle-addition decomposition [sin(theta_j), cos(theta_j)]). The W-reduction then becomes a single ``pre @ weights`` matmul instead of materialising the dense per-edge tensor. ONLY valid for INSTANTANEOUS coupling on a SYMMETRIC connectome (W == Wα΅€): the matmul contracts W while the per-edge path contracts Wα΅€, so the two agree only when W is symmetric. Default false keeps the always-correct per-edge reduction (and delays are inherently per-edge, so this flag is ignored when delayed=true)." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 13 ; - sh:path tvbo:vectorized ], - [ sh:datatype xsd:string ; - sh:defaultValue "directed"^^xsd:string ; - sh:description "Edge symmetry type for NetworkDynamics.jl EdgeModel: 'directed' (default), 'antisymmetric', or 'symmetric'. AntiSymmetric edges flip sign for the reverse direction." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 14 ; - sh:path tvbo:symmetry ], [ sh:class tvbo:Parameter ; sh:nodeKind sh:IRI ; sh:order 3 ; sh:path tvbo:parameters ], - [ sh:description "Optional stable IRI (or compact URI) for this entity in an external ontology or knowledge base. Used to load metadata from an external source; not required when the entity is fully self-contained (equations, parameters, etc. defined in the file itself)." ; + [ sh:description "For hierarchical coupling: aggregation method ('sum', 'mean', 'max') or custom Function" ; sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 2 ; - sh:path dcterms:identifier ], + sh:or ( [ sh:datatype xsd:string ; + sh:nodeKind sh:Literal ] [ sh:class tvbo:Function ] ) ; + sh:order 20 ; + sh:path tvbo:aggregation ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path rdfs:label ], [ sh:datatype xsd:boolean ; - sh:description "Whether the coupling uses sparse representations" ; + sh:description "For delayed coupling: read delayed states by linear interpolation between the two bracketing history time-steps instead of snapping each delay to the nearest integer step. Removes sub-step quantisation error and makes the coupling differentiable w.r.t. the continuous delay β€” hence w.r.t. conduction speed v (delay = tract_length / v) β€” so v can be gradient-optimised. Default false preserves exact nearest-step behaviour (tvboptim roll strategy)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path tvbo:sparse ], + sh:order 12 ; + sh:path tvbo:interpolate_delays ], [ sh:class tvbo:Network ; sh:description "For hierarchical coupling: region-to-region connectivity with weights and delays" ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 19 ; sh:path tvbo:regional_connectivity ], - [ sh:datatype xsd:boolean ; - sh:description "For delayed coupling: read delayed states by linear interpolation between the two bracketing history time-steps instead of snapping each delay to the nearest integer step. Removes sub-step quantisation error and makes the coupling differentiable w.r.t. the continuous delay β€” hence w.r.t. conduction speed v (delay = tract_length / v) β€” so v can be gradient-optimised. Default false preserves exact nearest-step behaviour (tvboptim roll strategy)." ; + [ sh:class tvbo:Equation ; + sh:description "Pre-processing expression applied before coupling" ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 12 ; - sh:path tvbo:interpolate_delays ], - [ sh:class tvbo:Coupling ; - sh:description "For hierarchical coupling: inner coupling applied at regional level" ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 7 ; + sh:path tvbo:pre_expression ], + [ sh:class tvbo:RegionMapping ; + sh:description "For hierarchical coupling: vertex-to-region mapping for aggregation" ; sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 18 ; + sh:path tvbo:region_mapping ], + [ sh:class tvbo:DerivedVariable ; + sh:description "Observable functions computed from edge inputs and parameters after simulation. Maps to obsf/obssym in ND.jl EdgeModel. Example: absolute force magnitude computed from force components." ; sh:nodeKind sh:IRI ; - sh:order 17 ; - sh:path tvbo:inner_coupling ], + sh:order 16 ; + sh:path tvbo:observed ], [ sh:datatype xsd:string ; - sh:defaultValue "Linear"^^xsd:string ; - sh:description "Globally unique identifier for the entity." ; - sh:maxCount 1 ; + sh:description "Output symbol names for the edge model. E.g. ['P'] for a scalar power flow, ['Fx', 'Fy'] for 2D forces. Maps directly to outsym in ND.jl EdgeModel. If not specified, derived from coupling variables of the connected vertex dynamics." ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path schema1:name ], + sh:order 15 ; + sh:path tvbo:outsym ], [ sh:datatype xsd:string ; + sh:defaultValue "directed"^^xsd:string ; + sh:description "Edge symmetry type for NetworkDynamics.jl EdgeModel: 'directed' (default), 'antisymmetric', or 'symmetric'. AntiSymmetric edges flip sign for the reverse direction." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path dcterms:description ], - [ sh:class tvbo:Equation ; - sh:description "Pre-processing expression applied before coupling" ; + sh:order 14 ; + sh:path tvbo:symmetry ], + [ sh:datatype xsd:boolean ; + sh:defaultValue true ; + sh:description "Whether coupling includes transmission delays" ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 7 ; - sh:path tvbo:pre_expression ], + sh:nodeKind sh:Literal ; + sh:order 11 ; + sh:path tvbo:delayed ], + [ sh:class tvbo:StateVariable ; + sh:description "References to state variables from connected (source) nodes. Auto-populated from state_variables with coupling_variable=true when omitted. Used by name in pre_expression." ; + sh:nodeKind sh:IRI ; + sh:order 9 ; + sh:path tvbo:incoming_states ], + [ sh:class tvbo:StateVariable ; + sh:description "References to state variables from the local (target) node. Used by name in pre_expression." ; + sh:nodeKind sh:IRI ; + sh:order 10 ; + sh:path tvbo:local_states ], [ sh:description "For hierarchical coupling: distribution method ('broadcast', 'weighted') or custom Function" ; sh:maxCount 1 ; sh:or ( [ sh:datatype xsd:string ; @@ -4468,8 +4703,8 @@ tvbo:Coupling a sh:NodeShape ; [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path rdfs:label ] ; + sh:order 4 ; + sh:path dcterms:description ] ; sh:targetClass tvbo:Coupling . tvbo:Event a sh:NodeShape ; @@ -4477,252 +4712,167 @@ tvbo:Event a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "State variable symbols accessible in the condition function. For edges, can include source/destination vertex outputs." ; - sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path tvbo:condition_states ], - [ sh:class tvbo:Equation ; - sh:description "Affect function: what happens when the event triggers. Can modify state variables and/or parameters. For stimulus type, this is the stimulus equation." ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 8 ; - sh:path tvbo:affect ], - [ sh:datatype xsd:float ; - sh:description "Predetermined trigger times for preset_time events. The solver will step exactly to these times." ; - sh:nodeKind sh:Literal ; - sh:order 12 ; - sh:path tvbo:trigger_times ], - [ sh:datatype xsd:string ; - sh:description "Component to attach this event to. Can be a node label, edge label, or 'all_edges'/'all_vertices' for broadcast. If not specified, event is experiment-level." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 13 ; - sh:path tvbo:target_component ], - [ sh:class tvbo:Parameter ; - sh:nodeKind sh:IRI ; - sh:order 3 ; - sh:path tvbo:parameters ], - [ sh:class tvbo:Distribution ; - sh:description "Distribution to sample per-region stimulus weights from, as an alternative to the explicit `weighting` array (e.g. Uniform(-1, 1) per node). When set, the codegen samples one weight per target region using the distribution's seed." ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 17 ; - sh:path tvbo:weight_distribution ], - [ sh:datatype xsd:float ; - sh:description "Per-node stimulus weighting, aligned with `nodes`. (Formerly `weighting`.)" ; + sh:description "Parameter symbols accessible in the condition function." ; sh:nodeKind sh:Literal ; - sh:order 16 ; - sh:path tvbo:weights ], + sh:order 7 ; + sh:path tvbo:condition_parameters ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; sh:path dcterms:description ], - [ sh:defaultValue "stimulus" ; - sh:description "Type of event trigger mechanism." ; - sh:in ( "continuous" "discrete" "preset_time" "stimulus" "stimulation" ) ; - sh:maxCount 1 ; - sh:order 4 ; - sh:path tvbo:event_type ], - [ sh:datatype xsd:float ; - sh:description "Duration of stimulus-type events." ; + [ sh:datatype xsd:string ; + sh:description "State variable that a stimulus-type event drives β€” the variable its signal is injected into (e.g. 'y_0' for Jansen-Rit, or a named 'stimulus' input exposed to coupling). If absent, the stimulus adds to the model's default external-input variable." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 20 ; - sh:path tvbo:duration ], + sh:order 18 ; + sh:path tvbo:target_variable ], [ sh:datatype xsd:string ; sh:description "State variable symbols modifiable in the affect function." ; sh:nodeKind sh:Literal ; sh:order 9 ; sh:path tvbo:affect_states ], + [ sh:class tvbo:Equation ; + sh:description "Affect function: what happens when the event triggers. Can modify state variables and/or parameters. For stimulus type, this is the stimulus equation." ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 8 ; + sh:path tvbo:affect ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; sh:path rdfs:label ], + [ sh:datatype xsd:float ; + sh:description "Per-node stimulus weighting, aligned with `nodes`. (Formerly `weighting`.)" ; + sh:nodeKind sh:Literal ; + sh:order 16 ; + sh:path tvbo:weights ], [ sh:datatype xsd:string ; - sh:description "Path to a data file (.npy) holding the stimulus waveform of a *data-driven* stimulus event β€” the samples are interpolated at simulation time instead of evaluating `equation`. 1-D arrays are a single time-series broadcast to the targeted `nodes`; the event's `name` is still the symbol injected into the dynamics." ; + sh:defaultValue "linear"^^xsd:string ; + sh:description "Interpolation for a data-driven stimulus: 'linear' or 'cubic'." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 21 ; - sh:path tvbo:dataLocation ], + sh:order 23 ; + sh:path tvbo:interpolation ], [ sh:class tvbo:Equation ; sh:description "Condition function. For continuous events: triggers when expression crosses zero. For discrete events: triggers when expression evaluates to true. Not used for preset_time or stimulus types." ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 5 ; sh:path tvbo:condition ], - [ sh:datatype xsd:string ; - sh:description "Regions a stimulus-type event targets: 'all' (broadcast to every node) or explicit region labels / indices. More expressive than the integer-only `regions` slot; when both are absent the event applies to all regions." ; - sh:nodeKind sh:Literal ; - sh:order 19 ; - sh:path tvbo:target_regions ], [ sh:datatype xsd:float ; - sh:defaultValue "1.0"^^xsd:float ; - sh:description "Sample rate of the `dataLocation` waveform in samples per millisecond (e.g. 1.0 = 1 kHz). Sample i is placed at time i / sampling_rate ms." ; + sh:description "Duration of stimulus-type events." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 22 ; - sh:path tvbo:sampling_rate ], + sh:order 20 ; + sh:path tvbo:duration ], [ sh:datatype xsd:string ; - sh:description "Parameter symbols accessible in the condition function." ; + sh:description "Parameter symbols modifiable in the affect function." ; sh:nodeKind sh:Literal ; - sh:order 7 ; - sh:path tvbo:condition_parameters ], + sh:order 10 ; + sh:path tvbo:affect_parameters ], [ sh:datatype xsd:string ; sh:description "Globally unique identifier for the entity." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path schema1:name ], - [ sh:datatype xsd:string ; - sh:description "Parameter symbols modifiable in the affect function." ; - sh:nodeKind sh:Literal ; - sh:order 10 ; - sh:path tvbo:affect_parameters ], - [ sh:class tvbo:Equation ; - sh:description "Affect on downcrossing (continuous events only). If not specified, uses the same affect for both crossings." ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 11 ; - sh:path tvbo:affect_negative ], - [ sh:datatype xsd:string ; - sh:defaultValue "linear"^^xsd:string ; - sh:description "Interpolation for a data-driven stimulus: 'linear' or 'cubic'." ; + [ sh:class tvbo:Distribution ; + sh:description "Distribution to sample per-region stimulus weights from, as an alternative to the explicit `weighting` array (e.g. Uniform(-1, 1) per node). When set, the codegen samples one weight per target region using the distribution's seed." ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 23 ; - sh:path tvbo:interpolation ], - [ sh:datatype xsd:string ; - sh:description "State variable that a stimulus-type event drives β€” the variable its signal is injected into (e.g. 'y_0' for Jansen-Rit, or a named 'stimulus' input exposed to coupling). If absent, the stimulus adds to the model's default external-input variable." ; + sh:nodeKind sh:IRI ; + sh:order 17 ; + sh:path tvbo:weight_distribution ], + [ sh:datatype xsd:float ; + sh:defaultValue "1.0"^^xsd:float ; + sh:description "Sample rate of the `dataLocation` waveform in samples per millisecond (e.g. 1.0 = 1 kHz). Sample i is placed at time i / sampling_rate ms." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 18 ; - sh:path tvbo:target_variable ], - [ sh:class tvbo:Equation ; - sh:description "Stimulus equation for stimulus-type events. Legacy compatibility with Stimulus class." ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 14 ; - sh:path tvbo:equation ], + sh:order 22 ; + sh:path tvbo:sampling_rate ], + [ sh:class tvbo:Parameter ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path tvbo:parameters ], [ sh:datatype xsd:integer ; sh:description "Network nodes a stimulus-type event is applied to (node ids / indices). Pairs with `weights`. (Formerly `regions`.)" ; sh:nodeKind sh:Literal ; sh:order 15 ; - sh:path tvbo:nodes ] ; - sh:targetClass tvbo:Event . - -tvbo:FunctionCall a sh:NodeShape ; - rdfs:comment "Invocation of a function in a pipeline. Can reference a defined Function by name, OR inline a callable directly for external library functions, OR inline an equation, OR use class_call for class instantiation. Mirrors Function attributes so pipeline steps can be self-contained. The `name` is an optional step label (used in pipelines for keyed access to step outputs); it is NOT a global identifier (singleton uses like `loss`, `observable` may omit it)." ; - sh:closed true ; - sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "Name for this step's output (referenced by subsequent functions)" ; - sh:maxCount 1 ; + sh:path tvbo:nodes ], + [ sh:datatype xsd:string ; + sh:description "Regions a stimulus-type event targets: 'all' (broadcast to every node) or explicit region labels / indices. More expressive than the integer-only `regions` slot; when both are absent the event applies to all regions." ; + sh:nodeKind sh:Literal ; + sh:order 19 ; + sh:path tvbo:target_regions ], + [ sh:datatype xsd:float ; + sh:description "Predetermined trigger times for preset_time events. The solver will step exactly to these times." ; sh:nodeKind sh:Literal ; - sh:order 9 ; - sh:path tvbo:output ], - [ sh:class tvbo:Argument ; - sh:description "Function arguments keyed by name (the key is the argument name)." ; - sh:nodeKind sh:IRI ; sh:order 12 ; - sh:path tvbo:arguments ], - [ sh:class tvbo:Range ; - sh:description "Time range for generated TimeSeries (for kernel generators)" ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 13 ; - sh:path tvbo:time_range ], - [ sh:class tvbo:Callable ; - sh:description "Direct callable specification (alternative to function reference)" ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 6 ; - sh:path tvbo:callable ], - [ sh:class tvbo:ClassReference ; - sh:description "Class instantiation and call (alternative to callable/function). Use for external library classes that need __init__ then __call__. Example: Bold monitor from tvboptim." ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 7 ; - sh:path tvbo:class_call ], - [ sh:class tvbo:Function ; - sh:description "Reference to a defined Function (by name)" ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 5 ; - sh:path tvbo:function ], + sh:path tvbo:trigger_times ], [ sh:datatype xsd:string ; + sh:description "Path to a data file (.npy) holding the stimulus waveform of a *data-driven* stimulus event β€” the samples are interpolated at simulation time instead of evaluating `equation`. 1-D arrays are a single time-series broadcast to the targeted `nodes`; the event's `name` is still the symbol injected into the dynamics." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path rdfs:label ], + sh:order 21 ; + sh:path tvbo:dataLocation ], [ sh:datatype xsd:string ; - sh:description "Reference to previous function's output in pipeline (by name)" ; - sh:maxCount 1 ; + sh:description "State variable symbols accessible in the condition function. For edges, can include source/destination vertex outputs." ; sh:nodeKind sh:Literal ; - sh:order 8 ; - sh:path tvbo:input ], - [ sh:datatype xsd:string ; + sh:order 6 ; + sh:path tvbo:condition_states ], + [ sh:class tvbo:Equation ; + sh:description "Stimulus equation for stimulus-type events. Legacy compatibility with Stimulus class." ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; + sh:nodeKind sh:BlankNodeOrIRI ; sh:order 14 ; - sh:path tvbo:source_code ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path skos:notation ], - [ sh:class tvbo:Aggregation ; - sh:description "How to aggregate the result across dimensions. Example: aggregate.over=node, aggregate.type=mean applies function per node, then averages. Used in loss functions." ; + sh:path tvbo:equation ], + [ sh:class tvbo:Equation ; + sh:description "Affect on downcrossing (continuous events only). If not specified, uses the same affect for both crossings." ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 11 ; - sh:path tvbo:aggregate ], - [ sh:datatype xsd:string ; - sh:description "Optional step label; used in pipelines to key step outputs." ; + sh:path tvbo:affect_negative ], + [ sh:defaultValue "stimulus" ; + sh:description "Type of event trigger mechanism." ; + sh:in ( "continuous" "discrete" "preset_time" "stimulus" "stimulation" ) ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; sh:order 4 ; - sh:path schema1:name ], + sh:path tvbo:event_type ], [ sh:datatype xsd:string ; + sh:description "Component to attach this event to. Can be a node label, edge label, or 'all_edges'/'all_vertices' for broadcast. If not specified, event is experiment-level." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path dcterms:description ], - [ sh:description "Dimension to apply function over (generates vmap in code). E.g., 'node' applies per-node." ; - sh:in ( "time" "state" "node" "region" "mode" "sample" "batch" "frequency" ) ; - sh:maxCount 1 ; - sh:order 10 ; - sh:path tvbo:apply_on_dimension ], - [ sh:class tvbo:Equation ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 2 ; - sh:path tvbo:Equation ] ; - sh:targetClass tvbo:FunctionCall . + sh:order 13 ; + sh:path tvbo:target_component ] ; + sh:targetClass tvbo:Event . tvbo:Mesh a sh:NodeShape ; rdfs:comment "Triangle (or higher-order) mesh geometry. May stand alone (via ``mesh_file`` pointing at an external GIFTI/VTK/MSH file) OR be inlined on a Network as ``Network.mesh``. In the inlined-on-Network case, the vertices are the parent Network's ``nodes/coordinates`` (so ``coordinates`` here may be left empty), the faces live in the same h5 companion under a path given by ``elements`` (default ``mesh/faces``), and optional per-vertex ``normals`` / ``curvature`` live alongside. The optional ``parcel_map_field`` points at the parent Network's per-vertex parcel-id array (default ``nodes/parent_index`` from the hierarchical-Network pattern, see Network.qmd Β§7.1)." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "Path to external mesh file (GIFTI, VTK, MSH, FreeSurfer, etc.)." ; + sh:property [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/Coordinate> ; + sh:description "Node coordinates (x,y,z) in the given coordinate space." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 4 ; + sh:path tvbo:coordinates ], + [ sh:datatype xsd:string ; + sh:description "Optional path to per-vertex curvature (N,) float. Default convention: ``mesh/curvature``." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 7 ; - sh:path tvbo:mesh_file ], + sh:order 13 ; + sh:path tvbo:curvature ], [ sh:datatype xsd:string ; sh:description "Optional path inside the parent Network's h5 (or an external file) to per-vertex normals (N, 3) float. Default convention: ``mesh/normals``." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 12 ; sh:path tvbo:normals ], - [ sh:datatype xsd:string ; - sh:description "Optional path to per-vertex curvature (N,) float. Default convention: ``mesh/curvature``." ; + [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/atlas/Transformation> ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 13 ; - sh:path tvbo:curvature ], + sh:nodeKind sh:IRI ; + sh:order 6 ; + sh:path tvbo:coordinate_space ], [ sh:datatype xsd:integer ; sh:description "Number of elements (triangles, quads, tetrahedra, etc.)." ; sh:maxCount 1 ; @@ -4732,8 +4882,8 @@ tvbo:Mesh a sh:NodeShape ; [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path dcterms:description ], + sh:order 0 ; + sh:path rdfs:label ], [ sh:datatype xsd:string ; sh:description "When the mesh is inlined on a Network, the dotted path inside the parent's h5 to vertex coordinates. Default: ``nodes/coordinates``." ; sh:maxCount 1 ; @@ -4741,54 +4891,50 @@ tvbo:Mesh a sh:NodeShape ; sh:order 14 ; sh:path tvbo:vertices_field ], [ sh:datatype xsd:string ; - sh:description "When the mesh is inlined on a Network with a parcellation, the dotted path inside the parent's h5 to the per-vertex parcel id array. Default: ``nodes/parent_index``." ; + sh:description "Path to external mesh file (GIFTI, VTK, MSH, FreeSurfer, etc.)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 15 ; - sh:path tvbo:parcel_map_field ], + sh:order 7 ; + sh:path tvbo:mesh_file ], + [ sh:datatype xsd:string ; + sh:description "Topology indices: either a file reference, or (when inlined on a Network) a dotted path inside the parent Network's h5 companion to the (M, 3) int triangle face array. Default convention: ``mesh/faces``." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path tvbo:elements ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path dcterms:description ], + [ sh:in ( "triangle" "quad" "tetrahedron" "hexahedron" ) ; + sh:maxCount 1 ; + sh:order 3 ; + sh:path tvbo:element_type ], [ sh:class tvbo:Parcellation ; sh:description "Brain parcellation this mesh's parcel_map indexes into. Inlined to match Network.parcellation's existing pattern. When the mesh is inlined on a Network that already declares ``parcellation``, this slot is optional and defaults to the parent's value." ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 11 ; sh:path tvbo:parcellation ], - [ sh:datatype xsd:integer ; - sh:description "Number of vertices in the mesh." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 9 ; - sh:path tvbo:number_of_vertices ], - [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/Coordinate> ; - sh:description "Node coordinates (x,y,z) in the given coordinate space." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 4 ; - sh:path tvbo:coordinates ], [ sh:datatype xsd:string ; sh:description "Add the location of the data file containing the parcellation terminology." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; sh:path <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], - [ sh:datatype xsd:string ; - sh:description "Topology indices: either a file reference, or (when inlined on a Network) a dotted path inside the parent Network's h5 companion to the (M, 3) int triangle face array. Default convention: ``mesh/faces``." ; + [ sh:datatype xsd:integer ; + sh:description "Number of vertices in the mesh." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path tvbo:elements ], - [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/atlas/Transformation> ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 6 ; - sh:path tvbo:coordinate_space ], - [ sh:in ( "triangle" "quad" "tetrahedron" "hexahedron" ) ; - sh:maxCount 1 ; - sh:order 3 ; - sh:path tvbo:element_type ], + sh:order 9 ; + sh:path tvbo:number_of_vertices ], [ sh:datatype xsd:string ; + sh:description "When the mesh is inlined on a Network with a parcellation, the dotted path inside the parent's h5 to the per-vertex parcel id array. Default: ``nodes/parent_index``." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path rdfs:label ], + sh:order 15 ; + sh:path tvbo:parcel_map_field ], [ sh:datatype xsd:string ; sh:description "Explicit format override (gifti, freesurfer, meshio, vtk, gmsh). Auto-detected from extension if null." ; sh:maxCount 1 ; @@ -4802,210 +4948,196 @@ tvbo:Network a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; - sh:description "Path to companion data file. Supported extensions: .h5 (HDF5), .zarr/ (Zarr), .csv (legacy single-matrix). Null if no companion data needed." ; - sh:maxCount 1 ; + sh:description "BEP017 measure names for observational targets (e.g., BoldCorrelation)" ; sh:nodeKind sh:Literal ; - sh:order 16 ; - sh:path tvbo:data_file ], - [ sh:datatype xsd:string ; - sh:description "Short alphanumeric identifier for the BIDS desc- filename entity (e.g., SC, FC, EC, SCFC). Classifies the connectivity modality of the network's edge measures." ; + sh:order 21 ; + sh:path tvbo:observational_measures ], + [ sh:class tvbo:Mesh ; + sh:description "Optional triangle mesh geometry. When set, the Network carries triangle faces (and optionally normals, curvature) alongside its node coordinates. Used by surface-based observations (cortical wave detection, Helmholtz-Hodge decomposition, spectrospatial mode analysis). Mesh face data lives in the same h5 companion under a ``mesh/`` group." ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 17 ; - sh:path tvbo:descriptor ], - [ sh:defaultValue "ms" ; - sh:description "Default time unit for the network" ; - sh:in ( qudt:SEC qudt:MilliSEC qudt:MicroSEC qudt:PER-SEC qudt:PER-MilliSEC qudt:HZ qudt:KiloHZ qudt:V qudt:MilliV qudt:PER-MilliV qudt:MilliV-PER-MilliSEC qudt:MilliV-PER-SEC qudt:A qudt:NanoA qudt:PicoA "uA_per_cm2" qudt:PicoFARAD qudt:NanoFARAD "uF_per_cm2" qudt:NanoS qudt:MicroS qudt:PicoS "S_per_cm2" "mS_per_cm2" "S_per_m2" "nS_per_mV" qudt:PER-NanoC qudt:PER-PicoC qudt:MOL-PER-M3 "mol_per_cm3" qudt:MilliMOL-PER-M3 "mol_per_m_per_A_per_s" qudt:MicroM3 qudt:M qudt:MilliM qudt:CentiM qudt:M-PER-SEC qudt:MilliM-PER-MilliSEC "Hz_per_nA" qudt:S-PER-M qudt:H-PER-M qudt:OHM "Mohm" "kohm_cm" qudt:DEG_C "rad_per_ms" qudt:UNITLESS qudt:PERCENT "arbitrary_unit" qudt:KiloGM "kg_per_s" qudt:M-PER-SEC2 qudt:N-PER-M qudt:RAD qudt:RAD-PER-SEC qudt:SEC2 "per_unit" ) ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 14 ; + sh:path tvbo:mesh ], + [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/atlas/Transformation> ; + sh:description "Coordinate space for node positions (e.g., MNI152NLin2009c). Mirrors BrainAtlas.coordinateSpace so network node positions are unambiguous." ; sh:maxCount 1 ; - sh:order 26 ; - sh:path tvbo:time_unit ], + sh:nodeKind sh:IRI ; + sh:order 11 ; + sh:path tvbo:coordinate_space ], [ sh:class tvbo:Parameter ; sh:nodeKind sh:IRI ; sh:order 2 ; sh:path tvbo:parameters ], - [ sh:datatype xsd:string ; - sh:description "Name of the edge group that should serve as the canonical weights matrix when ``weights_matrix`` is queried. Lets a single Network sidecar bundle several connectivity variants (e.g. band-specific NMF reweightings, distance-modulated SC, shuffled controls) under different edge names while still presenting one of them as the active weight to consumers (simulators, observation pipelines). Defaults to ``weight`` / ``weights`` / ``sc`` lookup when not set." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path tvbo:primary_weight ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; sh:path dcterms:description ], - [ sh:class tvbo:Edge ; - sh:description "Default Edge attributes applied to every Edge in this Network. Explicit entries in `edges:` override the template field-by-field. Reserved per-Edge slots (source, target, weight, delay, distance) come from the data backbone (loaded matrix or procedural generator) and are ignored if set on the template." ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 9 ; - sh:path tvbo:edge_template ], [ sh:class tvbo:Tractogram ; sh:description "Reference to tractography data" ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; sh:order 13 ; sh:path tvbo:tractogram ], - [ sh:class tvbo:Mesh ; - sh:description "Optional triangle mesh geometry. When set, the Network carries triangle faces (and optionally normals, curvature) alongside its node coordinates. Used by surface-based observations (cortical wave detection, Helmholtz-Hodge decomposition, spectrospatial mode analysis). Mesh face data lives in the same h5 companion under a ``mesh/`` group." ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 14 ; - sh:path tvbo:mesh ], - [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/atlas/Transformation> ; - sh:description "Coordinate space for node positions (e.g., MNI152NLin2009c). Mirrors BrainAtlas.coordinateSpace so network node positions are unambiguous." ; + [ sh:class tvbo:GraphGenerator ; + sh:description """Graph generator specification. When set, overrides explicit edges/nodes for graph construction. The type field is a free string; StandardGraphType lists well-known types that get automatic code generation across backends. +""" ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; - sh:order 11 ; - sh:path tvbo:coordinate_space ], + sh:order 28 ; + sh:path tvbo:graph_generator ], + [ sh:datatype xsd:string ; + sh:description "Path to companion data file. Supported extensions: .h5 (HDF5), .zarr/ (Zarr), .csv (legacy single-matrix). Null if no companion data needed." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 16 ; + sh:path tvbo:data_file ], [ sh:class tvbo:Node ; - sh:description "Default Node attributes applied to every Node in this Network. Explicit entries in `nodes:` override the template field-by-field (shallow replace, same semantics as `dict.update`). Reserved per-Node slots (id, label, position, region) come from the data backbone (Network.iri-loaded parcellation or procedural generator) and are ignored if set on the template. Lets a homogeneous Network declare its per-Node configuration once without enumerating regions." ; + sh:description "List of nodes with individual dynamics (optional, for heterogeneous networks)" ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 3 ; + sh:path tvbo:nodes ], + [ sh:datatype xsd:string ; + sh:description "Path to BEP017-compliant BIDS directory for loading connectivity matrices" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 18 ; + sh:path tvbo:bids_dir ], + [ sh:class tvbo:BidsEntities ; + sh:description "BIDS filename entities for this dataset" ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 8 ; - sh:path tvbo:node_template ], - [ sh:class tvbo:Coupling ; - sh:description "Reusable coupling configurations referenced by edges (e.g., 'instant', 'delayed', 'inhibitory')" ; - sh:nodeKind sh:IRI ; - sh:order 6 ; - sh:path tvbo:coupling ], + sh:order 19 ; + sh:path tvbo:bids ], [ sh:datatype xsd:integer ; sh:description "Number of nodes in the network (derived from nodes if not set)" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 10 ; sh:path tvbo:number_of_nodes ], - [ sh:class tvbo:Function ; - sh:description "Ordered list of transforms applied to edge property matrices. Each Function's name identifies the target edge property (e.g. 'weight', 'length'). Supports equation-based (symbolic) or callable-based (software) transforms. Multiple transforms on the same target are applied sequentially." ; - sh:nodeKind sh:IRI ; - sh:order 15 ; - sh:path tvbo:transforms ], [ sh:class tvbo:Node ; - sh:description "List of nodes with individual dynamics (optional, for heterogeneous networks)" ; + sh:description "Default Node attributes applied to every Node in this Network. Explicit entries in `nodes:` override the template field-by-field (shallow replace, same semantics as `dict.update`). Reserved per-Node slots (id, label, position, region) come from the data backbone (Network.iri-loaded parcellation or procedural generator) and are ignored if set on the template. Lets a homogeneous Network declare its per-Node configuration once without enumerating regions." ; + sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 3 ; - sh:path tvbo:nodes ], + sh:order 8 ; + sh:path tvbo:node_template ], [ sh:class tvbo:Dynamics ; sh:description "Dictionary of dynamics models keyed by name. Nodes reference these by name. For heterogeneous networks with per-node dynamics." ; sh:nodeKind sh:IRI ; sh:order 7 ; sh:path tvbo:dynamics ], - [ sh:datatype xsd:string ; - sh:description "HDF5 dataset path for node-to-parent mapping. Int32 array of shape (N,) where entry i is the parent node ID. Required when parent_network is set." ; + [ sh:defaultValue "ms" ; + sh:description "Default time unit for the network" ; + sh:in ( qudt:SEC qudt:MilliSEC qudt:MicroSEC qudt:PER-SEC qudt:PER-MilliSEC qudt:HZ qudt:KiloHZ qudt:V qudt:MilliV qudt:PER-MilliV qudt:MilliV-PER-MilliSEC qudt:MilliV-PER-SEC qudt:A qudt:NanoA qudt:PicoA "uA_per_cm2" qudt:PicoFARAD qudt:NanoFARAD "uF_per_cm2" qudt:NanoS qudt:MicroS qudt:PicoS "S_per_cm2" "mS_per_cm2" "S_per_m2" "nS_per_mV" qudt:PER-NanoC qudt:PER-PicoC qudt:MOL-PER-M3 "mol_per_cm3" qudt:MilliMOL-PER-M3 "mol_per_m_per_A_per_s" qudt:MicroM3 qudt:M qudt:MilliM qudt:CentiM qudt:M-PER-SEC qudt:MilliM-PER-MilliSEC "Hz_per_nA" qudt:S-PER-M qudt:H-PER-M qudt:OHM "Mohm" "kohm_cm" qudt:DEG_C "rad_per_ms" qudt:UNITLESS qudt:PERCENT "arbitrary_unit" qudt:KiloGM "kg_per_s" qudt:KiloGM-M2 qudt:M-PER-SEC2 qudt:N-PER-M qudt:RAD qudt:RAD-PER-SEC qudt:SEC2 qudt:W qudt:MegaW "per_unit" ) ; sh:maxCount 1 ; + sh:order 26 ; + sh:path tvbo:time_unit ], + [ sh:class prov:Entity ; + sh:description "W3C PROV-O aligned provenance" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 22 ; + sh:path tvbo:provenance ], + [ sh:datatype xsd:string ; + sh:description "BEP017 measure names for structural connectivity (e.g., streamlineCount, tractLength)" ; sh:nodeKind sh:Literal ; - sh:order 24 ; - sh:path tvbo:node_mapping ], - [ sh:class tvbo:File ; - sh:nodeKind sh:IRI ; - sh:order 27 ; - sh:path tvbo:edge_matrix_files ], + sh:order 20 ; + sh:path tvbo:structural_measures ], [ sh:datatype xsd:string ; sh:description "Path/URI to parent (coarser) Network. When set, this network is a refinement where each node maps to exactly one parent node via node_mapping." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 23 ; sh:path tvbo:parent_network ], - [ sh:defaultValue "mm" ; - sh:description "Unit for distances/lengths in the network" ; - sh:in ( qudt:SEC qudt:MilliSEC qudt:MicroSEC qudt:PER-SEC qudt:PER-MilliSEC qudt:HZ qudt:KiloHZ qudt:V qudt:MilliV qudt:PER-MilliV qudt:MilliV-PER-MilliSEC qudt:MilliV-PER-SEC qudt:A qudt:NanoA qudt:PicoA "uA_per_cm2" qudt:PicoFARAD qudt:NanoFARAD "uF_per_cm2" qudt:NanoS qudt:MicroS qudt:PicoS "S_per_cm2" "mS_per_cm2" "S_per_m2" "nS_per_mV" qudt:PER-NanoC qudt:PER-PicoC qudt:MOL-PER-M3 "mol_per_cm3" qudt:MilliMOL-PER-M3 "mol_per_m_per_A_per_s" qudt:MicroM3 qudt:M qudt:MilliM qudt:CentiM qudt:M-PER-SEC qudt:MilliM-PER-MilliSEC "Hz_per_nA" qudt:S-PER-M qudt:H-PER-M qudt:OHM "Mohm" "kohm_cm" qudt:DEG_C "rad_per_ms" qudt:UNITLESS qudt:PERCENT "arbitrary_unit" qudt:KiloGM "kg_per_s" qudt:M-PER-SEC2 qudt:N-PER-M qudt:RAD qudt:RAD-PER-SEC qudt:SEC2 "per_unit" ) ; + [ sh:class tvbo:Edge ; + sh:description "Default Edge attributes applied to every Edge in this Network. Explicit entries in `edges:` override the template field-by-field. Reserved per-Edge slots (source, target, weight, delay, distance) come from the data backbone (loaded matrix or procedural generator) and are ignored if set on the template." ; sh:maxCount 1 ; - sh:order 25 ; - sh:path tvbo:distance_unit ], - [ sh:datatype xsd:string ; - sh:description "BEP017 measure names for structural connectivity (e.g., streamlineCount, tractLength)" ; - sh:nodeKind sh:Literal ; - sh:order 20 ; - sh:path tvbo:structural_measures ], + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 9 ; + sh:path tvbo:edge_template ], [ sh:class tvbo:Edge ; sh:description "List of directed edges with coupling references (optional, for explicit edge definition)" ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 4 ; sh:path tvbo:edges ], - [ sh:class prov:Entity ; - sh:description "W3C PROV-O aligned provenance" ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 22 ; - sh:path tvbo:provenance ], - [ sh:class tvbo:BidsEntities ; - sh:description "BIDS filename entities for this dataset" ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 19 ; - sh:path tvbo:bids ], + [ sh:class tvbo:Coupling ; + sh:description "Reusable coupling configurations referenced by edges (e.g., 'instant', 'delayed', 'inhibitory')" ; + sh:nodeKind sh:IRI ; + sh:order 6 ; + sh:path tvbo:coupling ], [ sh:class tvbo:Parcellation ; sh:description "Brain parcellation/atlas reference" ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 12 ; sh:path tvbo:parcellation ], + [ sh:class tvbo:Function ; + sh:description "Ordered list of transforms applied to edge property matrices. Each Function's name identifies the target edge property (e.g. 'weight', 'length'). Supports equation-based (symbolic) or callable-based (software) transforms. Multiple transforms on the same target are applied sequentially." ; + sh:nodeKind sh:IRI ; + sh:order 15 ; + sh:path tvbo:transforms ], [ sh:datatype xsd:string ; - sh:description "Path to BEP017-compliant BIDS directory for loading connectivity matrices" ; + sh:description "Name of the edge group that should serve as the canonical weights matrix when ``weights_matrix`` is queried. Lets a single Network sidecar bundle several connectivity variants (e.g. band-specific NMF reweightings, distance-modulated SC, shuffled controls) under different edge names while still presenting one of them as the active weight to consumers (simulators, observation pipelines). Defaults to ``weight`` / ``weights`` / ``sc`` lookup when not set." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 18 ; - sh:path tvbo:bids_dir ], - [ sh:class tvbo:GraphGenerator ; - sh:description """Graph generator specification. When set, overrides explicit edges/nodes for graph construction. The type field is a free string; StandardGraphType lists well-known types that get automatic code generation across backends. -""" ; + sh:order 5 ; + sh:path tvbo:primary_weight ], + [ sh:defaultValue "mm" ; + sh:description "Unit for distances/lengths in the network" ; + sh:in ( qudt:SEC qudt:MilliSEC qudt:MicroSEC qudt:PER-SEC qudt:PER-MilliSEC qudt:HZ qudt:KiloHZ qudt:V qudt:MilliV qudt:PER-MilliV qudt:MilliV-PER-MilliSEC qudt:MilliV-PER-SEC qudt:A qudt:NanoA qudt:PicoA "uA_per_cm2" qudt:PicoFARAD qudt:NanoFARAD "uF_per_cm2" qudt:NanoS qudt:MicroS qudt:PicoS "S_per_cm2" "mS_per_cm2" "S_per_m2" "nS_per_mV" qudt:PER-NanoC qudt:PER-PicoC qudt:MOL-PER-M3 "mol_per_cm3" qudt:MilliMOL-PER-M3 "mol_per_m_per_A_per_s" qudt:MicroM3 qudt:M qudt:MilliM qudt:CentiM qudt:M-PER-SEC qudt:MilliM-PER-MilliSEC "Hz_per_nA" qudt:S-PER-M qudt:H-PER-M qudt:OHM "Mohm" "kohm_cm" qudt:DEG_C "rad_per_ms" qudt:UNITLESS qudt:PERCENT "arbitrary_unit" qudt:KiloGM "kg_per_s" qudt:KiloGM-M2 qudt:M-PER-SEC2 qudt:N-PER-M qudt:RAD qudt:RAD-PER-SEC qudt:SEC2 qudt:W qudt:MegaW "per_unit" ) ; + sh:maxCount 1 ; + sh:order 25 ; + sh:path tvbo:distance_unit ], + [ sh:datatype xsd:string ; + sh:description "HDF5 dataset path for node-to-parent mapping. Int32 array of shape (N,) where entry i is the parent node ID. Required when parent_network is set." ; sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 24 ; + sh:path tvbo:node_mapping ], + [ sh:class tvbo:File ; sh:nodeKind sh:IRI ; - sh:order 28 ; - sh:path tvbo:graph_generator ], + sh:order 27 ; + sh:path tvbo:edge_matrix_files ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path rdfs:label ], [ sh:datatype xsd:string ; - sh:description "BEP017 measure names for observational targets (e.g., BoldCorrelation)" ; + sh:description "Short alphanumeric identifier for the BIDS desc- filename entity (e.g., SC, FC, EC, SCFC). Classifies the connectivity modality of the network's edge measures." ; + sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 21 ; - sh:path tvbo:observational_measures ] ; + sh:order 17 ; + sh:path tvbo:descriptor ] ; sh:targetClass tvbo:Network . tvbo:Noise a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "Inline Python code representation of the noise process." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 11 ; - sh:path tvbo:pycode ], - [ sh:class tvbo:RandomStream ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 7 ; - sh:path tvbo:random_state ], - [ sh:class tvbo:Function ; - sh:description "Optional functional form of the noise (callable specification)." ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 10 ; - sh:path tvbo:function ], - [ sh:class tvbo:Parameter ; + sh:property [ sh:class tvbo:Parameter ; sh:description "Optional scalar or vector intensity parameter for noise." ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; sh:order 8 ; sh:path tvbo:intensity ], - [ sh:datatype xsd:boolean ; + [ sh:class tvbo:Function ; + sh:description "Optional functional form of the noise (callable specification)." ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path tvbo:correlated ], - [ sh:class tvbo:Parameter ; sh:nodeKind sh:IRI ; - sh:order 0 ; - sh:path tvbo:parameters ], + sh:order 10 ; + sh:path tvbo:function ], [ sh:datatype xsd:string ; sh:defaultValue "gaussian"^^xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; sh:path tvbo:noise_type ], + [ sh:class tvbo:Distribution ; + sh:description "Optional probability distribution from which the noise draws its samples. When set, takes precedence over the `noise_type` / `gaussian` flags β€” any Distribution family is accepted (Uniform { lo, hi }, Normal { mean, std }, LogNormal { mu, sigma }, Beta, …). Reuses the existing Distribution class also used by Parameter.distribution." ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 9 ; + sh:path tvbo:distribution ], [ sh:datatype xsd:boolean ; sh:defaultValue true ; sh:description "Indicates whether the noise is additive" ; @@ -5018,17 +5150,26 @@ tvbo:Noise a sh:NodeShape ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 1 ; sh:path tvbo:Equation ], + [ sh:class tvbo:Parameter ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path tvbo:parameters ], [ sh:class tvbo:StateVariable ; sh:description "State variables this noise applies to; if omitted, applies globally." ; sh:nodeKind sh:IRI ; sh:order 12 ; sh:path tvbo:targets ], - [ sh:class tvbo:Distribution ; - sh:description "Optional probability distribution from which the noise draws its samples. When set, takes precedence over the `noise_type` / `gaussian` flags β€” any Distribution family is accepted (Uniform { lo, hi }, Normal { mean, std }, LogNormal { mu, sigma }, Beta, …). Reuses the existing Distribution class also used by Parameter.distribution." ; + [ sh:class tvbo:RandomStream ; sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 9 ; - sh:path tvbo:distribution ], + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 7 ; + sh:path tvbo:random_state ], + [ sh:datatype xsd:string ; + sh:description "Inline Python code representation of the noise process." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 11 ; + sh:path tvbo:pycode ], [ sh:datatype xsd:integer ; sh:defaultValue 42 ; sh:maxCount 1 ; @@ -5036,28 +5177,27 @@ tvbo:Noise a sh:NodeShape ; sh:order 6 ; sh:path tvbo:seed ], [ sh:datatype xsd:boolean ; - sh:description "Indicates whether the noise is Gaussian" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path tvbo:gaussian ] ; - sh:targetClass tvbo:Noise . - -<https://w3id.org/tvbo/software/SoftwareEnvironment> a sh:NodeShape ; - rdfs:comment "A reproducible software environment aggregating one or more SoftwareRequirement entries. Used by SimulationExperiment to specify the execution context." ; - sh:closed true ; - sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path rdfs:label ], - [ sh:datatype xsd:string ; - sh:description "Deterministic hash of the resolved dependency set." ; + sh:order 3 ; + sh:path tvbo:correlated ], + [ sh:datatype xsd:boolean ; + sh:description "Indicates whether the noise is Gaussian" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 8 ; - sh:path <https://w3id.org/tvbo/software/build_hash> ], + sh:order 4 ; + sh:path tvbo:gaussian ] ; + sh:targetClass tvbo:Noise . + +<https://w3id.org/tvbo/software/SoftwareEnvironment> a sh:NodeShape ; + rdfs:comment "A reproducible software environment aggregating one or more SoftwareRequirement entries. Used by SimulationExperiment to specify the execution context." ; + sh:closed true ; + sh:ignoredProperties ( rdf:type ) ; + sh:property [ sh:class <https://w3id.org/tvbo/software/SoftwareRequirement> ; + sh:description "Constituent software requirements." ; + sh:nodeKind sh:IRI ; + sh:order 9 ; + sh:path <https://w3id.org/tvbo/software/requirements> ], [ sh:datatype xsd:string ; sh:description "Globally unique identifier for the entity." ; sh:maxCount 1 ; @@ -5065,66 +5205,83 @@ tvbo:Noise a sh:NodeShape ; sh:order 0 ; sh:path schema1:name ], [ sh:datatype xsd:string ; - sh:description "OS / architecture (e.g., linux-64, macos-arm64)." ; + sh:description "Container image reference (e.g., ghcr.io/org/img:tag@sha256:...)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path <https://w3id.org/tvbo/software/platform> ], + sh:order 7 ; + sh:path <https://w3id.org/tvbo/software/container_image> ], [ sh:datatype xsd:string ; + sh:description "Deterministic hash of the resolved dependency set." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path <https://w3id.org/tvbo/software/dataLocation> ], + sh:order 8 ; + sh:path <https://w3id.org/tvbo/software/build_hash> ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; sh:path dcterms:description ], [ sh:datatype xsd:string ; - sh:description "Environment definition version (not a package version)." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path <https://w3id.org/tvbo/software/version> ], - [ sh:datatype xsd:string ; - sh:description "Container image reference (e.g., ghcr.io/org/img:tag@sha256:...)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 7 ; - sh:path <https://w3id.org/tvbo/software/container_image> ], + sh:order 3 ; + sh:path <https://w3id.org/tvbo/software/dataLocation> ], [ sh:description "Category: conda, venv, docker, etc." ; sh:in ( "conda" "venv" "docker" "singularity" ) ; sh:maxCount 1 ; sh:order 6 ; sh:path <https://w3id.org/tvbo/software/environment_type> ], - [ sh:class <https://w3id.org/tvbo/software/SoftwareRequirement> ; - sh:description "Constituent software requirements." ; - sh:nodeKind sh:IRI ; - sh:order 9 ; - sh:path <https://w3id.org/tvbo/software/requirements> ] ; + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path rdfs:label ], + [ sh:datatype xsd:string ; + sh:description "OS / architecture (e.g., linux-64, macos-arm64)." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path <https://w3id.org/tvbo/software/platform> ], + [ sh:datatype xsd:string ; + sh:description "Environment definition version (not a package version)." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path <https://w3id.org/tvbo/software/version> ] ; sh:targetClass <https://w3id.org/tvbo/software/SoftwareEnvironment> . tvbo:Algorithm a sh:NodeShape ; rdfs:comment "A complete specification of an iterative parameter tuning algorithm. Combines update rules, objectives, observations, and hyperparameters." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:class tvbo:TuningObjective ; - sh:description "What the algorithm optimizes for" ; + sh:property [ sh:datatype xsd:integer ; + sh:description "Number of iterations to run" ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 6 ; - sh:path tvbo:objective ], + sh:nodeKind sh:Literal ; + sh:order 12 ; + sh:path tvbo:n_iterations ], + [ sh:class tvbo:Parameter ; + sh:description "Additional algorithm-specific parameters" ; + sh:nodeKind sh:IRI ; + sh:order 9 ; + sh:path tvbo:hyperparameters ], + [ sh:datatype xsd:float ; + sh:description "Learning rate (eta) for the tuning algorithm" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 10 ; + sh:path tvbo:learning_rate ], [ sh:datatype xsd:string ; - sh:description "Globally unique identifier for the entity." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path schema1:name ], - [ sh:class tvbo:FunctionCall ; - sh:description "Function calls for tracking progress, computing metrics, etc. Each FunctionCall references a function from the experiment's functions section and specifies arguments for that specific algorithm context." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 16 ; - sh:path tvbo:functions ], + sh:order 1 ; + sh:path dcterms:description ], + [ sh:datatype xsd:string ; + sh:description "Learning rate schedule: 'constant', 'linear', 'exponential'" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 13 ; + sh:path tvbo:learning_rate_schedule ], [ sh:class tvbo:AlgorithmStage ; sh:description "Optional multi-stage schedule. When present, the algorithm body is run once per stage IN ORDER, carrying trajectory state, FC window buffer, and monitors forward (one continuous online run). Each stage overrides n_iterations + selected hyperparameters. Replaces the top-level n_iterations for execution. Example (Schirner 2023): 6 stages with eta halving and window_size doubling per stage." ; sh:nodeKind sh:BlankNodeOrIRI ; @@ -5135,68 +5292,57 @@ tvbo:Algorithm a sh:NodeShape ; sh:nodeKind sh:IRI ; sh:order 17 ; sh:path tvbo:depends_on ], + [ sh:datatype xsd:float ; + sh:description "Duration of each simulation step (e.g., one BOLD TR)" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 14 ; + sh:path tvbo:simulation_period ], + [ sh:datatype xsd:string ; + sh:description "Algorithm type: 'fic', 'eib', 'homeostatic', 'custom'" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path tvbo:type ], [ sh:class tvbo:AlgorithmInclude ; sh:description "Include update rules from other algorithms with optional argument overrides. Unlike depends_on (sequential), includes means combined execution. Example: includes: [{algorithm: fic, arguments: [{name: eta, value: 0.1}]}]" ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 4 ; sh:path tvbo:includes ], - [ sh:datatype xsd:boolean ; - sh:description "Linear warmup of learning rate from 0 to learning_rate over n_iterations. eta_effective = eta * (i+1) / n_iterations" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 11 ; - sh:path tvbo:learning_rate_warmup ], - [ sh:class tvbo:Parameter ; - sh:description "Additional algorithm-specific parameters" ; - sh:nodeKind sh:IRI ; - sh:order 9 ; - sh:path tvbo:hyperparameters ], - [ sh:datatype xsd:float ; - sh:description "Learning rate (eta) for the tuning algorithm" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 10 ; - sh:path tvbo:learning_rate ], - [ sh:class tvbo:UpdateRule ; - sh:description "How parameters are updated each iteration. When using 'includes', update_rules are inherited from included algorithms." ; - sh:nodeKind sh:IRI ; - sh:order 8 ; - sh:path tvbo:update_rules ], [ sh:class tvbo:ExecutionConfig ; sh:description "Per-algorithm execution configuration (overrides experiment-level defaults). Useful for setting random_seed per algorithm to ensure reproducibility." ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 2 ; sh:path tvbo:execution ], - [ sh:datatype xsd:string ; - sh:description "Algorithm type: 'fic', 'eib', 'homeostatic', 'custom'" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path tvbo:type ], - [ sh:datatype xsd:integer ; - sh:description "Number of iterations to run" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 12 ; - sh:path tvbo:n_iterations ], - [ sh:datatype xsd:string ; - sh:description "Learning rate schedule: 'constant', 'linear', 'exponential'" ; + [ sh:class tvbo:TuningObjective ; + sh:description "What the algorithm optimizes for" ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 13 ; - sh:path tvbo:learning_rate_schedule ], + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 6 ; + sh:path tvbo:objective ], + [ sh:class tvbo:Observation ; + sh:description "References to observations defined in the observations section. Includes both simulated observations and external data (via data_source)." ; + sh:nodeKind sh:IRI ; + sh:order 7 ; + sh:path tvbo:observations ], [ sh:datatype xsd:string ; + sh:description "Globally unique identifier for the entity." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path dcterms:description ], - [ sh:datatype xsd:float ; - sh:description "Duration of each simulation step (e.g., one BOLD TR)" ; + sh:order 0 ; + sh:path schema1:name ], + [ sh:datatype xsd:boolean ; + sh:description "Linear warmup of learning rate from 0 to learning_rate over n_iterations. eta_effective = eta * (i+1) / n_iterations" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 14 ; - sh:path tvbo:simulation_period ], + sh:order 11 ; + sh:path tvbo:learning_rate_warmup ], + [ sh:class tvbo:FunctionCall ; + sh:description "Function calls for tracking progress, computing metrics, etc. Each FunctionCall references a function from the experiment's functions section and specifies arguments for that specific algorithm context." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 16 ; + sh:path tvbo:functions ], [ sh:datatype xsd:integer ; sh:defaultValue 1 ; sh:description "Apply update every N iterations" ; @@ -5204,11 +5350,11 @@ tvbo:Algorithm a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 15 ; sh:path tvbo:apply_every ], - [ sh:class tvbo:Observation ; - sh:description "References to observations defined in the observations section. Includes both simulated observations and external data (via data_source)." ; + [ sh:class tvbo:UpdateRule ; + sh:description "How parameters are updated each iteration. When using 'includes', update_rules are inherited from included algorithms." ; sh:nodeKind sh:IRI ; - sh:order 7 ; - sh:path tvbo:observations ] ; + sh:order 8 ; + sh:path tvbo:update_rules ] ; sh:targetClass tvbo:Algorithm . tvbo:Argument a sh:NodeShape ; @@ -5216,6 +5362,17 @@ tvbo:Argument a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; + sh:description "Globally unique identifier for the entity." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path schema1:name ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path tvbo:unit ], + [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; @@ -5226,230 +5383,308 @@ tvbo:Argument a sh:NodeShape ; sh:maxCount 1 ; sh:or ( [ ] [ ] ) ; sh:order 2 ; - sh:path tvbo:value ], + sh:path tvbo:value ] ; + sh:targetClass tvbo:Argument . + +tvbo:Callable a sh:NodeShape ; + sh:closed true ; + sh:ignoredProperties ( tvbo:call_args tvbo:constructor_args rdf:type tvbo:warmup_source ) ; + sh:property [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path dcterms:description ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path tvbo:module ], [ sh:datatype xsd:string ; sh:description "Globally unique identifier for the entity." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path schema1:name ], - [ sh:datatype xsd:string ; + [ sh:class <https://w3id.org/tvbo/software/SoftwareRequirement> ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; + sh:nodeKind sh:IRI ; sh:order 3 ; - sh:path tvbo:unit ] ; - sh:targetClass tvbo:Argument . + sh:path tvbo:software ] ; + sh:targetClass tvbo:Callable . -tvbo:Callable a sh:NodeShape ; +tvbo:FunctionCall a sh:NodeShape ; + rdfs:comment "Invocation of a function in a pipeline. Can reference a defined Function by name, OR inline a callable directly for external library functions, OR inline an equation, OR use class_call for class instantiation. Mirrors Function attributes so pipeline steps can be self-contained. The `name` is an optional step label (used in pipelines for keyed access to step outputs); it is NOT a global identifier (singleton uses like `loss`, `observable` may omit it)." ; sh:closed true ; - sh:ignoredProperties ( tvbo:warmup_source tvbo:constructor_args tvbo:call_args rdf:type ) ; + sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; + sh:description "Name for this step's output (referenced by subsequent functions)" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 9 ; + sh:path tvbo:output ], + [ sh:class tvbo:Range ; + sh:description "Time range for generated TimeSeries (for kernel generators)" ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 13 ; + sh:path tvbo:time_range ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 14 ; + sh:path tvbo:source_code ], + [ sh:class tvbo:ClassReference ; + sh:description "Class instantiation and call (alternative to callable/function). Use for external library classes that need __init__ then __call__. Example: Bold monitor from tvboptim." ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 7 ; + sh:path tvbo:class_call ], + [ sh:description "Dimension to apply function over (generates vmap in code). E.g., 'node' applies per-node." ; + sh:in ( "time" "state" "node" "region" "mode" "sample" "batch" "frequency" ) ; + sh:maxCount 1 ; + sh:order 10 ; + sh:path tvbo:apply_on_dimension ], + [ sh:datatype xsd:string ; + sh:description "Reference to previous function's output in pipeline (by name)" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; + sh:order 8 ; + sh:path tvbo:input ], + [ sh:class tvbo:Function ; + sh:description "Reference to a defined Function (by name)" ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 5 ; + sh:path tvbo:function ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path dcterms:description ], + [ sh:class tvbo:Equation ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; sh:order 2 ; - sh:path tvbo:module ], - [ sh:class <https://w3id.org/tvbo/software/SoftwareRequirement> ; + sh:path tvbo:Equation ], + [ sh:class tvbo:Callable ; + sh:description "Direct callable specification (alternative to function reference)" ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; - sh:order 3 ; - sh:path tvbo:software ], + sh:order 6 ; + sh:path tvbo:callable ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; - sh:path dcterms:description ], + sh:path rdfs:label ], + [ sh:class tvbo:Aggregation ; + sh:description "How to aggregate the result across dimensions. Example: aggregate.over=node, aggregate.type=mean applies function per node, then averages. Used in loss functions." ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 11 ; + sh:path tvbo:aggregate ], + [ sh:datatype xsd:string ; + sh:description "Optional step label; used in pipelines to key step outputs." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path schema1:name ], + [ sh:class tvbo:Argument ; + sh:description "Function arguments keyed by name (the key is the argument name)." ; + sh:nodeKind sh:IRI ; + sh:order 12 ; + sh:path tvbo:arguments ], [ sh:datatype xsd:string ; - sh:description "Globally unique identifier for the entity." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; - sh:path schema1:name ] ; - sh:targetClass tvbo:Callable . + sh:path skos:notation ] ; + sh:targetClass tvbo:FunctionCall . tvbo:Observation a sh:NodeShape ; rdfs:comment "Unified class for all observation/measurement specifications. Covers monitors (BOLD, EEG), tuning observables, and derived quantities. Pipeline is a sequence of Functions with input -> output flow." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:string ; - sh:description "Reference to transient simulation result for history initialization (e.g., 'result_init')." ; + sh:property [ sh:class tvbo:Parameter ; + sh:nodeKind sh:IRI ; + sh:order 5 ; + sh:path tvbo:parameters ], + [ sh:datatype xsd:integer ; + sh:description "Number of samples from the end to use. Takes the last N samples before aggregation. E.g., tail_samples: 500 means use data[-500:]." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 14 ; - sh:path tvbo:warmup_source ], - [ sh:datatype xsd:string ; - sh:description "Globally unique identifier for the entity." ; + sh:order 17 ; + sh:path tvbo:tail_samples ], + [ sh:datatype xsd:float ; + sh:description "Sampling period for monitors (ms). For BOLD: TR in ms." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path schema1:name ], + sh:order 10 ; + sh:path tvbo:period ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path dcterms:description ], - [ sh:class tvbo:Parameter ; + sh:order 2 ; + sh:path rdfs:label ], + [ sh:datatype xsd:integer ; + sh:description "Number of samples to skip at the start (transient removal). For FC: typically 10-20 TRs." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 16 ; + sh:path tvbo:skip_t ], + [ sh:class tvbo:ClassReference ; + sh:description "Direct class reference (alternative to pipeline). Use for external library classes like tvboptim.Bold, custom monitors, or any callable class. The class is instantiated with constructor_args and called with call_args. Example: {name: Bold, module: tvboptim.observations.tvb_monitors.bold, constructor_args: [{name: period, value: 1000.0}]}" ; + sh:maxCount 1 ; sh:nodeKind sh:IRI ; - sh:order 5 ; - sh:path tvbo:parameters ], - [ sh:datatype xsd:float ; - sh:description "Sampling period for monitors (ms). For BOLD: TR in ms." ; + sh:order 21 ; + sh:path tvbo:class_reference ], + [ sh:description "Type of imaging modality (BOLD, EEG, MEG, etc.)" ; + sh:in ( "BOLD" "EEG" "MEG" "SEEG" "IEEG" ) ; + sh:maxCount 1 ; + sh:order 13 ; + sh:path tvbo:imaging_modality ], + [ sh:datatype xsd:integer ; + sh:description "Number of samples for windowed aggregation" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 10 ; - sh:path tvbo:period ], - [ sh:class tvbo:Analysis ; - sh:description "Marks this observation as an analysis observable that operates on the solve/loss rather than a result-data pipeline (autodiff gradient, finite-difference gradient, or Lyapunov spectrum)." ; + sh:order 19 ; + sh:path tvbo:window_size ], + [ sh:class <https://w3id.org/tvbo/software/SoftwareEnvironment> ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 22 ; - sh:path tvbo:analysis ], + sh:nodeKind sh:IRI ; + sh:order 6 ; + sh:path tvbo:environment ], + [ sh:defaultValue "ms" ; + sh:description "Time unit for the integration / simulation. Determines the physical time meaning of one model time-step." ; + sh:in ( qudt:SEC qudt:MilliSEC qudt:MicroSEC qudt:PER-SEC qudt:PER-MilliSEC qudt:HZ qudt:KiloHZ qudt:V qudt:MilliV qudt:PER-MilliV qudt:MilliV-PER-MilliSEC qudt:MilliV-PER-SEC qudt:A qudt:NanoA qudt:PicoA "uA_per_cm2" qudt:PicoFARAD qudt:NanoFARAD "uF_per_cm2" qudt:NanoS qudt:MicroS qudt:PicoS "S_per_cm2" "mS_per_cm2" "S_per_m2" "nS_per_mV" qudt:PER-NanoC qudt:PER-PicoC qudt:MOL-PER-M3 "mol_per_cm3" qudt:MilliMOL-PER-M3 "mol_per_m_per_A_per_s" qudt:MicroM3 qudt:M qudt:MilliM qudt:CentiM qudt:M-PER-SEC qudt:MilliM-PER-MilliSEC "Hz_per_nA" qudt:S-PER-M qudt:H-PER-M qudt:OHM "Mohm" "kohm_cm" qudt:DEG_C "rad_per_ms" qudt:UNITLESS qudt:PERCENT "arbitrary_unit" qudt:KiloGM "kg_per_s" qudt:KiloGM-M2 qudt:M-PER-SEC2 qudt:N-PER-M qudt:RAD qudt:RAD-PER-SEC qudt:SEC2 qudt:W qudt:MegaW "per_unit" ) ; + sh:maxCount 1 ; + sh:order 7 ; + sh:path tvbo:time_scale ], + [ sh:class tvbo:DataSource ; + sh:description "Load data from external source (file, database, API). When specified, this observation represents empirical/external data rather than simulated data. Enables unified treatment of all data." ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 15 ; + sh:path tvbo:data_source ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; sh:path skos:notation ], - [ sh:datatype xsd:integer ; - sh:description "Variable of interest index (which state variable to monitor). Default: 0." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 12 ; - sh:path tvbo:voi ], [ sh:class tvbo:Equation ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 4 ; sh:path tvbo:Equation ], - [ sh:class tvbo:FunctionCall ; - sh:description "Ordered sequence of Functions. Each step has a unique `name` (used to key step outputs) and transforms input -> output. List form preserves execution order." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 20 ; - sh:path tvbo:pipeline ], - [ sh:datatype xsd:integer ; - sh:description "Number of samples from the end to use. Takes the last N samples before aggregation. E.g., tail_samples: 500 means use data[-500:]." ; + [ sh:datatype xsd:string ; + sh:description "Globally unique identifier for the entity." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 17 ; - sh:path tvbo:tail_samples ], + sh:order 0 ; + sh:path schema1:name ], [ sh:description "How to aggregate over time" ; sh:in ( "mean" "last" "first" "window" "none" ) ; sh:maxCount 1 ; sh:order 18 ; sh:path tvbo:aggregation ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path rdfs:label ], - [ sh:class <https://w3id.org/tvbo/software/SoftwareEnvironment> ; + [ sh:class tvbo:Analysis ; + sh:description "Marks this observation as an analysis observable that operates on the solve/loss rather than a result-data pipeline (autodiff gradient, finite-difference gradient, or Lyapunov spectrum)." ; sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 6 ; - sh:path tvbo:environment ], - [ sh:datatype xsd:integer ; - sh:description "Number of samples to skip at the start (transient removal). For FC: typically 10-20 TRs." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 22 ; + sh:path tvbo:analysis ], + [ sh:datatype xsd:string ; + sh:description "Reference to transient simulation result for history initialization (e.g., 'result_init')." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 16 ; - sh:path tvbo:skip_t ], + sh:order 14 ; + sh:path tvbo:warmup_source ], + [ sh:class tvbo:FunctionCall ; + sh:description "Ordered sequence of Functions. Each step has a unique `name` (used to key step outputs) and transforms input -> output. List form preserves execution order." ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 20 ; + sh:path tvbo:pipeline ], [ sh:datatype xsd:integer ; - sh:description "Number of samples for windowed aggregation" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 19 ; - sh:path tvbo:window_size ], - [ sh:datatype xsd:float ; - sh:description "Intermediate downsampling period (ms). For BOLD: typically matches dt." ; + sh:description "Variable of interest index (which state variable to monitor). Default: 0." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 11 ; - sh:path tvbo:downsample_period ], - [ sh:description "Type of imaging modality (BOLD, EEG, MEG, etc.)" ; - sh:in ( "BOLD" "EEG" "MEG" "SEEG" "IEEG" ) ; - sh:maxCount 1 ; - sh:order 13 ; - sh:path tvbo:imaging_modality ], - [ sh:class tvbo:ClassReference ; - sh:description "Direct class reference (alternative to pipeline). Use for external library classes like tvboptim.Bold, custom monitors, or any callable class. The class is instantiated with constructor_args and called with call_args. Example: {name: Bold, module: tvboptim.observations.tvb_monitors.bold, constructor_args: [{name: period, value: 1000.0}]}" ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 21 ; - sh:path tvbo:class_reference ], + sh:order 12 ; + sh:path tvbo:voi ], [ sh:class tvbo:Reference ; sh:description "Ordered list of auxiliary inputs the observation pipeline consumes. Examples: a Surface mesh's faces array, an empirical FC matrix on a reference Network, or another Observation's output. Resolved load-time eagerly; rendered code is self-contained." ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 9 ; sh:path tvbo:aux_data ], - [ sh:class tvbo:DataSource ; - sh:description "Load data from external source (file, database, API). When specified, this observation represents empirical/external data rather than simulated data. Enables unified treatment of all data." ; + [ sh:datatype xsd:float ; + sh:description "Intermediate downsampling period (ms). For BOLD: typically matches dt." ; sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 15 ; - sh:path tvbo:data_source ], + sh:nodeKind sh:Literal ; + sh:order 11 ; + sh:path tvbo:downsample_period ], [ sh:description "Ordered list of inputs this observation derives from. Each entry is either a StateVariable reference (raw observation of an integrated trajectory, e.g. ``S_e``) or an Observation reference (derived observation, e.g. ``bold``). Codegen checks each source name against ``experiment.observations``; names matching an existing observation flag the parent as derived." ; sh:or ( [ sh:class tvbo:StateVariable ] [ sh:class tvbo:Observation ] ) ; sh:order 8 ; sh:path tvbo:source ], - [ sh:defaultValue "ms" ; - sh:description "Time unit for the integration / simulation. Determines the physical time meaning of one model time-step." ; - sh:in ( qudt:SEC qudt:MilliSEC qudt:MicroSEC qudt:PER-SEC qudt:PER-MilliSEC qudt:HZ qudt:KiloHZ qudt:V qudt:MilliV qudt:PER-MilliV qudt:MilliV-PER-MilliSEC qudt:MilliV-PER-SEC qudt:A qudt:NanoA qudt:PicoA "uA_per_cm2" qudt:PicoFARAD qudt:NanoFARAD "uF_per_cm2" qudt:NanoS qudt:MicroS qudt:PicoS "S_per_cm2" "mS_per_cm2" "S_per_m2" "nS_per_mV" qudt:PER-NanoC qudt:PER-PicoC qudt:MOL-PER-M3 "mol_per_cm3" qudt:MilliMOL-PER-M3 "mol_per_m_per_A_per_s" qudt:MicroM3 qudt:M qudt:MilliM qudt:CentiM qudt:M-PER-SEC qudt:MilliM-PER-MilliSEC "Hz_per_nA" qudt:S-PER-M qudt:H-PER-M qudt:OHM "Mohm" "kohm_cm" qudt:DEG_C "rad_per_ms" qudt:UNITLESS qudt:PERCENT "arbitrary_unit" qudt:KiloGM "kg_per_s" qudt:M-PER-SEC2 qudt:N-PER-M qudt:RAD qudt:RAD-PER-SEC qudt:SEC2 "per_unit" ) ; + [ sh:datatype xsd:string ; sh:maxCount 1 ; - sh:order 7 ; - sh:path tvbo:time_scale ] ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path dcterms:description ] ; sh:targetClass tvbo:Observation . tvbo:DerivedVariable a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:class tvbo:Case ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 9 ; - sh:path tvbo:cases ], - [ sh:datatype xsd:boolean ; + sh:property [ sh:description "External ontology IRIs (typically GO, ChEBI, UBERON, CL, MeSH) that this entity is a surrogate / abstraction / model of. Realized as the `tvbo:surrogate_of` object property, carried inline with the YAML data instance. Multiple IRIs allowed: a single parameter may abstract several biological processes (e.g. a synaptic conductance grounding both GO:0060079 (excitatory PSP) and GO:0007268 (chemical synaptic transmission))." ; + sh:nodeKind sh:IRI ; + sh:order 7 ; + sh:path tvbo:surrogate_of ], + [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 8 ; - sh:path tvbo:conditional ], - [ sh:description "Physical unit of measurement. Values are drawn from the QUDT ontology (http://qudt.org/vocab/unit/) with UO cross-references where available." ; - sh:in ( qudt:SEC qudt:MilliSEC qudt:MicroSEC qudt:PER-SEC qudt:PER-MilliSEC qudt:HZ qudt:KiloHZ qudt:V qudt:MilliV qudt:PER-MilliV qudt:MilliV-PER-MilliSEC qudt:MilliV-PER-SEC qudt:A qudt:NanoA qudt:PicoA "uA_per_cm2" qudt:PicoFARAD qudt:NanoFARAD "uF_per_cm2" qudt:NanoS qudt:MicroS qudt:PicoS "S_per_cm2" "mS_per_cm2" "S_per_m2" "nS_per_mV" qudt:PER-NanoC qudt:PER-PicoC qudt:MOL-PER-M3 "mol_per_cm3" qudt:MilliMOL-PER-M3 "mol_per_m_per_A_per_s" qudt:MicroM3 qudt:M qudt:MilliM qudt:CentiM qudt:M-PER-SEC qudt:MilliM-PER-MilliSEC "Hz_per_nA" qudt:S-PER-M qudt:H-PER-M qudt:OHM "Mohm" "kohm_cm" qudt:DEG_C "rad_per_ms" qudt:UNITLESS qudt:PERCENT "arbitrary_unit" qudt:KiloGM "kg_per_s" qudt:M-PER-SEC2 qudt:N-PER-M qudt:RAD qudt:RAD-PER-SEC qudt:SEC2 "per_unit" ) ; - sh:maxCount 1 ; - sh:order 5 ; - sh:path qudt:unit ], + sh:order 2 ; + sh:path tvbo:symbol ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 3 ; sh:path dcterms:description ], + [ sh:class tvbo:Equation ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 4 ; + sh:path tvbo:Equation ], [ sh:datatype xsd:string ; sh:description "Globally unique identifier for the entity." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path schema1:name ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path rdfs:label ], [ sh:datatype xsd:boolean ; sh:description "Whether to include this element in simulation output files. Applicable to state variables (default true), derived variables (default false), and network nodes (default true). Set false to suppress recording." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 6 ; sh:path tvbo:record ], - [ sh:datatype xsd:string ; + [ sh:description "Physical unit of measurement. Values are drawn from the QUDT ontology (http://qudt.org/vocab/unit/) with UO cross-references where available." ; + sh:in ( qudt:SEC qudt:MilliSEC qudt:MicroSEC qudt:PER-SEC qudt:PER-MilliSEC qudt:HZ qudt:KiloHZ qudt:V qudt:MilliV qudt:PER-MilliV qudt:MilliV-PER-MilliSEC qudt:MilliV-PER-SEC qudt:A qudt:NanoA qudt:PicoA "uA_per_cm2" qudt:PicoFARAD qudt:NanoFARAD "uF_per_cm2" qudt:NanoS qudt:MicroS qudt:PicoS "S_per_cm2" "mS_per_cm2" "S_per_m2" "nS_per_mV" qudt:PER-NanoC qudt:PER-PicoC qudt:MOL-PER-M3 "mol_per_cm3" qudt:MilliMOL-PER-M3 "mol_per_m_per_A_per_s" qudt:MicroM3 qudt:M qudt:MilliM qudt:CentiM qudt:M-PER-SEC qudt:MilliM-PER-MilliSEC "Hz_per_nA" qudt:S-PER-M qudt:H-PER-M qudt:OHM "Mohm" "kohm_cm" qudt:DEG_C "rad_per_ms" qudt:UNITLESS qudt:PERCENT "arbitrary_unit" qudt:KiloGM "kg_per_s" qudt:KiloGM-M2 qudt:M-PER-SEC2 qudt:N-PER-M qudt:RAD qudt:RAD-PER-SEC qudt:SEC2 qudt:W qudt:MegaW "per_unit" ) ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path tvbo:symbol ], - [ sh:description "External ontology IRIs (typically GO, ChEBI, UBERON, CL, MeSH) that this entity is a surrogate / abstraction / model of. Realized as the `tvbo:surrogate_of` object property, carried inline with the YAML data instance. Multiple IRIs allowed: a single parameter may abstract several biological processes (e.g. a synaptic conductance grounding both GO:0060079 (excitatory PSP) and GO:0007268 (chemical synaptic transmission))." ; - sh:nodeKind sh:IRI ; - sh:order 7 ; - sh:path tvbo:surrogate_of ], - [ sh:datatype xsd:string ; + sh:order 5 ; + sh:path qudt:unit ], + [ sh:datatype xsd:boolean ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path rdfs:label ], - [ sh:class tvbo:Equation ; - sh:maxCount 1 ; + sh:order 8 ; + sh:path tvbo:conditional ], + [ sh:class tvbo:Case ; sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 4 ; - sh:path tvbo:Equation ] ; + sh:order 9 ; + sh:path tvbo:cases ] ; sh:targetClass tvbo:DerivedVariable . tvbo:ExecutionConfig a sh:NodeShape ; @@ -5457,12 +5692,6 @@ tvbo:ExecutionConfig a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:integer ; - sh:description "Batch size for vectorized operations (None = auto)" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path tvbo:batch_size ], - [ sh:datatype xsd:integer ; sh:defaultValue 1 ; sh:description "Number of parallel workers (maps to pmap devices in JAX, processes in multiprocessing)" ; sh:maxCount 1 ; @@ -5470,12 +5699,24 @@ tvbo:ExecutionConfig a sh:NodeShape ; sh:order 0 ; sh:path tvbo:n_workers ], [ sh:datatype xsd:string ; - sh:defaultValue "float64"^^xsd:string ; - sh:description "Floating point precision: 'float32' or 'float64'" ; + sh:defaultValue "cpu"^^xsd:string ; + sh:description "Hardware accelerator: 'cpu', 'gpu', 'tpu'" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path tvbo:accelerator ], + [ sh:datatype xsd:boolean ; + sh:description "Whether to find a fixed point (steady state) before time integration. Used as initial condition for ODEProblem. Maps to NLsolve.fixpoint! in ND.jl or similar in other backends." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 6 ; + sh:path tvbo:find_fixpoint ], + [ sh:datatype xsd:integer ; + sh:description "Batch size for vectorized operations (None = auto)" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path tvbo:precision ], + sh:order 4 ; + sh:path tvbo:batch_size ], [ sh:datatype xsd:integer ; sh:defaultValue -1 ; sh:description "Number of CPU threads per worker (-1 = auto-detect)" ; @@ -5483,90 +5724,74 @@ tvbo:ExecutionConfig a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 1 ; sh:path tvbo:n_threads ], + [ sh:datatype xsd:string ; + sh:defaultValue "float64"^^xsd:string ; + sh:description "Floating point precision: 'float32' or 'float64'" ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path tvbo:precision ], [ sh:datatype xsd:integer ; sh:defaultValue 42 ; sh:description "Base random seed for reproducibility" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 5 ; - sh:path tvbo:random_seed ], - [ sh:datatype xsd:boolean ; - sh:description "Whether to find a fixed point (steady state) before time integration. Used as initial condition for ODEProblem. Maps to NLsolve.fixpoint! in ND.jl or similar in other backends." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path tvbo:find_fixpoint ], - [ sh:datatype xsd:string ; - sh:defaultValue "cpu"^^xsd:string ; - sh:description "Hardware accelerator: 'cpu', 'gpu', 'tpu'" ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path tvbo:accelerator ] ; + sh:path tvbo:random_seed ] ; sh:targetClass tvbo:ExecutionConfig . tvbo:StateVariable a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( tvbo:boundary_conditions tvbo:mesh rdf:type ) ; - sh:property [ sh:class tvbo:TimeSeries ; + sh:property [ sh:class tvbo:Noise ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 19 ; - sh:path tvbo:history ], + sh:order 14 ; + sh:path tvbo:noise ], + [ sh:datatype xsd:boolean ; + sh:defaultValue true ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 10 ; + sh:path tvbo:variable_of_interest ], [ sh:datatype xsd:string ; + sh:description "Globally unique identifier for the entity." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path skos:definition ], + sh:order 0 ; + sh:path schema1:name ], [ sh:description "Physical unit of measurement. Values are drawn from the QUDT ontology (http://qudt.org/vocab/unit/) with UO cross-references where available." ; - sh:in ( qudt:SEC qudt:MilliSEC qudt:MicroSEC qudt:PER-SEC qudt:PER-MilliSEC qudt:HZ qudt:KiloHZ qudt:V qudt:MilliV qudt:PER-MilliV qudt:MilliV-PER-MilliSEC qudt:MilliV-PER-SEC qudt:A qudt:NanoA qudt:PicoA "uA_per_cm2" qudt:PicoFARAD qudt:NanoFARAD "uF_per_cm2" qudt:NanoS qudt:MicroS qudt:PicoS "S_per_cm2" "mS_per_cm2" "S_per_m2" "nS_per_mV" qudt:PER-NanoC qudt:PER-PicoC qudt:MOL-PER-M3 "mol_per_cm3" qudt:MilliMOL-PER-M3 "mol_per_m_per_A_per_s" qudt:MicroM3 qudt:M qudt:MilliM qudt:CentiM qudt:M-PER-SEC qudt:MilliM-PER-MilliSEC "Hz_per_nA" qudt:S-PER-M qudt:H-PER-M qudt:OHM "Mohm" "kohm_cm" qudt:DEG_C "rad_per_ms" qudt:UNITLESS qudt:PERCENT "arbitrary_unit" qudt:KiloGM "kg_per_s" qudt:M-PER-SEC2 qudt:N-PER-M qudt:RAD qudt:RAD-PER-SEC qudt:SEC2 "per_unit" ) ; + sh:in ( qudt:SEC qudt:MilliSEC qudt:MicroSEC qudt:PER-SEC qudt:PER-MilliSEC qudt:HZ qudt:KiloHZ qudt:V qudt:MilliV qudt:PER-MilliV qudt:MilliV-PER-MilliSEC qudt:MilliV-PER-SEC qudt:A qudt:NanoA qudt:PicoA "uA_per_cm2" qudt:PicoFARAD qudt:NanoFARAD "uF_per_cm2" qudt:NanoS qudt:MicroS qudt:PicoS "S_per_cm2" "mS_per_cm2" "S_per_m2" "nS_per_mV" qudt:PER-NanoC qudt:PER-PicoC qudt:MOL-PER-M3 "mol_per_cm3" qudt:MilliMOL-PER-M3 "mol_per_m_per_A_per_s" qudt:MicroM3 qudt:M qudt:MilliM qudt:CentiM qudt:M-PER-SEC qudt:MilliM-PER-MilliSEC "Hz_per_nA" qudt:S-PER-M qudt:H-PER-M qudt:OHM "Mohm" "kohm_cm" qudt:DEG_C "rad_per_ms" qudt:UNITLESS qudt:PERCENT "arbitrary_unit" qudt:KiloGM "kg_per_s" qudt:KiloGM-M2 qudt:M-PER-SEC2 qudt:N-PER-M qudt:RAD qudt:RAD-PER-SEC qudt:SEC2 qudt:W qudt:MegaW "per_unit" ) ; sh:maxCount 1 ; sh:order 7 ; sh:path qudt:unit ], - [ sh:class tvbo:Equation ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 6 ; - sh:path tvbo:Equation ], - [ sh:datatype xsd:integer ; - sh:defaultValue 1 ; - sh:description "Order of the time derivative on the LHS. Default 1 means dx/dt = rhs (first-order ODE). Order 2 means dΒ²x/dtΒ² = rhs (second-order ODE), etc. Higher-order ODEs are automatically lowered to coupled first-order systems by backends like ModelingToolkit.jl via mtkcompile." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 13 ; - sh:path tvbo:equation_order ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; sh:path rdfs:label ], - [ sh:datatype xsd:boolean ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 15 ; - sh:path tvbo:stimulation_variable ], - [ sh:class tvbo:Noise ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 14 ; - sh:path tvbo:noise ], [ sh:datatype xsd:float ; sh:description "Initial value for the first time derivative, used when equation_order > 1. For a second-order ODE dΒ²x/dtΒ² = f, this sets dx/dt(0). Required by ModelingToolkit.jl to fully specify higher-order initial value problems." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 17 ; sh:path tvbo:derivative_initial_value ], - [ sh:datatype xsd:string ; - sh:description "Globally unique identifier for the entity." ; + [ sh:class tvbo:Distribution ; + sh:description "Distribution for sampling initial conditions per node. If present, initial_value is used as fallback/mean." ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path schema1:name ], + sh:nodeKind sh:IRI ; + sh:order 18 ; + sh:path tvbo:distribution ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path dcterms:description ], + sh:order 1 ; + sh:path tvbo:symbol ], + [ sh:class tvbo:Equation ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 6 ; + sh:path tvbo:Equation ], [ sh:datatype xsd:boolean ; sh:defaultValue true ; sh:description "Whether to include this element in simulation output files. Applicable to state variables (default true), derived variables (default false), and network nodes (default true). Set false to suppress recording." ; @@ -5574,15 +5799,21 @@ tvbo:StateVariable a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 8 ; sh:path tvbo:record ], + [ sh:datatype xsd:boolean ; + sh:description "Whether this state variable is transmitted to connected nodes through the coupling function. In TVB terms, this determines the cvar indices (state variables extracted from history and fed into the coupling function). The coupling function may override this via its incoming_states attribute." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 11 ; + sh:path tvbo:coupling_variable ], [ sh:description "External ontology IRIs (typically GO, ChEBI, UBERON, CL, MeSH) that this entity is a surrogate / abstraction / model of. Realized as the `tvbo:surrogate_of` object property, carried inline with the YAML data instance. Multiple IRIs allowed: a single parameter may abstract several biological processes (e.g. a synaptic conductance grounding both GO:0060079 (excitatory PSP) and GO:0007268 (chemical synaptic transmission))." ; sh:nodeKind sh:IRI ; sh:order 9 ; sh:path tvbo:surrogate_of ], - [ sh:datatype xsd:string ; + [ sh:datatype xsd:boolean ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path tvbo:symbol ], + sh:order 15 ; + sh:path tvbo:stimulation_variable ], [ sh:datatype xsd:string ; sh:defaultValue "differential"^^xsd:string ; sh:description "Type of equation: 'differential' (default) means dx/dt = rhs, 'algebraic' means 0 = rhs or x ~ rhs (DAE constraint). Algebraic equations are used by ModelingToolkit.jl backend." ; @@ -5590,47 +5821,51 @@ tvbo:StateVariable a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 12 ; sh:path tvbo:equation_type ], - [ sh:class tvbo:Distribution ; - sh:description "Distribution for sampling initial conditions per node. If present, initial_value is used as fallback/mean." ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 18 ; - sh:path tvbo:distribution ], - [ sh:class tvbo:Range ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 4 ; - sh:path tvbo:domain ], [ sh:datatype xsd:float ; sh:defaultValue "0.1"^^xsd:float ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 16 ; sh:path tvbo:initial_value ], - [ sh:datatype xsd:boolean ; - sh:description "Whether this state variable is transmitted to connected nodes through the coupling function. In TVB terms, this determines the cvar indices (state variables extracted from history and fed into the coupling function). The coupling function may override this via its incoming_states attribute." ; + [ sh:class tvbo:TimeSeries ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 19 ; + sh:path tvbo:history ], + [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 11 ; - sh:path tvbo:coupling_variable ], - [ sh:datatype xsd:boolean ; - sh:defaultValue true ; + sh:order 3 ; + sh:path skos:definition ], + [ sh:class tvbo:Range ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 4 ; + sh:path tvbo:domain ], + [ sh:datatype xsd:integer ; + sh:defaultValue 1 ; + sh:description "Order of the time derivative on the LHS. Default 1 means dx/dt = rhs (first-order ODE). Order 2 means dΒ²x/dtΒ² = rhs (second-order ODE), etc. Higher-order ODEs are automatically lowered to coupled first-order systems by backends like ModelingToolkit.jl via mtkcompile." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 10 ; - sh:path tvbo:variable_of_interest ] ; + sh:order 13 ; + sh:path tvbo:equation_order ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path dcterms:description ] ; sh:targetClass tvbo:StateVariable . <http://uri.interlex.org/tgbugs/uris/readable/Coordinate> a sh:NodeShape ; rdfs:comment "A 3D coordinate with X, Y, Z values." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:float ; - sh:description "Z coordinate" ; + sh:property [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/atlas/Transformation> ; + sh:description "Common coordinate space (e.g. FSLMNI152, MNI152NLin2009cAsym). Reference by name; the CommonCoordinateSpace must be defined in tvbo/database/coordinate_spaces/ (or future equivalent location)." ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path <http://uri.interlex.org/tgbugs/uris/readable/z> ], + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path <http://uri.interlex.org/tgbugs/uris/readable/coordinateSpace> ], [ sh:datatype xsd:float ; sh:description "Y coordinate" ; sh:maxCount 1 ; @@ -5643,33 +5878,30 @@ tvbo:StateVariable a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 1 ; sh:path <http://uri.interlex.org/tgbugs/uris/readable/x> ], - [ sh:class <http://uri.interlex.org/tgbugs/uris/readable/atlas/Transformation> ; - sh:description "Common coordinate space (e.g. FSLMNI152, MNI152NLin2009cAsym). Reference by name; the CommonCoordinateSpace must be defined in tvbo/database/coordinate_spaces/ (or future equivalent location)." ; + [ sh:datatype xsd:float ; + sh:description "Z coordinate" ; sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 0 ; - sh:path <http://uri.interlex.org/tgbugs/uris/readable/coordinateSpace> ] ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path <http://uri.interlex.org/tgbugs/uris/readable/z> ] ; sh:targetClass <http://uri.interlex.org/tgbugs/uris/readable/Coordinate> . tvbo:Distribution a sh:NodeShape ; rdfs:comment "A probability distribution for sampling parameters or initial conditions. Standard distributions (Uniform, Gaussian) are specified by name and domain/parameters. Custom distributions use a Function for the PDF/sampling rule. Default name is Uniform when only domain is given." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:class tvbo:Matrix ; + sh:property [ sh:defaultValue "space" ; + sh:description "Dimension along which the distribution is sampled. 'space' = per-node (default), 'time' = per-timestep (stochastic input)." ; + sh:in ( "space" "time" ) ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 6 ; - sh:path tvbo:correlation ], - [ sh:class tvbo:Parameter ; - sh:nodeKind sh:IRI ; - sh:order 1 ; - sh:path tvbo:parameters ], - [ sh:class tvbo:Range ; - sh:description "Support of the distribution (sampling bounds). For Uniform this fully defines the distribution." ; + sh:order 5 ; + sh:path tvbo:axis ], + [ sh:datatype xsd:integer ; + sh:description "Random seed for reproducible sampling." ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 2 ; - sh:path tvbo:domain ], + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path tvbo:seed ], [ sh:datatype xsd:string ; sh:defaultValue "Uniform"^^xsd:string ; sh:description "Globally unique identifier for the entity." ; @@ -5677,24 +5909,27 @@ tvbo:Distribution a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path schema1:name ], - [ sh:datatype xsd:integer ; - sh:description "Random seed for reproducible sampling." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path tvbo:seed ], - [ sh:defaultValue "space" ; - sh:description "Dimension along which the distribution is sampled. 'space' = per-node (default), 'time' = per-timestep (stochastic input)." ; - sh:in ( "space" "time" ) ; - sh:maxCount 1 ; - sh:order 5 ; - sh:path tvbo:axis ], [ sh:class tvbo:Function ; sh:description "Custom distribution function (PDF or sampling callable). Only needed for non-standard distributions." ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; sh:order 3 ; - sh:path tvbo:function ] ; + sh:path tvbo:function ], + [ sh:class tvbo:Range ; + sh:description "Support of the distribution (sampling bounds). For Uniform this fully defines the distribution." ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 2 ; + sh:path tvbo:domain ], + [ sh:class tvbo:Parameter ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path tvbo:parameters ], + [ sh:class tvbo:Matrix ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 6 ; + sh:path tvbo:correlation ] ; sh:targetClass tvbo:Distribution . <http://uri.interlex.org/tgbugs/uris/readable/atlas/Transformation> a sh:NodeShape ; @@ -5702,50 +5937,50 @@ tvbo:Distribution a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; + sh:description "Enter any alternate names, including abbreviations, for this entity." ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path <http://uri.interlex.org/tgbugs/uris/readable/atlas/hasName> ], + [ sh:datatype xsd:string ; sh:description "Enter the origin (central point where all axes intersect)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 6 ; sh:path <http://uri.interlex.org/tgbugs/uris/readable/axesOrigin> ], + [ sh:datatype xsd:string ; + sh:description "Add all image files used as visual representation of this common coordinate space version." ; + sh:nodeKind sh:Literal ; + sh:order 8 ; + sh:path <http://uri.interlex.org/tgbugs/uris/readable/defaultImage> ], + [ sh:description "Physical unit of measurement. Values are drawn from the QUDT ontology (http://qudt.org/vocab/unit/) with UO cross-references where available." ; + sh:in ( qudt:SEC qudt:MilliSEC qudt:MicroSEC qudt:PER-SEC qudt:PER-MilliSEC qudt:HZ qudt:KiloHZ qudt:V qudt:MilliV qudt:PER-MilliV qudt:MilliV-PER-MilliSEC qudt:MilliV-PER-SEC qudt:A qudt:NanoA qudt:PicoA "uA_per_cm2" qudt:PicoFARAD qudt:NanoFARAD "uF_per_cm2" qudt:NanoS qudt:MicroS qudt:PicoS "S_per_cm2" "mS_per_cm2" "S_per_m2" "nS_per_mV" qudt:PER-NanoC qudt:PER-PicoC qudt:MOL-PER-M3 "mol_per_cm3" qudt:MilliMOL-PER-M3 "mol_per_m_per_A_per_s" qudt:MicroM3 qudt:M qudt:MilliM qudt:CentiM qudt:M-PER-SEC qudt:MilliM-PER-MilliSEC "Hz_per_nA" qudt:S-PER-M qudt:H-PER-M qudt:OHM "Mohm" "kohm_cm" qudt:DEG_C "rad_per_ms" qudt:UNITLESS qudt:PERCENT "arbitrary_unit" qudt:KiloGM "kg_per_s" qudt:KiloGM-M2 qudt:M-PER-SEC2 qudt:N-PER-M qudt:RAD qudt:RAD-PER-SEC qudt:SEC2 qudt:W qudt:MegaW "per_unit" ) ; + sh:maxCount 1 ; + sh:order 3 ; + sh:path qudt:unit ], [ sh:datatype xsd:string ; sh:description "Slot for the abbreviation of a resource." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; sh:path skos:notation ], + [ sh:datatype xsd:string ; + sh:description "Globally unique identifier for the entity." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path schema1:name ], [ sh:datatype xsd:string ; sh:description "Add the native unit that is used for this common coordinate space version." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 7 ; sh:path <http://uri.interlex.org/tgbugs/uris/readable/nativeUnit> ], - [ sh:description "Physical unit of measurement. Values are drawn from the QUDT ontology (http://qudt.org/vocab/unit/) with UO cross-references where available." ; - sh:in ( qudt:SEC qudt:MilliSEC qudt:MicroSEC qudt:PER-SEC qudt:PER-MilliSEC qudt:HZ qudt:KiloHZ qudt:V qudt:MilliV qudt:PER-MilliV qudt:MilliV-PER-MilliSEC qudt:MilliV-PER-SEC qudt:A qudt:NanoA qudt:PicoA "uA_per_cm2" qudt:PicoFARAD qudt:NanoFARAD "uF_per_cm2" qudt:NanoS qudt:MicroS qudt:PicoS "S_per_cm2" "mS_per_cm2" "S_per_m2" "nS_per_mV" qudt:PER-NanoC qudt:PER-PicoC qudt:MOL-PER-M3 "mol_per_cm3" qudt:MilliMOL-PER-M3 "mol_per_m_per_A_per_s" qudt:MicroM3 qudt:M qudt:MilliM qudt:CentiM qudt:M-PER-SEC qudt:MilliM-PER-MilliSEC "Hz_per_nA" qudt:S-PER-M qudt:H-PER-M qudt:OHM "Mohm" "kohm_cm" qudt:DEG_C "rad_per_ms" qudt:UNITLESS qudt:PERCENT "arbitrary_unit" qudt:KiloGM "kg_per_s" qudt:M-PER-SEC2 qudt:N-PER-M qudt:RAD qudt:RAD-PER-SEC qudt:SEC2 "per_unit" ) ; - sh:maxCount 1 ; - sh:order 3 ; - sh:path qudt:unit ], - [ sh:datatype xsd:string ; - sh:description "Enter any alternate names, including abbreviations, for this entity." ; - sh:nodeKind sh:Literal ; - sh:order 2 ; - sh:path <http://uri.interlex.org/tgbugs/uris/readable/atlas/hasName> ], - [ sh:datatype xsd:string ; - sh:description "Add all image files used as visual representation of this common coordinate space version." ; - sh:nodeKind sh:Literal ; - sh:order 8 ; - sh:path <http://uri.interlex.org/tgbugs/uris/readable/defaultImage> ], [ sh:datatype xsd:string ; sh:description "Add the axes orientation in standard anatomical terms (XYZ)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 5 ; sh:path <http://uri.interlex.org/tgbugs/uris/readable/anatomicalAxesOrientation> ], - [ sh:datatype xsd:string ; - sh:description "Globally unique identifier for the entity." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path schema1:name ], [ sh:datatype xsd:string ; sh:description "Linked type for the license of the brain atlas or coordinate space version." ; sh:maxCount 1 ; @@ -5758,91 +5993,121 @@ tvbo:Dynamics a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; + sh:description "Add the location of the data file containing the parcellation terminology." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path dcterms:references ], + sh:order 8 ; + sh:path <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], + [ sh:class tvbo:Dynamics ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 16 ; + sh:path tvbo:derived_from_model ], + [ sh:datatype xsd:string ; + sh:defaultValue "Dynamics"^^xsd:string ; + sh:description "Globally unique identifier for the entity." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path schema1:name ], + [ sh:class tvbo:DerivedParameter ; + sh:nodeKind sh:IRI ; + sh:order 9 ; + sh:path tvbo:derived_parameters ], + [ sh:class tvbo:Parameter ; + sh:nodeKind sh:IRI ; + sh:order 11 ; + sh:path tvbo:coupling_terms ], + [ sh:class tvbo:Dynamics ; + sh:nodeKind sh:IRI ; + sh:order 21 ; + sh:path tvbo:modes ], [ sh:datatype xsd:string ; sh:nodeKind sh:Literal ; sh:order 7 ; sh:path dcterms:references ], - [ sh:datatype xsd:boolean ; + [ sh:class tvbo:Parameter ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path tvbo:parameters ], + [ sh:description "Coarse classification of this model (mean_field, neural_mass, phase_oscillator, phenomenological, spiking, generic, field). Used for filtering in Dynamics.list_db(model_type=...)." ; + sh:in ( "mean_field" "neural_mass" "phase_oscillator" "phenomenological" "spiking" "generic" "field" ) ; sh:maxCount 1 ; + sh:order 22 ; + sh:path tvbo:model_type ], + [ sh:datatype xsd:string ; + sh:description "Output variable names to include in simulation results. References to state_variables or derived_variables by name." ; sh:nodeKind sh:Literal ; - sh:order 14 ; - sh:path tvbo:modified ], + sh:order 15 ; + sh:path tvbo:output ], + [ sh:class tvbo:Stimulus ; + sh:maxCount 1 ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 20 ; + sh:path tvbo:stimulus ], [ sh:class tvbo:StateVariable ; sh:nodeKind sh:IRI ; sh:order 13 ; sh:path tvbo:state_variables ], + [ sh:class tvbo:DerivedVariable ; + sh:description "Observable functions computed from states, inputs, and parameters after simulation. Unlike derived_variables (which are intermediate algebraic expressions used within the ODE), observed variables are post-hoc quantities recoverable from the solution. Maps to obsf/obssym in ND.jl EdgeModel/VertexModel. Example: absolute force magnitude computed from force components." ; + sh:nodeKind sh:IRI ; + sh:order 25 ; + sh:path tvbo:observed ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; sh:path rdfs:label ], + [ sh:class tvbo:Function ; + sh:nodeKind sh:IRI ; + sh:order 19 ; + sh:path tvbo:functions ], + [ sh:datatype xsd:integer ; + sh:defaultValue 1 ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 17 ; + sh:path tvbo:number_of_modes ], [ sh:class tvbo:DerivedVariable ; sh:nodeKind sh:IRI ; sh:order 10 ; sh:path tvbo:derived_variables ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path dcterms:description ], [ sh:class tvbo:CouplingInput ; sh:nodeKind sh:IRI ; sh:order 12 ; sh:path tvbo:coupling_inputs ], - [ sh:datatype xsd:boolean ; - sh:description "Code-generation hint (opt-in, backend-independent): request that the generated dynamics be compiled to machine code rather than interpreted, where the target backend supports it. Purely a performance hint with no effect on results; a backend that is inherently compiled (or cannot compile) honours it as a no-op. Off by default. Independent of, and composable with, ``cse``." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 28 ; - sh:path tvbo:compile ], - [ sh:datatype xsd:string ; - sh:defaultValue "Dynamics"^^xsd:string ; - sh:description "Globally unique identifier for the entity." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path schema1:name ], [ sh:defaultValue "continuous" ; sh:in ( "continuous" "discrete" ) ; sh:maxCount 1 ; sh:order 23 ; sh:path tvbo:system_type ], - [ sh:class tvbo:Parameter ; - sh:nodeKind sh:IRI ; - sh:order 4 ; - sh:path tvbo:parameters ], - [ sh:class tvbo:DerivedParameter ; - sh:nodeKind sh:IRI ; - sh:order 9 ; - sh:path tvbo:derived_parameters ], - [ sh:class tvbo:Event ; - sh:description "Discrete state transitions intrinsic to the dynamical system, such as threshold-triggered resets in spiking neuron models. Unlike experiment-level events (stimulation, perturbation), these define the model's own discontinuous behavior." ; - sh:nodeKind sh:IRI ; - sh:order 26 ; - sh:path tvbo:events ], [ sh:description "Optional stable IRI (or compact URI) for this entity in an external ontology or knowledge base. Used to load metadata from an external source; not required when the entity is fully self-contained (equations, parameters, etc. defined in the file itself)." ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; sh:order 3 ; sh:path dcterms:identifier ], - [ sh:datatype xsd:string ; + [ sh:datatype xsd:boolean ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path dcterms:description ], - [ sh:class tvbo:Stimulus ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 20 ; - sh:path tvbo:stimulus ], - [ sh:datatype xsd:string ; + sh:order 14 ; + sh:path tvbo:modified ], + [ sh:datatype xsd:boolean ; + sh:description "Code-generation hint (opt-in, backend-independent): request that the generated dynamics be compiled to machine code rather than interpreted, where the target backend supports it. Purely a performance hint with no effect on results; a backend that is inherently compiled (or cannot compile) honours it as a no-op. Off by default. Independent of, and composable with, ``cse``." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path dcterms:source ], - [ sh:class tvbo:Dynamics ; + sh:order 28 ; + sh:path tvbo:compile ], + [ sh:class tvbo:Parameter ; + sh:maxCount 1 ; sh:nodeKind sh:IRI ; - sh:order 21 ; - sh:path tvbo:modes ], + sh:order 18 ; + sh:path tvbo:local_coupling_term ], [ sh:datatype xsd:boolean ; sh:defaultValue true ; sh:description "Whether the system is autonomous (equations do not depend explicitly on time t). Non-autonomous systems have explicit time dependence, e.g. f*cos(omega*t)." ; @@ -5850,57 +6115,27 @@ tvbo:Dynamics a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 24 ; sh:path tvbo:autonomous ], - [ sh:datatype xsd:string ; - sh:description "Output variable names to include in simulation results. References to state_variables or derived_variables by name." ; - sh:nodeKind sh:Literal ; - sh:order 15 ; - sh:path tvbo:output ], - [ sh:datatype xsd:integer ; - sh:defaultValue 1 ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 17 ; - sh:path tvbo:number_of_modes ], - [ sh:class tvbo:Function ; - sh:nodeKind sh:IRI ; - sh:order 19 ; - sh:path tvbo:functions ], - [ sh:class tvbo:Parameter ; + [ sh:class tvbo:Event ; + sh:description "Discrete state transitions intrinsic to the dynamical system, such as threshold-triggered resets in spiking neuron models. Unlike experiment-level events (stimulation, perturbation), these define the model's own discontinuous behavior." ; sh:nodeKind sh:IRI ; - sh:order 11 ; - sh:path tvbo:coupling_terms ], + sh:order 26 ; + sh:path tvbo:events ], [ sh:datatype xsd:string ; - sh:description "Add the location of the data file containing the parcellation terminology." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 8 ; - sh:path <http://uri.interlex.org/tgbugs/uris/readable/dataLocation> ], - [ sh:class tvbo:Parameter ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 18 ; - sh:path tvbo:local_coupling_term ], + sh:order 6 ; + sh:path dcterms:source ], [ sh:datatype xsd:boolean ; sh:description "Code-generation hint (opt-in, backend-independent): eliminate common subexpressions. When true, the generator evaluates each repeated subexpression β€” including repeated calls to model-defined functions β€” once and reuses the result instead of re-emitting it at every occurrence. Purely a performance hint: results are numerically identical. A backend whose compiler already performs this elimination may honour it as a no-op. Off by default (expressions are emitted in flat form)." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 27 ; sh:path tvbo:cse ], - [ sh:description "Coarse classification of this model (mean_field, neural_mass, phase_oscillator, phenomenological, spiking, generic, field). Used for filtering in Dynamics.list_db(model_type=...)." ; - sh:in ( "mean_field" "neural_mass" "phase_oscillator" "phenomenological" "spiking" "generic" "field" ) ; - sh:maxCount 1 ; - sh:order 22 ; - sh:path tvbo:model_type ], - [ sh:class tvbo:DerivedVariable ; - sh:description "Observable functions computed from states, inputs, and parameters after simulation. Unlike derived_variables (which are intermediate algebraic expressions used within the ODE), observed variables are post-hoc quantities recoverable from the solution. Maps to obsf/obssym in ND.jl EdgeModel/VertexModel. Example: absolute force magnitude computed from force components." ; - sh:nodeKind sh:IRI ; - sh:order 25 ; - sh:path tvbo:observed ], - [ sh:class tvbo:Dynamics ; + [ sh:datatype xsd:string ; sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 16 ; - sh:path tvbo:derived_from_model ] ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path dcterms:references ] ; sh:targetClass tvbo:Dynamics . <https://w3id.org/tvbo/software/SoftwareRequirement> a sh:NodeShape ; @@ -5908,27 +6143,17 @@ tvbo:Dynamics a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; sh:property [ sh:datatype xsd:string ; + sh:description "Build or artifact hash for exact reproducibility." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 10 ; - sh:path dcterms:license ], - [ sh:datatype xsd:string ; - sh:description "Canonical source or repository URL." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 8 ; - sh:path <https://w3id.org/tvbo/software/source_url> ], - [ sh:datatype xsd:string ; - sh:description "Version or constraint specifier (e.g., '==2.7.3', '>=1.2,<2')." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path <https://w3id.org/tvbo/software/version_spec> ], - [ sh:datatype xsd:boolean ; + sh:order 7 ; + sh:path <https://w3id.org/tvbo/software/hash> ], + [ sh:class schema1:SoftwareApplication ; + sh:description "Reference to the software package identity." ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 6 ; - sh:path <https://w3id.org/tvbo/software/optional> ], + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path <https://w3id.org/tvbo/software/package> ], [ sh:datatype xsd:string ; sh:description "(Deprecated) Use environment.requirements list instead." ; sh:nodeKind sh:Literal ; @@ -5940,168 +6165,162 @@ tvbo:Dynamics a sh:NodeShape ; sh:order 2 ; sh:path <https://w3id.org/tvbo/software/dataLocation> ], [ sh:datatype xsd:string ; - sh:description "(Deprecated) Use source_url." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 9 ; - sh:path <https://w3id.org/tvbo/software/url> ], + sh:order 1 ; + sh:path dcterms:description ], [ sh:datatype xsd:string ; + sh:description "Globally unique identifier for the entity." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path dcterms:description ], + sh:order 0 ; + sh:path schema1:name ], [ sh:datatype xsd:string ; - sh:description "Build or artifact hash for exact reproducibility." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 7 ; - sh:path <https://w3id.org/tvbo/software/hash> ], + sh:order 10 ; + sh:path dcterms:license ], + [ sh:datatype xsd:string ; + sh:description "Canonical source or repository URL." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 8 ; + sh:path <https://w3id.org/tvbo/software/source_url> ], [ sh:datatype xsd:string ; sh:description "(Deprecated) Use version_spec." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 12 ; sh:path <https://w3id.org/tvbo/software/version> ], - [ sh:defaultValue "runtime" ; - sh:in ( "engine" "runtime" "analysis" "dev" "optional" ) ; + [ sh:datatype xsd:string ; + sh:description "Version or constraint specifier (e.g., '==2.7.3', '>=1.2,<2')." ; sh:maxCount 1 ; - sh:order 5 ; - sh:path <https://w3id.org/tvbo/software/role> ], + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path <https://w3id.org/tvbo/software/version_spec> ], [ sh:datatype xsd:string ; - sh:description "Globally unique identifier for the entity." ; + sh:description "(Deprecated) Use source_url." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path schema1:name ], - [ sh:class schema1:SoftwareApplication ; - sh:description "Reference to the software package identity." ; + sh:order 9 ; + sh:path <https://w3id.org/tvbo/software/url> ], + [ sh:datatype xsd:boolean ; sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 3 ; - sh:path <https://w3id.org/tvbo/software/package> ] ; + sh:nodeKind sh:Literal ; + sh:order 6 ; + sh:path <https://w3id.org/tvbo/software/optional> ], + [ sh:defaultValue "runtime" ; + sh:in ( "engine" "runtime" "analysis" "dev" "optional" ) ; + sh:maxCount 1 ; + sh:order 5 ; + sh:path <https://w3id.org/tvbo/software/role> ] ; sh:targetClass <https://w3id.org/tvbo/software/SoftwareRequirement> . tvbo:Function a sh:NodeShape ; rdfs:comment "A function with explicit input -> transformation -> output flow. Can be equation-based (symbolic) or software-based (callable). In a pipeline, functions are chained: output of one becomes input of next." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:class tvbo:Equation ; + sh:property [ sh:class tvbo:Callable ; + sh:description "Software implementation reference (if software-based)" ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 13 ; + sh:path tvbo:callable ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path skos:notation ], + [ sh:class <https://w3id.org/tvbo/software/SoftwareRequirement> ; + sh:nodeKind sh:IRI ; + sh:order 7 ; + sh:path tvbo:requirements ], + [ sh:class tvbo:Aggregation ; + sh:description "How to aggregate the result across dimensions. E.g., aggregate.over=node computes per-row (per-node) with keepdims. The type field controls whether to reduce (mean/sum) or keep dimensions (none)." ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 4 ; - sh:path tvbo:Equation ], + sh:order 15 ; + sh:path tvbo:aggregate ], + [ sh:class tvbo:Function ; + sh:description "Simple input reference: name of previous function's output in pipeline. For multi-argument functions, use arguments with value references instead." ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 8 ; + sh:path tvbo:input ], [ sh:datatype xsd:string ; + sh:description "Name for this function's output (referenced by subsequent functions)" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path skos:definition ], + sh:order 9 ; + sh:path tvbo:output ], + [ sh:datatype xsd:string ; + sh:description "Globally unique identifier for the entity." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path schema1:name ], [ sh:description "Which dimension to apply the transformation on" ; sh:in ( "time" "state" "node" "region" "mode" "sample" "batch" "frequency" ) ; sh:maxCount 1 ; sh:order 14 ; sh:path tvbo:apply_on_dimension ], - [ sh:description "Optional stable IRI (or compact URI) for this entity in an external ontology or knowledge base. Used to load metadata from an external source; not required when the entity is fully self-contained (equations, parameters, etc. defined in the file itself)." ; + [ sh:class tvbo:Equation ; sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 3 ; - sh:path dcterms:identifier ], + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 4 ; + sh:path tvbo:Equation ], [ sh:datatype xsd:string ; - sh:description "Name for this function's output (referenced by subsequent functions)" ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 9 ; - sh:path tvbo:output ], + sh:order 5 ; + sh:path skos:definition ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 12 ; sh:path tvbo:source_code ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 1 ; - sh:path skos:notation ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 6 ; sh:path dcterms:description ], - [ sh:class tvbo:Function ; - sh:description "Simple input reference: name of previous function's output in pipeline. For multi-argument functions, use arguments with value references instead." ; - sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 8 ; - sh:path tvbo:input ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 2 ; sh:path rdfs:label ], - [ sh:class tvbo:Equation ; - sh:description "Output transformation equation (if equation-based)" ; - sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 11 ; - sh:path tvbo:output_equation ], - [ sh:class tvbo:Callable ; - sh:description "Software implementation reference (if software-based)" ; + [ sh:class tvbo:Argument ; + sh:description "Variables consumed by the function (referenced in the equation), keyed by argument name. Each value carries the optional metadata (value, description, unit); the key is the name (no redundant `name:` inside)." ; + sh:nodeKind sh:IRI ; + sh:order 10 ; + sh:path tvbo:arguments ], + [ sh:description "Optional stable IRI (or compact URI) for this entity in an external ontology or knowledge base. Used to load metadata from an external source; not required when the entity is fully self-contained (equations, parameters, etc. defined in the file itself)." ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; - sh:order 13 ; - sh:path tvbo:callable ], + sh:order 3 ; + sh:path dcterms:identifier ], [ sh:class tvbo:Range ; sh:description "Time range for generated TimeSeries (for kernel generators). Equation is evaluated at each time point." ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; sh:order 16 ; sh:path tvbo:time_range ], - [ sh:class tvbo:Aggregation ; - sh:description "How to aggregate the result across dimensions. E.g., aggregate.over=node computes per-row (per-node) with keepdims. The type field controls whether to reduce (mean/sum) or keep dimensions (none)." ; + [ sh:class tvbo:Equation ; + sh:description "Output transformation equation (if equation-based)" ; sh:maxCount 1 ; sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 15 ; - sh:path tvbo:aggregate ], - [ sh:class tvbo:Argument ; - sh:description "Variables consumed by the function (referenced in the equation), keyed by argument name. Each value carries the optional metadata (value, description, unit); the key is the name (no redundant `name:` inside)." ; - sh:nodeKind sh:IRI ; - sh:order 10 ; - sh:path tvbo:arguments ], - [ sh:datatype xsd:string ; - sh:description "Globally unique identifier for the entity." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path schema1:name ], - [ sh:class <https://w3id.org/tvbo/software/SoftwareRequirement> ; - sh:nodeKind sh:IRI ; - sh:order 7 ; - sh:path tvbo:requirements ] ; + sh:order 11 ; + sh:path tvbo:output_equation ] ; sh:targetClass tvbo:Function . tvbo:Range a sh:NodeShape ; rdfs:comment "Specifies a range for array generation, parameter bounds, or grid exploration." ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:boolean ; - sh:description "Whether to use logarithmic spacing." ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path tvbo:log_scale ], - [ sh:defaultValue "none" ; - sh:description "For a state-variable ``domain``: whether/how to enforce the range during integration (none/clamp/wrap). Ignored for parameter, distribution and grid ranges. See DomainEnforcement." ; - sh:in ( "none" "clamp" "wrap" ) ; - sh:maxCount 1 ; - sh:order 0 ; - sh:path tvbo:enforce ], - [ sh:description "Lower bound or starting value. Can be a number or argument name." ; + sh:property [ sh:description "Lower bound or starting value. Can be a number or argument name." ; sh:maxCount 1 ; sh:order 1 ; sh:path tvbo:lo ], - [ sh:description "Step size. Can be: number, argument name, or expression." ; - sh:maxCount 1 ; - sh:order 3 ; - sh:path tvbo:step ], [ sh:datatype xsd:float ; sh:description "Explicit explored values for this element. When set on an element_domain entry, overrides the parent parameter's explored_values for this specific element." ; sh:nodeKind sh:Literal ; @@ -6111,6 +6330,16 @@ tvbo:Range a sh:NodeShape ; sh:maxCount 1 ; sh:order 2 ; sh:path tvbo:hi ], + [ sh:defaultValue "none" ; + sh:description "For a state-variable ``domain``: whether/how to enforce the range during integration (none/clamp/wrap). Ignored for parameter, distribution and grid ranges. See DomainEnforcement." ; + sh:in ( "none" "clamp" "wrap" ) ; + sh:maxCount 1 ; + sh:order 0 ; + sh:path tvbo:enforce ], + [ sh:description "Step size. Can be: number, argument name, or expression." ; + sh:maxCount 1 ; + sh:order 3 ; + sh:path tvbo:step ], [ sh:datatype xsd:integer ; sh:description "Number of points (alternative to step for grid exploration)." ; sh:maxCount 1 ; @@ -6122,22 +6351,28 @@ tvbo:Range a sh:NodeShape ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 7 ; - sh:path tvbo:element ] ; + sh:path tvbo:element ], + [ sh:datatype xsd:boolean ; + sh:description "Whether to use logarithmic spacing." ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path tvbo:log_scale ] ; sh:targetClass tvbo:Range . tvbo:Parameter a sh:NodeShape ; sh:closed true ; sh:ignoredProperties ( rdf:type ) ; - sh:property [ sh:datatype xsd:float ; - sh:nodeKind sh:Literal ; - sh:order 20 ; - sh:path tvbo:explored_values ], - [ sh:datatype xsd:string ; - sh:description "Selector into the source. When `source` points at a Network with per-node parameters (or a dscalar with multiple maps), picks which named measure to load. Aligns with names listed in Network.structural_measures / Network.observational_measures. Ignored when the source resolves to a scalar/array dataset." ; + sh:property [ sh:description "Physical unit of measurement. Values are drawn from the QUDT ontology (http://qudt.org/vocab/unit/) with UO cross-references where available." ; + sh:in ( qudt:SEC qudt:MilliSEC qudt:MicroSEC qudt:PER-SEC qudt:PER-MilliSEC qudt:HZ qudt:KiloHZ qudt:V qudt:MilliV qudt:PER-MilliV qudt:MilliV-PER-MilliSEC qudt:MilliV-PER-SEC qudt:A qudt:NanoA qudt:PicoA "uA_per_cm2" qudt:PicoFARAD qudt:NanoFARAD "uF_per_cm2" qudt:NanoS qudt:MicroS qudt:PicoS "S_per_cm2" "mS_per_cm2" "S_per_m2" "nS_per_mV" qudt:PER-NanoC qudt:PER-PicoC qudt:MOL-PER-M3 "mol_per_cm3" qudt:MilliMOL-PER-M3 "mol_per_m_per_A_per_s" qudt:MicroM3 qudt:M qudt:MilliM qudt:CentiM qudt:M-PER-SEC qudt:MilliM-PER-MilliSEC "Hz_per_nA" qudt:S-PER-M qudt:H-PER-M qudt:OHM "Mohm" "kohm_cm" qudt:DEG_C "rad_per_ms" qudt:UNITLESS qudt:PERCENT "arbitrary_unit" qudt:KiloGM "kg_per_s" qudt:KiloGM-M2 qudt:M-PER-SEC2 qudt:N-PER-M qudt:RAD qudt:RAD-PER-SEC qudt:SEC2 qudt:W qudt:MegaW "per_unit" ) ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 17 ; - sh:path tvbo:measure ], + sh:order 10 ; + sh:path qudt:unit ], + [ sh:description "Data source for this parameter's value. When set, the value is loaded from the referenced entity rather than being a YAML literal. The referent is typically a Network with per-node parameters (dscalar pattern) or a flat dataset (HDF5, TSV). Combine with `measure:` when the source exposes multiple named measures. Distinct from the global `iri:` slot, which is reserved for ontology grounding." ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 16 ; + sh:path tvbo:source ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; @@ -6146,19 +6381,27 @@ tvbo:Parameter a sh:NodeShape ; [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path skos:definition ], - [ sh:class tvbo:Distribution ; - sh:description "Distribution for heterogeneous per-node parameter sampling. Implies heterogeneous=true." ; - sh:maxCount 1 ; + sh:order 8 ; + sh:path dcterms:description ], + [ sh:description "External ontology IRIs (typically GO, ChEBI, UBERON, CL, MeSH) that this entity is a surrogate / abstraction / model of. Realized as the `tvbo:surrogate_of` object property, carried inline with the YAML data instance. Multiple IRIs allowed: a single parameter may abstract several biological processes (e.g. a synaptic conductance grounding both GO:0060079 (excitatory PSP) and GO:0007268 (chemical synaptic transmission))." ; sh:nodeKind sh:IRI ; - sh:order 15 ; - sh:path tvbo:distribution ], - [ sh:datatype xsd:string ; + sh:order 12 ; + sh:path tvbo:surrogate_of ], + [ sh:datatype xsd:float ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 8 ; - sh:path dcterms:description ], + sh:order 7 ; + sh:path tvbo:reported_optimum ], + [ sh:datatype xsd:boolean ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 18 ; + sh:path tvbo:free ], + [ sh:datatype xsd:boolean ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 14 ; + sh:path tvbo:heterogeneous ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; @@ -6170,99 +6413,106 @@ tvbo:Parameter a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 23 ; sh:path tvbo:required ], - [ sh:class tvbo:Range ; - sh:description "Per-element domain overrides for heterogeneous parameters. When specified, element_domains[i] overrides domain for element i during exploration auto-expansion. Length must match parameter shape (e.g., n_nodes for shape \"(n_nodes,)\"). If not set, all elements share the same domain." ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 21 ; - sh:path tvbo:element_domains ], - [ sh:description "Physical unit of measurement. Values are drawn from the QUDT ontology (http://qudt.org/vocab/unit/) with UO cross-references where available." ; - sh:in ( qudt:SEC qudt:MilliSEC qudt:MicroSEC qudt:PER-SEC qudt:PER-MilliSEC qudt:HZ qudt:KiloHZ qudt:V qudt:MilliV qudt:PER-MilliV qudt:MilliV-PER-MilliSEC qudt:MilliV-PER-SEC qudt:A qudt:NanoA qudt:PicoA "uA_per_cm2" qudt:PicoFARAD qudt:NanoFARAD "uF_per_cm2" qudt:NanoS qudt:MicroS qudt:PicoS "S_per_cm2" "mS_per_cm2" "S_per_m2" "nS_per_mV" qudt:PER-NanoC qudt:PER-PicoC qudt:MOL-PER-M3 "mol_per_cm3" qudt:MilliMOL-PER-M3 "mol_per_m_per_A_per_s" qudt:MicroM3 qudt:M qudt:MilliM qudt:CentiM qudt:M-PER-SEC qudt:MilliM-PER-MilliSEC "Hz_per_nA" qudt:S-PER-M qudt:H-PER-M qudt:OHM "Mohm" "kohm_cm" qudt:DEG_C "rad_per_ms" qudt:UNITLESS qudt:PERCENT "arbitrary_unit" qudt:KiloGM "kg_per_s" qudt:M-PER-SEC2 qudt:N-PER-M qudt:RAD qudt:RAD-PER-SEC qudt:SEC2 "per_unit" ) ; - sh:maxCount 1 ; - sh:order 10 ; - sh:path qudt:unit ], - [ sh:description "Data source for this parameter's value. When set, the value is loaded from the referenced entity rather than being a YAML literal. The referent is typically a Network with per-node parameters (dscalar pattern) or a flat dataset (HDF5, TSV). Combine with `measure:` when the source exposes multiple named measures. Distinct from the global `iri:` slot, which is reserved for ontology grounding." ; + [ sh:class tvbo:Equation ; sh:maxCount 1 ; - sh:nodeKind sh:IRI ; - sh:order 16 ; - sh:path tvbo:source ], + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 9 ; + sh:path tvbo:Equation ], [ sh:datatype xsd:string ; sh:description "Globally unique identifier for the entity." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 0 ; sh:path schema1:name ], - [ sh:datatype xsd:boolean ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 18 ; - sh:path tvbo:free ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 19 ; - sh:path tvbo:shape ], - [ sh:description "Numeric, string, or boolean value, OR an array (nested list) for array-valued constants such as mode-coupling coefficient matrices. ScalarValue accepts any literal primitive type, allowing parameters to carry control flags (e.g., booleans) or symbolic placeholders alongside numeric defaults." ; - sh:maxCount 1 ; - sh:or ( [ ] [ ] ) ; - sh:order 4 ; - sh:path schema1:value ], - [ sh:description "External ontology IRIs (typically GO, ChEBI, UBERON, CL, MeSH) that this entity is a surrogate / abstraction / model of. Realized as the `tvbo:surrogate_of` object property, carried inline with the YAML data instance. Multiple IRIs allowed: a single parameter may abstract several biological processes (e.g. a synaptic conductance grounding both GO:0060079 (excitatory PSP) and GO:0007268 (chemical synaptic transmission))." ; - sh:nodeKind sh:IRI ; - sh:order 12 ; - sh:path tvbo:surrogate_of ], + sh:order 5 ; + sh:path schema1:defaultValue ], [ sh:datatype xsd:string ; sh:description "Declared value type of this parameter, given as a schema range name β€” a primitive (``integer``, ``float``, ``string``, ``uriorcurie``) or a class (e.g. ``Distribution``). Documents the expected type when the parameter is a *declaration* carrying no concrete ``value`` (e.g. a GraphGenerator's typed argument interface). Distinct from ``domain`` (numeric bounds) and ``unit``." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 22 ; sh:path tvbo:datatype ], + [ sh:datatype xsd:float ; + sh:nodeKind sh:Literal ; + sh:order 20 ; + sh:path tvbo:explored_values ], + [ sh:class tvbo:Distribution ; + sh:description "Distribution for heterogeneous per-node parameter sampling. Implies heterogeneous=true." ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + sh:order 15 ; + sh:path tvbo:distribution ], [ sh:datatype xsd:string ; + sh:description "Selector into the source. When `source` points at a Network with per-node parameters (or a dscalar with multiple maps), picks which named measure to load. Aligns with names listed in Network.structural_measures / Network.observational_measures. Ignored when the source resolves to a scalar/array dataset." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 5 ; - sh:path schema1:defaultValue ], - [ sh:class tvbo:Equation ; + sh:order 17 ; + sh:path tvbo:measure ], + [ sh:datatype xsd:string ; sh:maxCount 1 ; - sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 9 ; - sh:path tvbo:Equation ], - [ sh:datatype xsd:boolean ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path skos:definition ], + [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; - sh:order 14 ; - sh:path tvbo:heterogeneous ], + sh:order 19 ; + sh:path tvbo:shape ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 1 ; sh:path rdfs:label ], [ sh:class tvbo:Range ; - sh:maxCount 1 ; + sh:description "Per-element domain overrides for heterogeneous parameters. When specified, element_domains[i] overrides domain for element i during exploration auto-expansion. Length must match parameter shape (e.g., n_nodes for shape \"(n_nodes,)\"). If not set, all elements share the same domain." ; sh:nodeKind sh:BlankNodeOrIRI ; - sh:order 6 ; - sh:path tvbo:domain ], + sh:order 21 ; + sh:path tvbo:element_domains ], + [ sh:description "Numeric, string, or boolean value, OR an array (nested list) for array-valued constants such as mode-coupling coefficient matrices. ScalarValue accepts any literal primitive type, allowing parameters to carry control flags (e.g., booleans) or symbolic placeholders alongside numeric defaults." ; + sh:maxCount 1 ; + sh:or ( [ ] [ ] ) ; + sh:order 4 ; + sh:path schema1:value ], [ sh:datatype xsd:string ; sh:description "Dataset path for array-valued parameters. When set, the parameter value is stored in the binary companion file (HDF5 or Zarr) at this path. The value slot is omitted." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 11 ; sh:path tvbo:dataset_path ], - [ sh:datatype xsd:float ; + [ sh:class tvbo:Range ; sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 7 ; - sh:path tvbo:reported_optimum ] ; + sh:nodeKind sh:BlankNodeOrIRI ; + sh:order 6 ; + sh:path tvbo:domain ] ; sh:targetClass tvbo:Parameter . tvbo:Equation a sh:NodeShape ; sh:closed true ; - sh:ignoredProperties ( tvbo:time_dependent rdf:type ) ; + sh:ignoredProperties ( rdf:type tvbo:time_dependent ) ; sh:property [ sh:datatype xsd:string ; sh:description "Python code for the equation." ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; sh:order 8 ; sh:path tvbo:pycode ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path tvbo:lhs ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path dcterms:description ], + [ sh:datatype xsd:string ; + sh:maxCount 1 ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path rdfs:label ], [ sh:datatype xsd:string ; sh:maxCount 1 ; sh:nodeKind sh:Literal ; @@ -6273,15 +6523,6 @@ tvbo:Equation a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 5 ; sh:path tvbo:rhs ], - [ sh:class tvbo:Parameter ; - sh:nodeKind sh:IRI ; - sh:order 2 ; - sh:path tvbo:parameters ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 3 ; - sh:path dcterms:description ], [ sh:class tvbo:ConditionalBlock ; sh:description "Conditional logic for piecewise equations." ; sh:nodeKind sh:BlankNodeOrIRI ; @@ -6292,22 +6533,16 @@ tvbo:Equation a sh:NodeShape ; sh:nodeKind sh:Literal ; sh:order 9 ; sh:path tvbo:latex ], + [ sh:class tvbo:Parameter ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path tvbo:parameters ], [ sh:class <https://w3id.org/tvbo/software/SoftwareRequirement> ; sh:description "Primary engine (must appear in environment.requirements; migration target replacing deprecated 'software')." ; sh:maxCount 1 ; sh:nodeKind sh:IRI ; sh:order 7 ; - sh:path tvbo:engine ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 4 ; - sh:path tvbo:lhs ], - [ sh:datatype xsd:string ; - sh:maxCount 1 ; - sh:nodeKind sh:Literal ; - sh:order 0 ; - sh:path rdfs:label ] ; + sh:path tvbo:engine ] ; sh:targetClass tvbo:Equation . diff --git a/ontology/tvbo.owl b/ontology/tvbo.owl index d31cd40e5..97bbebfbd 100644 --- a/ontology/tvbo.owl +++ b/ontology/tvbo.owl @@ -17,12 +17,12 @@ xmlns:clinical="https://w3id.org/tvbo/clinical/" xmlns:oboInOwl="http://www.geneontology.org/formats/oboInOwl#"> <owl:Ontology rdf:about="https://w3id.org/tvbo/tvbo.owl"> - <owl:versionIRI rdf:resource="https://w3id.org/tvbo/2026-07-08/tvbo.owl"/> + <owl:versionIRI rdf:resource="https://w3id.org/tvbo/struct/0.4.0"/> <terms:contributor>The Virtual Brain Ontology contributors</terms:contributor> <terms:created rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2024-01-01</terms:created> <terms:description>Metadata schema for simulation studies using The Virtual Brain neuroinformatics platform or other dynamic network models of large-scale brain activity.</terms:description> <terms:license rdf:resource="https://spdx.org/licenses/EUPL-1.2"/> - <terms:modified rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2026-07-08</terms:modified> + <terms:modified rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2026-07-13</terms:modified> <terms:publisher rdf:resource="https://www.thevirtualbrain.org/"/> <terms:title>The Virtual Brain Data Model</terms:title> <pav:version>0.4.0</pav:version> @@ -288,6 +288,15 @@ + <!-- https://w3id.org/tvbo/canonicalCode --> + + <owl:AnnotationProperty rdf:about="https://w3id.org/tvbo/canonicalCode"> + <rdfs:comment xml:lang="en">Backend-independent short code for a special-point type (e.g. "LP", "HB", "BP"). The Python special-point label map derives (altLabel β†’ canonicalCode) from these annotations.</rdfs:comment> + <rdfs:label xml:lang="en">canonical code</rdfs:label> + </owl:AnnotationProperty> + + + <!-- https://w3id.org/tvbo/enabledByCouplingSlot --> <owl:AnnotationProperty rdf:about="https://w3id.org/tvbo/enabledByCouplingSlot"> @@ -335,6 +344,15 @@ + <!-- https://w3id.org/tvbo/realisedByBackend --> + + <owl:AnnotationProperty rdf:about="https://w3id.org/tvbo/realisedByBackend"> + <rdfs:comment xml:lang="en">Backend(s) whose codegen currently lowers this analysis observable to a concrete implementation.</rdfs:comment> + <rdfs:label xml:lang="en">realised by backend</rdfs:label> + </owl:AnnotationProperty> + + + <!-- https://w3id.org/tvbo/unit --> <owl:AnnotationProperty rdf:about="https://w3id.org/tvbo/unit"> @@ -648,12 +666,17 @@ <!-- https://w3id.org/tvbo/builder --> - <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/builder"> - <rdfs:label>builder (slot)</rdfs:label> - <skos:definition>Optional Python callable that builds the network at YAML load time. When set, ``Network._resolve`` imports ``<module>.<name>`` and invokes it with the ``parameters`` block as keyword arguments. The callable must return either a ``Network`` instance or a tuple ``(weights, lengths, node_params)``. Use the existing ``Callable`` slots (``name`` is the function name, ``module`` is its dotted module path). Reuses the same idiom as TVB monitor class references; no free ``module:function`` strings. -</skos:definition> + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/builder"/> + + + + <!-- https://w3id.org/tvbo/by --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/by"> + <rdfs:label>by (slot)</rdfs:label> + <skos:definition>Default tier for axes not named in ``vectorize`` or ``workflow``. Unset means ``auto``.</skos:definition> <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> - <skos:notation>builder</skos:notation> + <skos:notation>by</skos:notation> </owl:ObjectProperty> @@ -822,6 +845,17 @@ + <!-- https://w3id.org/tvbo/coupling_evaluation --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/coupling_evaluation"> + <rdfs:label>coupling_evaluation (slot)</rdfs:label> + <skos:definition>Backend-neutral numerical treatment of the network coupling term across the stages of a multi-stage integrator (Heun, RK4, ...): re-evaluated at every stage (per_stage β€” standard ODE accuracy) or computed once per step and held constant across stages (per_step β€” a TVB-style efficiency shortcut). Single- stage methods (Euler) and always-recompute solvers (diffrax) ignore it. per_stage is required to match reference integrators for stiff / chaotic / multistable systems, where the frozen- coupling error can select a different trajectory or attractor. See CouplingStageEvaluation.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>coupling_evaluation</skos:notation> + </owl:ObjectProperty> + + + <!-- https://w3id.org/tvbo/coupling_function --> <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/coupling_function"> @@ -950,6 +984,17 @@ + <!-- https://w3id.org/tvbo/distribute --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/distribute"> + <rdfs:label>distribute (slot)</rdfs:label> + <skos:definition>How exploration axes map onto the vectorized vs fanned-out tiers.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>distribute</skos:notation> + </owl:ObjectProperty> + + + <!-- https://w3id.org/tvbo/distribution --> <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/distribution"/> @@ -1045,6 +1090,17 @@ + <!-- https://w3id.org/tvbo/env --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/env"> + <rdfs:label>env (slot)</rdfs:label> + <skos:definition>Environment variables exported before the task command on every engine (e.g. XLA_PYTHON_CLIENT_PREALLOCATE=false). An ordered list of {name, value}; values are shell-quoted at emit time.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>env</skos:notation> + </owl:ObjectProperty> + + + <!-- https://w3id.org/tvbo/environment --> <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/environment"> @@ -1193,6 +1249,17 @@ + <!-- https://w3id.org/tvbo/graph_representation --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/graph_representation"> + <rdfs:label>graph_representation (slot)</rdfs:label> + <skos:definition>Representation used to evaluate coupling over this network's connectivity (``auto`` | ``dense`` | ``sparse``). ``auto`` lets the backend choose by connection density. This names whether to exploit edge sparsity, not a concrete data structure, so it is backend-independent; the delayed-vs-instantaneous graph kind is decided separately from the couplings' conduction delays.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>graph_representation</skos:notation> + </owl:ObjectProperty> + + + <!-- https://w3id.org/tvbo/hasAttractor --> <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/hasAttractor"> @@ -1201,6 +1268,34 @@ + <!-- https://w3id.org/tvbo/hasBranchGeometry --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/hasBranchGeometry"> + <rdfs:range rdf:resource="https://w3id.org/tvbo/BranchGeometry"/> + <rdfs:label xml:lang="en">has branch geometry</rdfs:label> + </owl:ObjectProperty> + + + + <!-- https://w3id.org/tvbo/hasCodimension --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/hasCodimension"> + <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/> + <rdfs:range rdf:resource="https://w3id.org/tvbo/Codimension"/> + <rdfs:label xml:lang="en">has codimension</rdfs:label> + </owl:ObjectProperty> + + + + <!-- https://w3id.org/tvbo/hasEigenvalueSignature --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/hasEigenvalueSignature"> + <rdfs:range rdf:resource="https://w3id.org/tvbo/EigenvalueSignature"/> + <rdfs:label xml:lang="en">has eigenvalue signature</rdfs:label> + </owl:ObjectProperty> + + + <!-- https://w3id.org/tvbo/hasModelFeature --> <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/hasModelFeature"> @@ -1592,6 +1687,17 @@ + <!-- https://w3id.org/tvbo/nextflow --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/nextflow"> + <rdfs:label>nextflow (slot)</rdfs:label> + <skos:definition>Nextflow execution directives.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>nextflow</skos:notation> + </owl:ObjectProperty> + + + <!-- https://w3id.org/tvbo/node_template --> <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/node_template"> @@ -1715,12 +1821,6 @@ - <!-- https://w3id.org/tvbo/outsym --> - - <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/outsym"/> - - - <!-- https://w3id.org/tvbo/over --> <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/over"> @@ -1860,6 +1960,17 @@ + <!-- https://w3id.org/tvbo/query --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/query"> + <rdfs:label>query (slot)</rdfs:label> + <skos:definition>BIDS entity filter that selects one per-subject file under the experiment's ``dataset.bids_root`` when ``source`` is dataset-sourced (``dataset.subject.<measure>``). The active subject fills the ``sub-`` entity at resolution time; the remaining entities (e.g. ``desc: FCavg, atlas: Schaefer1000, suffix: relmat``) disambiguate among the subject's several networks/measurements. The same filter enumerates the cohort for the per-subject workflow fan-out, so one declaration drives both discovery and resolution.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>query</skos:notation> + </owl:ObjectProperty> + + + <!-- https://w3id.org/tvbo/random_state --> <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/random_state"> @@ -1870,6 +1981,17 @@ + <!-- https://w3id.org/tvbo/reconcile --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/reconcile"> + <rdfs:label>reconcile (slot)</rdfs:label> + <skos:definition>How a dataset-sourced target's nodes are aligned to the model network before comparison. ``by_label`` selects the shared node labels on both sides by name (keyed ``.sel``), never by position, so a differing node count or order cannot silently misalign the comparison. Matching is alias-aware: a target label matches a model node when it equals that node's ``label`` or any of its ``alternateName`` entries, so a differing nomenclature reconciles without relabelling either side. ``none`` disables reconciliation (identical node sets).</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>reconcile</skos:notation> + </owl:ObjectProperty> + + + <!-- https://w3id.org/tvbo/region_mapping --> <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/region_mapping"> @@ -1897,6 +2019,7 @@ <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/requirements"> <rdfs:range rdf:resource="https://w3id.org/tvbo/software/SoftwareRequirement"/> <rdfs:label>requirements (slot)</rdfs:label> + <skos:definition>Software requirements for the workflow environment; overrides ``experiment.environment.requirements`` when set.</skos:definition> <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>requirements</skos:notation> </owl:ObjectProperty> @@ -1957,6 +2080,28 @@ + <!-- https://w3id.org/tvbo/slurm --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/slurm"> + <rdfs:label>slurm (slot)</rdfs:label> + <skos:definition>Slurm sbatch directives for array-job execution.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>slurm</skos:notation> + </owl:ObjectProperty> + + + + <!-- https://w3id.org/tvbo/snakemake --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/snakemake"> + <rdfs:label>snakemake (slot)</rdfs:label> + <skos:definition>Snakemake execution directives.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>snakemake</skos:notation> + </owl:ObjectProperty> + + + <!-- https://w3id.org/tvbo/software --> <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/software"/> @@ -2116,6 +2261,28 @@ + <!-- https://w3id.org/tvbo/sweep_direction --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/sweep_direction"> + <rdfs:label>sweep_direction (slot)</rdfs:label> + <skos:definition>Order in which a branch-following axis (sweep_seeding: from_previous) is traversed: 'up' increases the parameter once, 'down' decreases it once, 'bidirectional' increases then decreases over the same values and records both branches β€” a hysteresis loop where they differ. Ignored when sweep_seeding is 'independent'. Applies to a single swept axis.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>sweep_direction</skos:notation> + </owl:ObjectProperty> + + + + <!-- https://w3id.org/tvbo/sweep_seeding --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/sweep_seeding"> + <rdfs:label>sweep_seeding (slot)</rdfs:label> + <skos:definition>How each sweep point's initial state is obtained. 'independent' (default) cold-starts every point from the model's initial values, so points are order-independent and may run in parallel (see parallel_mode). 'from_previous' seeds each point from the final state of the preceding point, so the trajectory follows the solution branch as the swept parameter changes quasi-statically; this forces sequential execution (a scan, not a vmap) and, with sweep_direction, exposes hysteresis / multistability. It is forward-integration branch following, not numerical continuation (cf. the Continuation class).</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>sweep_seeding</skos:notation> + </owl:ObjectProperty> + + + <!-- https://w3id.org/tvbo/symmetry --> <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/symmetry"/> @@ -2196,11 +2363,7 @@ <!-- https://w3id.org/tvbo/time --> - <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/time"> - <rdfs:label>time (slot)</rdfs:label> - <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> - <skos:notation>time</skos:notation> - </owl:ObjectProperty> + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/time"/> @@ -2330,6 +2493,12 @@ + <!-- https://w3id.org/tvbo/workflow --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/workflow"/> + + + <!-- https://w3id.org/tvbo/x --> <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/x"> @@ -2919,6 +3088,12 @@ + <!-- https://w3id.org/tvbo/account --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/account"/> + + + <!-- https://w3id.org/tvbo/acquisition --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/acquisition"/> @@ -2991,6 +3166,17 @@ + <!-- https://w3id.org/tvbo/array_chunk --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/array_chunk"> + <rdfs:label>array_chunk (slot)</rdfs:label> + <skos:definition>Overrides ``distribute.chunk`` for this engine only: the number of array-task shards to split the vectorized sweep across.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>array_chunk</skos:notation> + </owl:DatatypeProperty> + + + <!-- https://w3id.org/tvbo/atlas --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/atlas"/> @@ -3066,6 +3252,12 @@ + <!-- https://w3id.org/tvbo/chunk --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/chunk"/> + + + <!-- https://w3id.org/tvbo/citekey --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/citekey"/> @@ -3135,6 +3327,23 @@ + <!-- https://w3id.org/tvbo/container --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/container"/> + + + + <!-- https://w3id.org/tvbo/cores --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/cores"> + <rdfs:label>cores (slot)</rdfs:label> + <skos:definition>Total cores for local engines (Snakemake --cores).</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>cores</skos:notation> + </owl:DatatypeProperty> + + + <!-- https://w3id.org/tvbo/correlated --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/correlated"> @@ -3156,6 +3365,17 @@ + <!-- https://w3id.org/tvbo/cpus_per_task --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/cpus_per_task"> + <rdfs:label>cpus_per_task (slot)</rdfs:label> + <skos:definition>CPU cores requested per task (Slurm --cpus-per-task).</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>cpus_per_task</skos:notation> + </owl:DatatypeProperty> + + + <!-- https://w3id.org/tvbo/criticalValue --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/criticalValue"> @@ -3306,6 +3526,12 @@ + <!-- https://w3id.org/tvbo/desc --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/desc"/> + + + <!-- https://w3id.org/tvbo/description --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/description"/> @@ -3492,6 +3718,12 @@ + <!-- https://w3id.org/tvbo/executor --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/executor"/> + + + <!-- https://w3id.org/tvbo/experiment_yaml_hash --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/experiment_yaml_hash"/> @@ -3594,6 +3826,12 @@ + <!-- https://w3id.org/tvbo/gres --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/gres"/> + + + <!-- https://w3id.org/tvbo/grounding --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/grounding"> @@ -3833,6 +4071,18 @@ + <!-- https://w3id.org/tvbo/mail_type --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/mail_type"/> + + + + <!-- https://w3id.org/tvbo/mail_user --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/mail_user"/> + + + <!-- https://w3id.org/tvbo/max_bisection_steps --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/max_bisection_steps"> @@ -3883,6 +4133,12 @@ + <!-- https://w3id.org/tvbo/mem --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/mem"/> + + + <!-- https://w3id.org/tvbo/mesh_file --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/mesh_file"/> @@ -3912,6 +4168,17 @@ + <!-- https://w3id.org/tvbo/min_coverage --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/min_coverage"> + <rdfs:label>min_coverage (slot)</rdfs:label> + <skos:definition>Minimum fraction of the model network's nodes that a ``by_label`` reconciliation must cover, else resolution raises. The realised coverage is always logged. Absent (``null``) means require full coverage (``1.0``) for a dataset-sourced target β€” silently fitting on a partial node subset must be an explicit opt-in (e.g. ``0.95`` to tolerate a few genuinely-missing empirical parcels), never the default.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>min_coverage</skos:notation> + </owl:DatatypeProperty> + + + <!-- https://w3id.org/tvbo/mode --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/mode"/> @@ -3946,6 +4213,12 @@ + <!-- https://w3id.org/tvbo/modules --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/modules"/> + + + <!-- https://w3id.org/tvbo/mtime --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/mtime"> @@ -3989,7 +4262,7 @@ <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/n_parallel"> <rdfs:label>n_parallel (slot)</rdfs:label> - <skos:definition>Parallel evaluations</skos:definition> + <skos:definition>Parallel evaluations / batch size for parameter exploration. Backends translate this into their own execution primitive (e.g. tvboptim's vectorised chunk size) without exposing any backend-specific names in the schema.</skos:definition> <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>n_parallel</skos:notation> </owl:DatatypeProperty> @@ -4253,6 +4526,12 @@ + <!-- https://w3id.org/tvbo/out_dir --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/out_dir"/> + + + <!-- https://w3id.org/tvbo/output --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/output"/> @@ -4294,6 +4573,12 @@ + <!-- https://w3id.org/tvbo/partition --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/partition"/> + + + <!-- https://w3id.org/tvbo/path --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/path"/> @@ -4345,6 +4630,12 @@ + <!-- https://w3id.org/tvbo/provenance --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/provenance"/> + + + <!-- https://w3id.org/tvbo/pycode --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/pycode"/> @@ -4357,6 +4648,12 @@ + <!-- https://w3id.org/tvbo/queue --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/queue"/> + + + <!-- https://w3id.org/tvbo/random_seed --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/random_seed"> @@ -4440,12 +4737,29 @@ + <!-- https://w3id.org/tvbo/retries --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/retries"> + <rdfs:label>retries (slot)</rdfs:label> + <skos:definition>Automatic retries per failed task. Unset means none.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>retries</skos:notation> + </owl:DatatypeProperty> + + + <!-- https://w3id.org/tvbo/rhs --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/rhs"/> + <!-- https://w3id.org/tvbo/rng --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/rng"/> + + + <!-- https://w3id.org/tvbo/run_id --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/run_id"> @@ -4520,6 +4834,12 @@ + <!-- https://w3id.org/tvbo/setup --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/setup"/> + + + <!-- https://w3id.org/tvbo/shape --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/shape"/> @@ -4673,6 +4993,12 @@ + <!-- https://w3id.org/tvbo/suffix --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/suffix"/> + + + <!-- https://w3id.org/tvbo/symbol --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/symbol"> @@ -4763,6 +5089,12 @@ + <!-- https://w3id.org/tvbo/time --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/time"/> + + + <!-- https://w3id.org/tvbo/time_dependent --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/time_dependent"/> @@ -4881,6 +5213,12 @@ + <!-- https://w3id.org/tvbo/vectorize --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/vectorize"/> + + + <!-- https://w3id.org/tvbo/vectorized --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/vectorized"> @@ -4892,6 +5230,12 @@ + <!-- https://w3id.org/tvbo/venv --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/venv"/> + + + <!-- https://w3id.org/tvbo/vertex_to_region --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/vertex_to_region"> @@ -4992,6 +5336,12 @@ + <!-- https://w3id.org/tvbo/workflow --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/workflow"/> + + + <!-- https://w3id.org/tvbo/wrt --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/wrt"/> @@ -5628,6 +5978,16 @@ + <!-- http://qudt.org/vocab/unit/KiloGM-M2 --> + + <owl:Class rdf:about="http://qudt.org/vocab/unit/KiloGM-M2"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/UnitEnum"/> + <rdfs:label>kg_m2</rdfs:label> + <skos:definition>Kilogram metre squared (moment of inertia)</skos:definition> + </owl:Class> + + + <!-- http://qudt.org/vocab/unit/KiloHZ --> <owl:Class rdf:about="http://qudt.org/vocab/unit/KiloHZ"> @@ -5679,6 +6039,16 @@ + <!-- http://qudt.org/vocab/unit/MegaW --> + + <owl:Class rdf:about="http://qudt.org/vocab/unit/MegaW"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/UnitEnum"/> + <rdfs:label>MW</rdfs:label> + <skos:definition>Megawatt (10⁢ W); grid real/net power</skos:definition> + </owl:Class> + + + <!-- http://qudt.org/vocab/unit/MicroM3 --> <owl:Class rdf:about="http://qudt.org/vocab/unit/MicroM3"> @@ -5999,6 +6369,16 @@ + <!-- http://qudt.org/vocab/unit/W --> + + <owl:Class rdf:about="http://qudt.org/vocab/unit/W"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/UnitEnum"/> + <rdfs:label>W</rdfs:label> + <skos:definition>Watt (power)</skos:definition> + </owl:Class> + + + <!-- http://schema.org/Book --> <owl:Class rdf:about="http://schema.org/Book"> @@ -7237,6 +7617,8 @@ <rdf:Description rdf:about="https://w3id.org/tvbo/AggregationType#last"/> <rdf:Description rdf:about="https://w3id.org/tvbo/AggregationType#mean"/> <rdf:Description rdf:about="https://w3id.org/tvbo/AggregationType#none"/> + <rdf:Description rdf:about="https://w3id.org/tvbo/AggregationType#std"/> + <rdf:Description rdf:about="https://w3id.org/tvbo/AggregationType#variance"/> <rdf:Description rdf:about="https://w3id.org/tvbo/AggregationType#window"/> </owl:unionOf> </owl:Class> @@ -7250,6 +7632,8 @@ <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/AggregationType#last"/> <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/AggregationType#mean"/> <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/AggregationType#none"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/AggregationType#std"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/AggregationType#variance"/> <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/AggregationType#window"/> </owl:Class> @@ -7803,6 +8187,16 @@ + <!-- https://w3id.org/tvbo/AnalysisObservable --> + + <owl:Class rdf:about="https://w3id.org/tvbo/AnalysisObservable"> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:comment xml:lang="en">A quantity obtained by analysing the model, its solve, or a derived loss β€” the vocabulary of Analysis.type.</rdfs:comment> + <rdfs:label xml:lang="en">Analysis observable</rdfs:label> + </owl:Class> + + + <!-- https://w3id.org/tvbo/Argument --> <owl:Class rdf:about="https://w3id.org/tvbo/Argument"> @@ -7927,6 +8321,12 @@ <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/desc"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/hemi"/> @@ -7951,6 +8351,12 @@ <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/suffix"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/template"/> @@ -7981,6 +8387,12 @@ <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/desc"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/hemi"/> @@ -8005,6 +8417,12 @@ <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/suffix"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/template"/> @@ -8023,6 +8441,12 @@ <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/desc"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/hemi"/> @@ -8047,6 +8471,12 @@ <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/suffix"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/template"/> @@ -8172,7 +8602,25 @@ <owl:Class rdf:about="https://w3id.org/tvbo/BogdanovTakens"> <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Bifurcation"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasCodimension"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/Codimension2"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasEigenvalueSignature"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/DoubleZeroEigenvalue"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:comment xml:lang="en">Codim-2 point with a double-zero (nilpotent) eigenvalue, where fold, Hopf and homoclinic curves meet.</rdfs:comment> <rdfs:label xml:lang="en">Bogdanov-Takens</rdfs:label> + <skos:altLabel>BT</skos:altLabel> + <skos:altLabel>bogdanov takens</skos:altLabel> + <skos:altLabel>bogdanov-takens</skos:altLabel> + <skos:altLabel>bt</skos:altLabel> + <tvbo:canonicalCode>BT</tvbo:canonicalCode> </owl:Class> @@ -8347,6 +8795,52 @@ + <!-- https://w3id.org/tvbo/BranchGeometry --> + + <owl:Class rdf:about="https://w3id.org/tvbo/BranchGeometry"> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:comment xml:lang="en">Local geometry of the solution branch at the special point in the (state, parameter) space.</rdfs:comment> + <rdfs:label xml:lang="en">Branch geometry</rdfs:label> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/BranchPoint --> + + <owl:Class rdf:about="https://w3id.org/tvbo/BranchPoint"> + <owl:equivalentClass> + <owl:Class> + <owl:intersectionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="https://w3id.org/tvbo/Bifurcation"/> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasBranchGeometry"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/BranchCrossingGeometry"/> + </owl:Restriction> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasCodimension"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/Codimension1"/> + </owl:Restriction> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasEigenvalueSignature"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/RealEigenvalueZero"/> + </owl:Restriction> + </owl:intersectionOf> + </owl:Class> + </owl:equivalentClass> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Bifurcation"/> + <rdfs:comment xml:lang="en">Branch point: two solution branches intersect transversally as a real eigenvalue crosses zero (e.g. transcritical, pitchfork). Distinct from a Fold, which turns back on the parameter.</rdfs:comment> + <rdfs:label xml:lang="en">Branch point</rdfs:label> + <skos:altLabel>BP</skos:altLabel> + <skos:altLabel>bp</skos:altLabel> + <skos:altLabel>branch point</skos:altLabel> + <skos:altLabel>branch-point</skos:altLabel> + <skos:altLabel>branchpoint</skos:altLabel> + <skos:prefLabel xml:lang="en">Branch point</skos:prefLabel> + <tvbo:canonicalCode>BP</tvbo:canonicalCode> + </owl:Class> + + + <!-- https://w3id.org/tvbo/BranchSwitch --> <owl:Class rdf:about="https://w3id.org/tvbo/BranchSwitch"> @@ -8713,6 +9207,16 @@ + <!-- https://w3id.org/tvbo/Codimension --> + + <owl:Class rdf:about="https://w3id.org/tvbo/Codimension"> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:comment xml:lang="en">Number of parameters that must be tuned for the bifurcation to occur generically.</rdfs:comment> + <rdfs:label xml:lang="en">Codimension</rdfs:label> + </owl:Class> + + + <!-- https://w3id.org/tvbo/ColoredNoise --> <owl:Class rdf:about="https://w3id.org/tvbo/ColoredNoise"> @@ -9402,12 +9906,6 @@ <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> - <rdfs:subClassOf> - <owl:Restriction> - <owl:onProperty rdf:resource="https://w3id.org/tvbo/outsym"/> - <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> - </owl:Restriction> - </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/parameters"/> @@ -9564,6 +10062,12 @@ <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/outsym"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/sparse"/> @@ -9724,6 +10228,48 @@ + <!-- https://w3id.org/tvbo/CouplingStageEvaluation --> + + <owl:Class rdf:about="https://w3id.org/tvbo/CouplingStageEvaluation"> + <owl:equivalentClass> + <owl:Class> + <owl:unionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="https://w3id.org/tvbo/CouplingStageEvaluation#per_stage"/> + <rdf:Description rdf:about="https://w3id.org/tvbo/CouplingStageEvaluation#per_step"/> + </owl:unionOf> + </owl:Class> + </owl:equivalentClass> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>CouplingStageEvaluation</rdfs:label> + <skos:definition>How the network coupling term is evaluated within one step of a multi-stage integrator (Heun, RK4, ...). A backend-neutral numerical contract: whether the coupling is part of the vector field, re-evaluated at each solver stage, or computed once per step and held constant across the stages. Matters because the two choices integrate a different effective system β€” for stiff / chaotic / multistable dynamics they can converge to different trajectories or attractors.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/CouplingStageEvaluation#per_stage"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/CouplingStageEvaluation#per_step"/> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/Cusp --> + + <owl:Class rdf:about="https://w3id.org/tvbo/Cusp"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Bifurcation"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasCodimension"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/Codimension2"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:comment xml:lang="en">Codim-2 organising centre where two fold curves meet tangentially.</rdfs:comment> + <rdfs:label xml:lang="en">Cusp</rdfs:label> + <skos:altLabel>CP</skos:altLabel> + <skos:altLabel>cp</skos:altLabel> + <skos:altLabel>cusp</skos:altLabel> + <tvbo:canonicalCode>CP</tvbo:canonicalCode> + </owl:Class> + + + <!-- https://w3id.org/tvbo/DataSource --> <owl:Class rdf:about="https://w3id.org/tvbo/DataSource"> @@ -9881,6 +10427,26 @@ + <!-- https://w3id.org/tvbo/DenseDelayGraph --> + + <owl:Class rdf:about="https://w3id.org/tvbo/DenseDelayGraph"> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:comment xml:lang="en">Dense adjacency with a delay-history buffer, used when any coupling carries a conduction delay and graph_representation resolves to dense. Required for interpolated (differentiable) delays (Β§4.1b).</rdfs:comment> + <rdfs:label xml:lang="en">DenseDelayGraph</rdfs:label> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/DenseGraph --> + + <owl:Class rdf:about="https://w3id.org/tvbo/DenseGraph"> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:comment xml:lang="en">Dense adjacency, instantaneous coupling. Used when graph_representation resolves to dense and no coupling carries a conduction delay.</rdfs:comment> + <rdfs:label xml:lang="en">DenseGraph</rdfs:label> + </owl:Class> + + + <!-- https://w3id.org/tvbo/DerivedParameter --> <owl:Class rdf:about="https://w3id.org/tvbo/DerivedParameter"> @@ -10709,6 +11275,93 @@ + <!-- https://w3id.org/tvbo/DistributionConfig --> + + <owl:Class rdf:about="https://w3id.org/tvbo/DistributionConfig"> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/by"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/WorkflowDistributeBy"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/vectorize"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/workflow"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/by"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/workflow"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/by"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/chunk"/> + <owl:allValuesFrom> + <rdfs:Datatype> + <owl:intersectionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="http://www.w3.org/2001/XMLSchema#integer"/> + <rdfs:Datatype> + <owl:onDatatype rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/> + <owl:withRestrictions rdf:parseType="Collection"> + <rdf:Description> + <xsd:minInclusive rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</xsd:minInclusive> + </rdf:Description> + </owl:withRestrictions> + </rdfs:Datatype> + </owl:intersectionOf> + </rdfs:Datatype> + </owl:allValuesFrom> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/chunk"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/vectorize"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/chunk"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>DistributionConfig</rdfs:label> + <skos:definition>Policy for mapping a parameter sweep's exploration axes onto the two parallelism tiers when rendering a distributed workflow. Vectorized axes are packed into a single batched backend call (e.g. vmap/pmap); workflow axes are fanned out into independent scheduler tasks, one per value combination. Backend-independent: the emitter validates that a requested vectorized axis is one the chosen backend can actually batch.</skos:definition> + <skos:exactMatch rdf:resource="https://w3id.org/tvbo/DistributionConfig"/> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + </owl:Class> + + + <!-- https://w3id.org/tvbo/DomainEnforcement --> <owl:Class rdf:about="https://w3id.org/tvbo/DomainEnforcement"> @@ -11607,6 +12260,16 @@ + <!-- https://w3id.org/tvbo/EigenvalueSignature --> + + <owl:Class rdf:about="https://w3id.org/tvbo/EigenvalueSignature"> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:comment xml:lang="en">Qualitative crossing of the Jacobian spectrum through the stability boundary at the bifurcation.</rdfs:comment> + <rdfs:label xml:lang="en">Eigenvalue signature</rdfs:label> + </owl:Class> + + + <!-- https://w3id.org/tvbo/ElementType --> <owl:Class rdf:about="https://w3id.org/tvbo/ElementType"> @@ -11657,6 +12320,55 @@ + <!-- https://w3id.org/tvbo/EnvironmentVariable --> + + <owl:Class rdf:about="https://w3id.org/tvbo/EnvironmentVariable"> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/name"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/value"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/name"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/value"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/name"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/value"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>EnvironmentVariable</rdfs:label> + <skos:definition>One environment variable assignment exported before executing the workflow task command. Use this for reproducible runtime knobs such as XLA/OMP settings in emitted workflow artefacts.</skos:definition> + <skos:exactMatch rdf:resource="https://w3id.org/tvbo/EnvironmentVariable"/> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + </owl:Class> + + + <!-- https://w3id.org/tvbo/Equation --> <owl:Class rdf:about="https://w3id.org/tvbo/Equation"> @@ -12491,6 +13203,18 @@ <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/sweep_direction"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/SweepDirection"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/sweep_seeding"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/SweepSeeding"/> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/algorithms"/> @@ -12551,6 +13275,18 @@ <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/sweep_direction"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/sweep_seeding"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/description"/> @@ -12593,6 +13329,18 @@ <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/sweep_direction"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/sweep_seeding"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/n_parallel"/> @@ -12696,6 +13444,12 @@ <owl:Class rdf:about="https://w3id.org/tvbo/ExplorationAxis"> <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/builder"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/FunctionCall"/> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/description"/> @@ -12732,6 +13486,12 @@ <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/builder"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/description"/> @@ -12768,6 +13528,12 @@ <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/builder"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/description"/> @@ -13007,11 +13773,65 @@ + <!-- https://w3id.org/tvbo/Fold --> + + <owl:Class rdf:about="https://w3id.org/tvbo/Fold"> + <owl:equivalentClass rdf:resource="https://w3id.org/tvbo/SaddleNode"/> + <owl:equivalentClass> + <owl:Class> + <owl:intersectionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="https://w3id.org/tvbo/Bifurcation"/> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasBranchGeometry"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/LimitPointGeometry"/> + </owl:Restriction> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasCodimension"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/Codimension1"/> + </owl:Restriction> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasEigenvalueSignature"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/RealEigenvalueZero"/> + </owl:Restriction> + </owl:intersectionOf> + </owl:Class> + </owl:equivalentClass> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Bifurcation"/> + <rdfs:comment xml:lang="en">Saddle-node (limit / turning point): a pair of equilibria collide and annihilate as one real eigenvalue crosses zero and the branch folds back on the parameter.</rdfs:comment> + <rdfs:label xml:lang="en">Fold</rdfs:label> + <skos:altLabel>LP</skos:altLabel> + <skos:altLabel>fold</skos:altLabel> + <skos:altLabel>limit point</skos:altLabel> + <skos:altLabel>limitpoint</skos:altLabel> + <skos:altLabel>lp</skos:altLabel> + <skos:altLabel>saddle-node</skos:altLabel> + <skos:altLabel>saddlenode</skos:altLabel> + <skos:altLabel>sn</skos:altLabel> + <skos:prefLabel xml:lang="en">Fold</skos:prefLabel> + <tvbo:canonicalCode>LP</tvbo:canonicalCode> + </owl:Class> + + + <!-- https://w3id.org/tvbo/FoldOfLimitCycles --> <owl:Class rdf:about="https://w3id.org/tvbo/FoldOfLimitCycles"> <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Bifurcation"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasCodimension"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/Codimension1"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:comment xml:lang="en">Saddle-node of periodic orbits: two limit cycles collide and annihilate as a Floquet multiplier crosses +1.</rdfs:comment> <rdfs:label xml:lang="en">Fold of limit cycles</rdfs:label> + <skos:altLabel>LPC</skos:altLabel> + <skos:altLabel>cpc</skos:altLabel> + <skos:altLabel>fold of limit cycles</skos:altLabel> + <skos:altLabel>fold-of-limit-cycles</skos:altLabel> + <skos:altLabel>lpc</skos:altLabel> + <skos:altLabel>snpo</skos:altLabel> + <tvbo:canonicalCode>LPC</tvbo:canonicalCode> </owl:Class> @@ -13739,6 +14559,28 @@ + <!-- https://w3id.org/tvbo/GeneralizedHopf --> + + <owl:Class rdf:about="https://w3id.org/tvbo/GeneralizedHopf"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Bifurcation"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasCodimension"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/Codimension2"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:comment xml:lang="en">Codim-2 point where a Hopf bifurcation switches between sub- and supercritical (first Lyapunov coefficient vanishes); a fold-of-limit-cycles curve emanates.</rdfs:comment> + <rdfs:label xml:lang="en">Generalized Hopf (Bautin)</rdfs:label> + <skos:altLabel>GH</skos:altLabel> + <skos:altLabel>bautin</skos:altLabel> + <skos:altLabel>generalised hopf</skos:altLabel> + <skos:altLabel>generalized hopf</skos:altLabel> + <skos:altLabel>gh</skos:altLabel> + <tvbo:canonicalCode>GH</tvbo:canonicalCode> + </owl:Class> + + + <!-- https://w3id.org/tvbo/GraphGenerator --> <owl:Class rdf:about="https://w3id.org/tvbo/GraphGenerator"> @@ -13921,6 +14763,30 @@ + <!-- https://w3id.org/tvbo/GraphRepresentation --> + + <owl:Class rdf:about="https://w3id.org/tvbo/GraphRepresentation"> + <owl:equivalentClass> + <owl:Class> + <owl:unionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="https://w3id.org/tvbo/GraphRepresentation#auto"/> + <rdf:Description rdf:about="https://w3id.org/tvbo/GraphRepresentation#dense"/> + <rdf:Description rdf:about="https://w3id.org/tvbo/GraphRepresentation#sparse"/> + </owl:unionOf> + </owl:Class> + </owl:equivalentClass> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>GraphRepresentation</rdfs:label> + <skos:definition>How a Network's connectivity is represented when evaluating coupling. This is a backend-independent performance contract, not a numerical one: both representations compute the same coupling, but a sparse representation sums over the existing edges (cost scales with the number of edges) while a dense representation operates on the full adjacency (cost scales with nodes-squared). A backend maps the choice onto its own primitives (edge gather / segment-sum vs matrix product). Orthogonal to whether the coupling reads *delayed* states β€” that is decided per coupling by its conduction delay β€” so the two dimensions together yield the four backend graph kinds: dense/sparse Γ— instantaneous/delayed.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/GraphRepresentation#auto"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/GraphRepresentation#dense"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/GraphRepresentation#sparse"/> + </owl:Class> + + + <!-- https://w3id.org/tvbo/Hemisphere --> <owl:Class rdf:about="https://w3id.org/tvbo/Hemisphere"> @@ -13965,11 +14831,53 @@ <!-- https://w3id.org/tvbo/Hopf --> <owl:Class rdf:about="https://w3id.org/tvbo/Hopf"> + <owl:equivalentClass> + <owl:Class> + <owl:intersectionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="https://w3id.org/tvbo/Bifurcation"/> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasCodimension"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/Codimension1"/> + </owl:Restriction> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasEigenvalueSignature"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/ConjugatePairImaginary"/> + </owl:Restriction> + </owl:intersectionOf> + </owl:Class> + </owl:equivalentClass> <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Bifurcation"/> </owl:Class> + <!-- https://w3id.org/tvbo/HopfHopf --> + + <owl:Class rdf:about="https://w3id.org/tvbo/HopfHopf"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Bifurcation"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasCodimension"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/Codimension2"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasEigenvalueSignature"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/TwoImaginaryPairs"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:comment xml:lang="en">Codim-2 point where two Hopf curves cross (two imaginary pairs simultaneously).</rdfs:comment> + <rdfs:label xml:lang="en">Hopf-Hopf (double Hopf)</rdfs:label> + <skos:altLabel>HH</skos:altLabel> + <skos:altLabel>double hopf</skos:altLabel> + <skos:altLabel>hh</skos:altLabel> + <skos:altLabel>hopf-hopf</skos:altLabel> + <tvbo:canonicalCode>HH</tvbo:canonicalCode> + </owl:Class> + + + <!-- https://w3id.org/tvbo/ImagingModality --> <owl:Class rdf:about="https://w3id.org/tvbo/ImagingModality"> @@ -14407,6 +15315,12 @@ <owl:Class rdf:about="https://w3id.org/tvbo/Integrator"> <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Solver"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/coupling_evaluation"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/CouplingStageEvaluation"/> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/description"/> @@ -14455,6 +15369,12 @@ <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/DerivedVariable"/> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/coupling_evaluation"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/description"/> @@ -14509,6 +15429,12 @@ <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/coupling_evaluation"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/description"/> @@ -15647,6 +16573,29 @@ + <!-- https://w3id.org/tvbo/NeimarkSacker --> + + <owl:Class rdf:about="https://w3id.org/tvbo/NeimarkSacker"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Bifurcation"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasCodimension"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/Codimension1"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:comment xml:lang="en">Torus (Neimark-Sacker) bifurcation of a limit cycle: a complex pair of Floquet multipliers crosses the unit circle, birthing an invariant torus.</rdfs:comment> + <rdfs:label xml:lang="en">Neimark-Sacker</rdfs:label> + <skos:altLabel>TR</skos:altLabel> + <skos:altLabel>neimark sacker</skos:altLabel> + <skos:altLabel>neimark-sacker</skos:altLabel> + <skos:altLabel>ns</skos:altLabel> + <skos:altLabel>torus</skos:altLabel> + <skos:altLabel>tr</skos:altLabel> + <tvbo:canonicalCode>TR</tvbo:canonicalCode> + </owl:Class> + + + <!-- https://w3id.org/tvbo/Network --> <owl:Class rdf:about="https://w3id.org/tvbo/Network"> @@ -15729,6 +16678,12 @@ <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/GraphGenerator"/> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/graph_representation"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/GraphRepresentation"/> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/label"/> @@ -15879,6 +16834,12 @@ <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/graph_representation"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/label"/> @@ -15975,6 +16936,12 @@ <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/graph_representation"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/label"/> @@ -16136,6 +17103,12 @@ <owl:Class rdf:about="https://w3id.org/tvbo/Node"> <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="http://uri.interlex.org/tgbugs/uris/readable/alternateName"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/description"/> @@ -16280,6 +17253,12 @@ <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#boolean"/> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="http://uri.interlex.org/tgbugs/uris/readable/alternateName"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/id"/> @@ -16325,6 +17304,28 @@ + <!-- https://w3id.org/tvbo/NodeReconciliation --> + + <owl:Class rdf:about="https://w3id.org/tvbo/NodeReconciliation"> + <owl:equivalentClass> + <owl:Class> + <owl:unionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="https://w3id.org/tvbo/NodeReconciliation#by_label"/> + <rdf:Description rdf:about="https://w3id.org/tvbo/NodeReconciliation#none"/> + </owl:unionOf> + </owl:Class> + </owl:equivalentClass> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>NodeReconciliation</rdfs:label> + <skos:definition>Strategy for aligning a dataset-sourced empirical target's nodes to the model network before comparison. Keyed alignment is the default so a differing node count or ordering (e.g. a 998-parcel empirical FC against a 1000-parcel model) cannot silently misalign the comparison.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/NodeReconciliation#by_label"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/NodeReconciliation#none"/> + </owl:Class> + + + <!-- https://w3id.org/tvbo/Noise --> <owl:Class rdf:about="https://w3id.org/tvbo/Noise"> @@ -16656,6 +17657,12 @@ <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/dynamics"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/Dynamics"/> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/environment"/> @@ -16698,6 +17705,18 @@ <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/FunctionCall"/> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/query"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/BidsEntities"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/reconcile"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/NodeReconciliation"/> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/source"/> @@ -16759,6 +17778,12 @@ <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/dynamics"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/environment"/> @@ -16801,6 +17826,18 @@ <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/query"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/reconcile"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/source"/> @@ -16843,6 +17880,12 @@ <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/dynamics"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/environment"/> @@ -16873,6 +17916,18 @@ <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/query"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/reconcile"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/time_scale"/> @@ -16885,12 +17940,46 @@ <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#float"/> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/min_coverage"/> + <owl:allValuesFrom> + <rdfs:Datatype> + <owl:intersectionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="http://www.w3.org/2001/XMLSchema#float"/> + <rdfs:Datatype> + <owl:onDatatype rdf:resource="http://www.w3.org/2001/XMLSchema#float"/> + <owl:withRestrictions rdf:parseType="Collection"> + <rdf:Description> + <xsd:minInclusive rdf:datatype="http://www.w3.org/2001/XMLSchema#float">0.0</xsd:minInclusive> + </rdf:Description> + </owl:withRestrictions> + </rdfs:Datatype> + <rdfs:Datatype> + <owl:onDatatype rdf:resource="http://www.w3.org/2001/XMLSchema#float"/> + <owl:withRestrictions rdf:parseType="Collection"> + <rdf:Description> + <xsd:maxInclusive rdf:datatype="http://www.w3.org/2001/XMLSchema#float">1.0</xsd:maxInclusive> + </rdf:Description> + </owl:withRestrictions> + </rdfs:Datatype> + </owl:intersectionOf> + </rdfs:Datatype> + </owl:allValuesFrom> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/period"/> <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#float"/> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/record"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#boolean"/> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/skip_t"/> @@ -16927,12 +18016,24 @@ <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/min_coverage"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/period"/> <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/record"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/skip_t"/> @@ -16975,12 +18076,24 @@ <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/min_coverage"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/period"/> <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/record"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/skip_t"/> @@ -18276,7 +19389,20 @@ <owl:Class rdf:about="https://w3id.org/tvbo/PeriodDoubling"> <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Bifurcation"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasCodimension"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/Codimension1"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:comment xml:lang="en">Flip bifurcation of a limit cycle: a Floquet multiplier crosses -1 and a period-doubled cycle branches off.</rdfs:comment> <rdfs:label xml:lang="en">Period doubling</rdfs:label> + <skos:altLabel>PD</skos:altLabel> + <skos:altLabel>flip</skos:altLabel> + <skos:altLabel>pd</skos:altLabel> + <skos:altLabel>period doubling</skos:altLabel> + <skos:altLabel>period-doubling</skos:altLabel> + <tvbo:canonicalCode>PD</tvbo:canonicalCode> </owl:Class> @@ -18506,8 +19632,9 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <!-- https://w3id.org/tvbo/Pitchfork --> <owl:Class rdf:about="https://w3id.org/tvbo/Pitchfork"> - <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Bifurcation"/> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/BranchPoint"/> <rdfs:label xml:lang="en">Pitchfork</rdfs:label> + <skos:altLabel>pitchfork</skos:altLabel> </owl:Class> @@ -19488,6 +20615,55 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. + <!-- https://w3id.org/tvbo/SchedulerDirective --> + + <owl:Class rdf:about="https://w3id.org/tvbo/SchedulerDirective"> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/name"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/value"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/name"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/value"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/name"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/value"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>SchedulerDirective</rdfs:label> + <skos:definition>One engine-native scheduler directive passed through verbatim by the engine's emitter (e.g. a Slurm ``#SBATCH --<name>=<value>`` line). The open extension point of WorkflowEngineConfig: it carries any directive the typed fields do not name, so a new scheduler flag needs no schema change.</skos:definition> + <skos:exactMatch rdf:resource="https://w3id.org/tvbo/SchedulerDirective"/> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + </owl:Class> + + + <!-- https://w3id.org/tvbo/SexEnum --> <owl:Class rdf:about="https://w3id.org/tvbo/SexEnum"> @@ -19659,6 +20835,12 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/Stimulus"/> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/workflow"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/WorkflowConfig"/> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/additional_equations"/> @@ -19797,6 +20979,12 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/workflow"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/connectivity"/> @@ -19881,6 +21069,12 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/workflow"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/id"/> @@ -19989,6 +21183,12 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/SimulationExperiment"/> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/workflow"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/WorkflowConfig"/> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/label"/> @@ -20013,6 +21213,12 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/workflow"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/label"/> @@ -20031,6 +21237,12 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/workflow"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/derived_from"/> @@ -20155,6 +21367,16 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. + <!-- https://w3id.org/tvbo/SparseDelayGraph --> + + <owl:Class rdf:about="https://w3id.org/tvbo/SparseDelayGraph"> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:comment xml:lang="en">Edge-list adjacency with a delay-history buffer, used when any coupling carries a conduction delay and graph_representation resolves to sparse.</rdfs:comment> + <rdfs:label xml:lang="en">SparseDelayGraph</rdfs:label> + </owl:Class> + + + <!-- https://w3id.org/tvbo/SparseFormat --> <owl:Class rdf:about="https://w3id.org/tvbo/SparseFormat"> @@ -20178,6 +21400,16 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. + <!-- https://w3id.org/tvbo/SparseGraph --> + + <owl:Class rdf:about="https://w3id.org/tvbo/SparseGraph"> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:comment xml:lang="en">Edge-list adjacency, instantaneous coupling. Used when graph_representation resolves to sparse and no coupling carries a conduction delay.</rdfs:comment> + <rdfs:label xml:lang="en">SparseGraph</rdfs:label> + </owl:Class> + + + <!-- https://w3id.org/tvbo/SpatialDomain --> <owl:Class rdf:about="https://w3id.org/tvbo/SpatialDomain"> @@ -21216,6 +22448,7 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <owl:Class rdf:about="https://w3id.org/tvbo/SubcriticalHopf"> <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Hopf"/> <rdfs:label xml:lang="en">Subcritical Hopf</rdfs:label> + <skos:altLabel>subcritical hopf</skos:altLabel> </owl:Class> @@ -21228,6 +22461,52 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. + <!-- https://w3id.org/tvbo/SweepDirection --> + + <owl:Class rdf:about="https://w3id.org/tvbo/SweepDirection"> + <owl:equivalentClass> + <owl:Class> + <owl:unionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="https://w3id.org/tvbo/SweepDirection#bidirectional"/> + <rdf:Description rdf:about="https://w3id.org/tvbo/SweepDirection#down"/> + <rdf:Description rdf:about="https://w3id.org/tvbo/SweepDirection#up"/> + </owl:unionOf> + </owl:Class> + </owl:equivalentClass> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>SweepDirection</rdfs:label> + <skos:definition>Order in which a branch-following sweep (SweepSeeding.from_previous) traverses its axis. Ignored for independent seeding, where order is irrelevant.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/SweepDirection#bidirectional"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/SweepDirection#down"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/SweepDirection#up"/> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/SweepSeeding --> + + <owl:Class rdf:about="https://w3id.org/tvbo/SweepSeeding"> + <owl:equivalentClass> + <owl:Class> + <owl:unionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="https://w3id.org/tvbo/SweepSeeding#from_previous"/> + <rdf:Description rdf:about="https://w3id.org/tvbo/SweepSeeding#independent"/> + </owl:unionOf> + </owl:Class> + </owl:equivalentClass> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>SweepSeeding</rdfs:label> + <skos:definition>How each point of a parameter sweep (Exploration) obtains its initial state. Determines whether the sweep points are independent (and therefore parallelisable) or whether the trajectory follows a solution branch as the swept parameter is changed quasi-statically. The latter is forward-time-integration branch following β€” distinct from numerical continuation of equilibria (the Continuation class), which tracks branches with a Newton corrector rather than by simulation.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/SweepSeeding#from_previous"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/SweepSeeding#independent"/> + </owl:Class> + + + <!-- https://w3id.org/tvbo/SystemType --> <owl:Class rdf:about="https://w3id.org/tvbo/SystemType"> @@ -21906,8 +23185,9 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <!-- https://w3id.org/tvbo/Transcritical --> <owl:Class rdf:about="https://w3id.org/tvbo/Transcritical"> - <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Bifurcation"/> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/BranchPoint"/> <rdfs:label xml:lang="en">Transcritical</rdfs:label> + <skos:altLabel>transcritical</skos:altLabel> </owl:Class> @@ -22063,11 +23343,13 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <rdf:Description rdf:about="http://qudt.org/vocab/unit/H-PER-M"/> <rdf:Description rdf:about="http://qudt.org/vocab/unit/HZ"/> <rdf:Description rdf:about="http://qudt.org/vocab/unit/KiloGM"/> + <rdf:Description rdf:about="http://qudt.org/vocab/unit/KiloGM-M2"/> <rdf:Description rdf:about="http://qudt.org/vocab/unit/KiloHZ"/> <rdf:Description rdf:about="http://qudt.org/vocab/unit/M"/> <rdf:Description rdf:about="http://qudt.org/vocab/unit/M-PER-SEC"/> <rdf:Description rdf:about="http://qudt.org/vocab/unit/M-PER-SEC2"/> <rdf:Description rdf:about="http://qudt.org/vocab/unit/MOL-PER-M3"/> + <rdf:Description rdf:about="http://qudt.org/vocab/unit/MegaW"/> <rdf:Description rdf:about="http://qudt.org/vocab/unit/MicroM3"/> <rdf:Description rdf:about="http://qudt.org/vocab/unit/MicroS"/> <rdf:Description rdf:about="http://qudt.org/vocab/unit/MicroSEC"/> @@ -22099,6 +23381,7 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <rdf:Description rdf:about="http://qudt.org/vocab/unit/SEC2"/> <rdf:Description rdf:about="http://qudt.org/vocab/unit/UNITLESS"/> <rdf:Description rdf:about="http://qudt.org/vocab/unit/V"/> + <rdf:Description rdf:about="http://qudt.org/vocab/unit/W"/> <rdf:Description rdf:about="https://w3id.org/tvbo/UnitEnum#Hz_per_nA"/> <rdf:Description rdf:about="https://w3id.org/tvbo/UnitEnum#Mohm"/> <rdf:Description rdf:about="https://w3id.org/tvbo/UnitEnum#S_per_cm2"/> @@ -22128,11 +23411,13 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/H-PER-M"/> <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/HZ"/> <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/KiloGM"/> + <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/KiloGM-M2"/> <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/KiloHZ"/> <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/M"/> <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/M-PER-SEC"/> <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/M-PER-SEC2"/> <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/MOL-PER-M3"/> + <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/MegaW"/> <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/MicroM3"/> <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/MicroS"/> <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/MicroSEC"/> @@ -22164,6 +23449,7 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/SEC2"/> <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/UNITLESS"/> <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/V"/> + <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/W"/> <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/UnitEnum#Hz_per_nA"/> <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/UnitEnum#Mohm"/> <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/UnitEnum#S_per_cm2"/> @@ -22316,6 +23602,628 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. + <!-- https://w3id.org/tvbo/WorkflowConfig --> + + <owl:Class rdf:about="https://w3id.org/tvbo/WorkflowConfig"> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/container"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/distribute"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/DistributionConfig"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/nextflow"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/WorkflowEngineConfig"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/out_dir"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/requirements"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/software/SoftwareRequirement"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/rng"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/slurm"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/WorkflowEngineConfig"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/snakemake"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/WorkflowEngineConfig"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/distribute"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/nextflow"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/provenance"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/requirements"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/slurm"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/snakemake"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/distribute"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/nextflow"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/provenance"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/slurm"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/snakemake"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/chunk"/> + <owl:allValuesFrom> + <rdfs:Datatype> + <owl:intersectionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="http://www.w3.org/2001/XMLSchema#integer"/> + <rdfs:Datatype> + <owl:onDatatype rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/> + <owl:withRestrictions rdf:parseType="Collection"> + <rdf:Description> + <xsd:minInclusive rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</xsd:minInclusive> + </rdf:Description> + </owl:withRestrictions> + </rdfs:Datatype> + </owl:intersectionOf> + </rdfs:Datatype> + </owl:allValuesFrom> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/provenance"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#boolean"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/retries"/> + <owl:allValuesFrom> + <rdfs:Datatype> + <owl:intersectionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="http://www.w3.org/2001/XMLSchema#integer"/> + <rdfs:Datatype> + <owl:onDatatype rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/> + <owl:withRestrictions rdf:parseType="Collection"> + <rdf:Description> + <xsd:minInclusive rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</xsd:minInclusive> + </rdf:Description> + </owl:withRestrictions> + </rdfs:Datatype> + </owl:intersectionOf> + </rdfs:Datatype> + </owl:allValuesFrom> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/chunk"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/container"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/out_dir"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/retries"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/rng"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/chunk"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/container"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/out_dir"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/retries"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/rng"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>WorkflowConfig</rdfs:label> + <skos:definition>Declarative orchestration for rendering a parameter sweep into a distributed, reproducible workflow (Slurm array, Snakemake, Nextflow). Backend- and engine-independent: it names *what* to distribute, *where* results go, and the per-engine resources, while each engine emitter renders the concrete artefact. Declared on a study as ``workflow`` and refined per experiment via ``workflow_overrides``; unset fields fall back to the emitter's defaults so an override sets only what it names.</skos:definition> + <skos:exactMatch rdf:resource="https://w3id.org/tvbo/WorkflowConfig"/> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/WorkflowDistributeBy --> + + <owl:Class rdf:about="https://w3id.org/tvbo/WorkflowDistributeBy"> + <owl:equivalentClass> + <owl:Class> + <owl:unionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="https://w3id.org/tvbo/WorkflowDistributeBy#auto"/> + <rdf:Description rdf:about="https://w3id.org/tvbo/WorkflowDistributeBy#vectorize"/> + <rdf:Description rdf:about="https://w3id.org/tvbo/WorkflowDistributeBy#workflow"/> + </owl:unionOf> + </owl:Class> + </owl:equivalentClass> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>WorkflowDistributeBy</rdfs:label> + <skos:definition>Default tier a sweep axis is placed on when it is not named explicitly in a DistributionConfig. Vectorized axes are packed into one batched backend call; workflow axes are fanned out into independent scheduler tasks.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/WorkflowDistributeBy#auto"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/WorkflowDistributeBy#vectorize"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/WorkflowDistributeBy#workflow"/> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/WorkflowEngineConfig --> + + <owl:Class rdf:about="https://w3id.org/tvbo/WorkflowEngineConfig"> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/account"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/env"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/EnvironmentVariable"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/executor"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/gres"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/mail_type"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/mail_user"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/mem"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/modules"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/options"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/SchedulerDirective"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/partition"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/queue"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/setup"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/time"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/venv"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/env"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/options"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/time"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/time"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/array_chunk"/> + <owl:allValuesFrom> + <rdfs:Datatype> + <owl:intersectionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="http://www.w3.org/2001/XMLSchema#integer"/> + <rdfs:Datatype> + <owl:onDatatype rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/> + <owl:withRestrictions rdf:parseType="Collection"> + <rdf:Description> + <xsd:minInclusive rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</xsd:minInclusive> + </rdf:Description> + </owl:withRestrictions> + </rdfs:Datatype> + </owl:intersectionOf> + </rdfs:Datatype> + </owl:allValuesFrom> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/cores"/> + <owl:allValuesFrom> + <rdfs:Datatype> + <owl:intersectionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="http://www.w3.org/2001/XMLSchema#integer"/> + <rdfs:Datatype> + <owl:onDatatype rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/> + <owl:withRestrictions rdf:parseType="Collection"> + <rdf:Description> + <xsd:minInclusive rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</xsd:minInclusive> + </rdf:Description> + </owl:withRestrictions> + </rdfs:Datatype> + </owl:intersectionOf> + </rdfs:Datatype> + </owl:allValuesFrom> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/cpus_per_task"/> + <owl:allValuesFrom> + <rdfs:Datatype> + <owl:intersectionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="http://www.w3.org/2001/XMLSchema#integer"/> + <rdfs:Datatype> + <owl:onDatatype rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/> + <owl:withRestrictions rdf:parseType="Collection"> + <rdf:Description> + <xsd:minInclusive rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</xsd:minInclusive> + </rdf:Description> + </owl:withRestrictions> + </rdfs:Datatype> + </owl:intersectionOf> + </rdfs:Datatype> + </owl:allValuesFrom> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/account"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/array_chunk"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/cores"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/cpus_per_task"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/executor"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/gres"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/mail_type"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/mail_user"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/mem"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/modules"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/partition"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/queue"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/setup"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/venv"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/account"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/array_chunk"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/cores"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/cpus_per_task"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/executor"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/gres"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/mail_type"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/mail_user"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/mem"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/partition"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/queue"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/venv"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>WorkflowEngineConfig</rdfs:label> + <skos:definition>Execution directives for a workflow engine. Every field is optional and each engine's emitter consumes the subset it supports, so one block may carry directives for more than one target. The generic resource fields (cpus_per_task, mem, time) map across engines; the remaining fields are named for the engine that reads them (Slurm: partition/account/gres/ mail_*/array_chunk; Snakemake: cores; Nextflow: executor/queue). Any directive not named here is passed through ``options`` verbatim, so the block stays extensible without a schema change.</skos:definition> + <skos:exactMatch rdf:resource="https://w3id.org/tvbo/WorkflowEngineConfig"/> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/ZeroHopf --> + + <owl:Class rdf:about="https://w3id.org/tvbo/ZeroHopf"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Bifurcation"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasCodimension"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/Codimension2"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasEigenvalueSignature"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/RealZeroAndImaginaryPair"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:comment xml:lang="en">Codim-2 point with a real zero eigenvalue and an imaginary pair simultaneously; a fold curve meets a Hopf curve.</rdfs:comment> + <rdfs:label xml:lang="en">Zero-Hopf (fold-Hopf)</rdfs:label> + <skos:altLabel>ZH</skos:altLabel> + <skos:altLabel>fold-hopf</skos:altLabel> + <skos:altLabel>gavrilov-guckenheimer</skos:altLabel> + <skos:altLabel>zero-hopf</skos:altLabel> + <skos:altLabel>zh</skos:altLabel> + <tvbo:canonicalCode>ZH</tvbo:canonicalCode> + </owl:Class> + + + <!-- https://w3id.org/tvbo/AggregationType#first --> <owl:Class rdf:about="https://w3id.org/tvbo/AggregationType#first"> @@ -22364,6 +24272,30 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. + <!-- https://w3id.org/tvbo/AggregationType#std --> + + <owl:Class rdf:about="https://w3id.org/tvbo/AggregationType#std"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/AggregationType"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>std (AggregationType)</rdfs:label> + <skos:definition>Standard deviation over time (per node)</skos:definition> + <skos:notation>std</skos:notation> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/AggregationType#variance --> + + <owl:Class rdf:about="https://w3id.org/tvbo/AggregationType#variance"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/AggregationType"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>variance (AggregationType)</rdfs:label> + <skos:definition>Variance over time (per node)</skos:definition> + <skos:notation>variance</skos:notation> + </owl:Class> + + + <!-- https://w3id.org/tvbo/AggregationType#window --> <owl:Class rdf:about="https://w3id.org/tvbo/AggregationType#window"> @@ -22480,6 +24412,30 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. + <!-- https://w3id.org/tvbo/CouplingStageEvaluation#per_stage --> + + <owl:Class rdf:about="https://w3id.org/tvbo/CouplingStageEvaluation#per_stage"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/CouplingStageEvaluation"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>per_stage (CouplingStageEvaluation)</rdfs:label> + <skos:definition>Re-evaluate the coupling at every integrator stage β€” the coupling is a full part of the vector field (standard ODE integration). Accurate; required to reproduce reference integrators for stiff / chaotic / multistable systems. (tvboptim maps this to recompute_coupling_per_stage=True; diffrax already recomputes the whole RHS per stage.)</skos:definition> + <skos:notation>per_stage</skos:notation> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/CouplingStageEvaluation#per_step --> + + <owl:Class rdf:about="https://w3id.org/tvbo/CouplingStageEvaluation#per_step"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/CouplingStageEvaluation"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>per_step (CouplingStageEvaluation)</rdfs:label> + <skos:definition>Evaluate the coupling once per integration step and hold it constant across the stages β€” a TVB-style efficiency shortcut (the coupling reduction runs once per step). Faster but lower- order in the coupling; can change the trajectory for sensitive systems. (tvboptim: recompute_coupling_per_stage=False, the current backend default.)</skos:definition> + <skos:notation>per_step</skos:notation> + </owl:Class> + + + <!-- https://w3id.org/tvbo/DevelopmentStatus#active --> <owl:Class rdf:about="https://w3id.org/tvbo/DevelopmentStatus#active"> @@ -22931,6 +24887,42 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. + <!-- https://w3id.org/tvbo/GraphRepresentation#auto --> + + <owl:Class rdf:about="https://w3id.org/tvbo/GraphRepresentation#auto"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/GraphRepresentation"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>auto (GraphRepresentation)</rdfs:label> + <skos:definition>Select by connection density: use the sparse representation when the adjacency is sparse enough that edge-wise evaluation is cheaper than the dense product, dense otherwise. Default. Lets the backend apply its own crossover without the recipe hard-coding a data structure.</skos:definition> + <skos:notation>auto</skos:notation> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/GraphRepresentation#dense --> + + <owl:Class rdf:about="https://w3id.org/tvbo/GraphRepresentation#dense"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/GraphRepresentation"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>dense (GraphRepresentation)</rdfs:label> + <skos:definition>Force the dense-adjacency representation. Preferred for densely connected or small networks, where dense linear algebra's constant-factor efficiency outweighs its nodes-squared scaling.</skos:definition> + <skos:notation>dense</skos:notation> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/GraphRepresentation#sparse --> + + <owl:Class rdf:about="https://w3id.org/tvbo/GraphRepresentation#sparse"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/GraphRepresentation"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>sparse (GraphRepresentation)</rdfs:label> + <skos:definition>Force the edge-list (sparse) representation. Preferred for large, sparsely connected networks (structural connectomes, power grids) where coupling cost then scales with the number of edges rather than nodes-squared.</skos:definition> + <skos:notation>sparse</skos:notation> + </owl:Class> + + + <!-- https://w3id.org/tvbo/Hemisphere#both --> <owl:Class rdf:about="https://w3id.org/tvbo/Hemisphere#both"> @@ -23199,6 +25191,30 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. + <!-- https://w3id.org/tvbo/NodeReconciliation#by_label --> + + <owl:Class rdf:about="https://w3id.org/tvbo/NodeReconciliation#by_label"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/NodeReconciliation"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>by_label (NodeReconciliation)</rdfs:label> + <skos:definition>Restrict both sides to their shared node labels by name (keyed ``.sel``), preserving the model network's order. Never positional.</skos:definition> + <skos:notation>by_label</skos:notation> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/NodeReconciliation#none --> + + <owl:Class rdf:about="https://w3id.org/tvbo/NodeReconciliation#none"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/NodeReconciliation"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>none (NodeReconciliation)</rdfs:label> + <skos:definition>No reconciliation; the node sets are assumed identical.</skos:definition> + <skos:notation>none</skos:notation> + </owl:Class> + + + <!-- https://w3id.org/tvbo/NoiseType#brown --> <owl:Class rdf:about="https://w3id.org/tvbo/NoiseType#brown"> @@ -23365,7 +25381,7 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/ParallelMode"/> <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> <rdfs:label>pmap (ParallelMode)</rdfs:label> - <skos:definition>Cross-device parallel execution (jax.pmap). For multi-GPU/TPU.</skos:definition> + <skos:definition>Parallel execution across the local devices of a single node (jax.pmap over the several GPUs/TPUs visible to that task). Intra-task only β€” it never spans nodes; inter-node parallelism is scheduler fan-out (DistributionConfig.chunk), not pmap. On a one-GPU (or CPU) task this degenerates to vmap.</skos:definition> <skos:notation>pmap</skos:notation> </owl:Class> @@ -23931,6 +25947,66 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. + <!-- https://w3id.org/tvbo/SweepDirection#bidirectional --> + + <owl:Class rdf:about="https://w3id.org/tvbo/SweepDirection#bidirectional"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/SweepDirection"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>bidirectional (SweepDirection)</rdfs:label> + <skos:definition>Increase then decrease over the same values, recording both branches. Where the two branches differ, the sweep traces a hysteresis loop that exposes coexisting stable states (bistability / multistability). The multivalued generalisation of Continuation.bothside.</skos:definition> + <skos:notation>bidirectional</skos:notation> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/SweepDirection#down --> + + <owl:Class rdf:about="https://w3id.org/tvbo/SweepDirection#down"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/SweepDirection"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>down (SweepDirection)</rdfs:label> + <skos:definition>Decrease the parameter monotonically (high to low), once.</skos:definition> + <skos:notation>down</skos:notation> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/SweepDirection#up --> + + <owl:Class rdf:about="https://w3id.org/tvbo/SweepDirection#up"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/SweepDirection"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>up (SweepDirection)</rdfs:label> + <skos:definition>Increase the parameter monotonically (low to high), once.</skos:definition> + <skos:notation>up</skos:notation> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/SweepSeeding#from_previous --> + + <owl:Class rdf:about="https://w3id.org/tvbo/SweepSeeding#from_previous"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/SweepSeeding"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>from_previous (SweepSeeding)</rdfs:label> + <skos:definition>Each point is seeded from the final state of the preceding point, so the trajectory follows the solution branch as the swept parameter changes quasi-statically. Forces sequential, order-dependent execution (emitted as a scan, not a vmap). Used to reach a working point by slowly ramping a parameter (e.g. global coupling) and, with sweep_direction, to expose hysteresis / multistability. Sweep-granularity analogue of InitialStateMethod.from_branch.</skos:definition> + <skos:notation>from_previous</skos:notation> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/SweepSeeding#independent --> + + <owl:Class rdf:about="https://w3id.org/tvbo/SweepSeeding#independent"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/SweepSeeding"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>independent (SweepSeeding)</rdfs:label> + <skos:definition>Each point is initialised independently from the model's initial values (a cold start), so points are order-independent and may be evaluated in parallel (see parallel_mode). Default; today's behaviour.</skos:definition> + <skos:notation>independent</skos:notation> + </owl:Class> + + + <!-- https://w3id.org/tvbo/SystemType#continuous --> <owl:Class rdf:about="https://w3id.org/tvbo/SystemType#continuous"> @@ -24159,6 +26235,42 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. + <!-- https://w3id.org/tvbo/WorkflowDistributeBy#auto --> + + <owl:Class rdf:about="https://w3id.org/tvbo/WorkflowDistributeBy#auto"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/WorkflowDistributeBy"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>auto (WorkflowDistributeBy)</rdfs:label> + <skos:definition>Vectorize every axis the backend can batch; fan out the rest.</skos:definition> + <skos:notation>auto</skos:notation> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/WorkflowDistributeBy#vectorize --> + + <owl:Class rdf:about="https://w3id.org/tvbo/WorkflowDistributeBy#vectorize"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/WorkflowDistributeBy"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>vectorize (WorkflowDistributeBy)</rdfs:label> + <skos:definition>Place all otherwise-unassigned axes on the vectorized tier.</skos:definition> + <skos:notation>vectorize</skos:notation> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/WorkflowDistributeBy#workflow --> + + <owl:Class rdf:about="https://w3id.org/tvbo/WorkflowDistributeBy#workflow"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/WorkflowDistributeBy"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>workflow (WorkflowDistributeBy)</rdfs:label> + <skos:definition>Fan out all otherwise-unassigned axes as scheduler tasks.</skos:definition> + <skos:notation>workflow</skos:notation> + </owl:Class> + + + <!-- https://w3id.org/tvbo/clinical/ClinicalApplicationStudy --> <owl:Class rdf:about="https://w3id.org/tvbo/clinical/ClinicalApplicationStudy"> @@ -26811,6 +28923,15 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. + <!-- https://w3id.org/tvbo/BranchCrossingGeometry --> + + <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/BranchCrossingGeometry"> + <rdf:type rdf:resource="https://w3id.org/tvbo/BranchGeometry"/> + <rdfs:label xml:lang="en">branch crossing (transversal intersection of solution branches)</rdfs:label> + </owl:NamedIndividual> + + + <!-- https://w3id.org/tvbo/BuiltinModelLibrary --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/BuiltinModelLibrary"> @@ -26830,7 +28951,7 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/CakanObermayer"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2852"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3102"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bistable"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Quiescent"/> @@ -26877,7 +28998,7 @@ Defaults are taken verbatim from ``neurolib/models/aln/loadDefaultParams.py``. N <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/CakanObermayer/state_variables/mu_si"/> <tvbo:model_type>neural_mass</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2852"> + <rdf:Description rdf:nodeID="genid3102"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> @@ -26900,6 +29021,24 @@ Defaults are taken verbatim from ``neurolib/models/aln/loadDefaultParams.py``. N + <!-- https://w3id.org/tvbo/Codimension1 --> + + <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/Codimension1"> + <rdf:type rdf:resource="https://w3id.org/tvbo/Codimension"/> + <rdfs:label xml:lang="en">codimension 1</rdfs:label> + </owl:NamedIndividual> + + + + <!-- https://w3id.org/tvbo/Codimension2 --> + + <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/Codimension2"> + <rdf:type rdf:resource="https://w3id.org/tvbo/Codimension"/> + <rdfs:label xml:lang="en">codimension 2</rdfs:label> + </owl:NamedIndividual> + + + <!-- https://w3id.org/tvbo/ConductionSpeedInference --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/ConductionSpeedInference"> @@ -26912,6 +29051,15 @@ Defaults are taken verbatim from ``neurolib/models/aln/loadDefaultParams.py``. N + <!-- https://w3id.org/tvbo/ConjugatePairImaginary --> + + <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/ConjugatePairImaginary"> + <rdf:type rdf:resource="https://w3id.org/tvbo/EigenvalueSignature"/> + <rdfs:label xml:lang="en">a complex-conjugate pair crosses the imaginary axis</rdfs:label> + </owl:NamedIndividual> + + + <!-- https://w3id.org/tvbo/ContinuationSolver --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/ContinuationSolver"> @@ -26925,7 +29073,7 @@ Defaults are taken verbatim from ``neurolib/models/aln/loadDefaultParams.py``. N <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/CoombesByrne"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2853"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3103"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Quiescent"/> <tvbo:hasAttractor rdf:resource="https://w3id.org/tvbo/FixedPoint"/> @@ -26953,7 +29101,7 @@ $Z$. Using the conformal transformation $Z=(1-W^\star)/(1+W^\star)$ and $W= \pi <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/CoombesByrne/state_variables/r"/> <tvbo:model_type>mean_field</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2853"> + <rdf:Description rdf:nodeID="genid3103"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> @@ -26964,7 +29112,7 @@ $Z$. Using the conformal transformation $Z=(1-W^\star)/(1+W^\star)$ and $W= \pi <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/CoombesByrne2D"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2854"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3104"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Quiescent"/> <tvbo:hasAttractor rdf:resource="https://w3id.org/tvbo/FixedPoint"/> @@ -26983,7 +29131,7 @@ $Z$. Using the conformal transformation $Z=(1-W^\star)/(1+W^\star)$ and $W= \pi <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/CoombesByrne2D/state_variables/r"/> <tvbo:model_type>mean_field</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2854"> + <rdf:Description rdf:nodeID="genid3104"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> @@ -27059,6 +29207,17 @@ $Z$. Using the conformal transformation $Z=(1-W^\star)/(1+W^\star)$ and $W= \pi + <!-- https://w3id.org/tvbo/DenseCoupling --> + + <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/DenseCoupling"> + <rdf:type rdf:resource="https://w3id.org/tvbo/BackendCapability"/> + <rdfs:comment xml:lang="en">Evaluate network coupling as a product over the full nodes-by-nodes adjacency. Preferred for densely-connected or small networks, where dense linear algebra's constant-factor efficiency outweighs its nodes-squared scaling.</rdfs:comment> + <rdfs:label xml:lang="en">Dense (full-adjacency) coupling evaluation</rdfs:label> + <tvbo:enabledByGraphParameter>graph_representation</tvbo:enabledByGraphParameter> + </owl:NamedIndividual> + + + <!-- https://w3id.org/tvbo/Deterministic --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/Deterministic"/> @@ -27074,11 +29233,20 @@ $Z$. Using the conformal transformation $Z=(1-W^\star)/(1+W^\star)$ and $W= \pi + <!-- https://w3id.org/tvbo/DoubleZeroEigenvalue --> + + <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/DoubleZeroEigenvalue"> + <rdf:type rdf:resource="https://w3id.org/tvbo/EigenvalueSignature"/> + <rdfs:label xml:lang="en">a double-zero (nilpotent) eigenvalue</rdfs:label> + </owl:NamedIndividual> + + + <!-- https://w3id.org/tvbo/DumontGutkin --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/DumontGutkin"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2855"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3105"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bistable"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:hasAttractor rdf:resource="https://w3id.org/tvbo/FixedPoint"/> @@ -27114,7 +29282,7 @@ $Z$. Using the conformal transformation $Z=(1-W^\star)/(1+W^\star)$ and $W= \pi <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/DumontGutkin/state_variables/s_ii"/> <tvbo:model_type>mean_field</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2855"> + <rdf:Description rdf:nodeID="genid3105"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> @@ -27137,8 +29305,8 @@ $Z$. Using the conformal transformation $Z=(1-W^\star)/(1+W^\star)$ and $W= \pi <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/Epileptor"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2856"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2857"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3106"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3107"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bistable"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bursting"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> @@ -27184,13 +29352,13 @@ $Z$. Using the conformal transformation $Z=(1-W^\star)/(1+W^\star)$ and $W= \pi <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/Epileptor/state_variables/z"/> <tvbo:model_type>neural_mass</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2856"> + <rdf:Description rdf:nodeID="genid3106"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> - <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/SaddleNode"/> + <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/HomoclinicBifurcation"/> </rdf:Description> - <rdf:Description rdf:nodeID="genid2857"> + <rdf:Description rdf:nodeID="genid3107"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> - <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/HomoclinicBifurcation"/> + <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/SaddleNode"/> </rdf:Description> @@ -27199,7 +29367,7 @@ $Z$. Using the conformal transformation $Z=(1-W^\star)/(1+W^\star)$ and $W= \pi <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/Epileptor2D"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2858"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3108"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bistable"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:hasAttractor rdf:resource="https://w3id.org/tvbo/FixedPoint"/> @@ -27237,7 +29405,7 @@ Note: <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/Epileptor2D/state_variables/z"/> <tvbo:model_type>phenomenological</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2858"> + <rdf:Description rdf:nodeID="genid3108"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/SaddleNode"/> </rdf:Description> @@ -27275,7 +29443,7 @@ Note: <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/Epileptor5D"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2859"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3109"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bistable"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bursting"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> @@ -27334,7 +29502,7 @@ Note: <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/Epileptor5D/state_variables/z"/> <tvbo:model_type>phenomenological</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2859"> + <rdf:Description rdf:nodeID="genid3109"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/SaddleNode"/> </rdf:Description> @@ -27445,7 +29613,7 @@ Note: <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/EpileptorRestingState"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2860"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3110"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bistable"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bursting"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> @@ -27508,7 +29676,7 @@ This model, its motivation and derivation can be found in the published article <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/EpileptorRestingState/state_variables/z"/> <tvbo:model_type>phenomenological</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2860"> + <rdf:Description rdf:nodeID="genid3110"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/SaddleNode"/> </rdf:Description> @@ -27578,6 +29746,17 @@ This model, its motivation and derivation can be found in the published article + <!-- https://w3id.org/tvbo/FiniteDifferenceAnalysis --> + + <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/FiniteDifferenceAnalysis"> + <rdf:type rdf:resource="https://w3id.org/tvbo/AnalysisObservable"/> + <rdfs:comment xml:lang="en">Seed-averaged central finite-difference sensitivity of a target with respect to a parameter; the mean is the gradient estimate, the sem its standard error. Parameters: delta, seeds, seed_base, stat. Binds via target + wrt.</rdfs:comment> + <rdfs:label xml:lang="en">Finite-difference analysis</rdfs:label> + <tvbo:realisedByBackend>tvboptim</tvbo:realisedByBackend> + </owl:NamedIndividual> + + + <!-- https://w3id.org/tvbo/FixedPoint --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/FixedPoint"/> @@ -27597,7 +29776,7 @@ This model, its motivation and derivation can be found in the published article <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/GastSchmidtKnosche_SD"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2861"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3111"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Quiescent"/> <tvbo:hasAttractor rdf:resource="https://w3id.org/tvbo/FixedPoint"/> @@ -27641,7 +29820,7 @@ This model, its motivation and derivation can be found in the published article <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/GastSchmidtKnosche_SD/state_variables/r"/> <tvbo:model_type>neural_mass</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2861"> + <rdf:Description rdf:nodeID="genid3111"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> @@ -27652,7 +29831,7 @@ This model, its motivation and derivation can be found in the published article <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/GastSchmidtKnosche_SF"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2862"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3112"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Quiescent"/> <tvbo:hasAttractor rdf:resource="https://w3id.org/tvbo/FixedPoint"/> @@ -27679,7 +29858,7 @@ This model, its motivation and derivation can be found in the published article <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/GastSchmidtKnosche_SF/state_variables/r"/> <tvbo:model_type>neural_mass</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2862"> + <rdf:Description rdf:nodeID="genid3112"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> @@ -27690,8 +29869,8 @@ This model, its motivation and derivation can be found in the published article <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/Generic2dOscillator"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2863"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2864"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3113"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3114"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bistable"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Excitable"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> @@ -27721,13 +29900,13 @@ This model, its motivation and derivation can be found in the published article <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/Generic2dOscillator/state_variables/W"/> <tvbo:model_type>generic</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2863"> + <rdf:Description rdf:nodeID="genid3113"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> - <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> + <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/SaddleNode"/> </rdf:Description> - <rdf:Description rdf:nodeID="genid2864"> + <rdf:Description rdf:nodeID="genid3114"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> - <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/SaddleNode"/> + <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> @@ -27752,6 +29931,17 @@ This model, its motivation and derivation can be found in the published article + <!-- https://w3id.org/tvbo/GradientAnalysis --> + + <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/GradientAnalysis"> + <rdf:type rdf:resource="https://w3id.org/tvbo/AnalysisObservable"/> + <rdfs:comment xml:lang="en">Autodiff (forward/reverse) gradient of a target observable or loss with respect to named parameters β€” the untruncated sensitivity of the full solve. Parameters: mode. Binds via target + wrt.</rdfs:comment> + <rdfs:label xml:lang="en">Gradient analysis</rdfs:label> + <tvbo:realisedByBackend>tvboptim</tvbo:realisedByBackend> + </owl:NamedIndividual> + + + <!-- https://w3id.org/tvbo/GradientBasedOptimization --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/GradientBasedOptimization"> @@ -27889,7 +30079,7 @@ Note: <!-- https://w3id.org/tvbo/Jansen1995 --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/Jansen1995"> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2865"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3115"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Quiescent"/> <tvbo:hasAttractor rdf:resource="https://w3id.org/tvbo/FixedPoint"/> @@ -27906,7 +30096,7 @@ Note: <rdfs:label xml:lang="en">Jansen 1995</rdfs:label> <skos:prefLabel xml:lang="en">Jansen 1995</skos:prefLabel> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2865"> + <rdf:Description rdf:nodeID="genid3115"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> @@ -27917,7 +30107,7 @@ Note: <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/JansenRit"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2866"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3116"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Quiescent"/> <tvbo:hasAttractor rdf:resource="https://w3id.org/tvbo/FixedPoint"/> @@ -27961,7 +30151,7 @@ Note: <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/JansenRit/state_variables/y5"/> <tvbo:model_type>neural_mass</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2866"> + <rdf:Description rdf:nodeID="genid3116"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> @@ -27972,7 +30162,7 @@ Note: <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/JansenRit1995"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2867"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3117"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Quiescent"/> <tvbo:hasAttractor rdf:resource="https://w3id.org/tvbo/FixedPoint"/> @@ -28002,7 +30192,7 @@ Note: <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/JansenRit1995/state_variables/y5"/> <tvbo:model_type>neural_mass</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2867"> + <rdf:Description rdf:nodeID="genid3117"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> @@ -28022,7 +30212,7 @@ Note: <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/KIonEx"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2868"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3118"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bistable"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bursting"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> @@ -28110,7 +30300,7 @@ The model is derived as the mathematical limit of an infinite number of all-to-a <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/KIonEx/state_variables/x"/> <tvbo:model_type>mean_field</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2868"> + <rdf:Description rdf:nodeID="genid3118"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/SaddleNode"/> </rdf:Description> @@ -28176,7 +30366,7 @@ The model is derived as the mathematical limit of an infinite number of all-to-a <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/LarterBreakspear"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2869"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3119"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bistable"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Chaotic"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> @@ -28252,7 +30442,7 @@ Note: <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/LarterBreakspear/state_variables/Z"/> <tvbo:model_type>neural_mass</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2869"> + <rdf:Description rdf:nodeID="genid3119"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> @@ -28265,6 +30455,15 @@ Note: + <!-- https://w3id.org/tvbo/LimitPointGeometry --> + + <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/LimitPointGeometry"> + <rdf:type rdf:resource="https://w3id.org/tvbo/BranchGeometry"/> + <rdfs:label xml:lang="en">limit point (turning point; branch tangent to the parameter axis)</rdfs:label> + </owl:NamedIndividual> + + + <!-- https://w3id.org/tvbo/Linear --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/Linear"> @@ -28277,6 +30476,17 @@ Note: + <!-- https://w3id.org/tvbo/LyapunovAnalysis --> + + <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/LyapunovAnalysis"> + <rdf:type rdf:resource="https://w3id.org/tvbo/AnalysisObservable"/> + <rdfs:comment xml:lang="en">Benettin QR estimate of the tangent-dynamics Lyapunov spectrum: the leading exponents lambda_i (rate of trajectory divergence, chaos when lambda_1 > 0) and, for the leading direction, the per-node Lyapunov vector xi_i (which nodes drive the instability). Parameters: n_exponents, n_steps (rescaling segments), segment_time, mode (tangent-space jvp / two-trajectory sim). Independent per operating point, so it fans out across a parameter axis.</rdfs:comment> + <rdfs:label xml:lang="en">Lyapunov analysis</rdfs:label> + <tvbo:realisedByBackend>tvboptim</tvbo:realisedByBackend> + </owl:NamedIndividual> + + + <!-- https://w3id.org/tvbo/ModelJansen1995 --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/ModelJansen1995"> @@ -28308,8 +30518,8 @@ Note: <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/MontbrioPazoRoxin"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2870"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2871"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3120"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3121"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bistable"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Quiescent"/> @@ -28332,13 +30542,13 @@ Note: <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/MontbrioPazoRoxin/state_variables/r"/> <tvbo:model_type>mean_field</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2870"> + <rdf:Description rdf:nodeID="genid3120"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> - <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> + <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/SaddleNode"/> </rdf:Description> - <rdf:Description rdf:nodeID="genid2871"> + <rdf:Description rdf:nodeID="genid3121"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> - <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/SaddleNode"/> + <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> @@ -28451,6 +30661,24 @@ Note: + <!-- https://w3id.org/tvbo/RealEigenvalueZero --> + + <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/RealEigenvalueZero"> + <rdf:type rdf:resource="https://w3id.org/tvbo/EigenvalueSignature"/> + <rdfs:label xml:lang="en">one real eigenvalue crosses zero</rdfs:label> + </owl:NamedIndividual> + + + + <!-- https://w3id.org/tvbo/RealZeroAndImaginaryPair --> + + <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/RealZeroAndImaginaryPair"> + <rdf:type rdf:resource="https://w3id.org/tvbo/EigenvalueSignature"/> + <rdfs:label xml:lang="en">a real zero eigenvalue together with an imaginary pair</rdfs:label> + </owl:NamedIndividual> + + + <!-- https://w3id.org/tvbo/ReducedSetFitzHughNagumo --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/ReducedSetFitzHughNagumo"> @@ -28694,6 +30922,18 @@ The total synaptic input x combines local excitatory recurrence (w), external in + <!-- https://w3id.org/tvbo/SparseCoupling --> + + <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/SparseCoupling"> + <rdf:type rdf:resource="https://w3id.org/tvbo/BackendCapability"/> + <rdfs:comment xml:lang="en">Evaluate network coupling by summing over the existing edges only (cost scales with the number of edges) rather than over the full dense adjacency (cost scales with nodes-squared). Numerically identical to the dense evaluation; a pure performance optimisation for sparsely-connected networks.</rdfs:comment> + <rdfs:label xml:lang="en">Sparse (edge-list) coupling evaluation</rdfs:label> + <tvbo:boundConstraint>edges << nodes^2 (connection density below the backend's sparse/dense crossover)</tvbo:boundConstraint> + <tvbo:enabledByGraphParameter>graph_representation</tvbo:enabledByGraphParameter> + </owl:NamedIndividual> + + + <!-- https://w3id.org/tvbo/StaticDelayBuffer --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/StaticDelayBuffer"> @@ -28830,7 +31070,7 @@ The total synaptic input x combines local excitatory recurrence (w), external in <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/SupHopf"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2872"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3122"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Quiescent"/> <tvbo:hasAttractor rdf:resource="https://w3id.org/tvbo/FixedPoint"/> @@ -28850,7 +31090,7 @@ This normal form has a supercritical bifurcation at 'a=0' with 'a <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/SupHopf/state_variables/y"/> <tvbo:model_type>generic</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2872"> + <rdf:Description rdf:nodeID="genid3122"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/SupercriticalHopf"/> </rdf:Description> @@ -28931,6 +31171,15 @@ This normal form has a supercritical bifurcation at 'a=0' with 'a + <!-- https://w3id.org/tvbo/TwoImaginaryPairs --> + + <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/TwoImaginaryPairs"> + <rdf:type rdf:resource="https://w3id.org/tvbo/EigenvalueSignature"/> + <rdfs:label xml:lang="en">two distinct imaginary pairs</rdfs:label> + </owl:NamedIndividual> + + + <!-- https://w3id.org/tvbo/VectorizedRNG --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/VectorizedRNG"> @@ -28944,8 +31193,8 @@ This normal form has a supercritical bifurcation at 'a=0' with 'a <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/WilsonCowan"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2873"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2874"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3123"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3124"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bistable"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Quiescent"/> @@ -29011,11 +31260,11 @@ Note: <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/WilsonCowan/state_variables/I"/> <tvbo:model_type>neural_mass</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2873"> + <rdf:Description rdf:nodeID="genid3123"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> - <rdf:Description rdf:nodeID="genid2874"> + <rdf:Description rdf:nodeID="genid3124"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/SaddleNode"/> </rdf:Description> @@ -29026,7 +31275,7 @@ Note: <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/ZerlautAdaptationFirstOrder"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2875"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3125"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Quiescent"/> <tvbo:hasAttractor rdf:resource="https://w3id.org/tvbo/FixedPoint"/> @@ -29145,7 +31394,7 @@ Note: <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/ZerlautAdaptationFirstOrder/state_variables/ou_drift"/> <tvbo:model_type>mean_field</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2875"> + <rdf:Description rdf:nodeID="genid3125"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> @@ -29246,7 +31495,7 @@ Note: <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/ZetterbergJansen"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2876"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3126"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:hasAttractor rdf:resource="https://w3id.org/tvbo/FixedPoint"/> <tvbo:hasAttractor rdf:resource="https://w3id.org/tvbo/LimitCycle"/> @@ -29293,7 +31542,7 @@ Note: <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/ZetterbergJansen/state_variables/y5"/> <tvbo:model_type>neural_mass</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2876"> + <rdf:Description rdf:nodeID="genid3126"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> @@ -46700,15 +48949,6 @@ to a task-appropriate range (e.g. omega in Hz). - <!-- https://w3id.org/tvbo/studies/Arnold1968a --> - - <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Arnold1968a"> - <rdf:type rdf:resource="http://schema.org/ScholarlyArticle"/> - <rdfs:label>Arnold1968a</rdfs:label> - </owl:NamedIndividual> - - - <!-- https://w3id.org/tvbo/studies/Bandyopadhyay2021 --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Bandyopadhyay2021"> @@ -47314,15 +49554,6 @@ to a task-appropriate range (e.g. omega in Hz). - <!-- https://w3id.org/tvbo/studies/GuckenheimerHolmes1983Alias --> - - <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/GuckenheimerHolmes1983Alias"> - <rdf:type rdf:resource="http://schema.org/ScholarlyArticle"/> - <rdfs:label>GuckenheimerHolmes1983Alias</rdfs:label> - </owl:NamedIndividual> - - - <!-- https://w3id.org/tvbo/studies/Halvorsen2000 --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Halvorsen2000"> @@ -47356,16 +49587,6 @@ to a task-appropriate range (e.g. omega in Hz). - <!-- https://w3id.org/tvbo/studies/Henon1964 --> - - <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Henon1964"> - <rdf:type rdf:resource="http://schema.org/ScholarlyArticle"/> - <schema:identifier>10.1086/109234</schema:identifier> - <rdfs:label>Henon1964</rdfs:label> - </owl:NamedIndividual> - - - <!-- https://w3id.org/tvbo/studies/Henon1976 --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Henon1976"> @@ -47399,15 +49620,6 @@ to a task-appropriate range (e.g. omega in Hz). - <!-- https://w3id.org/tvbo/studies/Hindmarsh1984 --> - - <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Hindmarsh1984"> - <rdf:type rdf:resource="http://schema.org/ScholarlyArticle"/> - <rdfs:label>Hindmarsh1984</rdfs:label> - </owl:NamedIndividual> - - - <!-- https://w3id.org/tvbo/studies/HindmarshRose1984 --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/HindmarshRose1984"> @@ -47424,16 +49636,6 @@ to a task-appropriate range (e.g. omega in Hz). - <!-- https://w3id.org/tvbo/studies/Hodgkin1952 --> - - <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Hodgkin1952"> - <rdf:type rdf:resource="http://schema.org/ScholarlyArticle"/> - <schema:identifier>10.1113/jphysiol.1952.sp004764</schema:identifier> - <rdfs:label>Hodgkin1952</rdfs:label> - </owl:NamedIndividual> - - - <!-- https://w3id.org/tvbo/studies/HodgkinHuxley1952 --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/HodgkinHuxley1952"> @@ -47824,15 +50026,6 @@ to a task-appropriate range (e.g. omega in Hz). - <!-- https://w3id.org/tvbo/studies/Micluta-Campeanu2018 --> - - <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Micluta-Campeanu2018"> - <rdf:type rdf:resource="http://schema.org/ScholarlyArticle"/> - <rdfs:label>Micluta-Campeanu2018</rdfs:label> - </owl:NamedIndividual> - - - <!-- https://w3id.org/tvbo/studies/MiclutaCampeanu2018 --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/MiclutaCampeanu2018"> @@ -47850,16 +50043,6 @@ to a task-appropriate range (e.g. omega in Hz). - <!-- https://w3id.org/tvbo/studies/Mirshra2018 --> - - <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Mirshra2018"> - <rdf:type rdf:resource="http://schema.org/ScholarlyArticle"/> - <schema:identifier>10.1103/PhysRevE.97.062311</schema:identifier> - <rdfs:label>Mirshra2018</rdfs:label> - </owl:NamedIndividual> - - - <!-- https://w3id.org/tvbo/studies/Mishra2018 --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Mishra2018"> @@ -47882,16 +50065,6 @@ to a task-appropriate range (e.g. omega in Hz). - <!-- https://w3id.org/tvbo/studies/Mishra2018a --> - - <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Mishra2018a"> - <rdf:type rdf:resource="http://schema.org/ScholarlyArticle"/> - <schema:identifier>10.1103/PhysRevE.97.062311</schema:identifier> - <rdfs:label>Mishra2018a</rdfs:label> - </owl:NamedIndividual> - - - <!-- https://w3id.org/tvbo/studies/Montbrio2015 --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Montbrio2015"> @@ -47955,15 +50128,6 @@ to a task-appropriate range (e.g. omega in Hz). - <!-- https://w3id.org/tvbo/studies/Ott2010 --> - - <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Ott2010"> - <rdf:type rdf:resource="http://schema.org/ScholarlyArticle"/> - <rdfs:label>Ott2010</rdfs:label> - </owl:NamedIndividual> - - - <!-- https://w3id.org/tvbo/studies/OttRiddled2014 --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/OttRiddled2014"> @@ -48093,34 +50257,6 @@ to a task-appropriate range (e.g. omega in Hz). - <!-- https://w3id.org/tvbo/studies/Roessler1979Alias --> - - <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Roessler1979Alias"> - <rdf:type rdf:resource="http://schema.org/ScholarlyArticle"/> - <rdfs:label>Roessler1979Alias</rdfs:label> - </owl:NamedIndividual> - - - - <!-- https://w3id.org/tvbo/studies/Rossler1976 --> - - <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Rossler1976"> - <rdf:type rdf:resource="http://schema.org/ScholarlyArticle"/> - <schema:identifier>10.1016/0375-9601(76)90101-8</schema:identifier> - <rdfs:label>Rossler1976</rdfs:label> - </owl:NamedIndividual> - - - - <!-- https://w3id.org/tvbo/studies/Rossler1979 --> - - <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Rossler1979"> - <rdf:type rdf:resource="http://schema.org/ScholarlyArticle"/> - <rdfs:label>Rossler1979</rdfs:label> - </owl:NamedIndividual> - - - <!-- https://w3id.org/tvbo/studies/Ruelle1980 --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Ruelle1980"> @@ -48449,15 +50585,6 @@ to a task-appropriate range (e.g. omega in Hz). - <!-- https://w3id.org/tvbo/studies/Volo2019a --> - - <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Volo2019a"> - <rdf:type rdf:resource="http://schema.org/ScholarlyArticle"/> - <rdfs:label>Volo2019a</rdfs:label> - </owl:NamedIndividual> - - - <!-- https://w3id.org/tvbo/studies/Wang2008 --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Wang2008"> @@ -48758,10 +50885,21 @@ to a task-appropriate range (e.g. omega in Hz). <rdfs:label xml:lang="en">Fixed point</rdfs:label> </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/HomoclinicBifurcation"> + <rdfs:comment xml:lang="en">Global bifurcation where a limit cycle collides with a saddle equilibrium, forming a homoclinic orbit of infinite period.</rdfs:comment> <rdfs:label xml:lang="en">Homoclinic</rdfs:label> + <skos:altLabel>hom</skos:altLabel> + <skos:altLabel>homoclinic</skos:altLabel> </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/Hopf"> + <rdfs:comment xml:lang="en">Andronov-Hopf: an equilibrium loses stability as a complex-conjugate eigenvalue pair crosses the imaginary axis, giving birth to a limit cycle.</rdfs:comment> <rdfs:label xml:lang="en">Hopf</rdfs:label> + <skos:altLabel>HB</skos:altLabel> + <skos:altLabel>andronov hopf</skos:altLabel> + <skos:altLabel>andronov-hopf</skos:altLabel> + <skos:altLabel>hb</skos:altLabel> + <skos:altLabel>hopf</skos:altLabel> + <skos:prefLabel xml:lang="en">Hopf</skos:prefLabel> + <tvbo:canonicalCode>HB</tvbo:canonicalCode> </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/LimitCycle"> <rdfs:label xml:lang="en">Limit cycle</rdfs:label> @@ -48776,13 +50914,15 @@ to a task-appropriate range (e.g. omega in Hz). <rdfs:label xml:lang="en">Quiescent</rdfs:label> </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/SaddleNode"> - <rdfs:label xml:lang="en">Saddle-node</rdfs:label> + <skos:altLabel>saddle-node</skos:altLabel> + <skos:altLabel>sn</skos:altLabel> </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/StrangeAttractor"> <rdfs:label xml:lang="en">Strange attractor</rdfs:label> </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/SupercriticalHopf"> <rdfs:label xml:lang="en">Supercritical Hopf</rdfs:label> + <skos:altLabel>supercritical hopf</skos:altLabel> </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/Torus"> <rdfs:label xml:lang="en">Torus</rdfs:label> @@ -48793,6 +50933,12 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>accelerator</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/account"> + <rdfs:label>account (slot)</rdfs:label> + <skos:definition>Accounting allocation to charge the tasks against (Slurm).</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>account</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/acronym"> <rdfs:label>acronym (slot)</rdfs:label> <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> @@ -48875,6 +51021,12 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>connectivity_ref</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/container"> + <rdfs:label>container (slot)</rdfs:label> + <skos:definition>Container image wrapping each task (Apptainer/Singularity/Docker reference); tasks run as ``<runtime> exec <image> …``.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>container</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/curvature"> <rdfs:label>curvature (slot)</rdfs:label> <skos:definition>Optional path to per-vertex curvature (N,) float. Default convention: ``mesh/curvature``.</skos:definition> @@ -48920,6 +51072,12 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>derived_from</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/desc"> + <rdfs:label>desc (slot)</rdfs:label> + <skos:definition>BIDS desc- entity (e.g., FCavg, SC), for disambiguating derived data variants</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>desc</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/description"> <rdfs:label>description (slot)</rdfs:label> <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> @@ -48954,6 +51112,12 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>equation_type</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/executor"> + <rdfs:label>executor (slot)</rdfs:label> + <skos:definition>Executor to run the pipeline through (Nextflow process.executor).</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>executor</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/experiment_yaml_hash"> <rdfs:label>experiment_yaml_hash (slot)</rdfs:label> <skos:definition>SHA-256 hex digest of the normalised experiment YAML that produced this artifact. Used by the cross-experiment cache (see :class:`SimulationStudy.from_file`) to detect when a cached upstream result has gone stale because the experiment's spec was edited. Computed as ``hashlib.sha256(yaml.safe_dump(normalized_yaml).encode()).hexdigest()`` over the fully resolved (post-``!include``) experiment block.</skos:definition> @@ -48977,6 +51141,12 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>geometry</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/gres"> + <rdfs:label>gres (slot)</rdfs:label> + <skos:definition>Generic scheduler resources, e.g. 'gpu:1' (Slurm --gres).</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>gres</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/groups"> <rdfs:label>groups (slot)</rdfs:label> <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> @@ -49051,6 +51221,18 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>license</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/mail_type"> + <rdfs:label>mail_type (slot)</rdfs:label> + <skos:definition>Scheduler notification trigger (e.g. 'END,FAIL').</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>mail_type</skos:notation> + </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/mail_user"> + <rdfs:label>mail_user (slot)</rdfs:label> + <skos:definition>Notification email address.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>mail_user</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/measure"> <rdfs:label>measure (slot)</rdfs:label> <skos:definition>Selector into the source. When `source` points at a Network with per-node parameters (or a dscalar with multiple maps), picks which named measure to load. Aligns with names listed in Network.structural_measures / Network.observational_measures. Ignored when the source resolves to a scalar/array dataset.</skos:definition> @@ -49069,6 +51251,12 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>measures</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/mem"> + <rdfs:label>mem (slot)</rdfs:label> + <skos:definition>Memory per task in scheduler syntax (e.g. '16G').</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>mem</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/mesh_file"> <rdfs:label>mesh_file (slot)</rdfs:label> <skos:definition>Path to external mesh file (GIFTI, VTK, MSH, FreeSurfer, etc.).</skos:definition> @@ -49098,6 +51286,12 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>module</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/modules"> + <rdfs:label>modules (slot)</rdfs:label> + <skos:definition>Environment modules to load before running (module load …).</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>modules</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/name"> <rdfs:label>name (slot)</rdfs:label> <skos:definition>Globally unique identifier for the entity.</skos:definition> @@ -49139,6 +51333,12 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>on_region</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/out_dir"> + <rdfs:label>out_dir (slot)</rdfs:label> + <skos:definition>Output directory template. ``{study}`` and ``{experiment}`` are substituted with the study and experiment keys at emit time. Unset means ``out/{study}/{experiment}``.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>out_dir</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/outsym"> <rdfs:label>outsym (slot)</rdfs:label> <skos:definition>Output symbol names for the edge model. E.g. ['P'] for a scalar power flow, ['Fx', 'Fy'] for 2D forces. Maps directly to outsym in ND.jl EdgeModel. If not specified, derived from coupling variables of the connected vertex dynamics.</skos:definition> @@ -49157,6 +51357,12 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>parent_network</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/partition"> + <rdfs:label>partition (slot)</rdfs:label> + <skos:definition>Scheduler partition to submit to (Slurm).</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>partition</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/precision"> <rdfs:label>precision (slot)</rdfs:label> <skos:definition>Floating point precision: 'float32' or 'float64'</skos:definition> @@ -49186,6 +51392,12 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>quantity_kind</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/queue"> + <rdfs:label>queue (slot)</rdfs:label> + <skos:definition>Scheduler queue for the executor (Nextflow process.queue).</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>queue</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/reconstruction"> <rdfs:label>reconstruction (slot)</rdfs:label> <skos:definition>BIDS rec- entity (e.g., dTOR)</skos:definition> @@ -49195,7 +51407,7 @@ to a task-appropriate range (e.g. omega in Hz). <rdf:Description rdf:about="https://w3id.org/tvbo/record"> <rdfs:label>record (slot)</rdfs:label> <skos:definition>Names of observations to compute and record at EACH grid point, stacked over the sweep into one array per name. Entries may be derived observations (e.g. `loss`) or `analysis` diagnostics (e.g. `ad_gradient`, `fd_gradient`, `lyapunov`) β€” this is how a sweep of the diagnostics themselves is declared, replacing any per-point Python driver. Complementary to `observable` (a single scalar reduction); when both are absent the full observation Bunch is recorded.</skos:definition> - <skos:definition>Whether to include this element in simulation output files. Applicable to state variables (default true), derived variables (default false), and network nodes (default true). Set false to suppress recording.</skos:definition> + <skos:definition>Whether to include this element in simulation output files. Applicable to state variables (default true), derived variables (default false), and network nodes (default true). On an observation it forces (true) or suppresses (false) persistence in the result; left unset, a terminal observation (one not consumed by another observation or a loss) is recorded and an intermediate one is not. Set false to suppress recording.</skos:definition> <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>record</skos:notation> </rdf:Description> @@ -49216,6 +51428,12 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>rhs</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/rng"> + <rdfs:label>rng (slot)</rdfs:label> + <skos:definition>Random-seed policy across shards. ``deterministic`` (the default when unset) derives each task's seed from its shard index so the fan-out is reproducible.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>rng</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/sampler"> <rdfs:label>sampler (slot)</rdfs:label> <skos:definition>MCMC sampler ('nuts'). Each backend maps its own way.</skos:definition> @@ -49246,6 +51464,12 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>session_id</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/setup"> + <rdfs:label>setup (slot)</rdfs:label> + <skos:definition>Shell lines run verbatim before the task command, after ``set -euo pipefail`` and any module/venv activation. The general hook for environment setup the typed fields do not cover, e.g. activating a conda env (``conda activate <name>``), sourcing a profile, or exporting a computed path. Ordered; each line is emitted as-is.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>setup</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/source"> <rdfs:label>source (slot)</rdfs:label> <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> @@ -49293,6 +51517,12 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>subjects</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/suffix"> + <rdfs:label>suffix (slot)</rdfs:label> + <skos:definition>BIDS suffix (e.g., relmat), the trailing name component before the extension</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>suffix</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/symbol"> <rdfs:label>symbol (slot)</rdfs:label> <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> @@ -49381,6 +51611,18 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>value</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/vectorize"> + <rdfs:label>vectorize (slot)</rdfs:label> + <skos:definition>Axis names or parameters to pack into a single vectorized backend call. It is an error to name an axis the backend cannot batch.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>vectorize</skos:notation> + </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/venv"> + <rdfs:label>venv (slot)</rdfs:label> + <skos:definition>Path to a virtual environment to activate before running.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>venv</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/vertices_field"> <rdfs:label>vertices_field (slot)</rdfs:label> <skos:definition>When the mesh is inlined on a Network, the dotted path inside the parent's h5 to vertex coordinates. Default: ``nodes/coordinates``.</skos:definition> diff --git a/pyproject.toml b/pyproject.toml index f201dc488..5e52079e4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,6 +28,7 @@ dependencies = [ # explicitly because we import it directly. "jsonschema>=4.0.0", "h5py>=3.12.1", + "h5netcdf>=1.3", # Ontologies "owlready2>=0.47", @@ -166,8 +167,10 @@ artifacts = [ ] exclude = [ "tvbo/database/networks/*.h5", - "tvbo/data/tvbo_data/atlas/**/*.nii.gz", - "tvbo/data/tvbo_data/atlas/**/*.yaml", + # Atlases live under tvbo/database/atlases (consolidated). Volumes + parcellation + # yamls stay out of the wheel (size); shipped/used from source as before. + "tvbo/database/atlases/**/*.nii.gz", + "tvbo/database/atlases/**/*.yaml", "tvbo/data/go-basic.obo", "tvbo/data/ontology/_tvb-o.owl", "tvbo/data/NeuroMMSig_abeta_subgraph.dill", diff --git a/schema/figure.yaml b/schema/figure.yaml new file mode 100644 index 000000000..a2694d640 --- /dev/null +++ b/schema/figure.yaml @@ -0,0 +1,242 @@ +id: https://w3id.org/tvbo/figure +name: figure +title: TVB-O Figure Spec (DRAFT) +description: "Declarative, backend-independent specification of a publication figure rendered from TVBO result containers. A Figure is a mosaic of Panels; grammar panels (cartesian/heatmap) bind container fields to visual channels via mark + encoding, while custom and image panels are peer escape-hatch kinds. Data binding (Layer.used) doubles as the PROV provenance edge. It reuses shared slots/classes (name, description, label, iri, Provenance, Argument); those resolve in the merged schema because this file is generated only as part of tvbo_datamodel.yaml, which imports it (so it does not import tvbo_datamodel back, avoiding a cycle). Design write-up: dev/figure-spec-design.md." + +prefixes: + linkml: https://w3id.org/linkml/ + tvbo: https://w3id.org/tvbo/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + +default_prefix: tvbo + +imports: + - linkml:types + - common + +# ---------------------------------------------------------------------------- enums + +enums: + + PanelKind: + description: "What a panel draws. cartesian/heatmap are grammar-driven (mark + encoding); image (external file) and custom (registered callable) are peer escape-hatch kinds. New kinds (surface, network) are added when their bsplot leaf exists." + permissible_values: + cartesian: {description: "Line/scatter/rule/band marks in a 2-D cartesian frame."} + heatmap: {description: "A 2-D array field drawn as pcolormesh/imshow."} + image: {description: "An external raster/vector file placed in the grid cell."} + custom: {description: "A registered callable fn(container, ax, **opts)."} + + MarkType: + description: "The cartesian primitive a grammar layer draws (heatmap is implied by a heatmap panel, not a mark)." + permissible_values: + line: {description: "Connected line (timeseries, bifurcation branch, trajectory)."} + scatter: {description: "Points (fixed points, special points, per-node profiles)."} + rule: {description: "Reference line / span (threshold, stimulus window, vline)."} + band: {description: "Filled band between two series (error/CI)."} + + Corner: + description: "A named corner for placing a panel number inside its axes β€” the four corners bsplot's add_panel_number anchors to. An enum so a typo is a validation error, not a silent fallback to the default corner." + permissible_values: + "upper left": {description: "Top-left inside the axes (the bsplot default)."} + "upper right": {description: "Top-right (many journals; Taher Fig 5)."} + "lower left": {description: "Bottom-left."} + "lower right": {description: "Bottom-right."} + +# -------------------------------------------------------------------------- classes + +classes: + + Figure: + class_uri: schema:ImageObject + description: "A publication figure, a mosaic of panels rendered from result containers. Reuses name (identifier) and description (caption)." + slots: + - name + - description + - provenance + attributes: + layout: + range: string + description: "bsplot mosaic string; letters = panel keys, slash (or newline) = new row, repeated letters span cells, dot = empty. e.g. aab/ccb." + style: + range: string + multivalued: true + description: "Passed to bsplot.style.use, style names and/or .mplstyle paths, layered left to right. Owns figure sizing/DPI." + format: + range: string + description: "Output format (pdf/svg/png). Unset defers to the renderer default." + width: + range: float + description: "Figure width in mm (physical print size). Font size is in points and independent of this, so a smaller figure makes text relatively larger." + height: + range: float + description: "Figure height in mm (physical print size)." + dpi: + range: integer + description: "Raster resolution (dots per inch); scales pixel output only, not the physical size or the font size." + trim_margins: + range: boolean + description: "Trim surrounding whitespace from the saved figure (default true). Trimming re-crops to the drawn content, so the saved aspect can differ from width/height; set false to preserve the declared widthΓ—height proportions exactly, e.g. to match an original figure. Renders as bbox_inches='tight' on a matplotlib backend." + font_size: + range: float + description: "Base font size in points (physical: 1 pt = 1/72 inch). The real text size, unchanged by figure size or dpi; set it (or the width) so labels are legible at print size." + auto_format: + range: boolean + description: "Apply bsplot's format_fig (tick/label normalisation + panel numbers). Set false to keep full manual control, e.g. when a study's own .mplstyle already defines the look." + panel_numbers: + range: boolean + description: "Draw automatic panel letters (a, b, ...). Independent of auto_format so a study can keep its own tick styling and still get numbered panels." + panel_number_format: + range: string + description: "Python format string applied to each panel letter: '{}' -> 'a', '({})' -> '(a)', '{}.' -> 'a.'. Defaults to '{}'. Match the target journal's convention." + panel_number_loc: + range: Corner + description: "Which corner the panel letter sits in. Unset keeps bsplot's own default placement; many journals (and Taher Fig 5) use 'upper right'." + height_ratios: + range: float + multivalued: true + description: "Relative heights of the mosaic rows, e.g. [1.15, 1, 1, 1] to make the top panel taller. Length = number of rows." + width_ratios: + range: float + multivalued: true + description: "Relative widths of the mosaic columns." + spines: + range: string + description: "Axes spine style: 'box' (all 4 spines, closed boxes β€” e.g. Taher) or 'open' (left+bottom only). Unset defers to the active style. Pair 'box' with auto_format: false β€” bsplot's format_fig otherwise detaches and trims spines (the open 'nature' look)." + workflow_overrides: + range: WorkflowConfig + inlined: true + description: "Per-figure HPC/workflow resource refinement (reuses WorkflowConfig, same pattern as SimulationExperiment.workflow_overrides); lets a heavy render request its own resources when figures are emitted as workflow jobs. The figure's Layer.used edges become the render rule's input dependencies." + code_modules: + range: string + multivalued: true + description: "Importable module names whose import registers this figure's custom panels / transforms (via bsplot.register_panel / register_transform). The emitted plot.py imports them, so a study ships its bespoke figure code in its code_source instead of in core tvbo. The modules must be importable when the figure renders (loading the study puts its code/ dir on the path)." + panels: + range: Panel + multivalued: true + inlined: true + description: "Panels keyed by their mosaic label." + + Panel: + description: "One cell of the figure. kind selects grammar (cartesian/heatmap) vs escape-hatch (image/custom); every kind shares the label, placeholder, legend and annotation machinery. Reuses label (human title)." + slots: + - label + attributes: + panel_key: + key: true + range: string + annotations: + collection_key: true + description: "Mosaic label this panel binds to (matches a letter in Figure.layout)." + kind: + range: PanelKind + required: true + number_loc: + range: Corner + description: "Per-panel override of the figure's panel_number_loc β€” e.g. wide top panels upper-right, grid panels upper-left." + placeholder: + range: string + description: "Honest-placeholder text drawn when this panel's data is missing or degenerate (never a source-replot). Setting it wraps the draw so a missing container falls back to this label instead of erroring." + layers: + range: Layer + multivalued: true + inlined: true + inlined_as_list: true + description: "Marks sharing this panel's axes (overlay). Grammar kinds only." + legend: + range: boolean + description: "Show a legend for this panel." + path: + range: string + description: "External image file (image kind)." + render: + range: string + description: "Name of a registered custom-panel callable fn(container, ax, **opts) (custom kind)." + opts: + range: Argument + multivalued: true + inlined: true + description: "Keyword options for the custom callable (reuses Argument; typed values)." + annotations: + range: Annotation + multivalued: true + inlined: true + inlined_as_list: true + description: "Positioned text labels drawn on the panel (e.g. 'Kβ‰ˆ272') β€” a declarative alternative to a custom callable." + + Layer: + description: "One mark bound to one data reference, with its encoding." + attributes: + used: + range: DataRef + inlined: true + slot_uri: prov:used + required: true + transform: + range: string + description: "Optional presentation-only reduction. Prefer declaring an Observation upstream; else name a declarative postprocessing (tvbo schema) or a registered callable fn(da)->da." + mark: + range: MarkType + description: "Cartesian mark; omitted for heatmap panels (implied by the panel kind)." + encoding: + range: Encoding + inlined: true + style: + range: Style + inlined: true + + DataRef: + class_uri: prov:Entity + description: "A pointer to a result-container field (a PROV entity used by a layer). Reuses the shared iri slot as the experiment/result/dataset pointer." + slots: + - iri + attributes: + output: + range: string + description: "Recorded state var OR observation__<name> OR external variable in the container at iri." + sel: + range: Argument + multivalued: true + inlined: true + description: "Label-based selector (xarray .sel), keyed by dim (reuses Argument; name = dim, value = coordinate label). Never positional." + + Encoding: + description: "Map visual channels to container dims/coords/vars, by NAME (keyed, never positional). Common case: {x: time, y: rate}. A channel may later accept a scale object without breaking this string form." + attributes: + x: {range: string} + y: {range: string} + color: {range: string} + detail: {range: string, description: "Non-visual grouping dim (e.g. the hue/iterate dim)."} + + Annotation: + description: "A positioned text label on a panel, in axes-fraction coordinates." + attributes: + text: + range: string + required: true + x: + range: float + description: "x in axes fraction (0 = left, 1 = right); defaults to 0.5." + y: + range: float + description: "y in axes fraction (0 = bottom, 1 = top); defaults to 0.95." + loc: + range: string + description: "Named corner ('upper right', 'upper left', 'center', ...) as an alternative to x/y." + + Style: + description: "Layer/panel styling, portable intent plus a namespaced backend passthrough. Reuses Argument for the passthrough (matplotlib implicit in the MVP)." + attributes: + color: + range: string + description: "Semantic colour or palette name." + colormap: + range: string + description: "Named colormap (routed through the cmap resolver)." + opacity: + range: float + opts: + range: Argument + multivalued: true + inlined: true + description: "Raw backend passthrough (e.g. linewidth, linestyle); matplotlib implicit until a second backend lands." diff --git a/schema/openMINDS_tvbo/schemas/distributionConfig.schema.tpl.json b/schema/openMINDS_tvbo/schemas/distributionConfig.schema.tpl.json new file mode 100644 index 000000000..96c992fd8 --- /dev/null +++ b/schema/openMINDS_tvbo/schemas/distributionConfig.schema.tpl.json @@ -0,0 +1,27 @@ +{ + "_type": "tvbo:DistributionConfig", + "properties": { + "by": { + "type": "string" + }, + "vectorize": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "workflow": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "chunk": { + "type": "integer" + } + } +} diff --git a/schema/openMINDS_tvbo/schemas/environmentVariable.schema.tpl.json b/schema/openMINDS_tvbo/schemas/environmentVariable.schema.tpl.json new file mode 100644 index 000000000..68f029fb3 --- /dev/null +++ b/schema/openMINDS_tvbo/schemas/environmentVariable.schema.tpl.json @@ -0,0 +1,15 @@ +{ + "_type": "tvbo:EnvironmentVariable", + "required": [ + "name", + "value" + ], + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + } +} diff --git a/schema/openMINDS_tvbo/schemas/exploration.schema.tpl.json b/schema/openMINDS_tvbo/schemas/exploration.schema.tpl.json index b85ca28e3..7d4f7f5ed 100644 --- a/schema/openMINDS_tvbo/schemas/exploration.schema.tpl.json +++ b/schema/openMINDS_tvbo/schemas/exploration.schema.tpl.json @@ -81,6 +81,12 @@ }, "parallel_batch_size": { "type": "integer" + }, + "sweep_seeding": { + "type": "string" + }, + "sweep_direction": { + "type": "string" } } } diff --git a/schema/openMINDS_tvbo/schemas/explorationAxis.schema.tpl.json b/schema/openMINDS_tvbo/schemas/explorationAxis.schema.tpl.json index 099ad34bd..b483e350c 100644 --- a/schema/openMINDS_tvbo/schemas/explorationAxis.schema.tpl.json +++ b/schema/openMINDS_tvbo/schemas/explorationAxis.schema.tpl.json @@ -37,6 +37,11 @@ "minItems": 1, "uniqueItems": true }, + "builder": { + "_embeddedTypes": [ + "tvbo:FunctionCall" + ] + }, "unit": { "type": "string" } diff --git a/schema/openMINDS_tvbo/schemas/integrator.schema.tpl.json b/schema/openMINDS_tvbo/schemas/integrator.schema.tpl.json index cf4f06540..262d45731 100644 --- a/schema/openMINDS_tvbo/schemas/integrator.schema.tpl.json +++ b/schema/openMINDS_tvbo/schemas/integrator.schema.tpl.json @@ -72,6 +72,9 @@ "_embeddedTypes": [ "tvbo:Differentiation" ] + }, + "coupling_evaluation": { + "type": "string" } } } diff --git a/schema/openMINDS_tvbo/schemas/simulationExperiment.schema.tpl.json b/schema/openMINDS_tvbo/schemas/simulationExperiment.schema.tpl.json index 199de0212..0bf953b91 100644 --- a/schema/openMINDS_tvbo/schemas/simulationExperiment.schema.tpl.json +++ b/schema/openMINDS_tvbo/schemas/simulationExperiment.schema.tpl.json @@ -147,6 +147,11 @@ }, "dataset": { "type": "string" + }, + "workflow": { + "_embeddedTypes": [ + "tvbo:WorkflowConfig" + ] } } } diff --git a/schema/openMINDS_tvbo/schemas/simulationStudy.schema.tpl.json b/schema/openMINDS_tvbo/schemas/simulationStudy.schema.tpl.json index d18bc888c..d18e4a242 100644 --- a/schema/openMINDS_tvbo/schemas/simulationStudy.schema.tpl.json +++ b/schema/openMINDS_tvbo/schemas/simulationStudy.schema.tpl.json @@ -31,6 +31,11 @@ "tvbo:Sample" ] }, + "workflow": { + "_embeddedTypes": [ + "tvbo:WorkflowConfig" + ] + }, "simulation_experiments": { "_embeddedTypes": [ "tvbo:SimulationExperiment" diff --git a/schema/openMINDS_tvbo/schemas/workflowConfig.schema.tpl.json b/schema/openMINDS_tvbo/schemas/workflowConfig.schema.tpl.json new file mode 100644 index 000000000..c7bfc1ff4 --- /dev/null +++ b/schema/openMINDS_tvbo/schemas/workflowConfig.schema.tpl.json @@ -0,0 +1,51 @@ +{ + "_type": "tvbo:WorkflowConfig", + "properties": { + "out_dir": { + "type": "string" + }, + "container": { + "type": "string" + }, + "retries": { + "type": "integer" + }, + "rng": { + "type": "string" + }, + "provenance": { + "type": "boolean" + }, + "chunk": { + "type": "integer" + }, + "distribute": { + "_embeddedTypes": [ + "tvbo:DistributionConfig" + ] + }, + "requirements": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "slurm": { + "_embeddedTypes": [ + "tvbo:WorkflowEngineConfig" + ] + }, + "snakemake": { + "_embeddedTypes": [ + "tvbo:WorkflowEngineConfig" + ] + }, + "nextflow": { + "_embeddedTypes": [ + "tvbo:WorkflowEngineConfig" + ] + } + } +} diff --git a/schema/openMINDS_tvbo/schemas/workflowEngineConfig.schema.tpl.json b/schema/openMINDS_tvbo/schemas/workflowEngineConfig.schema.tpl.json new file mode 100644 index 000000000..26c7106ef --- /dev/null +++ b/schema/openMINDS_tvbo/schemas/workflowEngineConfig.schema.tpl.json @@ -0,0 +1,54 @@ +{ + "_type": "tvbo:WorkflowEngineConfig", + "properties": { + "cpus_per_task": { + "type": "integer" + }, + "mem": { + "type": "string" + }, + "time": { + "type": "string" + }, + "gres": { + "type": "string" + }, + "partition": { + "type": "string" + }, + "account": { + "type": "string" + }, + "cores": { + "type": "integer" + }, + "modules": { + "type": "array", + "minItems": 1, + "uniqueItems": true, + "items": { + "type": "string" + } + }, + "venv": { + "type": "string" + }, + "mail_type": { + "type": "string" + }, + "mail_user": { + "type": "string" + }, + "array_chunk": { + "type": "integer" + }, + "env": { + "_embeddedTypes": [ + "tvbo:EnvironmentVariable" + ], + "type": "array", + "minItems": 1, + "uniqueItems": true + } + } +} diff --git a/schema/tvbo_datamodel.yaml b/schema/tvbo_datamodel.yaml index 31bf84722..7d25e60a0 100644 --- a/schema/tvbo_datamodel.yaml +++ b/schema/tvbo_datamodel.yaml @@ -35,6 +35,7 @@ imports: - tvbo_study - tvb_dbs - software + - figure default_prefix: tvbo default_range: string @@ -139,22 +140,32 @@ slots: where available. derived_from: slot_uri: prov:wasDerivedFrom + provenance: + range: Provenance + inlined: true + # Defined once and shared: LinkML maps every slot of a given name onto one + # property, so per-class copies would merge into a bare `tvbo:provenance` and + # drop their annotations. Close, not exact: `prov:wasGeneratedBy` relates an + # entity to the prov:Activity that generated it, whereas this points at a + # record *describing* that generation. + close_mappings: + - prov:wasGeneratedBy + description: >- + W3C PROV-O aligned provenance for this entity β€” what it was derived + from, which agent produced it, and when. source: slot_uri: dcterms:source range: string - dataset_path: - range: string - description: >- - Dataset path for array-valued parameters. When set, - the parameter value is stored in the binary companion file - (HDF5 or Zarr) at this path. The value slot is omitted. record: range: boolean description: >- Whether to include this element in simulation output files. Applicable to state variables (default true), derived variables (default false), and network nodes (default true). - Set false to suppress recording. + On an observation it forces (true) or suppresses (false) + persistence in the result; left unset, a terminal observation + (one not consumed by another observation or a loss) is recorded + and an intermediate one is not. Set false to suppress recording. enums: AlgorithmCompositionMode: @@ -196,8 +207,40 @@ enums: lax_map: description: "Sequential execution via jax.lax.map. Slower; bounded memory." pmap: - description: "Cross-device parallel execution (jax.pmap). For multi-GPU/TPU." + description: >- + Parallel execution across the local devices of a single node + (jax.pmap over the several GPUs/TPUs visible to that task). + Intra-task only β€” it never spans nodes; inter-node parallelism + is scheduler fan-out (DistributionConfig.chunk), not pmap. On a + one-GPU (or CPU) task this degenerates to vmap. + CouplingStageEvaluation: + description: >- + How the network coupling term is evaluated within one step of a + multi-stage integrator (Heun, RK4, ...). A backend-neutral numerical + contract: whether the coupling is part of the vector field, re-evaluated + at each solver stage, or computed once per step and held constant across + the stages. Matters because the two choices integrate a different + effective system β€” for stiff / chaotic / multistable dynamics they can + converge to different trajectories or attractors. + permissible_values: + per_stage: + description: >- + Re-evaluate the coupling at every integrator stage β€” the coupling + is a full part of the vector field (standard ODE integration). + Accurate; required to reproduce reference integrators for stiff / + chaotic / multistable systems. (tvboptim maps this to + recompute_coupling_per_stage=True; diffrax already recomputes the + whole RHS per stage.) + per_step: + description: >- + Evaluate the coupling once per integration step and hold it + constant across the stages β€” a TVB-style efficiency shortcut + (the coupling reduction runs once per step). Faster but lower- + order in the coupling; can change the trajectory for sensitive + systems. (tvboptim: recompute_coupling_per_stage=False, the + current backend default.) + WorkflowDistributeBy: description: >- Default tier a sweep axis is placed on when it is not named explicitly @@ -213,6 +256,20 @@ enums: workflow: description: "Fan out all otherwise-unassigned axes as scheduler tasks." + NodeReconciliation: + description: >- + Strategy for aligning a dataset-sourced empirical target's nodes to the + model network before comparison. Keyed alignment is the default so a + differing node count or ordering (e.g. a 998-parcel empirical FC against a + 1000-parcel model) cannot silently misalign the comparison. + permissible_values: + by_label: + description: >- + Restrict both sides to their shared node labels by name (keyed + ``.sel``), preserving the model network's order. Never positional. + none: + description: "No reconciliation; the node sets are assumed identical." + ImagingModality: permissible_values: BOLD: @@ -331,10 +388,26 @@ enums: description: "How to aggregate time series data" permissible_values: mean: { description: "Average over time" } + median: { description: "Median over time (per node). Robust to phase-slip / outlier samples that bias the mean. For an Observation.dynamics observer this is computed streaming: a per-node histogram (bins from the observation's `histogram` slot) is folded into the integrator carry and the 0.5 quantile is read at finalize, so no trajectory is held." } + variance: { description: "Variance over time (per node)" } + std: { description: "Standard deviation over time (per node)" } + first_passage: { description: "First-passage time index (per node): the first sample at which the source crosses the observation's `threshold` parameter (>=), or the sample count if it never crosses. Backend-independent (argmax of the threshold-crossing). Multiply by the sampling step for a time." } last: { description: "Last value in window" } first: { description: "First value in window" } window: { description: "Sliding window aggregation" } none: { description: "No aggregation" } + AxisReductionStatistic: + description: >- + Statistic used to collapse an exploration/sweep axis into a single + reduced value in the result container (see ExplorationAxis.reduce). + Applied across the named grid dimension of every observation that + carries it. + permissible_values: + mean: { description: "Arithmetic mean across the axis." } + sum: { description: "Sum across the axis." } + std: { description: "Standard deviation across the axis." } + sem: { description: "Standard error of the mean: std across the axis divided by sqrt(n)." } + median: { description: "Median across the axis." } EventType: description: "Type of event triggering mechanism." permissible_values: @@ -450,6 +523,21 @@ enums: description: "Use the model's default initial values directly." from_branch: description: "Start from a point on a previously computed branch." + from_working_point: + description: >- + Ramp a parameter quasi-statically (warm-start / from_previous) + to a target value (see InitialState.ramp) and start from the + endpoint state β€” reach a working point on the solution branch + before the run. + from_experiment: + description: >- + Seed from the settled endpoint state of another already-run + experiment in the study (referenced by + InitialState.source_experiment). Reuses a working point that + experiment already reached instead of recomputing it β€” the + cross-experiment counterpart of from_working_point (which + recomputes the ramp inline). source_point selects which settled + point of the source run (default 'endpoint'). SparseFormat: permissible_values: @@ -460,6 +548,85 @@ enums: coo: description: "Coordinate list (data, row, col)" + GraphRepresentation: + description: >- + How a Network's connectivity is represented when evaluating coupling. + This is a backend-independent performance contract, not a numerical + one: both representations compute the same coupling, but a sparse + representation sums over the existing edges (cost scales with the + number of edges) while a dense representation operates on the full + adjacency (cost scales with nodes-squared). A backend maps the choice + onto its own primitives (edge gather / segment-sum vs matrix product). + Orthogonal to whether the coupling reads *delayed* states β€” that is + decided per coupling by its conduction delay β€” so the two dimensions + together yield the four backend graph kinds: dense/sparse Γ— + instantaneous/delayed. + permissible_values: + auto: + description: >- + Select by connection density: use the sparse representation + when the adjacency is sparse enough that edge-wise evaluation + is cheaper than the dense product, dense otherwise. Default. + Lets the backend apply its own crossover without the recipe + hard-coding a data structure. + dense: + description: >- + Force the dense-adjacency representation. Preferred for densely + connected or small networks, where dense linear algebra's + constant-factor efficiency outweighs its nodes-squared scaling. + sparse: + description: >- + Force the edge-list (sparse) representation. Preferred for + large, sparsely connected networks (structural connectomes, + power grids) where coupling cost then scales with the number + of edges rather than nodes-squared. + + SweepSeeding: + description: >- + How each point of a parameter sweep (Exploration) obtains its initial + state. Determines whether the sweep points are independent (and + therefore parallelisable) or whether the trajectory follows a + solution branch as the swept parameter is changed quasi-statically. + The latter is forward-time-integration branch following β€” distinct + from numerical continuation of equilibria (the Continuation class), + which tracks branches with a Newton corrector rather than by + simulation. + permissible_values: + independent: + description: >- + Each point is initialised independently from the model's + initial values (a cold start), so points are order-independent + and may be evaluated in parallel (see parallel_mode). Default; + today's behaviour. + from_previous: + description: >- + Each point is seeded from the final state of the preceding + point, so the trajectory follows the solution branch as the + swept parameter changes quasi-statically. Forces sequential, + order-dependent execution (emitted as a scan, not a vmap). + Used to reach a working point by slowly ramping a parameter + (e.g. global coupling) and, with sweep_direction, to expose + hysteresis / multistability. Sweep-granularity analogue of + InitialStateMethod.from_branch. + + SweepDirection: + description: >- + Order in which a branch-following sweep (SweepSeeding.from_previous) + traverses its axis. Ignored for independent seeding, where order is + irrelevant. + permissible_values: + up: + description: "Increase the parameter monotonically (low to high), once." + down: + description: "Decrease the parameter monotonically (high to low), once." + bidirectional: + description: >- + Increase then decrease over the same values, recording both + branches. Where the two branches differ, the sweep traces a + hysteresis loop that exposes coexisting stable states + (bistability / multistability). The multivalued generalisation + of Continuation.bothside. + classes: ScalarValue: class_uri: linkml:Any @@ -511,6 +678,23 @@ classes: parameter (e.g., element: 0 for node 0). Required when used in element_domains to avoid ambiguous positional indexing. + AxisReduction: + class_uri: tvbo:AxisReduction + description: >- + Marks an exploration/sweep axis to be collapsed by a statistic in + the result container. When set on an ExplorationAxis, that axis's + named grid dimension is reduced across every observation that carries + it (e.g. an `execution.random_seed` trial ensemble becomes a + first-class reduced observation). Backend-independent: states the + reduction intent; the result layer applies it by dimension name. + attributes: + statistic: + range: AxisReductionStatistic + ifabsent: "string(mean)" + description: >- + Statistic used to collapse the axis (mean, sum, std, sem, + median). Defaults to mean. + Equation: class_uri: tvbo:Equation slots: @@ -838,7 +1022,11 @@ classes: range: string generated_by: range: string - description: "Software/agent identifier (prov:wasGeneratedBy)" + # An agent identifier, so the PROV relation is attribution, not generation: + # `prov:wasGeneratedBy` ranges over a prov:Activity, never a prov:Agent. + close_mappings: + - prov:wasAttributedTo + description: "Software/agent identifier: the prov:Agent this artifact is attributed to." experiment_yaml_hash: range: string description: >- @@ -915,6 +1103,7 @@ classes: slots: - label - description + - provenance attributes: dataset_id: range: string @@ -964,10 +1153,6 @@ classes: cohort: range: string description: "Cohort label (e.g. 'HCPYA', 'PPMI')." - provenance: - range: Provenance - inlined: true - description: "W3C PROV-O metadata for the source of these scores." MeasureSpec: class_uri: tvbo:MeasureSpec @@ -1060,6 +1245,12 @@ classes: hemi: range: string description: "BIDS hemi- entity (L or R) for hemisphere-specific surface/volume data" + desc: + range: string + description: "BIDS desc- entity (e.g., FCavg, SC), for disambiguating derived data variants" + suffix: + range: string + description: "BIDS suffix (e.g., relmat), the trailing name component before the extension" Network: class_uri: tvbo:Network @@ -1073,6 +1264,7 @@ classes: - label - description - parameters + - provenance attributes: # New node/edge-based representation nodes: @@ -1101,6 +1293,17 @@ classes: range: Coupling description: "Reusable coupling configurations referenced by edges (e.g., 'instant', 'delayed', 'inhibitory')" inlined: true + graph_representation: + range: GraphRepresentation + ifabsent: string(auto) + description: >- + Representation used to evaluate coupling over this network's + connectivity (``auto`` | ``dense`` | ``sparse``). ``auto`` + lets the backend choose by connection density. This names + whether to exploit edge sparsity, not a concrete data + structure, so it is backend-independent; the + delayed-vs-instantaneous graph kind is decided separately from + the couplings' conduction delays. dynamics: multivalued: true range: Dynamics @@ -1202,10 +1405,6 @@ classes: multivalued: true description: "BEP017 measure names for observational targets (e.g., BoldCorrelation)" - provenance: - range: Provenance - inlined: true - description: "W3C PROV-O aligned provenance" parent_network: range: string description: >- @@ -1413,6 +1612,7 @@ classes: description: "A node in a network with its own dynamics and properties" slots: - label + - alternateName - description - parameters - record @@ -1595,11 +1795,26 @@ classes: - acronym - label - description + - iri - equation - parameters - environment - time_scale + - record + - unit + - references attributes: + # Helper functions this observation's pipeline calls by name (an HRF kernel, + # a downsampler, a fused strided convolution, …). Emitted as module-level defs + # and merged non-destructively into experiment.functions when the model is + # referenced by `iri` β€” the runtime already consumes them + # (tvbo.classes.observation.populate_observation_from_iri), the schema now + # declares them. Same shape as Dynamics.functions. + functions: + multivalued: true + range: Function + inlined: true + # Source specification - what this observation derives from. # Each entry is either a state-variable name/ref (raw observation # of an integrated trajectory) or another observation's name/ref @@ -1662,6 +1877,43 @@ classes: Load data from external source (file, database, API). When specified, this observation represents empirical/external data rather than simulated data. Enables unified treatment of all data. + query: + range: BidsEntities + inlined: true + description: >- + BIDS entity filter that selects one per-subject file under the + experiment's ``dataset.bids_root`` when ``source`` is dataset-sourced + (``dataset.subject.<measure>``). The active subject fills the ``sub-`` + entity at resolution time; the remaining entities (e.g. ``desc: FCavg, + atlas: Schaefer1000, suffix: relmat``) disambiguate among the subject's + several networks/measurements. The same filter enumerates the cohort + for the per-subject workflow fan-out, so one declaration drives both + discovery and resolution. + reconcile: + range: NodeReconciliation + ifabsent: "by_label" + description: >- + How a dataset-sourced target's nodes are aligned to the model + network before comparison. ``by_label`` selects the shared node + labels on both sides by name (keyed ``.sel``), never by position, so + a differing node count or order cannot silently misalign the + comparison. Matching is alias-aware: a target label matches a model + node when it equals that node's ``label`` or any of its + ``alternateName`` entries, so a differing nomenclature reconciles + without relabelling either side. ``none`` disables reconciliation + (identical node sets). + min_coverage: + range: float + minimum_value: 0.0 + maximum_value: 1.0 + description: >- + Minimum fraction of the model network's nodes that a ``by_label`` + reconciliation must cover, else resolution raises. The realised + coverage is always logged. Absent (``null``) means require full + coverage (``1.0``) for a dataset-sourced target β€” silently fitting on + a partial node subset must be an explicit opt-in (e.g. ``0.95`` to + tolerate a few genuinely-missing empirical parcels), never the + default. # Observable/aggregation attributes (for tuning algorithms) skip_t: @@ -1673,6 +1925,14 @@ classes: aggregation: range: AggregationType description: "How to aggregate over time" + histogram: + range: Range + inlined: true + description: >- + Bin spec (`lo`, `hi`, `n`) for a streaming order-statistic aggregation + (`aggregation: median`). Should span the expected value range of the + reduced per-step quantity; the quantile is linearly interpolated within + the crossing bin. Only used by the streaming-median reduction path. window_size: range: integer description: "Number of samples for windowed aggregation" @@ -1685,6 +1945,27 @@ classes: inlined_as_list: true range: FunctionCall + # Co-integrated auxiliary dynamics (an online reduction / monitor) + dynamics: + range: Dynamics + inlined: true + description: >- + Auxiliary state system co-integrated with the model to compute this + observation online, so the full trajectory need never be held. Its + state variables advance in step with the model, and the observation's + value is this Dynamics' ``output`` β€” read at the final step for a + reduction (e.g. effective frequency) or, when ``period`` is set, + sub-sampled over time for a monitor. Backends fold it into their own + integration so a batched parameter sweep carries only the accumulator, + not a per-cell trajectory. An alternative to the post-scan ``pipeline`` + / ``class_reference`` for observations expressible as a time recurrence. + Its ``parameters`` are the observer's named constants, bound by name in + every recurrence expression exactly as a model Dynamics' parameters are + β€” scalar or array-valued (``value`` a nested list, ``shape`` declaring + its extent), so a fixed operator the reduction consumes (a mesh gradient, + a template matrix) is declared as data on the observer rather than + hidden inside a backend callable. + # Direct class reference (alternative to pipeline) class_reference: description: >- @@ -1724,7 +2005,11 @@ classes: description: >- The analysis kind, e.g. 'gradient', 'finite_difference', 'lyapunov', 'bifurcation', 'identifiability', 'sensitivity'. - Extensible β€” backends dispatch on it. + A free string, not a closed enum, so backends can extend the + set; the backend-independent vocabulary (what each kind + computes) is defined as AnalysisObservable concepts in the + ontology (tvb-o-axioms Β§4.1d). Backends dispatch on it and + skip (with a comment, not a raise) when they have no equivalent. target: range: string description: >- @@ -1907,9 +2192,28 @@ classes: range: string ifabsent: "string(differential)" description: >- - Type of equation: 'differential' (default) means dx/dt = rhs, - 'algebraic' means 0 = rhs or x ~ rhs (DAE constraint). + How to interpret ``equation.rhs`` when advancing this state: + 'differential' (default) integrates it as ``dx/dt = rhs``; + 'algebraic' is a constraint ``0 = rhs`` / ``x ~ rhs`` (DAE); + 'recurrence' is a discrete per-step update ``x_next = rhs`` + (no integrator applied), used by an observation's auxiliary + ``dynamics`` for online reductions/accumulators (e.g. a running + sum ``x_next = x + f``) β€” the symbolic, backend-independent + sibling of the continuous 'differential' form. Algebraic equations are used by ModelingToolkit.jl backend. + evict_equation: + range: Equation + description: >- + Optional reverse recurrence for a **sliding-window** reduction: the + per-step downdate that removes the sample leaving the window, the + inverse of ``equation`` (which folds an arriving sample in). Only + meaningful when ``equation_type: recurrence`` on an observation's + auxiliary ``dynamics``. When present, the observer is a windowed + reduction β€” its state is maintained by ``equation`` (add) and + ``evict_equation`` (evict) and rebuilt exactly from the window on + resync β€” rather than a cumulative accumulator over the whole + trajectory (``equation`` alone). Absent for ordinary state variables + and cumulative reductions. equation_order: range: integer ifabsent: int(1) @@ -1989,7 +2293,6 @@ classes: - description - equation - unit - - dataset_path - grounding attributes: comment: @@ -2005,24 +2308,53 @@ classes: range: uriorcurie required: false description: >- - Data source for this parameter's value. When set, the - value is loaded from the referenced entity rather than - being a YAML literal. The referent is typically a Network - with per-node parameters (dscalar pattern) or a flat - dataset (HDF5, TSV). Combine with `measure:` when the - source exposes multiple named measures. Distinct from - the global `iri:` slot, which is reserved for ontology - grounding. + WHERE this parameter's value comes from β€” a curated entity's + IRI, or a path (resolved against the declaring spec's directory + when relative, as `Network.bids_dir` / `Network.data_file` are). + The referent is typically a Network with per-node parameters + (dscalar pattern) or a binary store (HDF5, Zarr, TSV). Combine + with `measure:` to pick one array out of a source that holds + several. A sourced value is never inlined into generated code: + it is resolved lazily and the backend reads it from storage, so + an array of any size costs nothing in the spec or the emitted + module. Mutually exclusive with `value:` (a YAML literal, which + IS materialised) and with `producer:` (bytes that are computed + rather than read). Distinct from the global `iri:` slot, which + is reserved for ontology grounding. measure: range: string required: false description: >- - Selector into the source. When `source` points at a - Network with per-node parameters (or a dscalar with - multiple maps), picks which named measure to load. Aligns - with names listed in Network.structural_measures / - Network.observational_measures. Ignored when the source - resolves to a scalar/array dataset. + WHICH array to select out of `source`. The address space is the + source's own: a per-node measure name for a Network (aligning + with Network.structural_measures / observational_measures), a + dataset key for an HDF5/Zarr store, a recorded measure for an + experiment result. Omit when the source resolves to a single + array. + producer: + range: FunctionCall + inlined: true + required: false + # PROV-O: *prospective* provenance β€” the plan, not the run. Strictly the + # value `prov:wasGeneratedBy` an `prov:Activity` that `prov:hadPlan` this + # FunctionCall; naming the plan directly collapses that Activity node, so + # this is a close (not exact) mapping and carries no OWL range obligation. + # The complementary *retrospective* record β€” which software ran, when, over + # which input hashes β€” is the `Provenance` class. + close_mappings: + - prov:wasGeneratedBy + description: >- + HOW to compute this parameter's value, when it is derived rather + than obtained β€” the callable that produces it, its arguments, and + (via `output:`) which entry to take from a callable returning + several named arrays. The callable resolves against the recipe's + `code_source`. Use instead of `source:` for a value that is a + deterministic function of the spec's own inputs (a mesh operator, + a template matrix): declaring the producer keeps the spec the + single source of truth, where pointing at a pre-built file would + let the two drift apart silently. The result is cached and + invalidated by the artifact fingerprint, so it is computed once + rather than per run. Mutually exclusive with `value:`/`source:`. free: range: boolean shape: @@ -2204,6 +2536,11 @@ classes: inlined: true FunctionCall: class_uri: tvbo:FunctionCall + # A FunctionCall is a specification of an invocation β€” what PROV-O calls a Plan + # (the prospective recipe an Activity follows when it runs). True of every use: + # a pipeline step, a loss, an observation's producer. + exact_mappings: + - prov:Plan description: >- Invocation of a function in a pipeline. Can reference a defined Function by name, OR inline a callable directly for external library functions, @@ -2336,6 +2673,15 @@ classes: multivalued: true range: Case inlined: true + surrogate: + range: Surrogate + inlined: true + description: >- + Optional permutation-significance test: this derived variable's value is the + exceedance p-value of a named statistic under permutations of a field (a + general surrogate null β€” any permutation test, not wave-specific β€” emitted as + a vmap-fold over the captured permutations; the wrapped statistic stays + symbolic). When set, the variable's own ``equation`` may be omitted. slots: - name - label @@ -2349,6 +2695,39 @@ classes: record: ifabsent: false + Surrogate: + class_uri: tvbo:Surrogate + description: >- + A permutation-significance test: re-evaluate a named statistic under n_perm fixed + permutations of a field and report the per-element exceedance p-value. General (any + permutation null β€” spatial nulls, FC significance, wave detection, …). Codegen emits + ``(vmap(lambda p: stat(field[p]))(perms) <cmp> stat(field)).mean(axis over perms)``; + the wrapped statistic is an ordinary symbolic derived variable, so only the + permutation fold is structural. + attributes: + statistic: + range: string + required: true + description: "Name of the derived variable to re-evaluate under permutation." + permute: + range: string + required: true + description: >- + The symbol whose entries are permuted (the observation source, or a + parameter such as an in-strength vector). + permutations: + range: string + required: true + description: >- + Name of the observer parameter holding the fixed ``(n_perm, n)`` permutation- + index array (a produced/sourced constant, reused across the window and grid). + direction: + range: string + ifabsent: string(greater_equal) + description: >- + Exceedance direction: ``greater_equal`` (fraction of permutations whose + statistic β‰₯ the observed) or ``less_equal`` (one-sided negative test). + Noise: class_uri: tvbo:Noise slots: @@ -2645,7 +3024,11 @@ classes: n_parallel: range: integer ifabsent: integer(1) - description: "Parallel evaluations" + description: >- + Parallel evaluations / batch size for parameter exploration. + Backends translate this into their own execution primitive + (e.g. tvboptim's vectorised chunk size) without exposing any + backend-specific names in the schema. n_trials: range: integer ifabsent: integer(1) @@ -2676,6 +3059,30 @@ classes: values amortise compile overhead across trials at the cost of memory. Ignored when parallel_mode is ``vmap`` (which always uses the full n_trials axis). + sweep_seeding: + range: SweepSeeding + ifabsent: string(independent) + description: >- + How each sweep point's initial state is obtained. + 'independent' (default) cold-starts every point from the + model's initial values, so points are order-independent and + may run in parallel (see parallel_mode). 'from_previous' seeds + each point from the final state of the preceding point, so the + trajectory follows the solution branch as the swept parameter + changes quasi-statically; this forces sequential execution (a + scan, not a vmap) and, with sweep_direction, exposes hysteresis + / multistability. It is forward-integration branch following, + not numerical continuation (cf. the Continuation class). + sweep_direction: + range: SweepDirection + ifabsent: string(up) + description: >- + Order in which a branch-following axis (sweep_seeding: + from_previous) is traversed: 'up' increases the parameter once, + 'down' decreases it once, 'bidirectional' increases then + decreases over the same values and records both branches β€” a + hysteresis loop where they differ. Ignored when sweep_seeding + is 'independent'. Applies to a single swept axis. ExplorationAxis: class_uri: tvbo:ExplorationAxis @@ -2735,9 +3142,34 @@ classes: Per-element sweep overrides for heterogeneous parameters (e.g. shape "(n_nodes,)"). When set, element_domains[i] replaces the shared domain for element i. + builder: + range: FunctionCall + inlined: true + description: >- + Callable that generates this axis's swept values, as an + alternative to domain / explored_values. Use when the points + cannot be written as a static list because each is an array + or depends on other results β€” e.g. per-count control-gain + vectors g whose entries are chosen from a runtime-computed + solitary-node ordering. The callable returns the stacked + sweep values (leading axis = sweep points); its `arguments` + may reference other observations by name. The value-supplying + analogue of graph_generator.builder, keeping computed sweeps + declarative rather than requiring a Python driver. unit: range: string description: "Optional axis unit (defaults to the referenced Parameter's unit)." + reduce: + range: AxisReduction + inlined: true + description: >- + Optional marker to collapse this axis by a statistic in the + result container instead of keeping it as a grid dimension. + Use for an ensemble axis (e.g. `execution.random_seed`, a + trial ensemble) so the reduced observation (mean/sem/…) + becomes first-class. The named grid dim is reduced across + every observation that carries it; observations without that + dim are left untouched. FreeParameter: class_uri: tvbo:FreeParameter @@ -3240,8 +3672,40 @@ classes: source_point: range: string description: >- - Which point on the source branch: 'endpoint', 'hopf:1', - 'fold:2', a step number, etc. + Which point of the source branch/run seeds this run: 'endpoint' + (default, the last recorded point), a step number, 'hopf:1', + 'fold:2', etc. β€” a single operating point. The special value + 'branch' instead selects the WHOLE recorded branch: every recorded + point becomes one cell of this experiment's exploration, seeded from + that point's swept-parameter value and settled state. That turns a + sequential branch (e.g. a from_previous warm-start scan) into an + independent, parallel per-point restart analysis β€” Lyapunov spectra, + Jacobian/Floquet eigenvalues, basin sampling, perturbation kicks, + first-passage β€” that shards across a cluster. The consuming + exploration declares one axis (the source's swept parameter) with no + domain; its values come from the branch, keeping the source run as the + single source of truth for which points exist. + source_experiment: + range: SimulationExperiment + description: >- + For method=from_experiment: the experiment whose settled + per-node endpoint state seeds this run (its operating point). + Referenced by identifier (id); the referenced run's saved final + state is loaded as this run's initial condition, with source_point + selecting which settled point (default 'endpoint'). Lets a + control/perturbation experiment start from a working point another + experiment already reached, without recomputing its warm-start ramp + β€” a declarative data dependency the workflow engine can order. + ramp: + range: ExplorationAxis + inlined: true + description: >- + For method=from_working_point: the parameter + domain to ramp + quasi-statically (warm-start, from_previous) to reach the working + point; the run then seeds from the ramp endpoint. Reuses + ExplorationAxis (parameter + Range domain) β€” the same primitive an + Exploration warm-start uses; the per-step settle comes from the + experiment's integration (transient, else duration). BranchSwitch: class_uri: tvbo:BranchSwitch @@ -3515,6 +3979,20 @@ classes: description: >- Backend-neutral strategy for propagating gradients through the temporal integration (e.g. truncated backprop-through-time). + coupling_evaluation: + range: CouplingStageEvaluation + ifabsent: string(per_step) + description: >- + Backend-neutral numerical treatment of the network coupling + term across the stages of a multi-stage integrator (Heun, RK4, + ...): re-evaluated at every stage (per_stage β€” standard ODE + accuracy) or computed once per step and held constant across + stages (per_step β€” a TVB-style efficiency shortcut). Single- + stage methods (Euler) and always-recompute solvers (diffrax) + ignore it. per_stage is required to match reference integrators + for stiff / chaotic / multistable systems, where the frozen- + coupling error can select a different trajectory or attractor. + See CouplingStageEvaluation. Differentiation: class_uri: tvbo:Differentiation @@ -3756,24 +4234,72 @@ classes: tasks (one workflow cell per value combination). chunk: range: integer - description: >- - Sharding granularity. For a fully vectorized sweep, the number of - scheduler shards to split the batched cells across (each task runs - ``1/chunk`` of the grid). For a fanned sweep, the number of - workflow cells packed into one task. Unset means one shard. + minimum_value: 1 + description: >- + Sharding granularity β€” the inter-task (inter-node) tier. For a + fully vectorized sweep, the number of independent scheduler + shards to split the batched cells across (each task runs + ``1/chunk`` of the grid on its own node). For a fanned sweep, + the number of workflow cells packed into one task. Unset means + one shard. This is orthogonal to the intra-task device tier + (Exploration.parallel_mode: vmap/lax_map/pmap): on CPU, where + nodes are plentiful, raise chunk to fan the grid across many + nodes; on GPU, where nodes are scarce, keep chunk=1 so one node + holds the whole grid and batches it on-device with vmap rather + than claiming many GPUs. + + EnvironmentVariable: + class_uri: tvbo:EnvironmentVariable + description: >- + One environment variable assignment exported before executing the + workflow task command. Use this for reproducible runtime knobs such + as XLA/OMP settings in emitted workflow artefacts. + attributes: + name: + range: string + identifier: true + required: true + description: "Environment variable name (e.g. XLA_FLAGS)." + value: + range: string + required: true + description: "Value exported for this variable." + + SchedulerDirective: + class_uri: tvbo:SchedulerDirective + description: >- + One engine-native scheduler directive passed through verbatim by the + engine's emitter (e.g. a Slurm ``#SBATCH --<name>=<value>`` line). The + open extension point of WorkflowEngineConfig: it carries any directive + the typed fields do not name, so a new scheduler flag needs no schema + change. + attributes: + name: + range: string + identifier: true + required: true + description: "Directive name without its flag prefix (e.g. 'qos', 'constraint')." + value: + range: string + required: true + description: "Directive value (e.g. 'normal')." WorkflowEngineConfig: class_uri: tvbo:WorkflowEngineConfig description: >- - Execution directives for one target workflow engine (Slurm, Snakemake, - Nextflow). Every field is optional; each engine renders the subset it - understands, so a single shape serves all three. Resource fields are - engine-agnostic; scheduler fields (partition, account, …) pass through - verbatim to the target scheduler. + Execution directives for a workflow engine. Every field is optional and + each engine's emitter consumes the subset it supports, so one block may + carry directives for more than one target. The generic resource fields + (cpus_per_task, mem, time) map across engines; the remaining fields are + named for the engine that reads them (Slurm: partition/account/gres/ + mail_*/array_chunk; Snakemake: cores; Nextflow: executor/queue). Any + directive not named here is passed through ``options`` verbatim, so the + block stays extensible without a schema change. attributes: cpus_per_task: range: integer - description: "CPU cores requested per task." + minimum_value: 1 + description: "CPU cores requested per task (Slurm --cpus-per-task)." mem: range: string description: "Memory per task in scheduler syntax (e.g. '16G')." @@ -3785,13 +4311,20 @@ classes: description: "Generic scheduler resources, e.g. 'gpu:1' (Slurm --gres)." partition: range: string - description: "Scheduler partition or queue to submit to." + description: "Scheduler partition to submit to (Slurm)." account: range: string - description: "Accounting allocation to charge the tasks against." + description: "Accounting allocation to charge the tasks against (Slurm)." cores: range: integer - description: "Total cores for local engines (e.g. Snakemake --cores)." + minimum_value: 1 + description: "Total cores for local engines (Snakemake --cores)." + executor: + range: string + description: "Executor to run the pipeline through (Nextflow process.executor)." + queue: + range: string + description: "Scheduler queue for the executor (Nextflow process.queue)." modules: multivalued: true range: string @@ -3799,6 +4332,16 @@ classes: venv: range: string description: "Path to a virtual environment to activate before running." + setup: + multivalued: true + range: string + description: >- + Shell lines run verbatim before the task command, after + ``set -euo pipefail`` and any module/venv activation. The general + hook for environment setup the typed fields do not cover, e.g. + activating a conda env (``conda activate <name>``), sourcing a + profile, or exporting a computed path. Ordered; each line is + emitted as-is. mail_type: range: string description: "Scheduler notification trigger (e.g. 'END,FAIL')." @@ -3807,9 +4350,30 @@ classes: description: "Notification email address." array_chunk: range: integer + minimum_value: 1 description: >- Overrides ``distribute.chunk`` for this engine only: the number of array-task shards to split the vectorized sweep across. + options: + multivalued: true + range: SchedulerDirective + inlined: true + inlined_as_list: true + description: >- + Additional engine-native scheduler directives passed through + verbatim, each in the target's native form: a Slurm ``#SBATCH + --<name>=<value>`` line, a Snakemake ``resources:`` entry, or a + Nextflow ``process.<name>`` assignment. The extension point for + any flag the typed fields do not cover. + env: + multivalued: true + range: EnvironmentVariable + inlined: true + inlined_as_list: true + description: >- + Environment variables exported before the task command on every + engine (e.g. XLA_PYTHON_CLIENT_PREALLOCATE=false). An ordered + list of {name, value}; values are shell-quoted at emit time. WorkflowConfig: class_uri: tvbo:WorkflowConfig @@ -3835,6 +4399,7 @@ classes: reference); tasks run as ``<runtime> exec <image> …``. retries: range: integer + minimum_value: 0 description: "Automatic retries per failed task. Unset means none." rng: range: string @@ -3842,13 +4407,18 @@ classes: Random-seed policy across shards. ``deterministic`` (the default when unset) derives each task's seed from its shard index so the fan-out is reproducible. - provenance: + emit_provenance: range: boolean description: >- Whether to emit provenance sidecars alongside results. Unset - means enabled. + means enabled. Named apart from the ``provenance`` slot carrying + PROV-O metadata (Network, Figure, ...): LinkML maps every slot of + a given name onto one property, so a boolean here and a + ``Provenance`` object there would make ``tvbo:provenance`` both an + owl:DatatypeProperty and an owl:ObjectProperty β€” not OWL-DL. chunk: range: integer + minimum_value: 1 description: >- Default shard count used when ``distribute.chunk`` is unset (see DistributionConfig.chunk). @@ -3904,6 +4474,19 @@ classes: integration: range: Integrator inlined: true + initial_state: + range: InitialState + inlined: true + description: >- + How to obtain the starting state for the run. Default: the + model's declared initial values (method ``given``). + ``from_working_point`` ramps a parameter quasi-statically to a + target (reusing the warm-start ``from_previous`` primitive, see + ``ramp``) and starts the run from the branch endpoint β€” e.g. the + operating point reached by an adiabatic K-upsweep. + ``from_experiment`` instead reuses a working point another + experiment already reached, seeding from its saved endpoint (see + ``source_experiment``) rather than recomputing the ramp. connectivity: range: Network inlined: true @@ -4070,6 +4653,55 @@ classes: multivalued: true inlined_as_list: true range: SimulationExperiment + figures: + multivalued: true + inlined_as_list: true + range: Figure + description: >- + Declarative Figure specs rendered from this study's experiment + results β€” closes the replication loop (a study is its experiments + plus the figures that read them). + code_source: + range: CodeSource + inlined: true + description: >- + Where this study's callable code lives β€” the builders and + transform/observation callables it references by bare + ``module:`` name. Decouples the specification from its code: + a local directory (relative to the recipe YAML or absolute) + or a git repository fetched and cached at load time. When + absent, the conventional ``<recipe-dir>/code/`` is used. + + CodeSource: + class_uri: tvbo:CodeSource + description: >- + Location of a recipe's callable code so the specification is decoupled + from where the code lives. Either a local directory or a git + repository; the resolved directory (optionally a ``subdir`` within it) + is placed on the import path at load time so ``module:`` references + resolve by bare name. ``path`` and ``git`` are mutually exclusive. + attributes: + path: + range: string + description: >- + Local directory holding the code, relative to the recipe YAML + or absolute. Mutually exclusive with ``git``. + git: + range: string + description: >- + Git repository URL to fetch the code from (shallow-cloned and + cached under ``~/.cache/tvbo/code_sources``). Mutually + exclusive with ``path``. + ref: + range: string + description: >- + Git branch, tag, or commit to check out (``git`` sources only). + Defaults to the repository's default branch. + subdir: + range: string + description: >- + Subdirectory within the source to place on the import path + (defaults to the source root). TimeSeries: class_uri: tvbo:TimeSeries diff --git a/schema/tvbo_study.yaml b/schema/tvbo_study.yaml index 021545fca..476d480a3 100644 --- a/schema/tvbo_study.yaml +++ b/schema/tvbo_study.yaml @@ -150,6 +150,17 @@ classes: description: >- Path to BIDS dataset root directory. When set, subject networks and empirical data paths are resolved relative to this root. + bundle: + range: boolean + description: >- + When true, emitting a self-contained kit copies this dataset's + per-subject files into the kit (``spec/<exp>/dataset/``) and rewrites + ``bids_root`` to that bundled copy, so the kit needs no external mount + or ``$TVBO_BIDS_ROOT`` at run time. The exact files are resolved from + the dataset-sourced observation's BIDS query (atlas, desc, …) β€” the + same query that scopes the fan-out β€” so no CLI selection is needed. + Declares the packaging intent in metadata instead of a ``--bundle-dataset`` + flag; a subset is scoped via ``subjects``. conditions: multivalued: true range: string diff --git a/schema/units.yaml b/schema/units.yaml index 8a134868a..14699149b 100644 --- a/schema/units.yaml +++ b/schema/units.yaml @@ -212,6 +212,9 @@ enums: description: "Kilogram" kg_per_s: description: "Kilogram per second" + kg_m2: + meaning: qudt:KiloGM-M2 + description: "Kilogram metre squared (moment of inertia)" # ── Acceleration ── m_per_s2: meaning: qudt:M-PER-SEC2 @@ -233,6 +236,13 @@ enums: s2: meaning: qudt:SEC2 description: "Second squared (inertia constant)" + # ── Power ── + W: + meaning: qudt:W + description: "Watt (power)" + MW: + meaning: qudt:MegaW + description: "Megawatt (10⁢ W); grid real/net power" # ── Per-unit (power systems) ── per_unit: description: "Per-unit (dimensionless power-systems convention)" diff --git a/scripts/backfill_atlas_aliases.py b/scripts/backfill_atlas_aliases.py new file mode 100644 index 000000000..d8a41e90c --- /dev/null +++ b/scripts/backfill_atlas_aliases.py @@ -0,0 +1,219 @@ +#!/usr/bin/env python +"""Backfill empirical-nomenclature ``alternateName`` aliases onto atlas terminologies. + +A model network labels its regions with an atlas's canonical names; empirical +per-subject pipelines (e.g. the HCP-YA functional-connectome pipeline) label the SAME +parcels with a different string convention. ``by_label`` node reconciliation aligns +them by label, so unless the atlas records the alternate names the two conventions +never meet on the string alone. + +This tool derives each region's empirical alias from its canonical label via a +documented, per-atlas deterministic rule and records it in that region's SANDS +``alternateName`` list (appending, never clobbering existing aliases). The rule runs +ONCE here; the atlas YAML is the source of truth thereafter and the resolver does a +pure alias-aware string match β€” no normalization in the hot path. Each atlas is +**bijection- and hemisphere-parity-checked against a real subject sidecar** (when the +data volume is reachable), so a rule error surfaces immediately as a non-bijection or +a hemisphere swap rather than a silent mis-map. + +Atlases live under ``tvbo/database/atlases`` (resolved via ``ATLAS_DIR``). + +Usage: + python scripts/backfill_atlas_aliases.py [--check] [--atlas NAME ...] +""" +from __future__ import annotations + +import argparse +import sys +from pathlib import Path + +from ruamel.yaml import YAML + +from tvbo.data.tvbo_data import ATLAS_DIR + +ATLAS_ROOT = Path(ATLAS_DIR) +# HCP-YA functional-connectome tree used to cross-check the derived aliases. +_FC_ROOT = Path("/Volumes/bronkodata/hcp/derivatives/hcp_ya/functional_connectomes") + + +# ── hemisphere (convention-agnostic, from the label string only) ────────────── +def hemisphere(label: str) -> str | None: + """Hemisphere of a label under ANY supported convention, or None if bilateral. + + Reads the hemisphere from the string alone (never from a node index) so the + crosswalk can be checked for parity: a canonical left-hemisphere region and its + empirical alias must resolve to the SAME hemisphere. + """ + if label in ("Brain-Stem", "BRAIN_STEM", "brain-stem"): + return None + if label[:2] == "L_" or label.endswith("_LEFT") or label.startswith(("ctx-lh-", "left-")): + return "L" + if label[:2] == "R_" or label.endswith("_RIGHT") or label.startswith(("ctx-rh-", "right-")): + return "R" + return None + + +# ── per-atlas canonical -> empirical rules ──────────────────────────────────── +_HCPMMP1_SUBCORTICAL = { + "Cerebellum", "Thalamus", "Caudate", "Putamen", "Pallidum", + "Hippocampus", "Amygdala", "Accumbens", "VentralDC", +} +_HCPMMP1_EMPIRICAL_STEM = {"VentralDC": "DIENCEPHALON_VENTRAL"} + + +def hcpmmp1_rule(canon: str) -> str: + """HCP-MMP1 canonical -> empirical (functional_connectomes atlas-HCPMMP1).""" + if canon == "Brain-Stem": + return "BRAIN_STEM" + if canon[:2] in ("L_", "R_"): + hemi, stem = canon[0], canon[2:] + if stem in _HCPMMP1_SUBCORTICAL: + side = "LEFT" if hemi == "L" else "RIGHT" + return f"{_HCPMMP1_EMPIRICAL_STEM.get(stem, stem.upper())}_{side}" + return f"{canon}_ROI" # cortical parcel + raise ValueError(f"Unrecognised HCP-MMP1 label: {canon!r}") + + +# DesikanKilliany canonical subcortical stem -> empirical stem. +_DK_SUBCORTICAL_STEM = { + "cerebellum-cortex": "CEREBELLUM", "thalamus": "THALAMUS", "caudate": "CAUDATE", + "putamen": "PUTAMEN", "pallidum": "PALLIDUM", "hippocampus": "HIPPOCAMPUS", + "amygdala": "AMYGDALA", "accumbens-area": "ACCUMBENS", "ventraldc": "DIENCEPHALON_VENTRAL", +} + + +def desikankilliany_rule(canon: str) -> str: + """DesikanKilliany canonical -> empirical (functional_connectomes atlas-aparcaseg).""" + if canon == "brain-stem": + return "BRAIN_STEM" + if canon.startswith("ctx-lh-"): + return f"L_{canon[len('ctx-lh-'):]}" + if canon.startswith("ctx-rh-"): + return f"R_{canon[len('ctx-rh-'):]}" + for prefix, side in (("left-", "LEFT"), ("right-", "RIGHT")): + if canon.startswith(prefix): + stem = canon[len(prefix):] + if stem not in _DK_SUBCORTICAL_STEM: + raise ValueError(f"Unknown DK subcortical stem: {stem!r} (in {canon!r})") + return f"{_DK_SUBCORTICAL_STEM[stem]}_{side}" + raise ValueError(f"Unrecognised DesikanKilliany label: {canon!r}") + + +ATLASES = { + "hcpmmp1": { + "file": "tpl-MNI152NLin2009b_atlas-hcpmmp1_desc-ordered_dseg.yaml", + "rule": hcpmmp1_rule, + "verify_glob": "sub-*/sub-*atlas-HCPMMP1*relmat.yaml", + }, + "DesikanKilliany": { + "file": "tpl-MNI152NLin2009c_atlas-DesikanKilliany_desc-ranked_dseg.yaml", + "rule": desikankilliany_rule, + "verify_glob": "sub-*/sub-*atlas-aparcaseg*relmat.yaml", + }, +} + + +def _empirical_labels(glob: str) -> list[str] | None: + """Node labels of one empirical sidecar matching *glob*, or None if unreachable.""" + if not _FC_ROOT.exists(): + return None + hits = sorted(_FC_ROOT.glob(glob)) + if not hits: + return None + y = YAML(typ="safe") + data = y.load(hits[0].read_text()) + return [str(n["label"]) for n in (data.get("nodes") or []) if isinstance(n, dict) and "label" in n] + + +def process_atlas(name: str, spec: dict, check: bool) -> int: + path = ATLAS_ROOT / spec["file"] + if not path.exists(): + print(f"FAIL[{name}]: atlas file not found: {path}", file=sys.stderr) + return 2 + yaml = YAML() + yaml.preserve_quotes = True + data = yaml.load(path.read_text()) + entities = data["terminology"]["entities"] + canon_labels = list(entities.keys()) + aliases = {c: spec["rule"](c) for c in canon_labels} + + # 1) the derived aliases are themselves 1-to-1 + if len(set(aliases.values())) != len(aliases): + dupes = sorted({a for a in aliases.values() if list(aliases.values()).count(a) > 1}) + print(f"FAIL[{name}]: derived-alias collisions {dupes}", file=sys.stderr) + return 2 + # 2) hemisphere parity β€” the L<->R swap guard, from strings alone + swapped = [(c, a) for c, a in aliases.items() if hemisphere(c) != hemisphere(a)] + if swapped: + print(f"FAIL[{name}]: {len(swapped)} hemisphere mismatches, e.g. {swapped[:3]}", file=sys.stderr) + return 2 + # 3) exact bijection with real empirical labels, when reachable + empirical = _empirical_labels(spec["verify_glob"]) + if empirical is not None: + missing, extra = set(empirical) - set(aliases.values()), set(aliases.values()) - set(empirical) + if missing or extra: + print(f"FAIL[{name}]: not a bijection with the empirical sidecar", file=sys.stderr) + if missing: + print(f" empirical labels unmatched by the rule: {sorted(missing)}", file=sys.stderr) + if extra: + print(f" rule outputs absent from the data: {sorted(extra)}", file=sys.stderr) + return 2 + print(f"[{name}] bijection OK: {len(empirical)}/{len(empirical)} vs empirical sidecar") + else: + print(f"[{name}] NOTE: no empirical sidecar reachable; wrote rule-derived aliases " + f"without a data cross-check") + + # One pass over the entities: append the empirical alias to each entity's + # alternateName (keep existing, dedup), flag which entities drift, and check global + # alias uniqueness (region_alias_map must never see one alias map to two regions). + drift = [] + merged_by_c: dict = {} + final_index: dict[str, str] = {} + for c in canon_labels: + cur = list(entities[c].get("alternateName") or []) + merged = cur if aliases[c] in cur else cur + [aliases[c]] + merged_by_c[c] = merged + if aliases[c] not in cur: + drift.append(c) + for alias in merged: + prev = final_index.get(alias) + if prev is not None and prev != c: + print(f"FAIL[{name}]: alias {alias!r} maps to both {prev!r} and {c!r} " + f"(pre-existing crosswalk collision)", file=sys.stderr) + return 2 + final_index[alias] = c + + rel = path.relative_to(ATLAS_ROOT.parents[2]) if len(ATLAS_ROOT.parents) >= 3 else path + if not drift: + print(f"[{name}] up to date: all {len(canon_labels)} entities carry their empirical alias") + return 0 + if check: + print(f"[{name}] DRIFT: {len(drift)} entities need the empirical alias " + f"(e.g. {drift[:3]})", file=sys.stderr) + return 1 + for c in drift: + entities[c]["alternateName"] = merged_by_c[c] + with path.open("w") as f: + yaml.dump(data, f) + print(f"[{name}] wrote empirical alias for {len(drift)} entities -> {rel}") + return 0 + + +def main() -> int: + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument("--check", action="store_true", help="verify only; do not write") + ap.add_argument("--atlas", nargs="*", default=list(ATLASES), + help=f"atlases to process (default: all of {list(ATLASES)})") + args = ap.parse_args() + rc = 0 + for name in args.atlas: + if name not in ATLASES: + print(f"unknown atlas {name!r}; known: {list(ATLASES)}", file=sys.stderr) + rc = 2 + continue + rc = max(rc, process_atlas(name, ATLASES[name], args.check)) + return rc + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/backfill_schaefer_node_metadata.py b/scripts/backfill_schaefer_node_metadata.py index 50e4d6adf..b3c929d89 100644 --- a/scripts/backfill_schaefer_node_metadata.py +++ b/scripts/backfill_schaefer_node_metadata.py @@ -24,7 +24,7 @@ ROOT = Path(__file__).resolve().parent.parent NETWORKS_DIR = ROOT / "database" / "networks" -ATLAS_DIR = ROOT / "tvbo" / "data" / "tvbo_data" / "atlas" +ATLAS_DIR = ROOT / "tvbo" / "database" / "atlases" def load_atlas_entities(seg: str, scale: str, resolution: str = "1") -> list[dict] | None: diff --git a/scripts/create_hansen2022_schaefer_networks.py b/scripts/create_hansen2022_schaefer_networks.py index 83a320732..812c005a2 100644 --- a/scripts/create_hansen2022_schaefer_networks.py +++ b/scripts/create_hansen2022_schaefer_networks.py @@ -46,7 +46,7 @@ # ── Paths ────────────────────────────────────────────────────────────────────── HANSEN_DIR = Path("/Users/leonmartin_bih/work_data/toolboxes/hansen_receptors/data/schaefer") -ATLAS_DIR = Path("/Users/leonmartin_bih/tools/tvbo/tvbo/data/tvbo_data/atlas") +ATLAS_DIR = Path("/Users/leonmartin_bih/tools/tvbo/tvbo/database/atlases") OUT_DIR = Path("/Users/leonmartin_bih/tools/tvbo/tvbo/database/networks") # ── Provenance strings (verbatim, schema-compliant) ──────────────────────────── diff --git a/scripts/create_lobar_network.py b/scripts/create_lobar_network.py index f1ac70f20..e2fba1bf5 100644 --- a/scripts/create_lobar_network.py +++ b/scripts/create_lobar_network.py @@ -53,7 +53,6 @@ from __future__ import annotations import argparse -import subprocess import tempfile from pathlib import Path from typing import TYPE_CHECKING @@ -471,50 +470,6 @@ def _dk_region_name_to_fs_indices(region_name: str) -> list[int]: return [1000 + idx, 2000 + idx] -# ── Run tck2connectome ────────────────────────────────────────────── - - -def run_tck2connectome( - tractogram: Path, - atlas: Path, - weights_csv: Path, - lengths_csv: Path, - assignments_csv: Path, -) -> None: - """Run MRtrix tck2connectome for weights and mean lengths.""" - # Streamline count (weights) - subprocess.run( - [ - "tck2connectome", - str(tractogram), - str(atlas), - str(weights_csv), - "-out_assignments", - str(assignments_csv), - "-symmetric", - "-zero_diagonal", - "-force", - ], - check=True, - ) - # Mean tract length - subprocess.run( - [ - "tck2connectome", - str(tractogram), - str(atlas), - str(lengths_csv), - "-scale_length", - "-stat_edge", - "mean", - "-symmetric", - "-zero_diagonal", - "-force", - ], - check=True, - ) - - # ── Build network ────────────────────────────────────────────────── @@ -927,12 +882,11 @@ def parse_args() -> argparse.Namespace: def main() -> None: - import shutil + from tvbo.data.connectome_build import ensure_mrtrix, run_tck2connectome args = parse_args() - if shutil.which("tck2connectome") is None: - raise RuntimeError("tck2connectome not found in PATH. Install MRtrix3.") + ensure_mrtrix() # friendly error if MRtrix3 is not installed if not args.tractogram.exists(): raise FileNotFoundError(f"Tractogram not found: {args.tractogram}") @@ -984,11 +938,11 @@ def main() -> None: else: print("[run ] tck2connectome (weights + lengths) ...") run_tck2connectome( - tractogram=args.tractogram, - atlas=atlas_nii, - weights_csv=weights_csv, - lengths_csv=lengths_csv, - assignments_csv=assignments_csv, + args.tractogram, + atlas_nii, + weights_csv, + lengths_csv, + assignments_csv, ) # Parse matrices β€” tck2connectome outputs N_labels Γ— N_labels CSV diff --git a/scripts/create_schaefer_sands_metadata.py b/scripts/create_schaefer_sands_metadata.py index 1c1fe8933..de9dbc78d 100644 --- a/scripts/create_schaefer_sands_metadata.py +++ b/scripts/create_schaefer_sands_metadata.py @@ -25,8 +25,10 @@ ROOT = Path(__file__).resolve().parent.parent -ATLAS_DIR = ROOT / "tvbo" / "data" / "tvbo_data" / "atlas" -ORIGINAL_DIR = ATLAS_DIR / "schaefer2018_original_mni" +# Atlases are consolidated under tvbo/database/atlases (the runtime SoT). +ATLAS_DIR = ROOT / "tvbo" / "database" / "atlases" +# Non-BIDS Schaefer download staging stays out of the BIDS database (gitignored). +ORIGINAL_DIR = ROOT / "tvbo" / "data" / "tvbo_data" / "atlas" / "schaefer2018_original_mni" CBIG_BASE = ( "https://raw.githubusercontent.com/ThomasYeoLab/CBIG/master/" diff --git a/scripts/generate_schaefer_scales.py b/scripts/generate_schaefer_scales.py index 2b4343491..6267d926a 100644 --- a/scripts/generate_schaefer_scales.py +++ b/scripts/generate_schaefer_scales.py @@ -21,15 +21,13 @@ from __future__ import annotations import argparse -import shutil -import subprocess -import tempfile from pathlib import Path import numpy as np import yaml -from tvbo.data.tvbo_data.connectomes import Network +from tvbo.classes.network import Network +from tvbo.data.connectome_build import connectome_from_tractogram, ensure_mrtrix ROOT = Path(__file__).resolve().parent.parent @@ -130,45 +128,6 @@ def load_atlas_entities(atlas_dir: Path, scale: int, networks: int, resolution: return sorted(entities.values(), key=lambda e: e["lookupLabel"]) -def run_tck2connectome( - tractogram_path: Path, - atlas_file: Path, - weights_csv: Path, - lengths_csv: Path, - assignments_csv: Path, -) -> None: - subprocess.run( - [ - "tck2connectome", - str(tractogram_path), - str(atlas_file), - str(weights_csv), - "-out_assignments", - str(assignments_csv), - "-symmetric", - "-zero_diagonal", - "-force", - ], - check=True, - ) - - subprocess.run( - [ - "tck2connectome", - str(tractogram_path), - str(atlas_file), - str(lengths_csv), - "-scale_length", - "-stat_edge", - "mean", - "-symmetric", - "-zero_diagonal", - "-force", - ], - check=True, - ) - - def extract_functional_network(region_name: str) -> str: """Extract hemisphere + functional network from a Schaefer region name. @@ -243,8 +202,7 @@ def build_network( def main() -> None: args = parse_args() - if shutil.which("tck2connectome") is None: - raise RuntimeError("tck2connectome was not found in PATH. Install MRtrix3 and ensure tck2connectome is available.") + ensure_mrtrix() # friendly error if MRtrix3 is not installed tractograms = parse_tractogram_specs(args.tractogram) args.output_dir.mkdir(parents=True, exist_ok=True) @@ -256,47 +214,33 @@ def main() -> None: for scale in args.scales: atlas_file = atlas_path(args.atlas_dir, scale, args.networks, args.resolution) - with tempfile.TemporaryDirectory(prefix="tvbo_schaefer_") as tmp: - tmpdir = Path(tmp) - weights_csv = tmpdir / "weights.csv" - lengths_csv = tmpdir / "lengths.csv" - assignments_csv = tmpdir / "assignments.csv" - - print(f"[run ] tractogram={tract_name} scale={scale} nets={args.networks}") - run_tck2connectome( - tractogram_path=tract_path, - atlas_file=atlas_file, - weights_csv=weights_csv, - lengths_csv=lengths_csv, - assignments_csv=assignments_csv, - ) - - weights = np.loadtxt(weights_csv, delimiter=",") - lengths = np.loadtxt(lengths_csv, delimiter=",") - - net = build_network( - weights=weights, - lengths=lengths, - tractogram_name=tract_name, - scale=scale, - networks=args.networks, - atlas_dir=args.atlas_dir, - resolution=args.resolution, - ) - - out_name = net.bids_filename - out_path = args.output_dir / out_name - sidecar_path = out_path.with_suffix(".yaml") - companion_path = sidecar_path.with_suffix(".h5") - - if sidecar_path.exists() and companion_path.exists() and not args.overwrite: - skipped += 1 - print(f"[skip] {sidecar_path.name}") - continue - - net.save(out_path) - generated += 1 - print(f"[ok ] {sidecar_path.name}") + print(f"[run ] tractogram={tract_name} scale={scale} nets={args.networks}") + # Shared MRtrix wrapper behind `tvbo network build`. + weights, lengths = connectome_from_tractogram(tract_path, atlas_file) + + net = build_network( + weights=weights, + lengths=lengths, + tractogram_name=tract_name, + scale=scale, + networks=args.networks, + atlas_dir=args.atlas_dir, + resolution=args.resolution, + ) + + out_name = net.bids_filename + out_path = args.output_dir / out_name + sidecar_path = out_path.with_suffix(".yaml") + companion_path = sidecar_path.with_suffix(".h5") + + if sidecar_path.exists() and companion_path.exists() and not args.overwrite: + skipped += 1 + print(f"[skip] {sidecar_path.name}") + continue + + net.save(out_path) + generated += 1 + print(f"[ok ] {sidecar_path.name}") print("\nDone.") print(f" generated: {generated}") diff --git a/scripts/ontology/postprocess_struct_owl.py b/scripts/ontology/postprocess_struct_owl.py index 94b6481cd..47b289bc3 100644 --- a/scripts/ontology/postprocess_struct_owl.py +++ b/scripts/ontology/postprocess_struct_owl.py @@ -35,6 +35,30 @@ PAV = Namespace("http://purl.org/pav/") +def _retype_float_facets(g: Graph) -> None: + """Retype numeric facet literals on ``xsd:float`` datatype restrictions. + + LinkML's ``gen-owl`` emits a float slot's ``minimum_value`` / + ``maximum_value`` bounds as bare ``0e+00`` / ``1e+00`` literals, which Turtle + types as ``xsd:double``. HermiT rejects an ``xsd:double`` facet value on an + ``owl:onDatatype xsd:float`` restriction (``the maxInclusive facet takes only + floats as values when used on an xsd:float datatype``); ELK does not check + facets, so only HermiT surfaces it. Re-type each facet literal to + ``xsd:float`` so the restriction is internally consistent for both reasoners. + """ + facet_predicates = (XSD.minInclusive, XSD.maxInclusive, + XSD.minExclusive, XSD.maxExclusive) + for datatype_node in set(g.subjects(OWL.onDatatype, XSD.float)): + for restriction_list in g.objects(datatype_node, OWL.withRestrictions): + for facet_node in g.items(restriction_list): + for facet in facet_predicates: + for value in list(g.objects(facet_node, facet)): + retyped = Literal(value.toPython(), datatype=XSD.float) + if retyped != value: + g.remove((facet_node, facet, value)) + g.add((facet_node, facet, retyped)) + + def _augment(g: Graph, schema: dict) -> None: # Drop the synthetic ontology declaration LinkML emits; it points at # `https://w3id.org/tvbo.owl.ttl` which is not a real artefact. @@ -229,6 +253,7 @@ def main() -> int: g.bind("dcterms", DCTERMS) g.bind("pav", PAV) g.bind("owl", OWL) + _retype_float_facets(g) _augment(g, schema) g.serialize(destination=args.owl, format="turtle") print(f"\u2713 Augmented ontology header in {args.owl}") diff --git a/scripts/prepare_schaefer_atlases.py b/scripts/prepare_schaefer_atlases.py index 833e7710c..f6a7e0ca0 100644 --- a/scripts/prepare_schaefer_atlases.py +++ b/scripts/prepare_schaefer_atlases.py @@ -19,8 +19,10 @@ ROOT = Path(__file__).resolve().parent.parent -ATLAS_DIR = ROOT / "tvbo" / "data" / "tvbo_data" / "atlas" -SOURCE_DIR = ATLAS_DIR / "schaefer2018_original_mni" +# Atlases are consolidated under tvbo/database/atlases (the runtime SoT). +ATLAS_DIR = ROOT / "tvbo" / "database" / "atlases" +# Non-BIDS Schaefer download staging stays out of the BIDS database (gitignored). +SOURCE_DIR = ROOT / "tvbo" / "data" / "tvbo_data" / "atlas" / "schaefer2018_original_mni" FILE_RE = re.compile( r"^Schaefer2018_(?P<scale>\d+)Parcels_(?P<nets>7|17)Networks_" diff --git a/skills/codegen-templates/SKILL.md b/skills/codegen-templates/SKILL.md index 78a122b53..f286e9643 100644 --- a/skills/codegen-templates/SKILL.md +++ b/skills/codegen-templates/SKILL.md @@ -37,7 +37,7 @@ Adapters wrap *external* simulators (TVB, Julia, NeuroML, PyRates, BifurcationKi 1. Add the adapter under `tvbo/adapters/<backend>.py` extending the base class. 2. Add the template tree under `tvbo/templates/<backend>/`. -3. Add a `backend_<backend>` pytest marker in `[tool.pytest.ini_options].markers` (see the `tests-and-backends` skill). +3. Register a `backend_<backend>` pytest marker (see the `tests-and-backends` skill). 4. Wire dispatch in `tvbo/codegen/templater.py`. 5. Ensure the optional dependency lives in `pyproject.toml` under `[project.optional-dependencies]`. diff --git a/skills/grill-me/SKILL.md b/skills/grill-me/SKILL.md deleted file mode 100644 index a804f0f4a..000000000 --- a/skills/grill-me/SKILL.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -name: grill-me -description: Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me". -metadata: - audience: maintainer - applies_to: - - "**" - tags: [workflow, design-review] ---- - -Interview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer. - -Ask the questions one at a time. - -If a question can be answered by exploring the codebase, explore the codebase instead. diff --git a/skills/linkml-schema/SKILL.md b/skills/linkml-schema/SKILL.md index 1cf9f0306..dc55ed850 100644 --- a/skills/linkml-schema/SKILL.md +++ b/skills/linkml-schema/SKILL.md @@ -16,7 +16,8 @@ The TVBO datamodel is defined in **LinkML** YAML in `schema/` and *generated* in ## What is canonical - `schema/common.yaml`, `schema/SANDS.yaml`, `schema/openMINDS_tvbo/**` β€” hand-written LinkML definitions. -- `tvbo/datamodel/pydantic.py`, `tvbo/datamodel/schema.py` β€” **generated**. Do not edit. +- `tvbo/datamodel/pydantic.py`, `tvbo/datamodel/schema.py`, `tvbo/datamodel/tvbo_datamodel.schema.json` + β€” **generated** at build time by `hatch_build.py` and **gitignored**. Do not edit. `pyproject.toml` makes this explicit: @@ -24,15 +25,15 @@ The TVBO datamodel is defined in **LinkML** YAML in `schema/` and *generated* in - `tool.ruff.lint.exclude` includes `tvbo/datamodel/**` - `tool.mypy.exclude` includes `tvbo/datamodel/` -If your diff touches `tvbo/datamodel/**` *and* anything else, that is a bug β€” split the change. - ## Editing the schema 1. Edit the appropriate `schema/*.yaml`. -2. Regenerate the Python types via the LinkML pipeline (see `Makefile` / CI). -3. Commit both the schema change *and* the regenerated `tvbo/datamodel/**` in the same commit. +2. Regenerate the Python types via the LinkML pipeline (see `Makefile` / CI). A build + regenerates them automatically through the hatch build hook. -Never patch the generated file directly β€” the next regeneration will silently revert it. +The generated types are untracked, so a schema change has nothing to stage alongside it β€” +`schema/*.yaml` is the whole diff. Never patch a generated file directly: it is not in +git, and the next build silently overwrites it. ## When in doubt diff --git a/skills/tests-and-backends/SKILL.md b/skills/tests-and-backends/SKILL.md index 1984ff5d6..e5fc776a7 100644 --- a/skills/tests-and-backends/SKILL.md +++ b/skills/tests-and-backends/SKILL.md @@ -61,4 +61,6 @@ pytest -m "not julia" ## Adding a new backend marker -Edit `[tool.pytest.ini_options].markers` in `pyproject.toml`. Add the optional-dependency group under `[project.optional-dependencies]` so users can `pip install tvbo[<backend>]`. See the `codegen-templates` skill for the full new-backend checklist. +Register `backend_<backend>` in `[tool.pytest.ini_options].markers` in `pyproject.toml` β€” unregistered markers fail under `--strict-markers`. + +Registering the marker is one step of the wider new-backend flow; see the `codegen-templates` skill for the full checklist. diff --git a/tests/test_cli_run.py b/tests/test_cli_run.py new file mode 100644 index 000000000..43b3dd909 --- /dev/null +++ b/tests/test_cli_run.py @@ -0,0 +1,86 @@ +"""Tests for ``tvbo run`` engine dispatch helpers.""" +from __future__ import annotations + +from pathlib import Path +import subprocess + +import pytest + +from tvbo.cli import run as run_cli + + +@pytest.mark.parametrize( + "engine,expected_workflow_file", + [ + ("slurm", "run.sbatch"), + ("snakemake", "Snakefile"), + ("nextflow", "main.nf"), + ], +) +def test_dispatch_to_engine_uses_kit_dir_not_file(monkeypatch, tmp_path: Path, engine: str, expected_workflow_file: str): + """``tvbo run --engine`` emits the kit in-process into a directory. + + The emit runs in-process (no re-shelling ``tvbo``), so it must not depend on + ``tvbo`` being on ``$PATH``; only the engine submission (sbatch/snakemake/ + nextflow) shells out. The artefact must land inside the kit directory. + """ + calls = [] + + def _fake_run(cmd, check=True, cwd=None, **kwargs): + calls.append({"cmd": cmd, "cwd": cwd}) + return subprocess.CompletedProcess(cmd, 0, stdout="12345\n") + + # Only the engine submission shells out; it lives in workflow now. + monkeypatch.setattr("tvbo.cli.workflow.subprocess.run", _fake_run) + + kit_dir = tmp_path / "kit" + run_cli._dispatch_to_engine( + engine, + spec="experiment:JR_MEG_FrequencyGradient_Optimization", + backend="jax", + experiment=None, + container=None, + out_dir=kit_dir, + ) + + # Kit emitted in-process into the directory (not a bare artefact file). + assert (kit_dir / expected_workflow_file).is_file() + # The submission shells out from the kit dir; none re-invokes `tvbo` on PATH. + # (Filter out unrelated subprocess calls a library may make, e.g. `uname -p`.) + submits = [c for c in calls if c["cmd"][0] in {"sbatch", "snakemake", "nextflow"}] + assert submits, calls + assert all(Path(c["cwd"]) == kit_dir for c in submits) + assert all(c["cmd"][0] != "tvbo" for c in calls) + # JR_MEG dispatches as a single array task (chunk=1) β€” that one task IS the + # whole result, so slurm submits just the array; no gather job is chained. + if engine == "slurm": + assert submits[0]["cmd"] == ["sbatch", "--parsable", "run.sbatch"] + assert not (kit_dir / "finalize.sbatch").exists() + assert not any("--dependency=afterok" in a for c in submits for a in c["cmd"]) + + +def test_dispatch_to_engine_slurm_single_task_no_gather(monkeypatch, tmp_path: Path): + """A single-task array (chunk=1) submits just the array β€” nothing to reassemble.""" + calls = [] + + def _fake_run(cmd, check=True, cwd=None, **kwargs): + calls.append({"cmd": cmd, "cwd": cwd}) + return subprocess.CompletedProcess(cmd, 0, stdout="27452074\n") + + monkeypatch.setattr("tvbo.cli.workflow.subprocess.run", _fake_run) + + kit_dir = tmp_path / "kit" + run_cli._dispatch_to_engine( + "slurm", + spec="experiment:JR_MEG_FrequencyGradient_Optimization", + backend="jax", + experiment=None, + container=None, + out_dir=kit_dir, + ) + + submits = [c for c in calls if c["cmd"][0] == "sbatch"] + assert len(submits) == 1 + assert submits[0]["cmd"] == ["sbatch", "--parsable", "run.sbatch"] + assert Path(submits[0]["cwd"]) == kit_dir + assert not (kit_dir / "finalize.sbatch").exists() diff --git a/tests/test_cli_workflow.py b/tests/test_cli_workflow.py index 021458e3b..0d3c00c49 100644 --- a/tests/test_cli_workflow.py +++ b/tests/test_cli_workflow.py @@ -2,6 +2,7 @@ from __future__ import annotations from pathlib import Path +import subprocess import pytest from typer.testing import CliRunner @@ -101,12 +102,15 @@ def test_workflow_snakemake_emits_kit(tmp_path: Path): assert r.exit_code == 0, r.stdout assert (out / "Snakefile").is_file() assert (out / "README.md").is_file() - assert (out / "spec" / "experiment.yaml").is_file() - assert (out / "scripts" / "experiment.py").is_file() + # Each experiment is frozen into its own self-contained spec/<key>/ directory, + # so one Snakefile fans a whole study (per experiment, per subject / sweep cell). + frozen = list(out.glob("spec/*/experiment.yaml")) + assert frozen, "expected a frozen spec/<key>/experiment.yaml" smk = (out / "Snakefile").read_text() assert "rule" in smk - # When a frozen script exists, the rule should call it (not `tvbo run`) - assert "python scripts/experiment.py" in smk + # A rule runs the frozen spec through `tvbo run` (the resolution layer needed + # for per-subject targets), not the raw backend script. + assert "tvbo run spec/" in smk def test_workflow_slurm_emits_kit(tmp_path: Path): @@ -119,6 +123,52 @@ def test_workflow_slurm_emits_kit(tmp_path: Path): assert "#SBATCH --array=" in sbatch +def test_workflow_slurm_emits_env_exports(tmp_path: Path): + out = tmp_path / "kit" + r = runner.invoke( + app, + [ + "workflow", + "slurm", + EXP, + "--backend", + "jax", + "-o", + str(out), + "--set", + "slurm.env.XLA_PYTHON_CLIENT_PREALLOCATE=false", + "--set", + "slurm.env.OMP_NUM_THREADS=1", + ], + ) + assert r.exit_code == 0, r.stdout + sbatch = (out / "run.sbatch").read_text() + # Values are shell-quoted (shlex.quote): safe tokens need no quotes. + assert "export XLA_PYTHON_CLIENT_PREALLOCATE=false" in sbatch + assert "export OMP_NUM_THREADS=1" in sbatch + + +def test_env_set_merges_by_name_not_replace(): + """--set slurm.env.X overrides one var in a YAML env list, keeping the rest. + + Guards the GPU footgun: a YAML env: [{name,value}] list and a --set mapping + must merge by name, else overriding one XLA flag silently drops the others + (e.g. losing XLA_PYTHON_CLIENT_PREALLOCATE=false grabs all VRAM on GPU). + """ + from tvbo.cli._workflow import _canonicalize_engine_maps, _normalize_env + from tvbo.utils import deep_merge + + yaml_side = _canonicalize_engine_maps( + {"slurm": {"env": [{"name": "XLA_PYTHON_CLIENT_PREALLOCATE", "value": "false"}, + {"name": "XLA_FLAGS", "value": "--host_device_count=1"}]}} + ) + cli_side = {"slurm": {"env": {"XLA_FLAGS": ""}}} # --set slurm.env.XLA_FLAGS="" + merged = deep_merge(yaml_side, cli_side)["slurm"]["env"] + names = {e["name"]: e["value"] for e in _normalize_env(merged)} + assert names["XLA_PYTHON_CLIENT_PREALLOCATE"] == "false" # preserved + assert names["XLA_FLAGS"] == "''" # overridden (empty, quoted) + + def test_workflow_nextflow_emits_kit(tmp_path: Path): out = tmp_path / "kit" r = runner.invoke(app, ["workflow", "nextflow", EXP, "--backend", "jax", "-o", str(out)]) @@ -128,6 +178,56 @@ def test_workflow_nextflow_emits_kit(tmp_path: Path): assert "process tvbo_run" in nf +@pytest.mark.parametrize( + "engine,artefact,opt_needle,env_needle", + [ + ("slurm", "run.sbatch", "#SBATCH --qos=normal", "export OMP_NUM_THREADS=2"), + ("snakemake", "Snakefile", 'slurm_partition="gpu"', "export OMP_NUM_THREADS=2 &&"), + ("nextflow", "main.nf", "process.clusterOptions = '--gres=gpu:1'", "export OMP_NUM_THREADS=2"), + ], +) +def test_env_and_options_render_across_engines(tmp_path, engine, artefact, opt_needle, env_needle): + """env + options are name-keyed passthroughs rendered by every engine's emitter, + each in its native form (Slurm #SBATCH / Snakemake resources / Nextflow process).""" + opt = {"slurm": "qos=normal", "snakemake": "slurm_partition=gpu", + "nextflow": "clusterOptions=--gres=gpu:1"}[engine] + out = tmp_path / "kit" + r = runner.invoke(app, [ + "workflow", engine, EXP, "--backend", "jax", "-o", str(out), + "--set", f"{engine}.env.OMP_NUM_THREADS=2", + "--set", f"{engine}.options.{opt}", + ]) + assert r.exit_code == 0, r.stdout + text = (out / artefact).read_text() + assert opt_needle in text + assert env_needle in text + + +def test_frozen_spec_captures_merged_workflow_for_reproducibility(tmp_path: Path): + """The emitted spec records the effective workflow config (study < experiment < + --set), so re-emitting from it reproduces the run with no flags β€” one-click + provenance rather than the overrides living only in run.sbatch.""" + k1 = tmp_path / "k1" + r = runner.invoke(app, [ + "workflow", "slurm", EXP, "--backend", "jax", "-o", str(k1), + "--set", "slurm.partition=gpu", "--set", "slurm.array_chunk=1", + "--set", "slurm.env.FOO=bar", + ]) + assert r.exit_code == 0, r.stdout + spec_yaml = next(p for p in (k1 / "spec").glob("*.yaml") if p.name != "network.yaml") + frozen = spec_yaml.read_text() + assert "partition: gpu" in frozen and "array_chunk: 1" in frozen and "FOO" in frozen + + # Re-emit from the frozen spec with NO --set β†’ the GPU sbatch is reproduced. + k2 = tmp_path / "k2" + r2 = runner.invoke(app, ["workflow", "slurm", str(spec_yaml), "--backend", "jax", "-o", str(k2)]) + assert r2.exit_code == 0, r2.stdout + sbatch = (k2 / "run.sbatch").read_text() + assert "#SBATCH --partition=gpu" in sbatch + assert "#SBATCH --array=0-0" in sbatch # array_chunk=1 β†’ single shard + assert "export FOO=bar" in sbatch + + def test_workflow_stdout_only_does_not_create_kit(tmp_path: Path): out = tmp_path / "kit" r = runner.invoke(app, ["workflow", "snakemake", EXP, "--backend", "jax", @@ -137,6 +237,239 @@ def test_workflow_stdout_only_does_not_create_kit(tmp_path: Path): assert not out.exists() +@pytest.mark.parametrize( + "engine,expected_cmd,expected_file", + [ + # Slurm submits the array with --parsable (then chains a gather job). + ("slurm", ["sbatch", "--parsable", "run.sbatch"], "run.sbatch"), + # Snakemake ships a SLURM-executor profile, so submit runs the login-node + # orchestrator that dispatches each rule to the scheduler (not local --cores). + ("snakemake", ["snakemake", "--profile", "profile"], "Snakefile"), + ("nextflow", ["nextflow", "run", "main.nf"], "main.nf"), + ], +) +def test_workflow_run_emits_and_executes_engine(tmp_path: Path, monkeypatch, engine, expected_cmd, expected_file): + calls = [] + + def _fake_run(cmd, check=True, cwd=None, **kwargs): + calls.append({"cmd": cmd, "cwd": cwd}) + return subprocess.CompletedProcess(cmd, 0, stdout="12345\n") + + monkeypatch.setattr("tvbo.cli.workflow.subprocess.run", _fake_run) + + out = tmp_path / "kit" + r = runner.invoke( + app, + ["workflow", "run", engine, EXP, "--backend", "jax", "-o", str(out)], + ) + assert r.exit_code == 0, r.stdout + assert (out / expected_file).is_file() + # Filter to the engine's submission commands β€” a globally-patched subprocess.run + # also captures an incidental platform `uname -p` (jax init) on some hosts. + submits = [c for c in calls if c["cmd"] and c["cmd"][0] in {"sbatch", "snakemake", "nextflow"}] + assert submits, "expected workflow run to execute engine command" + assert submits[0]["cmd"] == expected_cmd + assert Path(submits[0]["cwd"]) == out + # EXP is a single array task (chunk=1): that one task IS the whole result, so + # slurm submits just the array β€” no gather job to reassemble a single shard. + if engine == "slurm": + assert not (out / "finalize.sbatch").exists() + assert not any("--dependency=afterok" in a for c in submits for a in c["cmd"]) + + +def test_workflow_run_slurm_chains_gather_when_sharded(tmp_path: Path, monkeypatch): + """A multi-shard array (chunk>1) emits and chains a dependent gather job.""" + calls = [] + + def _fake_run(cmd, check=True, cwd=None, **kwargs): + calls.append(cmd) + return subprocess.CompletedProcess(cmd, 0, stdout="12345\n") + + monkeypatch.setattr("tvbo.cli.workflow.subprocess.run", _fake_run) + out = tmp_path / "kit" + r = runner.invoke( + app, + ["workflow", "run", "slurm", EXP, "--backend", "jax", + "--set", "distribute.chunk=4", "-o", str(out)], + ) + assert r.exit_code == 0, r.stdout + assert (out / "finalize.sbatch").is_file() + submits = [c for c in calls if c and c[0] == "sbatch"] + assert any("--dependency=afterok" in a for c in submits for a in c) + + +def test_workflow_submit_accepts_packaged_archive(tmp_path: Path, monkeypatch): + """`tvbo workflow submit` extracts a packaged .tar.gz kit and submits it. + + The archive ships on its own (no kit directory next to it), so the submit path + must auto-extract before launching β€” the "no manual unzip" workflow. + """ + import shutil + import tarfile + + calls = [] + + def _fake_run(cmd, check=True, cwd=None, **kwargs): + calls.append(cmd) + return subprocess.CompletedProcess(cmd, 0, stdout="12345\n") + + monkeypatch.setattr("tvbo.cli.workflow.subprocess.run", _fake_run) + monkeypatch.setattr(shutil, "which", lambda _launcher: "/usr/bin/snakemake") + + # emit a kit, then package it into an archive that travels on its own + emitted = tmp_path / "emit" / "kit" + r = runner.invoke(app, ["workflow", "snakemake", EXP, "--backend", "jax", "-o", str(emitted)]) + assert r.exit_code == 0, r.stdout + ship = tmp_path / "ship" + ship.mkdir() + archive = ship / "kit.tar.gz" + with tarfile.open(archive, "w:gz") as t: + t.add(emitted, arcname="kit") + + # submit the archive directly: must extract beside it, then launch the engine + r = runner.invoke(app, ["workflow", "submit", str(archive)]) + assert r.exit_code == 0, r.stdout + assert (ship / "kit" / "Snakefile").is_file(), "archive must auto-extract beside itself" + submits = [c for c in calls if c and c[0] == "snakemake"] + assert submits, "expected the extracted kit to be submitted" + + +def test_slurm_pack_emits_only_tarball(tmp_path: Path): + """`tvbo workflow slurm … --pack` writes ONLY <kit>.tar.gz and removes the loose + kit directory (the tarball is the shippable artifact; submit/run re-extract it).""" + kit = tmp_path / "mykit" + r = runner.invoke(app, ["workflow", "slurm", EXP, "--backend", "jax", + "-o", str(kit), "--pack"]) + assert r.exit_code == 0, r.stdout + assert (tmp_path / "mykit.tar.gz").is_file(), "expected the packed tarball" + assert not kit.exists(), "--pack must remove the loose kit directory" + + +def test_pack_warns_on_machine_specific_bids_root(tmp_path: Path, monkeypatch): + """A per-subject dataset fan-out kit bakes an absolute ``bids_root`` that will not + resolve on another host β€” emitting/packing it must warn with the exact submit-time + override, so a kit is never shipped silently wrong. (Capture ``_common.warn`` + directly: caplog's root propagation is polluted by the shared tvbo logging setup.)""" + from tvbo.cli import workflow as workflow_cli + + warned: list[str] = [] + monkeypatch.setattr("tvbo.cli._common.warn", lambda m: warned.append(m)) + + kit = tmp_path / "kit" + (kit / "spec").mkdir(parents=True) + (kit / "spec" / "30.yaml").write_text( + "dataset:\n dataset_id: hcpya\n bids_root: /Volumes/bronkodata/hcp/fc\n", + encoding="utf-8", + ) + workflow_cli._warn_machine_specific_bids_root(kit) + joined = "\n".join(warned) + assert warned, "expected a portability warning for the baked bids_root" + assert "/Volumes/bronkodata/hcp/fc" in joined + assert "--set dataset.bids_root=" in joined + + +def test_no_bids_root_warning_without_dataset(tmp_path: Path, monkeypatch): + """A kit whose frozen spec has no ``dataset.bids_root`` (e.g. a group-average fit) + emits no portability warning.""" + from tvbo.cli import workflow as workflow_cli + + warned: list[str] = [] + monkeypatch.setattr("tvbo.cli._common.warn", lambda m: warned.append(m)) + + kit = tmp_path / "kit" + (kit / "spec").mkdir(parents=True) + (kit / "spec" / "34.yaml").write_text("model: ReducedWongWangEIB\n", encoding="utf-8") + workflow_cli._warn_machine_specific_bids_root(kit) + assert not warned + + +def test_workflow_run_rejects_unknown_engine(): + r = runner.invoke(app, ["workflow", "run", "local", EXP, "--backend", "jax"]) + assert r.exit_code != 0 + combined = (r.stdout or "") + (r.stderr or "") + assert "expects engine one of" in combined + + +def test_workflow_run_slurm_array_smoke(tmp_path: Path, monkeypatch): + """--array 0 passed to workflow run must appear in the sbatch call.""" + sbatch_calls = [] + emitted = {} + + def _fake_sbatch(cmd, check=True, cwd=None, **kwargs): + if cmd[0] == "sbatch": + sbatch_calls.append({"cmd": cmd, "cwd": cwd}) + return subprocess.CompletedProcess(cmd, 0, stdout="12345\n") + + monkeypatch.setattr("tvbo.cli.workflow.subprocess.run", _fake_sbatch) + + out = tmp_path / "kit" + from tvbo.cli import workflow as workflow_cli + + original_emit = workflow_cli._emit + + def _capture_emit(engine, *, spec, backend, experiment, output, override, stdout): + emitted["overrides"] = list(override) + return original_emit( + engine, + spec=spec, + backend=backend, + experiment=experiment, + output=output, + override=override, + stdout=stdout, + ) + + monkeypatch.setattr("tvbo.cli.workflow._emit", _capture_emit) + + r = runner.invoke( + app, + ["workflow", "run", "slurm", EXP, "--backend", "jax", "-o", str(out), "--array", "0"], + ) + assert r.exit_code == 0, r.stdout + assert (out / "run.sbatch").is_file(), "kit was not emitted" + assert sbatch_calls, "sbatch was never called" + sbatch_cmd = sbatch_calls[0]["cmd"] + assert "--array=0" in sbatch_cmd + assert sbatch_cmd[-1] == "run.sbatch" + assert "slurm.array_chunk=1024" in emitted["overrides"] + + sbatch_text = (out / "run.sbatch").read_text() + assert "#SBATCH --array=0-1023" in sbatch_text + + +def test_workflow_run_slurm_array_throttle(tmp_path: Path, monkeypatch): + sbatch_calls = [] + + def _fake_sbatch(cmd, check=True, cwd=None, **kwargs): + if cmd[0] == "sbatch": + sbatch_calls.append({"cmd": cmd, "cwd": cwd}) + return subprocess.CompletedProcess(cmd, 0, stdout="12345\n") + + monkeypatch.setattr("tvbo.cli.workflow.subprocess.run", _fake_sbatch) + + out = tmp_path / "kit" + r = runner.invoke( + app, + [ + "workflow", + "run", + "slurm", + EXP, + "--backend", + "jax", + "-o", + str(out), + "--array", + "0-39", + "--array-throttle", + "1", + ], + ) + assert r.exit_code == 0, r.stdout + assert sbatch_calls, "sbatch was never called" + assert "--array=0-39%1" in sbatch_calls[0]["cmd"] + + # --------------------------------------------------------------------------- # CLI: validate stubs (C5) # --------------------------------------------------------------------------- diff --git a/tests/test_code_source.py b/tests/test_code_source.py new file mode 100644 index 000000000..1bccc3b85 --- /dev/null +++ b/tests/test_code_source.py @@ -0,0 +1,106 @@ +"""CodeSource resolution β€” a recipe's callable code as a local dir or git repo. + +Covers ``register_recipe_code_paths`` / ``_resolve_code_source`` (tvbo.utils): +the ``code/`` convention, an explicit local ``path``, a ``git`` source (cloned + +cached, with ``ref``/``subdir``), and the ``path``/``git`` mutual-exclusion guard. +""" +import subprocess +import sys + +import pytest + +from tvbo.datamodel import pydantic as p +from tvbo.utils import ( + _resolve_code_source, + register_recipe_code_paths, +) + + +def _write_module(path, value): + path.parent.mkdir(parents=True, exist_ok=True) + path.write_text(f"VALUE = {value!r}\n") + + +def _import_fresh(name): + sys.modules.pop(name, None) + return __import__(name) + + +def test_code_dir_convention(tmp_path): + """No code_source -> the conventional ``code/`` subdir beside the YAML.""" + _write_module(tmp_path / "code" / "conv_mod.py", "convention") + inserted = register_recipe_code_paths(str(tmp_path / "Study.yaml")) + try: + assert inserted and inserted[0].endswith("/code") + assert _import_fresh("conv_mod").VALUE == "convention" + finally: + sys.modules.pop("conv_mod", None) + for e in inserted: + sys.path.remove(e) + + +def test_local_path_relative_to_yaml(tmp_path): + """code_source.path resolves relative to the recipe YAML's directory.""" + _write_module(tmp_path / "src" / "path_mod.py", "from_path") + cs = p.CodeSource(path="src") + inserted = register_recipe_code_paths(str(tmp_path / "Study.yaml"), cs) + try: + assert inserted and inserted[0].endswith("/src") + assert _import_fresh("path_mod").VALUE == "from_path" + finally: + sys.modules.pop("path_mod", None) + for e in inserted: + sys.path.remove(e) + + +def test_git_source_ref_subdir_and_cache(tmp_path, monkeypatch): + """code_source.git shallow-clones a repo, checks out ref, uses subdir, caches.""" + repo = tmp_path / "repo" + _write_module(repo / "recipe" / "git_mod.py", "from_git") + run = lambda *a: subprocess.run(a, cwd=repo, check=True, capture_output=True) + run("git", "init", "-q") + run("git", "add", "-A") + run("git", "-c", "user.email=t@t", "-c", "user.name=t", "commit", "-qm", "init") + run("git", "branch", "-M", "main") + + monkeypatch.setenv("TVBO_CACHE", str(tmp_path / "cache")) + cs = p.CodeSource(git=f"file://{repo}", ref="main", subdir="recipe") + inserted = register_recipe_code_paths(str(tmp_path / "Study.yaml"), cs) + try: + assert inserted and "cache/code_sources" in inserted[0] + assert _import_fresh("git_mod").VALUE == "from_git" + # a second resolve reuses the clone (same path, no re-clone) + assert str(_resolve_code_source(cs, None)) == inserted[0] + finally: + sys.modules.pop("git_mod", None) + for e in inserted: + sys.path.remove(e) + + +def test_path_and_git_mutually_exclusive(): + with pytest.raises(ValueError, match="mutually exclusive"): + _resolve_code_source(p.CodeSource(path="a", git="b"), None) + + +def test_relative_path_without_source_file_errors(): + """A relative path with no recipe file to anchor to errors, not a silent CWD resolve.""" + with pytest.raises(ValueError, match="needs a recipe file to anchor"): + _resolve_code_source(p.CodeSource(path="./recipe"), None) + + +def test_absent_code_source_falls_back_to_none(tmp_path): + """A study without code_source and without a code/ dir registers nothing.""" + assert register_recipe_code_paths(str(tmp_path / "Study.yaml")) == [] + + +def test_empty_code_source_falls_back_to_convention(tmp_path): + """A declared-but-empty code_source (no path/git) still uses the code/ convention.""" + _write_module(tmp_path / "code" / "empty_cs_mod.py", "convention") + inserted = register_recipe_code_paths(str(tmp_path / "Study.yaml"), p.CodeSource()) + try: + assert inserted and inserted[0].endswith("/code") + assert _import_fresh("empty_cs_mod").VALUE == "convention" + finally: + sys.modules.pop("empty_cs_mod", None) + for e in inserted: + sys.path.remove(e) diff --git a/tests/test_codegen_sparse_graph.py b/tests/test_codegen_sparse_graph.py new file mode 100644 index 000000000..c57d4681e --- /dev/null +++ b/tests/test_codegen_sparse_graph.py @@ -0,0 +1,93 @@ +"""Codegen: ``Network.graph_representation: sparse`` selects a ``SparseGraph`` β€” but only +when every coupling is instantaneous AND vectorized (source-only ``pre``). A per-edge +``pre`` (e.g. ``sin(x_j - x_i)``) or a delayed coupling would hit ``jsparse.sparsify`` on a +nonlinear term and crash, so those networks must fall back to a dense graph. + +These pin the ``use_sparse`` gate in ``tvbo-tvboptim-experiment.py.mako`` β€” ``render_code`` +only needs the network metadata (the generated ``create_network`` takes ``weights`` as a +runtime argument), so no connectivity source is required to check which graph class is emitted. +""" +import copy + +import pytest + +pytest.importorskip("tvboptim") + +from tvbo import SimulationExperiment, database_path + +EXPERIMENTS_DIR = database_path / "experiments" + +# Minimal instantaneous Kuramoto with a VECTORIZED (source-only) grid coupling in the +# factored angle-addition form: sum_j A_ij sin(theta_j - theta_i) +# = cos(theta_i)*(A @ sin theta) - sin(theta_i)*(A @ cos theta). +MINI_EXP = { + "id": 1, + "label": "sparse-codegen unit fixture", + "dynamics": { + "name": "MiniKuramoto", + "system_type": "continuous", + "output": ["theta"], + "parameters": {"K": {"value": 1.0}}, + "coupling_inputs": {"c": {}}, + "state_variables": { + "theta": {"equation": {"rhs": "K * c"}, "initial_value": 0.0, "coupling_variable": True}, + }, + }, + "network": { + "number_of_nodes": 4, + "graph_representation": "sparse", + "coupling": { + "c": { + "delayed": False, + "local_states": ["theta"], + "pre_expression": {"rhs": "[sin(theta), cos(theta)]"}, + "post_expression": {"rhs": "cos(theta_i)*gx_0 - sin(theta_i)*gx_1"}, + } + }, + }, + "integration": {"method": "heun", "step_size": 0.1, "duration": 1.0, + "transient_time": 0.0, "unit": "s"}, +} + + +def _graph_line(spec): + """The ``graph = ...Graph(...)`` line the tvboptim experiment codegen emits for ``spec``.""" + code = SimulationExperiment(**spec).render_code("tvboptim") + return next((ln.strip() for ln in code.splitlines() if "graph = " in ln and "Graph(" in ln), "") + + +def test_sparse_vectorized_instantaneous_emits_sparsegraph(): + """graph_representation: sparse + a vectorized instantaneous coupling -> SparseGraph.""" + assert "SparseGraph(" in _graph_line(MINI_EXP) + + +def test_sparse_peredge_coupling_falls_back_to_dense(): + """A per-edge pre (sin(x_j - x_i)) is not a source-only mat-vec β€” sparsify would crash on + it β€” so sparse must fall back to DenseGraph even though graph_representation is sparse.""" + spec = copy.deepcopy(MINI_EXP) + spec["network"]["coupling"]["c"] = { + "delayed": False, + "incoming_states": ["theta"], + "local_states": ["theta"], + "pre_expression": {"rhs": "sin(x_j - x_i)"}, + "post_expression": {"rhs": "gx"}, + } + line = _graph_line(spec) + assert "DenseGraph(" in line and "SparseGraph(" not in line + + +def test_default_representation_is_dense(): + """No graph_representation (defaults to 'auto') keeps the pre-existing DenseGraph emit.""" + spec = copy.deepcopy(MINI_EXP) + spec["network"].pop("graph_representation") + line = _graph_line(spec) + assert "DenseGraph(" in line and "SparseGraph(" not in line + + +def test_sparse_ignored_for_delayed_network(): + """Opting a DELAYED network into sparse must stay DenseDelayGraph (ΞΈ_j(t-Ο„_ij) is per-edge; + sparsify can't apply a nonlinear pre to it).""" + exp = SimulationExperiment.from_file(str(EXPERIMENTS_DIR / "JR_MEG_FrequencyGradient_Optimization.yaml")) + exp.network.graph_representation = "sparse" + code = exp.render_code("tvboptim") + assert "DenseDelayGraph(" in code and "SparseGraph(" not in code diff --git a/tests/test_dataset_bundle.py b/tests/test_dataset_bundle.py new file mode 100644 index 000000000..d4ee5f73d --- /dev/null +++ b/tests/test_dataset_bundle.py @@ -0,0 +1,158 @@ +"""``--bundle-dataset`` makes a per-subject workflow kit self-contained: it copies each +enumerated subject's empirical target (sidecar + payload) into the kit, selecting the +exact BIDS variant, and rewrites ``dataset.bids_root`` to a relative path that resolves +against the frozen spec (like a network ``data_file``) β€” so the kit ships the data its +fan-out consumes and nothing else, with no separate upload or ``$TVBO_BIDS_ROOT``. +""" +from __future__ import annotations + +from pathlib import Path +from types import SimpleNamespace + +import pytest +import typer + +from tvbo.classes.experiment import SimulationExperiment as _SE +from tvbo.cli import workflow as _wf + + +def _write_subject(root: Path, subject: str, atlas: str) -> Path: + """Write one subject's FC sidecar + (dummy) HDF5 payload; return the sidecar path.""" + stem = f"sub-{subject}_tpl-MNI152NLin2009cAsym_cohort-HCPYA_atlas-{atlas}_desc-FCavg_relmat" + subdir = root / f"sub-{subject}" + subdir.mkdir(parents=True, exist_ok=True) + (subdir / f"{stem}.h5").write_bytes(b"\x89HDF\r\n\x1a\n" + atlas.encode()) # payload marker + sidecar = subdir / f"{stem}.yaml" + sidecar.write_text( + f"label: HCPYA FC | sub-{subject} | atlas {atlas}\n" + f"number_of_nodes: 3\n" + f"data_file: {stem}.h5\n", + encoding="utf-8", + ) + return sidecar + + +def _stub(dataset, observations, source_file=None): + """A duck-typed experiment binding the REAL dataset methods, so the test exercises + the shipping code paths without constructing a full SimulationExperiment.""" + stub = SimpleNamespace(dataset=dataset, observations=observations, _source_file=source_file) + stub.dataset_observation_targets = _SE.dataset_observation_targets.fget(stub) + for name in ("_dataset_bids_root", "dataset_subject_ids", "dataset_bundle_files", + "_find_subject_file", "_find_subject_file_by_entities", + "_bids_query_dict", "_match_subject_files", "_sidecar_companions"): + setattr(stub, name, _SE.__dict__[name].__get__(stub)) + return stub + + +def _fc_experiment(bids_root, *, subjects=None, source_file=None): + query = SimpleNamespace(atlas="HCPMMP1", desc="FCavg", suffix="relmat") + obs = SimpleNamespace(source=["dataset.subject.fc"], query=query) + dataset = SimpleNamespace(bids_root=str(bids_root), subjects=subjects) + return _stub(dataset, {"empirical_fc": obs}, source_file=source_file) + + +@pytest.fixture +def cohort(tmp_path: Path) -> Path: + """A 2-subject BIDS FC tree, each subject carrying an HCPMMP1 target + a Schaefer decoy.""" + root = tmp_path / "functional_connectomes" + for subj in ("100206", "100307"): + _write_subject(root, subj, "HCPMMP1") + _write_subject(root, subj, "Schaefer400") # the "much more" that must NOT be bundled + return root + + +def test_bundle_selects_variant_and_payload(cohort: Path): + exp = _fc_experiment(cohort) + manifest = exp.dataset_bundle_files() + + assert set(manifest) == {"100206", "100307"} + for subj, files in manifest.items(): + names = sorted(f.name for f in files) + # exactly the HCPMMP1 sidecar + its payload β€” no Schaefer decoy, no work/ noise + assert any(n.endswith(".yaml") and "atlas-HCPMMP1" in n for n in names) + assert any(n.endswith(".h5") and "atlas-HCPMMP1" in n for n in names) + assert not any("Schaefer" in n for n in names) + assert len(files) == 2 + + +def test_entity_override_pins_a_different_variant(cohort: Path): + exp = _fc_experiment(cohort) + manifest = exp.dataset_bundle_files({"atlas": "Schaefer400"}) + for files in manifest.values(): + assert all("Schaefer400" in f.name for f in files) + assert not any("HCPMMP1" in f.name for f in files) + + +def test_subject_subset_scopes_the_bundle(cohort: Path): + """An explicit dataset.subjects list curates which subjects the bundle carries.""" + exp = _fc_experiment(cohort, subjects=["100206"]) + assert set(exp.dataset_bundle_files()) == {"100206"} + + +def test_bundle_dataset_copies_and_returns_relative_root(cohort: Path, tmp_path: Path): + exp = _fc_experiment(cohort) + dest = tmp_path / "kit" / "spec" / "dataset" + root = _wf._bundle_dataset(exp, dest, {}) + + assert root == "dataset" # relative root recorded in the frozen spec + copied = sorted(p.name for p in dest.rglob("*") if p.is_file()) + assert (dest / "sub-100206").is_dir() and (dest / "sub-100307").is_dir() + assert all("Schaefer" not in n for n in copied) + assert sum("atlas-HCPMMP1" in n and n.endswith(".h5") for n in copied) == 2 + + +def test_relative_bids_root_rebases_to_spec_dir(tmp_path: Path): + """A bundled kit records ``bids_root: dataset`` and resolves it against the spec file + β€” so `tvbo run spec/exp.yaml` finds spec/dataset regardless of the working dir.""" + spec_dir = tmp_path / "kit" / "spec" + spec_dir.mkdir(parents=True) + bundled = spec_dir / "dataset" + _write_subject(bundled, "100206", "HCPMMP1") + + exp = _fc_experiment("dataset", source_file=str(spec_dir / "exp.yaml")) + assert exp._dataset_bids_root() == bundled + assert exp.dataset_subject_ids() == ["100206"] + + +def test_no_dataset_target_bundles_nothing(tmp_path: Path, monkeypatch): + warned: list[str] = [] + monkeypatch.setattr("tvbo.cli._common.warn", lambda m: warned.append(m)) + exp = _stub(SimpleNamespace(bids_root=None, subjects=None), {}) # no dataset-sourced obs + assert _wf._bundle_dataset(exp, tmp_path / "d", {}) is None + assert warned and "no dataset-sourced target" in warned[0] + + +def test_missing_payload_raises_not_silently_dropped(tmp_path: Path): + """A sidecar whose data_file is absent must fail loudly β€” bundling a sidecar without + its matrix would only break at load time on a compute node.""" + root = tmp_path / "fc" + sidecar = _write_subject(root, "100206", "HCPMMP1") + sidecar.with_suffix(".h5").unlink() # payload gone; sidecar still references it + exp = _fc_experiment(root, subjects=["100206"]) + with pytest.raises(FileNotFoundError): + exp.dataset_bundle_files() + + +def test_directory_payload_is_copied_as_tree(tmp_path: Path): + """A .zarr payload is a directory: the bundle must copytree it, not choke on copy2.""" + root = tmp_path / "fc" + subdir = root / "sub-100206" + stem = "sub-100206_atlas-HCPMMP1_desc-FCavg_relmat" + zarr = subdir / f"{stem}.zarr" + (zarr / "0").mkdir(parents=True) + (zarr / "0" / ".zarray").write_text("{}", encoding="utf-8") + (subdir / f"{stem}.yaml").write_text( + f"label: z\nnumber_of_nodes: 3\ndata_file: {stem}.zarr\n", encoding="utf-8") + + exp = _fc_experiment(root, subjects=["100206"]) + dest = tmp_path / "kit" / "spec" / "dataset" + assert _wf._bundle_dataset(exp, dest, {}) == "dataset" + assert (dest / "sub-100206" / f"{stem}.zarr" / "0" / ".zarray").is_file() + + +def test_bundle_dies_on_unresolved_selection(cohort: Path): + """An over-tight --bundle-select (no subject has the variant) is a hard error, not a + silent fallback to the machine-specific bids_root.""" + exp = _fc_experiment(cohort) + with pytest.raises(typer.Exit): + _wf._bundle_dataset(exp, cohort.parent / "kit", {"atlas": "DoesNotExist"}) diff --git a/tests/test_estimate_param_recording.py b/tests/test_estimate_param_recording.py new file mode 100644 index 000000000..94710f23a --- /dev/null +++ b/tests/test_estimate_param_recording.py @@ -0,0 +1,147 @@ +"""ExperimentResult.save() records an algorithm's tuned FREE parameters as +``estimate__<param>`` on LABELLED node axes (``node`` for vectors, ``node_i``+ +``node_j`` for per-edge matrices), so a ``from_experiment`` warm-start reloads them as +a prior location and reconciles by label with the existing `.sel` path. + +Source-side, additive, container-layer only (no codegen). Filtered to free params, so it +never shadows a ``<sv>_final`` state observation. +""" +from __future__ import annotations + +from types import SimpleNamespace + +import numpy as np +import pytest + +from tvbo.data.types import ExperimentResult, _free_param_names + + +def _param(name, free): + return SimpleNamespace(name=name, free=free) + + +def _fake_source(labels): + """A stand-in experiment: J_i (dynamics) + wLRE/wFFI (coupling) free; I_o/G fixed.""" + return SimpleNamespace( + network=SimpleNamespace(node_labels=labels), + dynamics=SimpleNamespace(parameters={ + "J_i": _param("J_i", True), + "I_o": _param("I_o", False), + }), + coupling=SimpleNamespace(parameters={ + "wLRE": _param("wLRE", True), + "wFFI": _param("wFFI", True), + "G": _param("G", False), + }), + ) + + +class _JaxParam: + """Mimics a tvboptim Parameter leaf exposing ``__jax_array__`` (the real state + wraps tuned params this way, not as bare ndarrays).""" + + def __init__(self, arr): + self._arr = np.asarray(arr, dtype=float) + + def __jax_array__(self): + return self._arr + + +def _algo_state(n): + return SimpleNamespace( + coupling=SimpleNamespace(EIBLinearCoupling=SimpleNamespace( + wLRE=_JaxParam(np.full((n, n), 0.7)), + wFFI=_JaxParam(np.full((n, n), 0.3)), + G=_JaxParam(np.array(2.0)), # fixed β€” not recorded + )), + dynamics=SimpleNamespace( + J_i=_JaxParam(np.arange(n, dtype=float)), + S_e=_JaxParam(np.full(n, 0.204)), # state variable β€” not recorded + ), + ) + + +def test_free_param_names_collects_dynamics_and_coupling(): + src = _fake_source([f"n{i}" for i in range(3)]) + assert _free_param_names(src) == {"J_i", "wLRE", "wFFI"} + assert _free_param_names(None) == set() + + +def test_save_records_labelled_estimate_for_free_params_only(tmp_path): + xr = pytest.importorskip("xarray") + n = 4 + labels = [f"R{i}" for i in range(n)] + res = ExperimentResult( + algorithms={"fic_eib": SimpleNamespace(state=_algo_state(n))}, + source=_fake_source(labels), + ) + written = res.save(str(tmp_path), compress=False, record_only=False) + h5 = [p for p in written if p.endswith(".h5")] + assert h5, f"expected an .h5 result, got {written}" + + ds = xr.open_dataset(h5[0], engine="h5netcdf") + try: + names = set(ds.data_vars) + assert {"estimate__wLRE", "estimate__wFFI", "estimate__J_i"} <= names + # fixed param (G) and state variable (S_e) excluded + assert "estimate__G" not in names + assert "estimate__S_e" not in names + + # matrix: labelled on BOTH node axes, labels preserved in order + wl = ds["estimate__wLRE"] + assert wl.dims == ("node_i", "node_j") + assert list(wl["node_i"].values) == labels + assert list(wl["node_j"].values) == labels + assert wl.shape == (n, n) + + # vector: labelled on its single node axis + ji = ds["estimate__J_i"] + assert ji.dims == ("node",) + assert list(ji["node"].values) == labels + np.testing.assert_allclose(ji.values, np.arange(n)) + finally: + ds.close() + + +def test_estimate_uses_resolved_not_placeholder_labels(tmp_path): + """A bids: source can carry placeholder node_labels (region_<i>) until hydrated; the + estimate must be recorded with the RESOLVED labels (what the consumer reconciles + against), else the warm-start `.sel` can't align.""" + xr = pytest.importorskip("xarray") + + class _Src: + network = SimpleNamespace(node_labels=["region_0", "region_1"]) # placeholders + dynamics = SimpleNamespace(parameters={"J_i": _param("J_i", True)}) + coupling = None + + def _resolve_model_node_labels(self): + return ["L_V1", "R_V1"] # hydrated real labels + + state = SimpleNamespace(dynamics=SimpleNamespace(J_i=_JaxParam([1.0, 2.0])), + coupling=SimpleNamespace()) + res = ExperimentResult(algorithms={"a": SimpleNamespace(state=state)}, source=_Src()) + written = res.save(str(tmp_path), compress=False, record_only=False) + ds = xr.open_dataset([p for p in written if p.endswith(".h5")][0], engine="h5netcdf") + try: + assert [str(x) for x in ds["estimate__J_i"]["node"].values] == ["L_V1", "R_V1"] + finally: + ds.close() + + +def test_unlabelled_source_falls_back_to_generic(tmp_path): + """No source node_labels β†’ generic dims (still recorded, just no reconcile coords).""" + xr = pytest.importorskip("xarray") + n = 3 + res = ExperimentResult( + algorithms={"fic_eib": SimpleNamespace(state=_algo_state(n))}, + source=_fake_source(None), + ) + written = res.save(str(tmp_path), compress=False, record_only=False) + h5 = [p for p in written if p.endswith(".h5")] + assert h5 + ds = xr.open_dataset(h5[0], engine="h5netcdf") + try: + assert "estimate__J_i" in set(ds.data_vars) + assert "node" not in ds["estimate__J_i"].coords # no label coords + finally: + ds.close() diff --git a/tests/test_experiment_api.py b/tests/test_experiment_api.py index a4b411f93..680717353 100644 --- a/tests/test_experiment_api.py +++ b/tests/test_experiment_api.py @@ -1,4 +1,9 @@ import pytest + +# The REST API surface ships in the optional ``tvbo[api]`` extra (fastapi). Skip +# the whole module cleanly when it is not installed instead of failing collection. +pytest.importorskip("fastapi", reason="requires the 'api' extra (pip install tvbo[api])") + from fastapi import FastAPI from fastapi.testclient import TestClient diff --git a/tests/test_exploration_axis_reduce.py b/tests/test_exploration_axis_reduce.py new file mode 100644 index 000000000..577e39cb3 --- /dev/null +++ b/tests/test_exploration_axis_reduce.py @@ -0,0 +1,145 @@ +"""Tests for the ``ExplorationAxis.reduce`` capability. + +An exploration axis marked ``reduce`` is collapsed by a statistic in the result +container: the axis's named grid dimension is reduced across every observation +that carries it (keyed by dim name, never positional), the reduced observations +keep their names, and the collapsed axis drops out of the shape metadata. +Observations that do not carry the dim are left untouched. Without ``reduce`` the +result container is unchanged. +""" + +import numpy as np +import xarray as xr +import pytest + +from tvbo.data.types import ExplorationResult +from tvbo.utils import Bunch + + +MU_VALS = np.array([0.1, 0.2, 0.3]) +SEED_VALS = np.array([0, 1, 2, 3]) + + +def _axes(reduce_stat=None): + """A swept param axis + an ensemble (random_seed) axis, optionally reduced.""" + seed_kw = {"reduce": reduce_stat} if reduce_stat is not None else {} + return [ + Bunch(name="MurrayWangDM.mu", n=len(MU_VALS), explored_values=MU_VALS.copy()), + Bunch( + name="execution.random_seed", + n=len(SEED_VALS), + explored_values=SEED_VALS.copy(), + **seed_kw, + ), + ] + + +def _observations(): + """Two labelled observations; only ``decision`` carries the seed dim.""" + rng = np.random.default_rng(0) + decision = xr.DataArray( + rng.standard_normal((len(MU_VALS), len(SEED_VALS), 5)), + dims=("MurrayWangDM.mu", "execution.random_seed", "node"), + coords={"MurrayWangDM.mu": MU_VALS, "execution.random_seed": SEED_VALS}, + name="decision", + ) + # `rate` does NOT carry the random_seed dim -> must be left untouched. + rate = xr.DataArray( + rng.standard_normal((len(MU_VALS), 5)), + dims=("MurrayWangDM.mu", "node"), + coords={"MurrayWangDM.mu": MU_VALS}, + name="rate", + ) + return {"decision": decision, "rate": rate} + + +def test_reduce_removes_dim_and_drops_axis(): + """The reduced dim disappears from carrying obs; the axis leaves the metadata.""" + obs = _observations() + res = ExplorationResult(name="t", axes=_axes("mean"), observations=obs) + + dec = res.observations["decision"] + assert "execution.random_seed" not in dec.dims + assert dec.dims == ("MurrayWangDM.mu", "node") + # The reduced axis is dropped from the metadata / shape. + assert [ExplorationResult._axis_name(a) for a in res.axes] == ["MurrayWangDM.mu"] + assert res._grid_shape == (len(MU_VALS),) + + +@pytest.mark.parametrize("stat", ["mean", "sum", "std", "median", "sem"]) +def test_reduce_values_match_xarray_by_name(stat): + """Reduced values equal the xarray reduction over that dim (keyed by name).""" + ref = _observations()["decision"] + res = ExplorationResult(name="t", axes=_axes(stat), observations=_observations()) + got = res.observations["decision"] + + dim = "execution.random_seed" + if stat == "sem": + expected = ref.std(dim=dim) / np.sqrt(ref.sizes[dim]) + else: + expected = getattr(ref, stat)(dim=dim) + + np.testing.assert_allclose(got.values, expected.values) + assert got.name == "decision" + + +def test_other_obs_and_labels_preserved(): + """Obs without the dim are untouched; surviving coords/labels are preserved.""" + obs = _observations() + rate_before = obs["rate"].copy(deep=True) + res = ExplorationResult(name="t", axes=_axes("mean"), observations=obs) + + # `rate` never carried the seed dim -> identical values and dims. + rate_after = res.observations["rate"] + assert rate_after.dims == ("MurrayWangDM.mu", "node") + np.testing.assert_array_equal(rate_after.values, rate_before.values) + + # Surviving `mu` coordinate labels are preserved on the reduced obs. + dec = res.observations["decision"] + np.testing.assert_array_equal(dec.coords["MurrayWangDM.mu"].values, MU_VALS) + + +def test_reduce_on_internally_labelled_observations(): + """Raw stacked arrays get labelled by ``_stacked_to_dataarray`` then reduced. + + Exercises the production path where ExplorationResult builds the DataArray + itself (grid dim named by the axis ``name``) before reducing by that dim name. + """ + rng = np.random.default_rng(1) + # Flat leading dim = prod(grid) = 3 * 4, followed by a node dim. + raw = rng.standard_normal((len(MU_VALS) * len(SEED_VALS), 5)) + res = ExplorationResult( + name="t", axes=_axes("mean"), observations={"decision": raw} + ) + dec = res.observations["decision"] + # Grid dims are named by the axis names; the reduced one is gone while the + # surviving grid axis stays leading. (The lone trailing spatial dim is named + # by _stacked_to_dataarray's own convention β€” not under test here.) + assert "execution.random_seed" not in dec.dims + assert dec.dims[0] == "MurrayWangDM.mu" + assert "MurrayWangDM.mu" in dec.dims + + # Compare against the same array labelled without reduction, then meaned. + ref = ExplorationResult( + name="t", axes=_axes(None), observations={"decision": raw.copy()} + ).observations["decision"] + np.testing.assert_allclose( + dec.values, ref.mean(dim="execution.random_seed").values + ) + + +def test_no_reduce_leaves_observations_unchanged(): + """Without `reduce`, observations and axes are byte-identical to the input.""" + obs = _observations() + dec_before = obs["decision"].copy(deep=True) + res = ExplorationResult(name="t", axes=_axes(None), observations=obs) + + dec = res.observations["decision"] + assert dec.dims == ("MurrayWangDM.mu", "execution.random_seed", "node") + np.testing.assert_array_equal(dec.values, dec_before.values) + # Both axes retained; full grid shape intact. + assert [ExplorationResult._axis_name(a) for a in res.axes] == [ + "MurrayWangDM.mu", + "execution.random_seed", + ] + assert res._grid_shape == (len(MU_VALS), len(SEED_VALS)) diff --git a/tests/test_figure_codegen.py b/tests/test_figure_codegen.py new file mode 100644 index 000000000..47e8acaff --- /dev/null +++ b/tests/test_figure_codegen.py @@ -0,0 +1,500 @@ +"""Tests for TVBO's declarative figure codegen. + +Covers the two figure adapters: + +* ``tvbo.adapters.bsplot`` β€” resolves a declarative :class:`Figure` into a + codegen context (``build_context``), emits a self-contained ``plot.py`` + (``render_code``), and emits + execs it under matplotlib Agg (``render``), + plus the register/lookup API a study extends the engine through and the + ``_container_path`` PROV resolver. +* ``tvbo.adapters.figure_workflow`` β€” lowers a figure's PROV ``used`` edges into + a Snakemake render rule (``emit_figure_rules``). + +Figure objects are constructed inline. Tests that need experiment result +containers point at the Taher2019 replication study and skip when it (or a +specific container) is absent, so the suite is robust on a fresh checkout. +""" +from __future__ import annotations + +import ast +from pathlib import Path + +import pytest + +import tvbo.datamodel.pydantic as P +from tvbo.adapters import bsplot +from tvbo.adapters import figure_workflow as fw + +# --------------------------------------------------------------------------- fixtures / gating + +TAHER_BASE = Path( + "/Users/leonmartin_bih/projects/TVB-O/tvbo-manuscript/" + "use-cases/replication_studies/Taher2019" +) +EXP3_IRI = "tvbo:exp/Taher2019/exp-3" +MISSING_IRI = "tvbo:exp/Taher2019/exp-999" # deliberately non-existent -> placeholder + +# Resolve once so every data-backed test shares the same gate. +_EXP3_CONTAINER = bsplot._container_path(EXP3_IRI, TAHER_BASE) if TAHER_BASE.is_dir() else "" + +requires_exp3 = pytest.mark.skipif( + not _EXP3_CONTAINER, + reason=f"Taher2019 exp-3 container not present under {TAHER_BASE}", +) + + +def _cartesian_figure(iri=EXP3_IRI, output="delta_omega", **fig_kw): + """A minimal one-panel cartesian line Figure over *iri*/*output*.""" + return P.Figure( + name=fig_kw.pop("name", "fig"), + layout=fig_kw.pop("layout", "a"), + panels={ + "a": P.Panel( + panel_key="a", + kind="cartesian", + layers=[ + P.Layer( + used=P.DataRef(iri=iri, output=output), + encoding=P.Encoding(x="KuramotoInertia.K", y=output), + ) + ], + ) + }, + **fig_kw, + ) + + +# --------------------------------------------------------------------------- public surface + +def test_public_surface(): + """The documented adapter surface is importable and well-typed. Core ships no built-in + transforms/panels β€” the registries are filled by studies through the register API.""" + assert isinstance(bsplot.TRANSFORMS, dict) + assert isinstance(bsplot.CUSTOM_PANELS, dict) + assert callable(bsplot.register_transform) + assert callable(bsplot.register_panel) + assert callable(bsplot.load_layer) + assert callable(bsplot._style_kwargs) + assert callable(bsplot._annotations) + + +# --------------------------------------------------------------------------- _container_path + +@requires_exp3 +def test_container_path_resolves_existing(): + """A real experiment IRI resolves to an existing, non-network ``.h5`` container.""" + path = bsplot._container_path(EXP3_IRI, TAHER_BASE) + assert path + p = Path(path) + assert p.is_file() + assert p.suffix == ".h5" + assert "network" not in p.name # the *_network.h5 sidecar is skipped + + +def test_container_path_unresolved_returns_empty(): + """An unknown experiment IRI or ``None`` resolves to the empty string, not an error.""" + assert bsplot._container_path(MISSING_IRI, TAHER_BASE) == "" + assert bsplot._container_path(None, TAHER_BASE) == "" + assert bsplot._container_path("", TAHER_BASE) == "" + # Even a plausible-looking IRI under a base with no output/ tree stays empty. + assert bsplot._container_path(EXP3_IRI, Path("/nonexistent/base/dir")) == "" + + +# --------------------------------------------------------------------------- build_context + +@requires_exp3 +def test_build_context_resolves_everything(): + """A mixed cartesian/heatmap/image + guarded figure resolves into the full context.""" + figure = P.Figure( + name="mixed", + layout="ab/cd", + width=180, + height=120, + font_size=8, + panel_number_format="({})", + panel_number_loc="upper right", + panels={ + "a": P.Panel( + panel_key="a", + kind="cartesian", + layers=[ + P.Layer( + used=P.DataRef(iri=EXP3_IRI, output="delta_omega"), + encoding=P.Encoding(x="KuramotoInertia.K", y="delta_omega"), + style=P.Style( + color="red", + opts={"linestyle": P.Argument(name="linestyle", value="--")}, + ), + ) + ], + annotations=[ + P.Annotation(text="corner", loc="upper left"), + P.Annotation(text="xy", x=0.2, y=0.3), + ], + ), + "b": P.Panel( + panel_key="b", + kind="heatmap", + layers=[ + P.Layer( + used=P.DataRef(iri=EXP3_IRI, output="omega_profile"), + encoding=P.Encoding(x="KuramotoInertia.K", y="mode"), + ) + ], + ), + "c": P.Panel(panel_key="c", kind="image", path="/tmp/panel_c.png"), + "d": P.Panel( + panel_key="d", + kind="cartesian", + placeholder="no data", + layers=[ + P.Layer( + used=P.DataRef(iri=MISSING_IRI, output="delta_omega"), + encoding=P.Encoding(x="KuramotoInertia.K", y="delta_omega"), + ) + ], + ), + }, + ) + ctx = bsplot.build_context(figure, TAHER_BASE, "out.png") + + # top-level sizing / formatting contract (subplots kwargs resolved in Python) + assert ctx["name"] == "mixed" + assert ctx["subplots_kwargs"]["layout"] == "ab\ncd" # '/' -> mosaic row split + assert ctx["subplots_kwargs"]["figsize"] == (180 / 25.4, 120 / 25.4) # mm -> inches + assert ctx["font_size"] == 8 + assert ctx["dpi"] == 200 # default + assert ctx["auto_format"] is True + assert ctx["panel_numbers"] is True + # panel_number_loc "upper right" -> resolved into each panel's placement kwargs + assert ctx["panels"][0]["number_kwargs"]["ha"] == "right" + + panels = {p["key"]: p for p in ctx["panels"]} + assert set(panels) == {"a", "b", "c", "d"} + + # (a) cartesian line: container resolved, mark defaulted, style/opts merged, axopts defaulted + a = panels["a"] + assert a["kind"] == "cartesian" + assert a["letter"] == "(a)" # panel_number_format applied + la = a["layers"][0] + assert Path(la["container"]).is_file() + assert la["mark"] == "line" + assert la["style"] == {"color": "red", "linestyle": "--"} + assert a["axopts"]["xlabel"] == "KuramotoInertia.K" + assert a["axopts"]["ylabel"] == "delta_omega" + # annotations -> [{text, x, y}] in axes-fraction coords + assert a["annotations"] == [ + {"text": "corner", "x": 0.03, "y": 0.95}, + {"text": "xy", "x": 0.2, "y": 0.3}, + ] + assert a["placeholder"] is None + + # (b) heatmap: mark defaults to 'heatmap' from the panel kind + b = panels["b"] + assert b["letter"] == "(b)" + assert b["layers"][0]["mark"] == "heatmap" + assert Path(b["layers"][0]["container"]).is_file() + + # (c) image: carries its path, no layers/axopts to resolve + c = panels["c"] + assert c["kind"] == "image" + assert c["path"] == "/tmp/panel_c.png" + assert c["letter"] == "(c)" + + # (d) guarded panel over a missing container: placeholder text surfaced, container empty + d = panels["d"] + assert d["placeholder"] == "no data" + assert d["letter"] == "(d)" + assert d["layers"][0]["container"] == "" + + +def test_build_context_image_path_resolved_against_base_dir(tmp_path): + """An ``image`` panel's path is spec-relative, so the spec stays portable; the emitted + plot.py runs from an arbitrary cwd, so it must be resolved against base_dir (an + absolute path is passed through). Same contract as a study .mplstyle.""" + figure = P.Figure( + name="img", + layout="ab", + panels={ + "a": P.Panel(panel_key="a", kind="image", path="original_study/img/fig5.png"), + "b": P.Panel(panel_key="b", kind="image", path="/abs/elsewhere.png"), + }, + ) + panels = {p["key"]: p for p in bsplot.build_context(figure, tmp_path, "out.png")["panels"]} + assert panels["a"]["path"] == str(tmp_path / "original_study" / "img" / "fig5.png") + assert panels["b"]["path"] == "/abs/elsewhere.png" + + +def test_build_context_default_letter_format(): + """With no ``panel_number_format`` the letter is the bare index letter.""" + ctx = bsplot.build_context(_cartesian_figure(), TAHER_BASE, "out.png") + assert ctx["panels"][0]["letter"] == "a" + + +def test_build_context_dataclass_flavor_kind_mark_loc(): + """Production loads figures as the *dataclass* datamodel β€” both ``tvbo figure + render`` (``schema.Figure``) and ``SimulationStudy`` (extends + ``schema.SimulationStudy``) β€” whose enum-valued slots are NOT ``==`` a bare + string. The rest of this module builds pydantic objects (where the enum is a + ``str``), so the adapter must normalise ``kind``/``mark``/``loc`` for the + dataclass flavour or custom/image/heatmap dispatch and corner placement break + only in production. + """ + from tvbo.datamodel import schema as D + + fig = D.Figure( + name="dc", layout="ab/cd", panel_number_loc="upper right", + panels={ + "a": D.Panel(panel_key="a", kind="custom", render="custom_panel"), + "b": D.Panel(panel_key="b", kind="image", path="/tmp/x.png"), + "c": D.Panel( + panel_key="c", kind="cartesian", number_loc="lower left", + layers=[D.Layer(used=D.DataRef(iri="tvbo:exp/x", output="v"), + mark="scatter", encoding=D.Encoding(x="K", y="v"))], + ), + "d": D.Panel( + panel_key="d", kind="heatmap", + layers=[D.Layer(used=D.DataRef(iri="tvbo:exp/x", output="m"), + encoding=D.Encoding(x="K", y="n"))], + ), + }, + ) + ctx = bsplot.build_context(fig, TAHER_BASE, "out.png") + by = {p["key"]: p for p in ctx["panels"]} + + # kind resolves to a plain string -> custom dispatch + image/heatmap branching + assert by["a"]["kind"] == "custom" and by["a"]["ctx"] is not None + assert by["b"]["kind"] == "image" + assert by["c"]["layers"][0]["mark"] == "scatter" # explicit mark survives, not defaulted to line + assert by["d"]["layers"][0]["mark"] == "heatmap" # implied by the heatmap panel kind + # Corner enum -> corner placement kwargs (figure default, and per-panel override) + assert by["a"]["number_kwargs"]["ha"] == "right" + assert (by["c"]["number_kwargs"]["ha"], by["c"]["number_kwargs"]["va"]) == ("left", "bottom") + + # the emitted plot.py parses and dispatches each kind + code = bsplot.render_code(fig, TAHER_BASE, "out.png") + ast.parse(code) + assert "_registered(_CP," in code # custom-panel callable dispatch + assert "pcolormesh" in code # heatmap + assert "imread" in code # image + + +def test_register_panel_and_transform(): + """The register_* decorators populate the shared registries, so a study's + code_source module adds its own custom panels/transforms; the emitted plot.py + looks them up by name in these dicts. + """ + @bsplot.register_panel("_test_panel") + def _panel(fig, ax, ctx): + return "drawn" + + @bsplot.register_transform("_test_tf") + def _tf(da): + return da + + try: + assert bsplot.CUSTOM_PANELS["_test_panel"] is _panel + assert bsplot.TRANSFORMS["_test_tf"] is _tf + assert _panel(None, None, None) == "drawn" # decorator returns the fn unchanged + finally: # keep the module-level registries clean for other tests + bsplot.CUSTOM_PANELS.pop("_test_panel", None) + bsplot.TRANSFORMS.pop("_test_tf", None) + + +def test_unregistered_name_error_points_at_code_modules(): + """Core ships no panels/transforms, so "declared a name but never registered it" (a + missing or unimportable code_modules entry) is THE common failure. It must name the + culprit and the fix rather than surfacing a bare KeyError from a generated file.""" + fig = P.Figure( + name="oops", layout="a", + panels={"a": P.Panel(panel_key="a", kind="custom", render="never_registered")}, + ) + code = bsplot.render_code(fig, TAHER_BASE, "out.png") + with pytest.raises(KeyError) as exc: + exec(compile(code, "plot.py", "exec"), {"__name__": "__main__"}) + msg = str(exc.value) + assert "never_registered" in msg and "code_modules" in msg + + # The adapter's own load_layer path carries the same guidance for a transform. + with pytest.raises(KeyError, match="code_modules"): + bsplot.load_layer({"container": "x.h5", "output": "y", "transform": "nope"}) + + +def test_render_code_emits_study_code_module_imports(): + """A figure declaring code_modules emits an import for each, so a study's + code_source panels/transforms register when plot.py runs (the study load + puts code/ on the path; importing the module fires the @register_* decorators). + A figure with none emits no such import. + """ + fig = P.Figure( + name="withcode", layout="a", code_modules=["taher2019_figures", "myextra"], + panels={"a": P.Panel(panel_key="a", kind="custom", render="custom_panel")}, + ) + code = bsplot.render_code(fig, TAHER_BASE, "out.png") + ast.parse(code) + assert "import taher2019_figures" in code + assert "import myextra" in code + # no code_modules -> no study-import block + assert "registers this study" not in bsplot.render_code(_cartesian_figure(), TAHER_BASE, "out.png") + + +def test_study_code_module_roundtrip(tmp_path, monkeypatch): + """End-to-end proof of the register API + code_modules + emit-wiring together: + a study module registers a panel core tvbo never knew about; the emitted + plot.py imports the module (firing the decorator), so the panel dispatches + and the figure draws. + """ + import sys + import textwrap + + (tmp_path / "study_demo_panels.py").write_text(textwrap.dedent(''' + from tvbo.adapters import bsplot + + @bsplot.register_panel("demo_roundtrip_panel") + def demo(fig, ax, ctx): + ax.text(0.5, 0.5, "study", ha="center", va="center", transform=ax.transAxes) + ax.set_xticks([]); ax.set_yticks([]) + ''')) + monkeypatch.syspath_prepend(str(tmp_path)) # a study load would put its code/ dir here + assert "demo_roundtrip_panel" not in bsplot.CUSTOM_PANELS # core tvbo does not know it + + fig = P.Figure( + name="rt", layout="a", code_modules=["study_demo_panels"], + panels={"a": P.Panel(panel_key="a", kind="custom", render="demo_roundtrip_panel")}, + ) + out = tmp_path / "rt.png" + try: + bsplot.render(fig, str(tmp_path), str(out)) # emitted plot.py imports the module... + assert "demo_roundtrip_panel" in bsplot.CUSTOM_PANELS # ...which registered the panel... + assert out.is_file() and out.stat().st_size > 0 # ...and it drew. + finally: + bsplot.CUSTOM_PANELS.pop("demo_roundtrip_panel", None) + sys.modules.pop("study_demo_panels", None) + + +# --------------------------------------------------------------------------- render_code validity + +def _emit(**fig_kw) -> str: + return bsplot.render_code(_cartesian_figure(**fig_kw), TAHER_BASE, "out.png") + + +def test_render_code_is_valid_python(): + """The emitted plot.py parses and compiles, and contains the core scaffold.""" + code = _emit() + ast.parse(code) # syntactically valid + compile(code, "<figure>", "exec") # and compiles + assert "bsplot.figure.subplots" in code + assert "savefig" in code + assert "def main():" in code + + +def test_render_code_font_size_emitted(): + """``font.size`` is set iff a physical ``font_size`` is declared.""" + assert "font.size" in _emit(font_size=9) + assert "font.size" not in _emit() + + +def test_render_code_trim_margins_toggle(): + """Trimming re-crops to content, so the saved aspect can drift from width/height; + ``trim_margins: false`` is the opt-out that preserves the declared proportions. + Default (unset) trims.""" + assert "'bbox_inches': 'tight'" in _emit() + assert "'bbox_inches': 'tight'" in _emit(trim_margins=True) + assert "bbox_inches" not in _emit(trim_margins=False) + + +def test_render_code_panel_numbers_toggle(): + """A ``bsplot.add_panel_number`` call is emitted iff panel numbering is on.""" + assert "_bpanels.add_panel_number(axd[" in _emit(panel_numbers=True) + assert "_bpanels.add_panel_number(axd[" not in _emit(panel_numbers=False) + + +def test_render_code_auto_format_toggle(): + """``bsplot.style.format_fig`` appears iff auto_format is not disabled.""" + assert "bsplot.style.format_fig" in _emit(auto_format=True) + assert "bsplot.style.format_fig" in _emit() # default-on + assert "bsplot.style.format_fig" not in _emit(auto_format=False) + + +# --------------------------------------------------------------------------- render round-trip + +@requires_exp3 +def test_render_writes_png(tmp_path): + """A cartesian figure over the real exp-3 container renders to a non-empty PNG.""" + out = tmp_path / "delta_omega.png" + fig = bsplot.render(_cartesian_figure(name="rt"), TAHER_BASE, str(out)) + assert out.is_file() + assert out.stat().st_size > 0 + assert fig is not None # render returns the matplotlib Figure + + +@requires_exp3 +def test_render_guarded_missing_container_does_not_raise(tmp_path): + """A guarded panel whose container is missing renders via the placeholder path.""" + out = tmp_path / "guarded.png" + figure = P.Figure( + name="guarded", + layout="a", + panels={ + "a": P.Panel( + panel_key="a", + kind="cartesian", + placeholder="no data", + layers=[ + P.Layer( + used=P.DataRef(iri=MISSING_IRI, output="delta_omega"), + encoding=P.Encoding(x="KuramotoInertia.K", y="delta_omega"), + ) + ], + ) + }, + ) + # Must not raise despite the missing container β€” the try/except placeholder catches it. + bsplot.render(figure, TAHER_BASE, str(out)) + assert out.is_file() + assert out.stat().st_size > 0 + + +# --------------------------------------------------------------------------- figure_workflow + +def _rule_overrides(): + """A WorkflowConfig whose slurm block seeds figure render resources.""" + return P.WorkflowConfig( + slurm=P.WorkflowEngineConfig( + cpus_per_task=4, mem="8G", time="02:00:00", partition="gpu" + ) + ) + + +def test_emit_figure_rules_resources(): + """Rule text carries a ``rule fig_...`` and a ``resources:`` block from the overrides.""" + figure = _cartesian_figure(name="taher_fig1", workflow_overrides=_rule_overrides()) + text = fw.emit_figure_rules([figure], base_dir=TAHER_BASE) + + assert "rule fig_taher_fig1:" in text + assert "resources:" in text + # 8G -> 8000 MB, 02:00:00 -> 120 min, cpus_per_task passed through, partition surfaced. + assert "cpus_per_task=4" in text + assert "mem_mb=8000" in text + assert "runtime=120" in text + assert "slurm_partition='gpu'" in text + assert "output:" in text + assert "figures/taher_fig1.png" in text + + +@requires_exp3 +def test_emit_figure_rules_input_is_resolved_container(): + """A layer's PROV ``used`` container becomes the render rule's ``input:``.""" + figure = _cartesian_figure(name="taher_fig1") + text = fw.emit_figure_rules([figure], base_dir=TAHER_BASE) + assert "input:" in text + assert _EXP3_CONTAINER in text # the exact resolved container path is the dependency + + +def test_emit_figure_rules_no_input_when_unresolved(): + """A figure whose container cannot resolve emits a rule but no ``input:`` block.""" + figure = _cartesian_figure(name="orphan", iri=MISSING_IRI) + text = fw.emit_figure_rules([figure], base_dir=TAHER_BASE) + assert "rule fig_orphan:" in text + # No resolvable container -> the rule declares no inputs (can't depend on a missing file). + assert "input:" not in text diff --git a/tests/test_network_axis_scope.py b/tests/test_network_axis_scope.py new file mode 100644 index 000000000..fc82b8260 --- /dev/null +++ b/tests/test_network_axis_scope.py @@ -0,0 +1,86 @@ +"""`network.`-scoped exploration axes resolve to the graph leaf they sweep. + +The scope is declarative: an axis names a network attribute (`network.edges.weight`, +`network.conduction_speed`) and codegen resolves it to the live backend-graph leaf, +so every cell sees its own value without a Network or graph rebuild. + +The canonical form is `network.edges.<label>`; `network.weight(s)`/`network.length(s)` +are shortcuts. Both go through `edge_label`, the same resolver observations use, so an +axis and an observation can never disagree about which matrix a reference means. +""" + +import pytest + +from tvbo.templates.tvboptim.utils import network_axis_leaf + + +@pytest.mark.parametrize( + "ref, leaf", + [ + # Canonical `network.edges.<label>` form. + ("network.edges.weight", "weights"), + ("network.edges.length", "lengths"), + # Shortcuts resolve to the same leaf as the canonical form β€” singular and + # plural alike, so a recipe cannot half-work on spelling. + ("network.weight", "weights"), + ("network.weights", "weights"), + ("network.length", "lengths"), + ("network.lengths", "lengths"), + # The network's own scalars. + ("network.conduction_speed", "speed"), + ], +) +def test_network_axis_resolves_to_graph_leaf(ref, leaf): + assert network_axis_leaf(ref) == leaf + + +@pytest.mark.parametrize( + "ref", + [ + "MurrayWangDM.mu", # dynamics-scoped + "EIBLinearCoupling.wLRE", # coupling-scoped + "execution.random_seed", # execution-scoped + "conduction_speed", # bare name is not a scoped reference + "", + None, + 3.0, + ], +) +def test_non_network_refs_return_none(ref): + """Out-of-scope references route through the dynamics/coupling path untouched.""" + assert network_axis_leaf(ref) is None + + +def test_edges_weight_is_not_misparsed_as_dynamics(): + """`network.edges.weight` must not rsplit into prefix 'network.edges'. + + Splitting a scoped path on the LAST dot leaves prefix='network.edges', which + matches neither the network scope nor a coupling key, so the axis silently + falls through and is emitted as a dynamics parameter β€” a wrong-scope write + that sweeps nothing and yields identical cells rather than an error. + """ + assert network_axis_leaf("network.edges.weight") == "weights" + + +def test_unsweepable_edge_attribute_raises(): + """An edge attribute with no graph leaf fails at codegen, not silently. + + A matrix like `fc` is legitimately referenceable by an observation but has no + live leaf to sweep, so naming it as an axis is a recipe error. + """ + with pytest.raises(ValueError, match="no graph leaf to sweep"): + network_axis_leaf("network.edges.fc") + + +def test_unknown_network_attribute_raises(): + with pytest.raises(ValueError, match="unknown network attribute"): + network_axis_leaf("network.bogus") + + +def test_error_names_the_sweepable_set(): + """The error tells the author what they may sweep instead.""" + with pytest.raises(ValueError) as e: + network_axis_leaf("network.bogus") + msg = str(e.value) + assert "network.conduction_speed" in msg + assert "network.edges.weight" in msg diff --git a/tests/test_network_io.py b/tests/test_network_io.py index cbd0eeab5..562550f16 100644 --- a/tests/test_network_io.py +++ b/tests/test_network_io.py @@ -543,3 +543,173 @@ def test_tvb_zip_roundtrip(self): np.testing.assert_allclose(net._arrays["weight"], weights, atol=1e-5) assert "length" in net._arrays np.testing.assert_allclose(net._arrays["length"], lengths, atol=1e-5) + + +class TestMultiEdgeFreezeRoundtrip: + """Freezing a multi-edge / primary_weight network must preserve every edge β€” + especially the tract-length matrix, which delayed simulations require and which + has no ``primary_weight``-style selector. Regression for the freeze remap that + assumed a canonical [weight, length] edge order and, for an NMF bundle declared + as [length, weight_NMF_*], dropped ``length`` (no delays) and overwrote the real + weights with the length matrix. + """ + + def _roundtrip(self, edges: dict, primary=None): + from tvbo.classes.network import Network + import h5py + + n = next(iter(edges.values())).shape[0] + net = Network(number_of_nodes=n) + net.__class__ = Network + for name, mat in edges.items(): + net.set_matrix(name, mat) + if primary is not None: + net.primary_weight = primary + with tempfile.TemporaryDirectory() as d: + net.save(Path(d) / "n.yaml", binary_format="h5") + with h5py.File(Path(d) / "n.h5") as f: + frozen = set(f["edges"].keys()) + reloaded = Network.load(str(Path(d) / "n.h5")) + # Materialize while the lazy-store companion file still exists β€” the + # TemporaryDirectory is removed on block exit, before assertions run. + _ = np.asarray(reloaded.lengths_matrix) + _ = np.asarray(reloaded.weights_matrix) + return frozen, reloaded + + def test_nmf_bundle_preserves_length_and_weights(self): + rng = np.random.RandomState(0) + W = rng.rand(8, 8) + L = rng.rand(8, 8) * 100.0 + edges = {"length": L, "weight_NMF_rank5": W, "weight_NMF_alpha": rng.rand(8, 8)} + frozen, net = self._roundtrip(edges, primary="weight_NMF_rank5") + assert "length" in frozen, "length edge dropped on freeze" + np.testing.assert_allclose(np.asarray(net.lengths_matrix), L, atol=1e-4) + # weights must be the NMF weights, NOT the length matrix + np.testing.assert_allclose(np.asarray(net.weights_matrix), W, atol=1e-4) + assert float(np.max(net.lengths_matrix)) > 0, "delays lost (zero lengths)" + + def test_all_edge_attributes_survive(self): + rng = np.random.RandomState(1) + edges = {k: rng.rand(6, 6) for k in ("weight", "length", "fc", "local_connectivity")} + frozen, _ = self._roundtrip(edges) + assert set(edges).issubset(frozen) + + def test_length_resolved_by_meaning_not_exact_name(self): + # a sidecar naming the length edge ``tract_length`` must still drive delays + rng = np.random.RandomState(2) + L = rng.rand(6, 6) * 100.0 + frozen, net = self._roundtrip({"tract_length": L, "streamlinecount": rng.rand(6, 6)}, + primary="streamlinecount") + assert "tract_length" in frozen + np.testing.assert_allclose(np.asarray(net.lengths_matrix), L, atol=1e-4) + + +# ── region alias reconciliation (Β§ node-label crosswalk) ────────────── +# +# by_label node reconciliation must align a dataset-sourced target to the model +# network by LABEL, never by row index. These tests lock the properties that make +# it safer than index/order-based alignment: hemisphere parity and byte-identical +# results under an arbitrary target reordering. + + +class TestRegionAliasMap: + def _net(self, labels): + from tvbo.classes.network import Network + + n = len(labels) + w = np.ones((n, n)) - np.eye(n) + return Network.from_matrix(w, w, labels=list(labels)) + + def test_identity_when_no_aliases(self): + net = self._net(["L_A", "R_A"]) + assert net.region_alias_map() == {"L_A": "L_A", "R_A": "R_A"} + + def test_inline_node_aliases(self): + net = self._net(["L_A", "R_A"]) + net.nodes[0].alternateName = ["A_LEFT"] + net.nodes[1].alternateName = ["A_RIGHT"] + m = net.region_alias_map() + assert m["A_LEFT"] == "L_A" and m["A_RIGHT"] == "R_A" + # identity always retained so exact matches still resolve + assert m["L_A"] == "L_A" + + def test_ambiguous_alias_raises(self): + net = self._net(["L_A", "R_A"]) + net.nodes[0].alternateName = ["X"] + net.nodes[1].alternateName = ["X"] # same alias -> two regions + with pytest.raises(ValueError, match="[Aa]mbiguous"): + net.region_alias_map() + + def test_reconcile_hemisphere_safe_and_order_independent(self): + import xarray as xr + + # model lists LEFT first; the "empirical" target lists RIGHT first (opposite + # hemisphere order) under a divergent nomenclature carried as aliases. + model = self._net(["L_A", "R_A", "L_B", "R_B"]) + for node, alias in zip(model.nodes, ["A_LEFT", "A_RIGHT", "B_LEFT", "B_RIGHT"]): + node.alternateName = [alias] + amap = model.region_alias_map() + model_labels = model.node_labels + + # target: right-first order, empirical labels, a recognisable matrix + tlabels = ["A_RIGHT", "B_RIGHT", "A_LEFT", "B_LEFT"] + M = np.arange(16, dtype=float).reshape(4, 4) + M = M + M.T # symmetric so the check is unambiguous + + def align(labels, mat): + canon = [amap.get(l, l) for l in labels] + da = xr.DataArray(mat, dims=("i", "j"), coords={"i": canon, "j": canon}) + return da.sel(i=model_labels, j=model_labels).values + + A = align(tlabels, M) + + # hemisphere parity: no L<->R crossing + def hemi(l): + return "L" if l[:2] == "L_" or l.endswith("_LEFT") else "R" + + assert all(hemi(t) == hemi(amap[t]) for t in tlabels) + + # A must place target row "A_LEFT" at model index 0 (L_A), etc. β€” i.e. the + # aligned matrix is keyed to model order regardless of the target's order. + # shuffle target order -> aligned result must be byte-identical + for perm in ([2, 0, 3, 1], [3, 2, 1, 0], [1, 3, 0, 2]): + B = align([tlabels[k] for k in perm], M[np.ix_(perm, perm)]) + assert np.array_equal(A, B), f"order dependence under perm {perm}" + + +def _atlas_hemi(label): + """Hemisphere of a node label under any packaged-atlas convention, or None.""" + if label in ("Brain-Stem", "BRAIN_STEM", "brain-stem"): + return None + if label[:2] == "L_" or label.endswith("_LEFT") or label.startswith(("ctx-lh-", "left-")): + return "L" + if label[:2] == "R_" or label.endswith("_RIGHT") or label.startswith(("ctx-rh-", "right-")): + return "R" + return None + + +class TestAtlasAliases: + """Packaged atlas terminologies carry hemisphere-correct empirical aliases.""" + + @pytest.mark.parametrize("atlas,checks", [ + ("hcpmmp1", {"L_Thalamus": "THALAMUS_LEFT", "R_Thalamus": "THALAMUS_RIGHT", + "Brain-Stem": "BRAIN_STEM"}), + ("DesikanKilliany", {"left-thalamus": "THALAMUS_LEFT", "right-thalamus": "THALAMUS_RIGHT", + "ctx-lh-bankssts": "L_bankssts", "brain-stem": "BRAIN_STEM"}), + ]) + def test_atlas_aliases_present_and_hemisphere_consistent(self, atlas, checks): + from tvbo.classes.atlas import Atlas + + ents = getattr(getattr(Atlas(atlas), "terminology", None), "entities", None) or {} + if not ents: + pytest.skip(f"{atlas} atlas terminology not available") + for canon, empirical in checks.items(): + assert empirical in (ents[canon].alternateName or []), f"{canon} missing {empirical}" + + # every alias keeps its region's hemisphere; aliases are globally unique + seen = {} + for canon, ent in ents.items(): + for alt in ent.alternateName or []: + assert _atlas_hemi(canon) == _atlas_hemi(alt), f"hemisphere swap {canon} -> {alt}" + assert alt not in seen or seen[alt] == canon, f"alias {alt} on two regions" + seen[alt] = canon diff --git a/tests/test_network_node_refs.py b/tests/test_network_node_refs.py new file mode 100644 index 000000000..82a485055 --- /dev/null +++ b/tests/test_network_node_refs.py @@ -0,0 +1,90 @@ +"""Node-vector network references (``network.positions`` / ``network.instrength``). + +The node-level analogue of the connectome-matrix refs: an observation source, a +pipeline-callable argument, or an observer (``dynamics``) parameter may reference a +per-node vector derived from the network, which is embedded once as a module +constant. The subtle correctness point is that ``parse_reference`` splits +``network.positions`` into ``('network', 'positions')`` β€” so ``ref_to_code`` resolves +the BARE key ``'positions'``, while ``collect_network_node_arrays`` scans the FULL +``'network.positions'`` string. ``node_label`` must accept both forms or the emitted +constant name and the resolved reference silently disagree (the callable then gets a +``kwargs.get('positions')`` -> ``None`` instead of the embedded vector). +""" +from types import SimpleNamespace as NS + +import numpy as np +import pytest + +from tvbo.templates.tvboptim.utils import ( + node_label, node_const, collect_network_node_arrays, +) + + +@pytest.mark.parametrize("ref", ["network.positions", "positions", + "network.instrength", "instrength"]) +def test_node_label_accepts_both_qualified_and_bare(ref): + """Both the full `network.X` form (collect) and the bare `X` key that + parse_reference hands ref_to_code resolve to the same measure.""" + assert node_label(ref) == ref.split(".")[-1] + + +@pytest.mark.parametrize("ref", ["network.weight", "weight", "network.edges.length", + "network.observations.Bold", "theta", "positions.x", 42, None]) +def test_node_label_rejects_non_node_refs(ref): + """Edge matrices, state variables, network.observations, sub-refs, non-strings -> None.""" + assert node_label(ref) is None + + +def test_node_const_names(): + assert node_const("positions") == "_network_node_positions" + assert node_const("instrength") == "_network_node_instrength" + + +def test_emitted_constant_name_matches_resolved_reference(): + """The name collect/emit uses (node_const on the full-form measure) is identical to + the name ref_to_code resolves to (node_const on the parse_reference-stripped key). + This is the exact invariant the prefix bug broke.""" + for full in ("network.positions", "network.instrength"): + emitted = node_const(node_label(full)) # collect / emit side (full form) + stripped_key = full.split(".", 1)[1] # parse_reference('network.X') -> ('network','X') + resolved = node_const(node_label(stripped_key)) # ref_to_code side (bare key) + assert node_label(stripped_key) is not None, "bare key must resolve (the prefix bug)" + assert emitted == resolved + + +class _Net: + def node_positions(self): + return np.array([[0, 0, 0], [1, 0, 0], [0, 1, 0], [1, 1, 0]], float) + + def matrix(self, lab): + return np.array([[0, 1, 2, 0], [1, 0, 0, 3], + [0, 0, 0, 1], [2, 0, 1, 0]], float) if lab == "weight" else None + + +def test_collect_from_source_pipeline_and_observer_params(): + """A node ref is embedded whether it appears in a source, a pipeline argument, or an + observer dynamics parameter; instrength is the weighted in-degree (row sum).""" + obs_pipeline = NS(source=["theta"], + pipeline=[NS(arguments={"positions": NS(value="network.positions"), + "k": NS(value=2)})], + dynamics=None) + obs_observer = NS(source=["theta"], pipeline=[], + dynamics=NS(parameters={"instr": NS(source="network.instrength")})) + exp = NS(network=_Net(), observations={"a": obs_pipeline, "b": obs_observer}) + + arrays = collect_network_node_arrays(exp) + assert set(arrays) == {"positions", "instrength"} + assert np.allclose(arrays["positions"], [[0, 0, 0], [1, 0, 0], [0, 1, 0], [1, 1, 0]]) + assert np.allclose(arrays["instrength"], [3, 4, 1, 3]) # weight.sum(axis=1) = incoming + + +def test_collect_raises_when_vector_unbuildable(): + """A referenced node vector that cannot be built from the network is a hard error, + not a silent empty constant.""" + class _NoWeight(_Net): + def matrix(self, lab): + return None + exp = NS(network=_NoWeight(), + observations={"a": NS(source=["network.instrength"], pipeline=[], dynamics=None)}) + with pytest.raises(ValueError): + collect_network_node_arrays(exp) diff --git a/tests/test_network_obs_override.py b/tests/test_network_obs_override.py new file mode 100644 index 000000000..652378997 --- /dev/null +++ b/tests/test_network_obs_override.py @@ -0,0 +1,62 @@ +"""`compute_all_observations(network_obs=...)` overrides the module-level target. + +Network-observation targets (an empirical FC to fit against) are materialised into +module-level constants and bound once at ``run_experiment`` time. That is correct +for one process per subject, but a batched cohort fit scores many subjects in one +traced call, each against its own target carried as a traced leaf β€” so the scoring +path must honour a per-call ``network_obs`` override instead of the process-wide +constant. Without it every subject is silently scored against whichever target was +bound last. This renders the real FIC+EIB experiment and checks the override end to +end, so reverting the binding to the bare module constant fails here. +""" + +import types + +import numpy as np +import pytest + +from tvbo.classes.experiment import SimulationExperiment + +_EXPERIMENT = "tvbo/database/experiments/EI_Tuning_FIC_EIB_Optimization.yaml" + + +@pytest.fixture(scope="module") +def gen_module(): + """Render the experiment to a tvboptim module and exec it in isolation.""" + code = SimulationExperiment.from_file(_EXPERIMENT).render_code(format="tvboptim") + mod = types.ModuleType("gen_fic_eib") + exec(compile(code, "gen_fic_eib.py", "exec"), mod.__dict__) + return mod + + +def _fc_target_scalar(obs): + return float(np.asarray(obs.fc_target).ravel()[0]) + + +def test_network_obs_override_wins_over_module_constant(gen_module): + """A `network_obs` entry is used in place of the bound module constant.""" + bound = np.full((3, 3), 7.0) + override = np.full((3, 3), 9.0) + gen_module._bind_network_observations({"fc_target": bound}) + + # `only=set()` skips every simulated observation, so result/state are unused and + # this isolates the network-observation binding. + default = gen_module.compute_all_observations(None, None, only=set()) + overridden = gen_module.compute_all_observations( + None, None, only=set(), network_obs={"fc_target": override} + ) + + assert _fc_target_scalar(default) == 7.0, "module constant not honoured by default" + assert _fc_target_scalar(overridden) == 9.0, "network_obs override was ignored" + + +def test_absent_override_falls_back_to_module_constant(gen_module): + """An override dict without this observation leaves the module constant in place.""" + bound = np.full((3, 3), 5.0) + gen_module._bind_network_observations({"fc_target": bound}) + + # An unrelated key must not shadow fc_target β€” the fallback is per-observation. + obs = gen_module.compute_all_observations( + None, None, only=set(), network_obs={"something_else": np.zeros((3, 3))} + ) + assert _fc_target_scalar(obs) == 5.0 diff --git a/tests/test_observation_iri_functions.py b/tests/test_observation_iri_functions.py new file mode 100644 index 000000000..a19b24ecc --- /dev/null +++ b/tests/test_observation_iri_functions.py @@ -0,0 +1,82 @@ +"""A curated observation model referenced by `iri` merges its helper functions. + +An observation model whose pipeline calls helper functions by name (an HRF kernel, +a downsample, a strided convolution) ships those functions in a `functions:` block. +`Observation` has no `functions` slot β€” codegen reads them from `experiment.functions` +β€” so `populate_observation_from_iri` hands them to a `functions_sink` for the +experiment to merge. Without that, the pipeline's `function:` refs resolve to nothing +and the step degrades to a passthrough. +""" + +from tvbo import datamodel as dm +from tvbo.classes.observation import populate_observation_from_iri + + +def test_bold_tvb_pipeline_steps_are_function_calls(): + """Merged pipeline steps are FunctionCall (they may reference a function by name).""" + obs = dm.Observation(name="bold", iri="tvbo:BOLD_TVB", source=["S_e"]) + assert populate_observation_from_iri(obs) is True + assert obs.pipeline, "curated pipeline was not merged" + assert all(isinstance(s, dm.FunctionCall) for s in obs.pipeline) + + +def test_strided_model_merges_helper_functions_into_sink(): + """BOLD_HRF_strided ships strided_hrf + HRF helpers; they land in the sink.""" + obs = dm.Observation(name="bold", iri="tvbo:BOLD_HRF_strided", source=["S_e"]) + sink: dict = {} + assert populate_observation_from_iri(obs, functions_sink=sink) is True + + assert "strided_hrf" in sink, "the fused strided convolution function must merge" + for helper in ("hrf_kernel", "temporal_average", "prepend_history"): + assert helper in sink, f"pipeline calls {helper} by name; it must merge" + assert all(isinstance(f, dm.Function) for f in sink.values()) + + # The pipeline references strided_hrf, so the fusion actually reaches codegen. + names = [getattr(s, "function", None) or getattr(s, "name", None) for s in obs.pipeline] + assert "strided_hrf" in names + + +def test_sink_does_not_override_existing_functions(): + """A function already present in the sink (experiment-defined) wins.""" + sentinel = dm.Function(name="hrf_kernel", description="experiment override") + sink = {"hrf_kernel": sentinel} + obs = dm.Observation(name="bold", iri="tvbo:BOLD_HRF_strided", source=["S_e"]) + populate_observation_from_iri(obs, functions_sink=sink) + assert sink["hrf_kernel"] is sentinel, "curated helper must not clobber an existing one" + + +def test_no_sink_is_safe(): + """Merging without a sink (a model that needs no helpers) does not error.""" + obs = dm.Observation(name="bold", iri="tvbo:BOLD_HRF_strided", source=["S_e"]) + assert populate_observation_from_iri(obs) is True # functions simply not collected + + +def test_experiment_with_no_functions_merges_and_renders(tmp_path): + """An experiment with no `functions:` block that references a curated model still + renders β€” the model's helpers merge as a plain dict, not a JsonObj. + + The merge must not go through the LinkML functions setter (which re-wraps a + dict assignment into a JsonObj whose values are raw dicts, breaking + `dict(experiment.functions)` in codegen). Guards that regression end to end. + """ + from tvbo.classes.experiment import SimulationExperiment + + spec = tmp_path / "no_funcs.yaml" + spec.write_text( + "id: 999\n" + "label: none-functions iri test\n" + "dynamics: {name: Generic2dOscillator, iri: tvbo:Generic2dOscillator}\n" + "integration: {duration: 2000, step_size: 4.0, transient_time: 0.0}\n" + "observations:\n" + " bold: {iri: tvbo:BOLD_HRF_strided, source: [V]}\n" + ) + e = SimulationExperiment.from_file(str(spec)) + + assert isinstance(e.functions, dict), "merged functions must be a plain dict" + assert "strided_hrf" in e.functions and "hrf_kernel" in e.functions + + code = e.render_code(format="tvboptim") + import ast + + ast.parse(code) # must not raise (the JsonObj form broke dict(experiment.functions)) + assert "def strided_hrf" in code and "tensordot" in code diff --git a/tests/test_observation_reduction_parameters.py b/tests/test_observation_reduction_parameters.py new file mode 100644 index 000000000..8fdebc4a2 --- /dev/null +++ b/tests/test_observation_reduction_parameters.py @@ -0,0 +1,213 @@ +"""An observation reduction observer binds its ``Dynamics.parameters`` as named constants. + +A model ``Dynamics`` declares its constants as ``parameters`` (scalar, or array-valued for +an operator such as a mode-coupling matrix). An observer ``Dynamics`` β€” the co-integrated +auxiliary that computes an observation as a time recurrence β€” is the same class and so +declares constants the same way. These tests pin that the reduction resolver honours them: +they enter the symbolic vocabulary, survive into the rendered triple, and cannot silently +shadow a state variable. +""" + +import pytest +from mako.template import Template + +from tvbo.datamodel.schema import ( + DerivedVariable, + Dynamics, + Equation, + Observation, + Parameter, + StateVariable, +) +from tvbo.templates.tvboptim.utils import resolve_reduction + + +def _observer(state_rhs, output_rhs, parameters=None): + """An observation whose value is a recurrence over source ``x``.""" + return Observation( + name="obs", + source=["x"], + dynamics=Dynamics( + name="observer", + parameters=parameters or {}, + state_variables={ + "acc": StateVariable( + name="acc", + equation=Equation(rhs=state_rhs), + equation_type="recurrence", + ) + }, + derived_variables={"out": DerivedVariable(name="out", equation=Equation(rhs=output_rhs))}, + output=["out"], + ), + ) + + +def test_scalar_parameter_is_in_the_symbolic_vocabulary(): + obs = _observer("acc + g * x", "acc / count", {"g": Parameter(name="g", value=0.5)}) + red = resolve_reduction(obs) + + assert red["parameters"]["g"]["value"] == 0.5 + # The constant survives as a free symbol rather than being folded away or rejected. + assert "g" in {str(s) for s in red["states"][0]["update"].free_symbols} + + +def test_array_valued_parameter_is_kept_as_an_array_not_coerced_to_scalar(): + """An operator constant (here a matrix) must reach codegen intact.""" + op = [[1.0, 2.0], [3.0, 4.0]] + obs = _observer("acc + matmul(A, x)", "acc / count", {"A": Parameter(name="A", value=op)}) + red = resolve_reduction(obs) + + assert red["parameters"]["A"]["value"] == op + + +def test_parameter_shape_is_carried_through(): + obs = _observer( + "acc + matmul(A, x)", + "acc / count", + {"A": Parameter(name="A", value=[[1.0, 2.0], [3.0, 4.0]], shape="(2, 2)")}, + ) + red = resolve_reduction(obs) + + assert red["parameters"]["A"]["shape"] == "(2, 2)" + + +def test_an_undeclared_symbol_is_still_rejected(): + """The vocabulary widened to include parameters β€” it did not become permissive.""" + obs = _observer("acc + typo * x", "acc / count", {"g": Parameter(name="g", value=0.5)}) + + with pytest.raises(ValueError, match="typo"): + resolve_reduction(obs) + + +def test_a_parameter_may_not_shadow_a_state_variable(): + """One symbol cannot denote both a per-step state and a fixed constant.""" + obs = _observer("acc + x", "acc / count", {"acc": Parameter(name="acc", value=1.0)}) + + with pytest.raises(ValueError, match="both a state variable and a parameter"): + resolve_reduction(obs) + + +def test_an_observer_without_parameters_resolves_unchanged(): + """Regression: the shipped parameterless observers (e.g. effective frequency).""" + obs = _observer("x", "(x - acc) / dt", None) + red = resolve_reduction(obs) + + assert red["parameters"] == {} + assert red["source"] == "x" + + +# --- emission: the rendered init/update/finalize triple ------------------------------ + +_TEMPLATE = "tvbo/templates/tvboptim/tvbo-tvboptim-observation.py.mako" + + +def _render(obs): + red = resolve_reduction(obs) + tmpl = Template(filename=_TEMPLATE).get_def("render_reduction") + return tmpl.render(red=red, name="obs", s_idx=0, dt=0.1) + + +def test_constants_are_bound_in_the_rendered_triple(): + """Both kinds of constant bind by name in the closure the triple shares, and an + array operator reaches the backend as an array rather than a Python list.""" + obs = _observer( + "acc + g * matmul(A, x)", + "acc / count", + { + "A": Parameter(name="A", value=[[1.0, 2.0], [3.0, 4.0]]), + "g": Parameter(name="g", value=0.5), + }, + ) + code = _render(obs) + + assert "A = jnp.array([[1.0, 2.0], [3.0, 4.0]])" in code + assert "g = 0.5" in code + # The array-op handler lowers matmul through the reduction path. Operands are + # parenthesized so a compound operand (e.g. matmul(A, x/c)) keeps `@` binding + # tighter than `/` -> `A @ (x/c)`, not `(A @ x)/c`. + assert "(A) @ (x)" in code + + +def test_a_parameterless_observer_emits_no_constants_block(): + """The shipped observers' output is unchanged by the parameter binding.""" + code = _render(_observer("x", "(x - acc) / dt", None)) + + assert "Observer constants" not in code + + +# --- lazy constants: sourced/produced operators emit a load, never the bytes --------- + +class _Experiment: + """Minimal render context: only what resolve_reduction reads for materialisation.""" + + def __init__(self, source_file, network=None): + self._source_file = str(source_file) + self.network = network + + +def test_a_sourced_operator_emits_a_lazy_load_not_its_bytes(tmp_path): + """A large operator must never enter the generated source β€” the reduction reads it + from the companion at run time instead.""" + pytest.importorskip("h5py") + import h5py + + with h5py.File(tmp_path / "ops.h5", "w") as f: + f.create_dataset("grad_op", data=[[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]) + + obs = _observer( + "acc + matmul(A, x)", + "acc / count", + {"A": Parameter(name="A", source="ops.h5", measure="grad_op")}, + ) + red = resolve_reduction(obs, _Experiment(tmp_path / "study.yaml")) + code = Template(filename=_TEMPLATE).get_def("render_reduction").render( + red=red, name="obs", s_idx=0, dt=0.1 + ) + + assert "_load_constant(" in code + assert "grad_op" in code + # the array itself is nowhere in the source + assert "1.0, 2.0, 3.0" not in code and "jnp.array([[" not in code + assert red["parameters"]["A"]["lazy"][1] == "grad_op" + + +def test_the_existence_check_does_not_materialise(tmp_path, monkeypatch): + """resolve_reduction is also called bare as an 'is this a streaming reducer?' predicate; + that must not run the producer or write to disk as a side effect.""" + import tvbo.data.param_io as param_io + + called = [] + monkeypatch.setattr(param_io, "materialise", lambda *a, **k: called.append(1)) + + obs = _observer( + "acc + matmul(A, x)", + "acc / count", + {"A": Parameter(name="A", source="ops.h5", measure="grad_op")}, + ) + red = resolve_reduction(obs) # bare: the predicate path + + assert red is not None # still recognised as a reducer + assert called == [] # but nothing materialised + assert red["parameters"]["A"]["lazy"] is None # deferred, not resolved + + +def test_the_emitted_path_is_absolute(tmp_path): + """Generated modules are exec'd in memory, so a relative path has nothing to anchor + to β€” codegen resolves it against the spec dir, exactly as bids_dir is emitted.""" + pytest.importorskip("h5py") + import h5py + + with h5py.File(tmp_path / "ops.h5", "w") as f: + f.create_dataset("grad_op", data=[[1.0, 2.0]]) + + obs = _observer( + "acc + matmul(A, x)", + "acc / count", + {"A": Parameter(name="A", source="ops.h5", measure="grad_op")}, + ) + red = resolve_reduction(obs, _Experiment(tmp_path / "study.yaml")) + + from pathlib import Path + + assert Path(red["parameters"]["A"]["lazy"][0]).is_absolute() diff --git a/tests/test_param_io.py b/tests/test_param_io.py new file mode 100644 index 000000000..faca141f5 --- /dev/null +++ b/tests/test_param_io.py @@ -0,0 +1,442 @@ +"""Resolving a Parameter's value from its declared provenance. + +A parameter is a literal (``value:``), obtained (``source:`` + ``measure:``) or derived +(``producer:``). These pin the contract the resolver and codegen share: a literal is +materialised, anything else resolves lazily and the Parameter object itself is never +touched β€” which is what lets the generated datamodel stay untouched. +""" + +import sys + +import numpy as np +import pytest + +from tvbo.data import param_io +from tvbo.datamodel.schema import Callable, FunctionCall, Parameter + +pytest.importorskip("h5py") + + +@pytest.fixture(autouse=True) +def _clear(): + param_io.clear_cache() + yield + param_io.clear_cache() + + +@pytest.fixture +def store(tmp_path): + """A binary store holding two named arrays.""" + import h5py + + path = tmp_path / "operators.h5" + with h5py.File(path, "w") as f: + f.create_dataset("ops/grad_op", data=np.arange(6.0).reshape(2, 3)) + f.create_dataset("ops/boundary", data=np.array([True, False])) + return path + + +# --------------------------------------------------------------------- literal values + +def test_a_literal_value_is_returned_untouched(): + assert param_io.resolve(Parameter(name="a", value=0.5)) == 0.5 + + +def test_a_literal_is_not_lazy(): + """The rule codegen branches on: literals inline, everything else resolves.""" + assert not param_io.is_lazy(Parameter(name="a", value=0.5)) + + +def test_a_parameter_with_no_value_at_all_resolves_to_none(): + """A free parameter declares no value; that is the caller's business, not an error.""" + assert param_io.resolve(Parameter(name="free_one")) is None + + +# ---------------------------------------------------------------------------- sources + +def test_a_sourced_array_is_read_from_the_store(store, tmp_path): + p = Parameter(name="grad_op", source=store.name, measure="ops/grad_op") + + got = param_io.resolve(p, source_dir=tmp_path) + + np.testing.assert_array_equal(got, np.arange(6.0).reshape(2, 3)) + + +def test_a_relative_source_resolves_against_the_spec_directory(store, tmp_path): + """A kit carries its companion next to the spec, so relative must mean spec-relative.""" + p = Parameter(name="grad_op", source="operators.h5", measure="ops/grad_op") + + got = param_io.resolve(p, source_dir=tmp_path) + + assert got.shape == (2, 3) + + +def test_a_sourced_parameter_is_lazy_and_never_materialised(store, tmp_path): + """The whole point: a 66MB operator must not end up in `value` or in a YAML dump.""" + p = Parameter(name="grad_op", source=store.name, measure="ops/grad_op") + assert param_io.is_lazy(p) + + param_io.resolve(p, source_dir=tmp_path) + + assert p.value is None + + +def test_a_missing_source_raises_naming_the_parameter(tmp_path): + p = Parameter(name="grad_op", source="absent.h5", measure="x") + + with pytest.raises(ValueError, match="grad_op"): + param_io.resolve(p, source_dir=tmp_path) + + +def test_a_source_holding_several_arrays_requires_a_measure(store, tmp_path): + p = Parameter(name="grad_op", source=store.name) + + with pytest.raises(ValueError, match="measure"): + param_io.resolve(p, source_dir=tmp_path) + + +# -------------------------------------------------------------------------- producers + +_CALLS = [] + + +def _fake_precompute(k_ring=1): + """Stands in for a study's precompute; records calls so caching is observable.""" + _CALLS.append(k_ring) + return {"grad_op": np.full((2, 2), float(k_ring)), "boundary": np.zeros(2)} + + +@pytest.fixture +def producer_module(): + mod = sys.modules[__name__] + _CALLS.clear() + yield mod.__name__ + + +def _producer(output, k_ring=2, name="_fake_precompute"): + return FunctionCall( + callable=Callable(name=name, module=__name__), + arguments={"k_ring": {"name": "k_ring", "value": k_ring}}, + output=output, + ) + + +def test_a_produced_value_is_computed_and_selected_by_output(producer_module): + p = Parameter(name="grad_op", producer=_producer("grad_op")) + + got = param_io.resolve(p) + + np.testing.assert_array_equal(got, np.full((2, 2), 2.0)) + + +def test_a_producer_runs_once_across_parameters_sharing_it(producer_module): + """One precompute returning a bundle serves many parameters β€” it must not re-run.""" + a = Parameter(name="grad_op", producer=_producer("grad_op")) + b = Parameter(name="boundary", producer=_producer("boundary")) + + param_io.resolve(a) + param_io.resolve(b) + param_io.resolve(a) + + assert _CALLS == [2] + + +def test_differing_arguments_are_computed_separately(producer_module): + """The cache is content-addressed, so k_ring=2 must not serve k_ring=3.""" + two = param_io.resolve(Parameter(name="g", producer=_producer("grad_op", k_ring=2))) + three = param_io.resolve(Parameter(name="g", producer=_producer("grad_op", k_ring=3))) + + assert two[0, 0] == 2.0 and three[0, 0] == 3.0 + assert _CALLS == [2, 3] + + +def test_a_produced_parameter_is_lazy_and_never_materialised(producer_module): + p = Parameter(name="grad_op", producer=_producer("grad_op")) + assert param_io.is_lazy(p) + + param_io.resolve(p) + + assert p.value is None + + +def test_an_unknown_output_raises_listing_what_the_producer_returned(producer_module): + p = Parameter(name="typo", producer=_producer("no_such_key")) + + with pytest.raises(ValueError, match="no output 'no_such_key'"): + param_io.resolve(p) + + +def test_an_unimportable_producer_raises_pointing_at_code_source(): + p = Parameter( + name="x", + producer=FunctionCall(callable=Callable(name="nope", module="not_a_module")), + ) + + with pytest.raises(ValueError, match="code_source"): + param_io.resolve(p) + + +# ------------------------------------------------- entity references in producer args + +def _echo_positions(positions=None, hemi="lh"): + """Stands in for a producer that needs the network's geometry.""" + return {"pos": np.asarray(positions), "hemi": hemi} + + +def _network(n=3): + from tvbo.classes.network import Network + from tvbo.datamodel.schema import Coordinate, Node + + nodes = [ + Node(id=i, label=f"n{i}", position=Coordinate(x=float(i), y=1.0, z=2.0)) + for i in range(n) + ] + return Network(label="net", nodes=nodes) + + +def _ref_producer(value="network.nodes.position"): + return FunctionCall( + callable=Callable(name="_echo_positions", module=__name__), + arguments={ + "positions": {"name": "positions", "value": value}, + "hemi": {"name": "hemi", "value": "lh"}, + }, + output="pos", + ) + + +def test_a_producer_argument_may_reference_the_network(producer_module): + """`positions: network.nodes.position` must arrive as the array, not the string.""" + p = Parameter(name="ops", producer=_ref_producer()) + + got = param_io.resolve(p, context=_network(3)) + + assert got.shape == (3, 3) + np.testing.assert_array_equal(got[:, 0], [0.0, 1.0, 2.0]) + + +def test_a_non_reference_argument_stays_a_literal(producer_module): + """`hemi: lh` is a plain string β€” only fully-qualified network.* is a reference.""" + p = Parameter(name="ops", producer=_ref_producer()) + p.producer.output = "hemi" + + assert param_io.resolve(p, context=_network()) == "lh" + + +def test_a_reference_without_context_raises_asking_for_one(producer_module): + p = Parameter(name="ops", producer=_ref_producer()) + + with pytest.raises(ValueError, match="no context was given"): + param_io.resolve(p) + + +def test_an_unsupported_reference_lists_the_supported_forms(producer_module): + p = Parameter(name="ops", producer=_ref_producer(value="network.nonsense")) + + with pytest.raises(ValueError, match="network.nodes.position"): + param_io.resolve(p, context=_network()) + + +# ------------------------------------------------------------- shared-array immutability + +def test_a_resolved_array_is_read_only(store, tmp_path): + """One buffer is shared, so an in-place write must raise here, not corrupt a later run.""" + p = Parameter(name="grad_op", source=store.name, measure="ops/grad_op") + + got = param_io.resolve(p, source_dir=tmp_path) + + with pytest.raises(ValueError, match="read-only"): + got *= 2.0 + + +def test_a_produced_array_is_read_only(producer_module): + p = Parameter(name="grad_op", producer=_producer("grad_op")) + + got = param_io.resolve(p) + + with pytest.raises(ValueError, match="read-only"): + got[0, 0] = 99.0 + + +_OWNED = np.zeros((2, 2)) + + +def _echo_owned(k_ring=1): + """A producer that hands back an array the recipe still owns (a module-level cache).""" + return {"grad_op": _OWNED} + + +def test_readonly_does_not_freeze_the_producers_own_array(): + """Freezing the returned object in place would break the recipe's own later use of + an array it still holds β€” so resolve must hand back a read-only VIEW, not freeze it.""" + p = Parameter( + name="g", + producer=FunctionCall( + callable=Callable(name="_echo_owned", module=__name__), output="grad_op" + ), + ) + + got = param_io.resolve(p) + + assert not got.flags.writeable # the handed-out view is protected + assert _OWNED.flags.writeable # the recipe's own array is untouched + _OWNED[0, 0] = 7.0 # and still writable by its owner + + +# ------------------------------------------- materialise: the (file, key) codegen emits + +def test_a_sourced_parameter_materialises_to_its_own_file(store, tmp_path): + """Nothing is written: the bytes already live in the declared store.""" + p = Parameter(name="grad_op", source=store.name, measure="ops/grad_op") + + path, key = param_io.materialise(p, source_dir=tmp_path) + + assert path == store + assert key == "ops/grad_op" + + +def test_a_sourced_parameter_without_measure_cannot_be_materialised(store, tmp_path): + """A backend needs a key to read back; refuse rather than guess.""" + p = Parameter(name="grad_op", source=store.name) + + with pytest.raises(ValueError, match="measure"): + param_io.materialise(p, source_dir=tmp_path) + + +def test_a_produced_parameter_is_written_to_a_content_addressed_artifact( + producer_module, tmp_path +): + p = Parameter(name="grad_op", producer=_producer("grad_op")) + + path, key = param_io.materialise(p, cache_dir=tmp_path, context=None) + + assert path.exists() and key == "grad_op" + import h5py + + with h5py.File(path) as f: + np.testing.assert_array_equal(f["grad_op"][()], np.full((2, 2), 2.0)) + + +def test_the_whole_bundle_is_written_so_a_sibling_output_is_a_cache_hit( + producer_module, tmp_path +): + """One precompute emits every operator; siblings must not re-run it.""" + path, _ = param_io.materialise( + Parameter(name="grad_op", producer=_producer("grad_op")), cache_dir=tmp_path + ) + import h5py + + with h5py.File(path) as f: + assert sorted(f) == ["boundary", "grad_op"] + + +def test_a_materialised_artifact_is_reused_across_processes(producer_module, tmp_path): + """The point of the on-disk cache: the producer does not re-run for a fresh process.""" + p = Parameter(name="grad_op", producer=_producer("grad_op")) + param_io.materialise(p, cache_dir=tmp_path) + assert _CALLS == [2] + + param_io.clear_cache() # a new process has no in-memory cache + param_io.materialise(p, cache_dir=tmp_path) + + assert _CALLS == [2] # served from disk, not recomputed + + +def test_differing_producer_arguments_materialise_to_different_artifacts( + producer_module, tmp_path +): + """Content-addressed: an edited argument is a new artifact, never a stale hit.""" + two, _ = param_io.materialise( + Parameter(name="g", producer=_producer("grad_op", k_ring=2)), cache_dir=tmp_path + ) + three, _ = param_io.materialise( + Parameter(name="g", producer=_producer("grad_op", k_ring=3)), cache_dir=tmp_path + ) + + assert two != three + + +def test_a_literal_parameter_cannot_be_materialised(): + """A literal inlines; asking for a file it does not have is a caller error.""" + with pytest.raises(ValueError, match="no file to read"): + param_io.materialise(Parameter(name="a", value=0.5)) + + +def test_the_returned_key_names_an_array_that_exists(producer_module, tmp_path): + """The pair codegen emits must be readable: a key absent from the artifact would + fail inside a simulation, far from the declaration that caused it.""" + import h5py + + p = Parameter(name="grad_op", producer=_producer("grad_op")) + path, key = param_io.materialise(p, cache_dir=tmp_path) + + with h5py.File(path) as f: + assert key in f + + +def test_an_outputless_producer_returning_a_bundle_is_refused(producer_module, tmp_path): + """Ambiguous: the artifact holds several arrays and nothing says which to read.""" + prod = _producer("grad_op") + prod.output = None + p = Parameter(name="ops", producer=prod) + + with pytest.raises(ValueError, match="name the one to read"): + param_io.materialise(p, cache_dir=tmp_path) + + +def test_a_typo_output_is_caught_at_materialise_not_at_run_time(producer_module, tmp_path): + p = Parameter(name="y", producer=_producer("TYPO")) + + with pytest.raises(ValueError, match="no array 'TYPO'"): + param_io.materialise(p, cache_dir=tmp_path) + + +def test_a_typo_output_is_caught_even_on_a_cache_hit(producer_module, tmp_path): + """The write is skipped on a hit, so validation must not live in the write path.""" + param_io.materialise( + Parameter(name="ok", producer=_producer("grad_op")), cache_dir=tmp_path + ) + param_io.clear_cache() + + with pytest.raises(ValueError, match="no array 'TYPO'"): + param_io.materialise(Parameter(name="y", producer=_producer("TYPO")), cache_dir=tmp_path) + + +def test_a_typo_measure_is_caught_at_materialise(store, tmp_path): + p = Parameter(name="x", source=store.name, measure="ops/TYPO") + + with pytest.raises(ValueError, match="no array 'ops/TYPO'"): + param_io.materialise(p, source_dir=tmp_path) + + +# ------------------------------------------------ provenance is mutually exclusive + +def test_source_and_producer_together_are_refused(producer_module, tmp_path, store): + """Two claims about where the value comes from; resolve() and materialise() would + otherwise each pick their own and hand back different values for one parameter.""" + p = Parameter( + name="x", source=store.name, measure="ops/grad_op", producer=_producer("grad_op") + ) + + with pytest.raises(ValueError, match="mutually exclusive"): + param_io.resolve(p, source_dir=tmp_path) + with pytest.raises(ValueError, match="mutually exclusive"): + param_io.materialise(p, source_dir=tmp_path, cache_dir=tmp_path) + + +def test_value_and_source_together_are_refused(store, tmp_path): + p = Parameter(name="x", value=1.0, source=store.name, measure="ops/grad_op") + + with pytest.raises(ValueError, match="mutually exclusive"): + param_io.resolve(p, source_dir=tmp_path) + + +def test_rebinding_a_bundle_key_cannot_poison_the_cache(producer_module): + """A producer read whole (no `output`) hands back a copy: its dict is the cache entry.""" + whole = _producer("grad_op") + whole.output = None + p = Parameter(name="ops", producer=whole) + + param_io.resolve(p)["grad_op"] = "junk" + + np.testing.assert_array_equal(param_io.resolve(p)["grad_op"], np.full((2, 2), 2.0)) diff --git a/tests/test_skills_assets.py b/tests/test_skills_assets.py new file mode 100644 index 000000000..d19d3dda6 --- /dev/null +++ b/tests/test_skills_assets.py @@ -0,0 +1,145 @@ +"""Tests for per-skill ``assets/`` handling in the skills pipeline. + +Locks in the behaviour that lets a canonical user skill ship an ``assets/`` +directory: ``parse_skill`` discovers it, ``render_claude_code`` mirrors it next +to ``SKILL.md`` (pruning stale files, skipping bytecode), and the CLI +``install`` / ``uninstall`` round-trip carries then removes it. +""" +from __future__ import annotations + +import shutil +from pathlib import Path + +from typer.testing import CliRunner + +from tvbo.cli import app +from tvbo.skills import CANONICAL_PACKAGE_DIR, load_canonical +from tvbo.skills._render import parse_skill, render_claude_code + +runner = CliRunner() + + +def _make_skill(root: Path, name: str, *, assets: dict[str, str] | None = None) -> Path: + """Create a minimal canonical skill dir; return its ``SKILL.md`` path.""" + d = root / name + d.mkdir(parents=True) + (d / "SKILL.md").write_text( + f"---\nname: {name}\ndescription: test skill\n" + f"metadata:\n audience: user\n---\n\n# {name}\n\nbody\n", + encoding="utf-8", + ) + for rel, content in (assets or {}).items(): + p = d / "assets" / rel + p.parent.mkdir(parents=True, exist_ok=True) + p.write_text(content, encoding="utf-8") + return d / "SKILL.md" + + +# --------------------------------------------------------------- parse_skill + + +def test_parse_skill_detects_assets_dir(tmp_path): + md = _make_skill(tmp_path, "with-assets", assets={"tmpl.txt": "x"}) + assert parse_skill(md).assets_dir == md.parent / "assets" + + +def test_parse_skill_without_assets_is_none(tmp_path): + md = _make_skill(tmp_path, "no-assets") + assert parse_skill(md).assets_dir is None + + +# ---------------------------------------------------------- render_claude_code + + +def test_render_mirrors_assets_tree(tmp_path): + md = _make_skill( + tmp_path / "src", "s", assets={"a.tmpl": "A", "sub/b.py": "print('b')"} + ) + dest = tmp_path / "dest" + out = render_claude_code(parse_skill(md), dest) + assert out == dest / "s" / "SKILL.md" + assert (dest / "s" / "assets" / "a.tmpl").read_text() == "A" + assert (dest / "s" / "assets" / "sub" / "b.py").read_text() == "print('b')" + + +def test_render_without_assets_writes_no_assets_dir(tmp_path): + md = _make_skill(tmp_path / "src", "s") + dest = tmp_path / "dest" + render_claude_code(parse_skill(md), dest) + assert (dest / "s" / "SKILL.md").exists() + assert not (dest / "s" / "assets").exists() + + +def test_render_prunes_upstream_deleted_asset(tmp_path): + src = tmp_path / "src" + md = _make_skill(src, "s", assets={"keep.txt": "k", "drop.txt": "d"}) + dest = tmp_path / "dest" + render_claude_code(parse_skill(md), dest) + assert (dest / "s" / "assets" / "drop.txt").exists() + + (md.parent / "assets" / "drop.txt").unlink() # remove upstream, re-render + render_claude_code(parse_skill(md), dest) + assert (dest / "s" / "assets" / "keep.txt").exists() + assert not (dest / "s" / "assets" / "drop.txt").exists() + + +def test_render_removes_assets_dir_when_source_loses_all(tmp_path): + src = tmp_path / "src" + md = _make_skill(src, "s", assets={"a.txt": "a"}) + dest = tmp_path / "dest" + render_claude_code(parse_skill(md), dest) + assert (dest / "s" / "assets").is_dir() + + shutil.rmtree(md.parent / "assets") # skill no longer ships assets + render_claude_code(parse_skill(md), dest) + assert not (dest / "s" / "assets").exists() + + +def test_render_ignores_bytecode_and_os_noise(tmp_path): + md = _make_skill( + tmp_path / "src", + "s", + assets={ + "m.py": "x = 1", + "__pycache__/m.cpython-313.pyc": "junk", + ".DS_Store": "junk", + }, + ) + dest = tmp_path / "dest" + render_claude_code(parse_skill(md), dest) + assert (dest / "s" / "assets" / "m.py").exists() + assert not (dest / "s" / "assets" / "__pycache__").exists() + assert not (dest / "s" / "assets" / ".DS_Store").exists() + + +# ------------------------------------------------- CLI install / uninstall + + +def _shipped_user_skill_with_assets() -> str: + """Name of a bundled user skill that ships an ``assets/`` dir (or "").""" + for s in load_canonical([CANONICAL_PACKAGE_DIR]): + if s.audience in {"user", "both"} and s.assets_dir is not None: + return s.name + return "" + + +def test_install_then_uninstall_carries_and_removes_assets(tmp_path): + name = _shipped_user_skill_with_assets() + assert name, "expected at least one shipped user skill with an assets/ dir" + + res = runner.invoke( + app, + ["skills", "install", "--target", "claude-code", + "--skill", name, "--out", str(tmp_path)], + ) + assert res.exit_code == 0, res.stdout + skill_dir = tmp_path / f"tvbo-{name}" + assert "managed-by: tvbo" in (skill_dir / "SKILL.md").read_text() + assert (skill_dir / "assets").is_dir() + assert any((skill_dir / "assets").rglob("*")), "installed assets/ is empty" + + res = runner.invoke( + app, ["skills", "uninstall", "--target", "claude-code", "--out", str(tmp_path)] + ) + assert res.exit_code == 0, res.stdout + assert not skill_dir.exists() # SKILL.md + assets/ + dir all gone diff --git a/tests/test_skills_sync.py b/tests/test_skills_sync.py new file mode 100644 index 000000000..69e12e37c --- /dev/null +++ b/tests/test_skills_sync.py @@ -0,0 +1,213 @@ +"""Tests for the ``tvbo skills sync`` repo-side guard. + +Covers the failure modes the check has to catch: rendered copies that have +drifted from their canonical source, rendered copies with no canonical source +behind them (a personal skill committed by accident), shipped user skills +pointing at maintainer skills that never ship, and ``requires_extras`` naming +a group that does not exist in ``pyproject.toml``. +""" +from __future__ import annotations + +from pathlib import Path + +import pytest +import typer + +from tvbo.cli.skills import ( + _find_bad_extras, + _find_leaked_refs, + _find_orphans, + _references, + _sync_check, +) +from tvbo.skills import load_canonical +from tvbo.skills._render import render_agents_md, render_claude_code, render_copilot + + +def _canonical( + root: Path, + name: str, + *, + audience: str = "maintainer", + body: str = "body", + extras: list[str] | None = None, +) -> None: + """Write a minimal canonical skill under *root*.""" + d = root / name + d.mkdir(parents=True) + extras_line = f" requires_extras: {extras!r}\n" if extras is not None else "" + (d / "SKILL.md").write_text( + f"---\nname: {name}\ndescription: test skill\n" + f"metadata:\n audience: {audience}\n{extras_line}---\n\n# {name}\n\n{body}\n", + encoding="utf-8", + ) + + +@pytest.fixture +def synced(tmp_path): + """A canonical root plus its freshly-rendered, in-sync output dirs.""" + src = tmp_path / "skills" + _canonical(src, "real-skill") + skills = load_canonical([src]) + + claude_dir = tmp_path / ".claude" / "skills" + copilot_dir = tmp_path / ".github" / "instructions" + agents_md = tmp_path / "AGENTS.md" + for s in skills: + render_claude_code(s, claude_dir) + render_copilot(s, copilot_dir) + render_agents_md(skills, agents_md) + return skills, claude_dir, copilot_dir, agents_md, tmp_path + + +# ------------------------------------------------------------- _find_orphans + + +def test_no_orphans_when_every_render_has_a_source(synced): + skills, claude_dir, copilot_dir, *_ = synced + assert _find_orphans(skills, claude_dir, copilot_dir) == [] + + +def test_detects_stray_claude_skill(synced): + skills, claude_dir, copilot_dir, *_ = synced + stray = claude_dir / "personal-thing" + stray.mkdir() + (stray / "SKILL.md").write_text("---\nname: personal-thing\n---\n\nmine\n") + + assert _find_orphans(skills, claude_dir, copilot_dir) == [ + ".claude/skills/personal-thing/" + ] + + +def test_detects_stray_copilot_instructions(synced): + skills, claude_dir, copilot_dir, *_ = synced + (copilot_dir / "ghost.instructions.md").write_text("---\napplyTo: '**'\n---\n\nx\n") + + assert _find_orphans(skills, claude_dir, copilot_dir) == [ + ".github/instructions/ghost.instructions.md" + ] + + +def test_user_skill_needs_no_copilot_render(tmp_path): + """`sync` only renders copilot files for maintainer skills, so a user + skill's *absent* instructions file is not an orphan.""" + src = tmp_path / "skills" + _canonical(src, "user-skill", audience="user") + skills = load_canonical([src]) + + claude_dir = tmp_path / ".claude" / "skills" + copilot_dir = tmp_path / ".github" / "instructions" + copilot_dir.mkdir(parents=True) + for s in skills: + render_claude_code(s, claude_dir) + + assert _find_orphans(skills, claude_dir, copilot_dir) == [] + + +# ----------------------------------------------------------- _find_leaked_refs + + +@pytest.mark.parametrize( + "body, expected", + [ + ("defers to **codegen-templates** (render internals)", True), + ("resolve it with /codegen-templates first", True), + ("see the `codegen-templates` skill for details", True), + ("nothing to see here", False), + ], +) +def test_reference_forms(body, expected): + assert _references(body, "codegen-templates") is expected + + +def test_bare_substring_is_not_a_reference(): + """A skill named `git` must not match every mention of gitignore.""" + assert not _references("everything else is gitignored; do not commit it", "git") + + +def test_user_skill_referencing_maintainer_skill_is_a_leak(tmp_path): + src = tmp_path / "skills" + _canonical(src, "internal-only", audience="maintainer") + _canonical( + src, "shipped", audience="user", body="see the `internal-only` skill for more" + ) + leaks = _find_leaked_refs(load_canonical([src])) + assert len(leaks) == 1 and "internal-only" in leaks[0] + + +def test_maintainer_skill_may_reference_maintainer_skill(tmp_path): + """Maintainer skills never ship, so cross-refs between them are fine.""" + src = tmp_path / "skills" + _canonical(src, "internal-only", audience="maintainer") + _canonical( + src, "other", audience="maintainer", body="see the `internal-only` skill" + ) + assert _find_leaked_refs(load_canonical([src])) == [] + + +def test_user_skill_referencing_user_skill_is_fine(tmp_path): + src = tmp_path / "skills" + _canonical(src, "sibling", audience="user") + _canonical(src, "shipped", audience="user", body="see the `sibling` skill") + assert _find_leaked_refs(load_canonical([src])) == [] + + +# ------------------------------------------------------------ _find_bad_extras + + +def _pyproject(root: Path, extras: list[str]) -> None: + groups = "\n".join(f'{e} = ["x"]' for e in extras) + (root / "pyproject.toml").write_text( + f'[project]\nname = "t"\n\n[project.optional-dependencies]\n{groups}\n', + encoding="utf-8", + ) + + +def test_real_extra_passes(tmp_path): + src = tmp_path / "skills" + _canonical(src, "s", audience="user", extras=["julia"]) + _pyproject(tmp_path, ["julia", "tvb"]) + assert _find_bad_extras(load_canonical([src]), tmp_path) == [] + + +def test_nonexistent_extra_is_reported(tmp_path): + """The real bug: skills declared requires_extras: ["jax"], but jax is core.""" + src = tmp_path / "skills" + _canonical(src, "s", audience="user", extras=["jax"]) + _pyproject(tmp_path, ["julia", "tvb"]) + bad = _find_bad_extras(load_canonical([src]), tmp_path) + assert len(bad) == 1 and "jax" in bad[0] + + +def test_missing_pyproject_skips_the_check(tmp_path): + src = tmp_path / "skills" + _canonical(src, "s", audience="user", extras=["anything"]) + assert _find_bad_extras(load_canonical([src]), tmp_path) == [] + + +# --------------------------------------------------------------- _sync_check + + +def test_sync_check_passes_when_clean(synced): + _sync_check(*synced) + + +def test_sync_check_fails_on_orphan(synced): + skills, claude_dir, copilot_dir, agents_md, root = synced + stray = claude_dir / "personal-thing" + stray.mkdir() + (stray / "SKILL.md").write_text("---\nname: personal-thing\n---\n\nmine\n") + + with pytest.raises(typer.Exit) as exc: + _sync_check(skills, claude_dir, copilot_dir, agents_md, root) + assert exc.value.exit_code == 1 + + +def test_sync_check_fails_on_drift(synced): + skills, claude_dir, copilot_dir, agents_md, root = synced + edited = claude_dir / "real-skill" / "SKILL.md" + edited.write_text(edited.read_text() + "\nhand-edited\n", encoding="utf-8") + + with pytest.raises(typer.Exit) as exc: + _sync_check(skills, claude_dir, copilot_dir, agents_md, root) + assert exc.value.exit_code == 1 diff --git a/tests/test_strided_convolve.py b/tests/test_strided_convolve.py new file mode 100644 index 000000000..144631bec --- /dev/null +++ b/tests/test_strided_convolve.py @@ -0,0 +1,89 @@ +"""`strided_convolve` array-op: a subsampled HRF convolution with no FFT buffer. + +`strided_convolve(X, k, s)` computes the ``'valid'`` convolution of ``X`` (leading +time axis) with kernel ``k``, evaluated ONLY at the ``[s::s]`` output indices β€” the +samples that survive TR subsampling. It fuses ``fftconvolve(X, k, 'valid')`` and +``subsample data[s::s]`` into one windowed matmul, so the BOLD forward model never +materialises the full-length FFT (the transient-memory peak of the online fit). + +The numeric contract, asserted below: + * BYTE-IDENTICAL to a direct full ``'valid'`` convolution then ``[s::s]`` β€” same + arithmetic, discarded outputs skipped. + * Equal to the FFT path to FFT roundoff (~1e-12 float64) β€” a different algorithm, + never bit-for-bit. +""" + +import numpy as np +import pytest + +from tvbo.parse.expression import parse_eq +from tvbo.codegen.code import JaxPrinter, NumPyPrinter + + +@pytest.fixture(scope="module") +def signal(): + rng = np.random.default_rng(0) + L, n_new, N = 64, 48, 5 + x = rng.standard_normal((L + n_new, N)) + k = rng.standard_normal((L,)) + return x, k, L + + +def test_renders_for_numpy_and_jax(): + expr = parse_eq("strided_convolve(X, k, s)") + jax_src = JaxPrinter(module="jnp").doprint(expr) + np_src = NumPyPrinter(module="np").doprint(expr) + # Fuses convolve+subsample into a single tensordot β€” no fftconvolve, no FFT buffer. + assert "tensordot" in jax_src and "fftconvolve" not in jax_src + assert "tensordot" in np_src + assert jax_src.startswith("jnp.") and np_src.startswith("np.") + + +def test_byte_identical_to_windowed_matmul(signal): + """strided_convolve == an explicit windowed matmul over the retained indices. + + The point of strided_convolve is that it skips outputs a later subsample would + discard WITHOUT changing the arithmetic of the ones it keeps. Reconstructing the + kept outputs as the same reversed-kernel Β· window dot products must give a + bit-identical result β€” the exact equivalence the FFT path cannot offer. + """ + x, k, L = signal + s = 16 + src = NumPyPrinter(module="np").doprint(parse_eq("strided_convolve(X, k, s)")) + got = eval(src, {"np": np, "X": x, "k": k, "s": s}) + + n_valid = x.shape[0] - L + 1 + kept = np.arange(s, n_valid, s) + windows = np.stack([x[j:j + L] for j in kept], axis=0) # (n_kept, L, N) + ref = np.tensordot(k[::-1], windows, axes=([0], [1])) + + assert got.shape == ref.shape + assert np.array_equal(got, ref), "strided must equal the windowed matmul bit-for-bit" + + +def test_matches_fftconvolve_within_roundoff(signal): + """strided_convolve equals scipy fftconvolve('valid')[s::s] to FFT roundoff.""" + scipy_signal = pytest.importorskip("scipy.signal") + x, k, L = signal + s = 16 + src = NumPyPrinter(module="np").doprint(parse_eq("strided_convolve(X, k, s)")) + got = eval(src, {"np": np, "X": x, "k": k, "s": s}) + + fft = np.stack( + [scipy_signal.fftconvolve(x[:, n], k, mode="valid") for n in range(x.shape[1])], + axis=1, + )[s::s] + + assert np.allclose(got, fft, rtol=1e-9, atol=1e-9) + + +def test_preserves_trailing_axes(signal): + """A middle singleton axis (time, 1, node) rides through the reduction.""" + x, k, L = signal + s = 16 + x3 = x[:, None, :] # (T, 1, N) β€” the BOLD prepend_history shape + src = NumPyPrinter(module="np").doprint(parse_eq("strided_convolve(X, k, s)")) + got = eval(src, {"np": np, "X": x3, "k": k, "s": s}) + ref2d = eval(src, {"np": np, "X": x, "k": k, "s": s}) + assert got.shape[1] == 1 and got.shape[2] == x.shape[1] + assert np.allclose(np.squeeze(got, axis=1), ref2d) diff --git a/tests/test_tvboptim_byte_identity.py b/tests/test_tvboptim_byte_identity.py index d6bb4574d..bd8d70468 100644 --- a/tests/test_tvboptim_byte_identity.py +++ b/tests/test_tvboptim_byte_identity.py @@ -198,6 +198,205 @@ def test_rww_exploration_runs(): assert np.all(np.isfinite(grid)), "exploration produced non-finite values" +# A small, self-contained experiment with a connectome and a sweep: a 2-node +# Kuramoto network, deterministic (RK4, no noise), no empirical observations. +_MINI_EXPERIMENT = """ +id: 7 +dynamics: + name: Kuramoto + label: Kuramoto + parameters: + omega: {name: omega, value: 0.0628, unit: rad_per_ms} + coupling_inputs: + c: {name: c, description: "coupling"} + state_variables: + theta: + name: theta + unit: rad + equation: {lhs: "Derivative(theta, t)", rhs: "omega + c"} + variable_of_interest: true + coupling_variable: true + output: [theta] + number_of_modes: 1 +network: + number_of_nodes: 2 + parameters: + conduction_speed: {name: conduction_speed, value: 3.0, unit: mm_per_ms} + nodes: + - {id: 0, label: r0} + - {id: 1, label: r1} + edges: + - {source: 0, target: 1, weight: 0.5} + - {source: 1, target: 0, weight: 0.5} +coupling: + name: KuramotoCoupling + label: KuramotoCoupling + parameters: + a: {name: a, value: 0.01} + N: {name: N, value: 1.0} + pre_expression: {rhs: "sin(theta_j - theta_i)"} + post_expression: {rhs: "a * gx / N"} + incoming_states: [theta] + local_states: [theta] +integration: + method: RungeKutta4thOrder + duration: 200.0 + step_size: 1.0 + transient_time: 50.0 +explorations: + sweep: + name: sweep + mode: product + space: + - parameter: conduction_speed + explored_values: [2.0, 4.0] +""" + + +def test_experiment_result_roundtrips_via_sidecar(tmp_path): + """A saved ExperimentResult is self-describing and reproducible. + + Runs a full experiment (2-node connectome + sweep), saves the unified + ``<stem>.h5`` + ``<stem>.yaml`` sidecar, then reloads *only the sidecar spec* + (connectome frozen alongside as an HDF5 companion), reruns, and re-saves. The + two result Datasets must be identical and the two YAML sidecars byte-identical + β€” the sidecar loses no config and replays exactly, and the HDF5 opens with a + plain ``xarray.open_dataset``. The file name is BIDS-clean (``exp-<id>``). + """ + import filecmp + from pathlib import Path + + import xarray as xr + + spec = tmp_path / "mini.yaml" + spec.write_text(_MINI_EXPERIMENT) + + exp = SimulationExperiment.from_file(str(spec)) + exp.configure() + written = exp.run("tvboptim").save(str(tmp_path / "A")) + h5_a = next(p for p in written if p.endswith(".h5")) + yaml_a = next(p for p in written if p.endswith(".yaml")) + + # BIDS-clean name: exp-<id> prefix, no spaces. + name = Path(h5_a).name + assert name.startswith("exp-") and " " not in name, name + # Opens with a plain xarray call β€” no TVBO-specific reader. + assert xr.open_dataset(h5_a).data_vars, "result HDF5 has no data variables" + + # Reload the sidecar spec alone (connectome frozen alongside), replicate, re-save. + exp2 = SimulationExperiment.from_file(yaml_a) + exp2.configure() + written2 = exp2.run("tvboptim").save(str(tmp_path / "B")) + h5_b = next(p for p in written2 if p.endswith(".h5")) + yaml_b = next(p for p in written2 if p.endswith(".yaml")) + + # Same BIDS stem, data identical, provenance sidecar byte-identical. + assert Path(h5_b).name == name + xr.testing.assert_identical(xr.open_dataset(h5_a), xr.open_dataset(h5_b)) + assert filecmp.cmp(yaml_a, yaml_b, shallow=False), "sidecar YAML not byte-identical" + + +# A 2-node delayed Kuramoto network with a `network.conduction_speed` exploration +# axis. Unlike _MINI_EXPERIMENT (zero tract lengths -> inert), the edges carry a +# distance, so delay = distance / conduction_speed is non-zero and the swept speed +# genuinely changes the dynamics. Exercises the DenseLengthGraph + live graph.speed +# codegen path for a network-scope axis. +_MINI_DELAYED_EXPERIMENT = """ +id: 8 +dynamics: + name: Kuramoto + label: Kuramoto + parameters: + omega: {name: omega, value: 0.0628, unit: rad_per_ms} + coupling_inputs: + c: {name: c, description: "coupling"} + state_variables: + theta: + name: theta + unit: rad + equation: {lhs: "Derivative(theta, t)", rhs: "omega + c"} + variable_of_interest: true + coupling_variable: true + output: [theta] + number_of_modes: 1 +network: + number_of_nodes: 2 + parameters: + conduction_speed: {name: conduction_speed, value: 3.0, unit: mm_per_ms} + nodes: + - {id: 0, label: r0} + - {id: 1, label: r1} + edges: + - source: 0 + target: 1 + parameters: + weight: {value: 0.5} + distance: {value: 30.0} + - source: 1 + target: 0 + parameters: + weight: {value: 0.5} + distance: {value: 30.0} +coupling: + name: KuramotoCoupling + label: KuramotoCoupling + delayed: true + parameters: + a: {name: a, value: 0.01} + N: {name: N, value: 1.0} + pre_expression: {rhs: "sin(theta_j - theta_i)"} + post_expression: {rhs: "a * gx / N"} + incoming_states: [theta] + local_states: [theta] +integration: + method: RungeKutta4thOrder + duration: 200.0 + step_size: 1.0 + transient_time: 50.0 +explorations: + sweep: + name: sweep + mode: product + space: + - parameter: network.conduction_speed + explored_values: [2.0, 4.0] +""" + + +def test_network_conduction_speed_axis_sweeps(tmp_path): + """A `network.conduction_speed` axis actually varies the delays. + + Guards two failure modes the delay-graph codegen must avoid: (1) the axis must + be classified network-scope even when given as ``explored_values`` β€” otherwise + it is swept as a non-existent dynamics parameter and every cell comes out + identical (a silently-inert sweep); (2) sweeping the ``DenseLengthGraph.speed`` + leaf under vmap must match running each speed on its own (no cross-contamination). + """ + import copy + + import yaml + + spec = yaml.safe_load(_MINI_DELAYED_EXPERIMENT) + + def run(vals): + d = copy.deepcopy(spec) + d["explorations"]["sweep"]["space"][0]["explored_values"] = vals + p = tmp_path / f"delayed_{len(vals)}_{vals[0]}.yaml" + p.write_text(yaml.safe_dump(d)) + exp = SimulationExperiment.from_file(str(p)) + exp.configure() + return np.asarray(exp.run("tvboptim").explorations.sweep.results) + + grid = run([2.0, 4.0]) + assert grid.shape[0] == 2, f"expected 2 cells, got {grid.shape}" + assert np.all(np.isfinite(grid)), "sweep produced non-finite values" + # Different conduction speeds => different delays => different dynamics. + assert not np.allclose(grid[0], grid[1]), "conduction_speed sweep is inert (is_network lost?)" + # Each swept cell equals running that single speed alone. + assert_identical("speed=2.0 cell", grid[0], run([2.0])[0]) + assert_identical("speed=4.0 cell", grid[1], run([4.0])[0]) + + def test_rww_optimization_runs(): exp = _load_landscape(2000.0, 500.0) for opt in (exp.optimizations or {}).values(): diff --git a/tests/test_warmstart_resolve.py b/tests/test_warmstart_resolve.py new file mode 100644 index 000000000..e27f464b7 --- /dev/null +++ b/tests/test_warmstart_resolve.py @@ -0,0 +1,130 @@ +"""End-to-end for `Experiment._resolve_from_experiment_params` β€” the consumer side of +the from_experiment parameter warm-start. + +Covers, against a source result `.h5`: + * a dynamics VECTOR sourced from a tuned estimate (``estimate__J_i``), reconciled by + node label; + * a coupling per-edge MATRIX sourced from a tuned estimate (``estimate__wLRE``), + reconciled on BOTH node axes; + * the legacy path β€” a dynamics vector sourced from a recorded OBSERVATION + (``observation__control_mask``, unlabelled) β€” the Taher `g` case, taken in model + order with no reconcile. +""" +from __future__ import annotations + +import numpy as np +import pytest + +from tvbo.classes.experiment import SimulationExperiment + +# A 2-node consumer with initial_state.from_experiment and three measure-sourced params. +_CONSUMER = """ +id: 100 +initial_state: {method: from_experiment, source_experiment: 99} +dynamics: + name: Kuramoto + label: Kuramoto + parameters: + omega: {name: omega, value: 0.0628, unit: rad_per_ms} + J_i: {name: J_i, value: 0.0, free: true, heterogeneous: true, shape: "(n_nodes,)", measure: J_i} + g: {name: g, value: 0.0, free: true, heterogeneous: true, shape: "(n_nodes,)", measure: control_mask} + coupling_inputs: + c: {name: c, description: "coupling"} + state_variables: + theta: + name: theta + unit: rad + equation: {lhs: "Derivative(theta, t)", rhs: "omega + c"} + variable_of_interest: true + coupling_variable: true + output: [theta] + number_of_modes: 1 +network: + number_of_nodes: 2 + nodes: + - {id: 0, label: r0} + - {id: 1, label: r1} + edges: + - {source: 0, target: 1, weight: 0.5} + - {source: 1, target: 0, weight: 0.5} +coupling: + name: KuramotoCoupling + label: KuramotoCoupling + parameters: + a: {name: a, value: 0.01} + N: {name: N, value: 1.0} + wLRE: {name: wLRE, value: 1.0, free: true, heterogeneous: true, shape: "(n_nodes, n_nodes)", measure: wLRE} + pre_expression: {rhs: "sin(theta_j - theta_i)"} + post_expression: {rhs: "a * gx / N"} + incoming_states: [theta] + local_states: [theta] +integration: {method: RungeKutta4thOrder, duration: 10.0, step_size: 1.0, transient_time: 0.0} +""" + +_J_I = np.array([1.0, 2.0]) +_WLRE = np.array([[0.1, 0.2], [0.3, 0.4]]) +_MASK = np.array([1.0, 0.0]) + + +def _write_source_h5(dirpath, labels=("r0", "r1")): + """A source result exposing tuned estimates (labelled) + a recorded observation.""" + xr = pytest.importorskip("xarray") + labels = list(labels) + ds = xr.Dataset({ + "estimate__J_i": xr.DataArray(_J_I, dims=["node"], coords={"node": labels}), + "estimate__wLRE": xr.DataArray( + _WLRE, dims=["node_i", "node_j"], + coords={"node_i": labels, "node_j": labels}), + # legacy: unlabelled observation (Taher control_mask) + "observation__control_mask": xr.DataArray(_MASK, dims=["control_mask_d0"]), + }) + path = dirpath / "exp-99_desc-test_result.h5" + ds.to_netcdf(path, engine="h5netcdf") + return path + + +def _consumer(tmp_path): + spec = tmp_path / "consumer.yaml" + spec.write_text(_CONSUMER) + return SimulationExperiment.from_file(str(spec)) + + +def test_resolve_estimate_vector_matrix_and_legacy_observation(tmp_path): + _write_source_h5(tmp_path) + exp = _consumer(tmp_path) + out = exp._resolve_from_experiment_params(results_root=str(tmp_path)) + assert out is not None + assert set(out) == {"J_i", "g", "wLRE"} + + # vector estimate, reconciled (identity, same 2-node network) + np.testing.assert_allclose(np.asarray(out["J_i"]).ravel(), _J_I) + # matrix estimate β€” shape preserved (NOT ravelled), reconciled on both axes + wl = np.asarray(out["wLRE"]) + assert wl.shape == (2, 2) + np.testing.assert_allclose(wl, _WLRE) + # legacy observation source (unlabelled) β€” model order, no reconcile + np.testing.assert_allclose(np.asarray(out["g"]).ravel(), _MASK) + + +def test_reconcile_by_label_permuted_source(tmp_path): + """Source records estimates in the OPPOSITE node order; reconcile must realign by + label (never positional), so J_i/wLRE come back in the model's r0,r1 order.""" + _write_source_h5(tmp_path, labels=("r1", "r0")) # swapped source order + # the source arrays are authored in [r1, r0] order: + # estimate__J_i = [1,2] means r1->1, r0->2 => model order [r0,r1] -> [2,1] + exp = _consumer(tmp_path) + out = exp._resolve_from_experiment_params(results_root=str(tmp_path)) + np.testing.assert_allclose(np.asarray(out["J_i"]).ravel(), [2.0, 1.0]) + # wLRE authored in [r1,r0]x[r1,r0]; realigned to [r0,r1]x[r0,r1] => reverse both axes + np.testing.assert_allclose(np.asarray(out["wLRE"]), _WLRE[::-1, :][:, ::-1]) + + +def test_no_measure_params_returns_none(tmp_path): + """An experiment with no measure-sourced params resolves to None (no seed).""" + _write_source_h5(tmp_path) + spec = tmp_path / "plain.yaml" + spec.write_text(_CONSUMER.replace(", measure: J_i", "") + .replace(", measure: control_mask", "") + .replace(", measure: wLRE", "")) + exp = SimulationExperiment.from_file(str(spec)) + assert exp._resolve_from_experiment_params(results_root=str(tmp_path)) is None diff --git a/tests/test_wave_array_primitives.py b/tests/test_wave_array_primitives.py new file mode 100644 index 000000000..00aa2b4df --- /dev/null +++ b/tests/test_wave_array_primitives.py @@ -0,0 +1,89 @@ +"""General array-op primitives for per-timestep detectors / permutation tests. + +``take`` (2-D gather), ``sum_axis`` (single-axis reduction), and ``pearson`` +(node-collapsing correlation) are backend-abstracted printer primitives, so a +wave / graph / significance observable can be authored as declarative equations +instead of backend ``source_code``. Each parses to a SymPy Function and prints to +the backend's array algebra; here we render for jax + numpy and execute against a +numpy reference. +""" +import numpy as np +import pytest + +from tvbo.parse.expression import parse_eq +from tvbo.codegen import render_expression + + +def _render(rhs, fmt, params): + return render_expression(parse_eq(rhs, parameters=params), format=fmt, parameters=params) + + +def _env(fmt): + """Eval namespace + array constructor for a backend format.""" + if fmt == "jax": + import jax.numpy as jnp + return {"jnp": jnp}, jnp.array + return {"np": np}, np.array + + +@pytest.mark.parametrize("fmt,mod", [("jax", "jnp"), ("numpy", "np")]) +def test_take_is_a_2d_gather(fmt, mod): + code = _render("take(x, idx)", fmt, ["x", "idx"]) + assert code == f"{mod}.take(x, idx)" + env, arr = _env(fmt) + x = np.array([10.0, 20, 30, 40]) + idx = np.array([[0, 1], [2, 0], [3, 3]]) + got = eval(code, env, {"x": arr(x), "idx": arr(idx)}) + assert np.allclose(np.asarray(got), x[idx]) # == fancy indexing x[idx] + + +@pytest.mark.parametrize("fmt,mod", [("jax", "jnp"), ("numpy", "np")]) +def test_sum_axis_reduces_one_axis(fmt, mod): + code = _render("sum_axis(x, 1)", fmt, ["x"]) + assert code == f"{mod}.sum(x, axis=1)" + env, arr = _env(fmt) + X = np.arange(12.0).reshape(3, 4) + got = eval(code, env, {"x": arr(X)}) + assert np.allclose(np.asarray(got), X.sum(axis=1)) + + +def test_pearson_matches_numpy_corrcoef(): + import jax + jax.config.update("jax_enable_x64", True) + import jax.numpy as jnp + code = _render("pearson(a, b)", "jax", ["a", "b"]) + # expands to reduction primitives (backend-agnostic), not a bespoke call + assert "mean" in code and "sqrt" in code and "sum" in code + rng = np.random.default_rng(0) + a = rng.standard_normal(50) + b = 0.6 * a + 0.4 * rng.standard_normal(50) + got = float(eval(code, {"jnp": jnp}, {"a": jnp.array(a), "b": jnp.array(b)})) + assert abs(got - float(np.corrcoef(a, b)[0, 1])) < 1e-12 # exact in float64 + + +@pytest.mark.parametrize("fmt,mod", [("jax", "jnp"), ("numpy", "np")]) +def test_clip_any_all_render(fmt, mod): + """clip/any/all complete the per-timestep detector vocabulary (clip before acos, + any over a significance mask).""" + assert _render("clip(x, -1, 1)", fmt, ["x"]) == f"{mod}.clip(x, -1, 1)" + assert _render("any(x)", fmt, ["x"]) == f"{mod}.any(x)" + assert _render("all(x)", fmt, ["x"]) == f"{mod}.all(x)" + env, arr = _env(fmt) + x = np.array([-2.0, 0.5, 3.0]) + assert np.allclose(np.asarray(eval(_render("clip(x, -1, 1)", fmt, ["x"]), env, {"x": arr(x)})), + np.clip(x, -1, 1)) + assert bool(eval(_render("any(x > 0)", fmt, ["x"]), env, {"x": arr(x)})) is True + + +def test_masked_mean_form_composes(): + """The axis-1 masked-mean the wave detector uses composes from the primitives: + sum_axis(ang*nbr_mask, 1) / deg == (ang*nbr_mask).sum(1)/deg.""" + import jax.numpy as jnp + code = _render("sum_axis(ang * nbr_mask, 1) / deg", "jax", ["ang", "nbr_mask", "deg"]) + assert code.replace(" ", "") == "jnp.sum(ang*nbr_mask,axis=1)/deg" + rng = np.random.default_rng(1) + ang = rng.standard_normal((5, 3)) + nbr_mask = (rng.random((5, 3)) > 0.3).astype(float) + deg = nbr_mask.sum(1) + got = eval(code, {"jnp": jnp}, {"ang": jnp.array(ang), "nbr_mask": jnp.array(nbr_mask), "deg": jnp.array(deg)}) + assert np.allclose(np.asarray(got), (ang * nbr_mask).sum(1) / deg) diff --git a/todo.md b/todo.md index 7cd2a5f30..e40a282a7 100644 --- a/todo.md +++ b/todo.md @@ -113,6 +113,33 @@ layer and buggy β€” do NOT keep it; Phase B replaces it: synced. Also switch the runtime load off the deprecated `tvb-o.owl` (see this section). +## Unify experiment selection on `SimulationStudy` (dedup the two CLIs) + +`tvbo run` and `tvbo workflow` both resolve `--experiment` against a study by +matching `{key, name, label, str(id)}` on the datamodel objects, then +reverse-derive `sel = id or key or name or label` to hand back to +`SimulationStudy.get_experiment(sel)` for materialisation. The `{…}` identity set +is now shared via `_common.experiment_ids()`, but the resolution block (guard β†’ +`sel` β†’ `get_experiment` β†’ `die`) is still copy-pasted in both CLIs and has drifted +(`hasattr(exp,"run")` vs `hasattr(exp,"render")`; different `die` wording). Root +cause: `get_experiment` (`tvbo/classes/study.py:117`) matches by **id only**, so +each CLI must do its own 4-field match first. + +Fix at the right layer: +- Broaden `SimulationStudy.get_experiment` to accept id **or** key/name/label + (backward-compatible β€” id still matches). +- Add `SimulationStudy.select_experiments(selector) -> list[runtime experiment]` + that splits the comma-list and returns runtime (`.run`/`.render`-capable) + experiments. +- Collapse both CLIs to one call, deleting the per-CLI 4-field match, the `sel` + reverse-derivation, and the `hasattr` guard. The comma-list *semantics* stay + per-CLI (`tvbo run` runs all in-process; `tvbo workflow` fans into separate + kits) β€” that difference is intended, not duplication. + +Deferred from a `/simplify` pass because it touches `study.py` (outside the +reviewed CLI diff) and the CLIs were being actively edited. Surfaced by 3/4 +cleanup agents (reuse + altitude). + ## Harmonize class names with `tvboptim` Rename `ExplorationAxis` β†’ `Axis` and reshape it so tvbo can declaratively @@ -124,6 +151,18 @@ specify any `Space` configuration that tvboptim supports Full design, rationale, file-by-file impact, and step-by-step implementation plan: **see `dev/tvboptim_harmonization.md`**. +### Expose dynamics parameters as `net.dynamics[name].parameters` +The built tvboptim `Network` exposes model parameters at `net.dynamics.params.<P>` +(a `Bunch`), but the tvbo schema convention is `Dynamics.parameters` keyed by model +name. Two mismatches: +- naming: tvboptim `.params` vs tvbo `.parameters`; +- shape: tvboptim `net.dynamics` is a single object, not name-keyed, so + `net.dynamics[name].parameters.P` (the natural path for multi-model networks) fails. +Needed: expose `.parameters` (alias or rename) and make `net.dynamics` addressable by +model name, so introspection/round-trip uses one convention on both sides of the +tvbo↔tvboptim boundary. (Surfaced while inspecting the Taher2019 built model β€” +parameters ARE there, just at `net.dynamics.params.P`.) + ## Unify Exploration / Optimization / Pareto / Inference under one `Search` concept **Status:** design north-star; Hopf_Pareto PR ships only the forward-compatible @@ -350,6 +389,108 @@ regression. Not blocking the RC paper β€” flagged here for after that schema PR lands. +## Operating-point primitive: constraint-defined parameters + linear-response observations + +**One capability, driven by Deco 2014 Figs 2c/5/6, but use-case-independent.** The unifying +insight: FIC's `J_i` and the Fig 5/6 analytic observables (covariance, PSD, Fisher) are *the same +kind of thing* β€” **symbolic quantities defined by a relation, resolved at a computed operating +point**. Build the primitive once; both fall out. + +### First-class `OperatingPoint` +- A declared, resolvable fixed point of the (deterministic) vector field: + `operating_point: {method: time_integration | newton}`. Reuses the existing + `initial_state: time_integration` machinery; `newton` solves `f(x*,p)=0` directly (noise off). +- BOTH free-parameter constraints (below) AND observations (below) are evaluated **relative to + it**. It is the shared object, resolved per-backend (Julia time-integration for continuation; + JAX `solve_fp`/newton for observations). + +### FIC = constraint-defined `DerivedParameter` (NO control law) +- `J_i` is already declared `free: true` (a *derived* parameter β€” value determined by tuning, not + the user). Its set-point is already declared as the FIC `Algorithm`'s `TuningObjective` + (`activity_target`, `target_variable: S_e`, `target_value`). **Reuse both β€” zero new schema.** +- Continuation realization: extend the **network-continuation** codegen (`_build_network_context` + + the `network_mode` branch already built) so `free` params become **extra unknown blocks whose + defining equation is the `TuningObjective` residual** (`H_e βˆ’ target = 0`), not an ODE. This is a + defining-function / extended-system continuation. `J_i(G)` falls out of the equilibrium; the + Deco "FIC diverges at G>4.45" appears as a **feasibility-boundary bifurcation** of the + constrained system. Faithful to Deco's `fsolve` (algebraic tuning), no fake timescale, no + spurious slow eigenvalue. +- Generalizes for free to EIB `wLRE`/`wFFI` and any future tuned parameter. +- **Parked (separate, optional):** a genuinely *dynamical* homeostasis mode β€” the same law as a + co-integrated slow state `dJ_i/dt = Ξ·Β·S_iΒ·(H_eβˆ’Ο)` (Vogels/Schirner live plasticity). Same + equilibrium; build only when a live-plasticity model needs it. NOT for faithful Deco. + +### Operating-point-relative observations (Figs 5/6) β€” closes E1/E2 +- Observation callables must receive **(resolved model params, operating-point state, + `network.weight`)** as **symbols via `render_expression`** (`tvbo/codegen/code.py:1216`), jnp + output β€” NOT `numpy`, NOT `jnp.array(repr(...))`. **Supersedes the reverted numpy + `_network_weights` block** in `tvbo-tvboptim-observation.py.mako` (working-tree revert pending). +- Runs on **tvboptim/JAX** (host-observation path β€” the analytic observables are differentiable + linear-response quantities at the FP; see `reference-tvbo-observation-host-grid-split`). + +### Symbolic solver spec (backend-abstracted printer primitives) +**This is the linear-algebra layer for the observables above β€” declare symbolic, emit per-backend, +implement only the backend a use-case needs.** Follows +`feedback-codegen-backend-abstracted-printer-primitives` (cf. `~/tools/tvbo-arrayops`). +- **Jacobian `A` β€” fully symbolic, no autodiff.** The dfun is already symbolic, so + `A = sympy.Matrix(dfun_rhs).jacobian(state_vars)`; print via `render_expression`. Backend- + independent by construction (emits `jnp` on JAX, `ForwardDiff`/analytic on Julia). Noise `Q` + from the declared noise (`nsig`/`sigma` β†’ diagonal), also symbolic. +- **Solve/inverse primitives** β€” the only true numerical-linear-algebra ops. Add as ONE + sympy-printer handler each, dispatching to per-printer primitives: + - `lyapunov(A, Q)` β†’ continuous Lyapunov `AΞ£+Ξ£Aα΅€+Q=0` (covariance, Eq 24). + JAX: `jax.scipy.linalg.solve_continuous_lyapunov`. Julia: **stub** (add when needed). + - `matrix_inverse(M)` β†’ for PSD `(iΟ‰Iβˆ’A)⁻¹ Q (iΟ‰Iβˆ’A)⁻ᴴ` (Eq 28), swept over Ο‰. + JAX: `jnp.linalg.inv` / `jnp.linalg.solve`. Julia: **stub**. + - (Fisher Eq 33/34 = trace/quadratic forms over the above β€” reuse `matrix_inverse` + existing + reduce/trace primitives; no new primitive.) +- Implement the **JAX emission now** (Figs 5/6 target JAX); leave Julia emission stubbed with a + clear `NotImplementedError` so the general structure exists without gold-plating an unused + backend. Register the primitives in the arrayops printer table, not ad hoc in the template. +- **Definition of done:** `render_expression` of a Lyapunov/PSD relation over the symbolic Jacobian + emits valid jnp; the numbers match the current `deco2014_plot.py` `solve_fp`/moments/PSD/Fisher + values (bit-close), with the whole thing declared in the recipe β€” no hand-rolled plotter math. + +### Cleaner Fisher (deferred; current `lr_fisher` is the forward-only interim) +Status: `lr_fisher` (`_linear_response.py.mako`) is SHIPPED β€” a self-contained partial that sweeps the +stimulus event's Ξ”I, re-settles the operating point (settle + Newton polish) per Ξ”I, and builds +`FI = ΞΌ'α΅€P⁻¹μ' + Β½Tr[(P'P⁻¹)Β²]` by **finite differences**. It is metadata-driven (regions/variable/Ξ”I +from the `locc_stim` event + `analysis: {type: fisher}` params), not a use-case hack, and sits at the +same level as `lr_covariance`/`lr_psd`. Kept as-is by decision (2026-07). Two clean-ups when revisited: +- **Factor a general `moments(ΞΈ)` primitive** β€” ΞΌ(ΞΈ), P(ΞΈ) at a swept parameter β€” reusable for *any* + parametric analysis of the linear-noise moments (sensitivity, identifiability, …), with `lr_fisher` + becoming a thin reduction on top. Removes the sweep/re-settle duplication between cov/psd and Fisher. +- **Differentiable Lyapunov β‡’ autodiff Fisher.** The finite-difference scheme is a *direct consequence* + of the forward-only covariance choice (JAX eig has no eigenvector gradient, #2748). Add the + `custom_vjp` adjoint-Lyapunov (`Aα΅€S+SA+PΜ„=0` β†’ `Δ€=SPα΅€+Sα΅€P`, `QΜ„=S`; validated exact to 5e-7 vs FD) + so ΞΌβ€², Pβ€² come from `jax.jacobian(moments)(ΞΈ)` β€” no sweep bookkeeping, closest to a symbolic FI + reduction, and makes the whole moments stack differentiable/optimisable. Reopens the forward-only + decision, so gated on a use-case that needs gradients through the moments. + +Full narrative dev-plan + phase gates: +`…/replication_studies/Deco2014/docs_Replication_Deco2014/DEV_PLAN_recipe_native.md`. + +## Unify by-label node reconcile as a backend-printed arrayops primitive + +**Status:** someday / generalization (deferred 2026-07-15). Backend-portable **indexing**, +not symbolic math β€” sympy is only the delivery vehicle (printer primitive), the op is a gather. + +Every by-label node alignment in tvbo computes a gather index in Python (`region_alias_map()` ++ shared-labels) and applies it ad hoc: +- dataset-FC reconcile β€” `resolve_dataset_observations` / `dataset_reconcile_index` (`.sel` / numpy take), +- the `from_experiment` free-parameter warm-start β€” `estimate__<param>` β†’ reconciled seed + (reuses the dataset reconcile machinery today; see `dev/from-experiment-parameter-warmstart-design.md`), +- any future node-map / atlas-crosswalk alignment. + +Generalize into ONE backend-abstracted arrayops primitive +`gather_by_label(arr, src_labels, dst_labels, alias_map)` (vector β†’ 1 axis; square matrix β†’ both +axes), registered in the arrayops printer table (numpy / jax / julia), so all three share it. +**Not needed for the warm-start itself** β€” that seed is a resolve-time constant, so the existing +Python reconcile is reused. Worth doing when a second consumer needs a *backend-portable* +label-gather (inside the emitted/differentiable path), or purely to dedup the three ad-hoc paths. +Register in the arrayops printer table, not ad hoc in a template +(`feedback-codegen-backend-abstracted-printer-primitives`). + ## Improve Observations - **Stateful Observations** (BOLD / balloon-Windkessel pattern). Some @@ -388,6 +529,179 @@ There are classical examples, however we need to find a solution to describe any - Convolution +### Compile the algorithm tuning loop with `lax.scan` (GPU + differentiable) + +**Deferred 2026-07-13** β€” investigated, scoped, and consciously postponed (not a +CPU win; do it when we go GPU or want gradient tuning). + +**Motivation.** `run_<algo>` in `tvbo-tvboptim-algorithm.py.mako:583` runs the +tuning iterations as a **Python `for i in range(n_iterations)`** that calls the +jitted `model_fn` per step. Each iteration = one `simulation_period` (720 ms = 1 +BOLD TR) sim + one parameter update; `n_iterations` is the tuning-step count +(50 000/stage for the Schirner 6-stage schedule). Converting the loop to +`jax.lax.scan` (a *fold* β€” it compiles the sequential chain, does not parallelise +it) would (a) run the whole tuning chain as **one on-device kernel** (no per-step +Python↔XLA dispatch/host-sync), unlocking real GPU throughput, and (b) make the +fit **differentiable** (gradient-based tuning / Optax, `gradient_eib`). + +**Why deferred (evidence).** By first principles the CPU payoff is small: each +iteration is dominated by the jitted 720-step Γ— N-node `model_fn`; the ~10 extra +jax ops (buffer roll, reducer evict/add/emit, update rules) are **async-dispatched** +(the Python loop runs ahead of the device) and the only forced host-syncs are the +periodic `print` and the end β€” so removable overhead is a few % on CPU. A wall-clock +measurement was attempted but the box was at load ~54 (99 python procs from other +sessions), so timing was unusable; the first-principles argument stands. Subject +parallelism is **not** blocked by this β€” it lives at the `tvbo workflow` / Snakemake +layer (one job per subject, own FC path). So this is a **GPU + differentiability** +enhancement, worthless for the current CPU + Snakemake replication path. + +**Scope when picked up (large, high-risk β€” gate + byte-equivalence test).** The +carry must thread: `state` (`initial_state.dynamics`, `noise.key`, +`coupling.*.wLRE/wFFI`, `dynamics.J_i`), the sliding-window **buffer**, the +**streaming-reducer accumulator** + its periodic exact `resync`, and the **BOLD +monitor** `_history` (functional `eqx.tree_at`, no in-place mutation). Hard parts: +`result_history.<param>.append(...)` records the **full NΓ—N `wLRE`/`wFFI`** at +`save_every` β€” `scan` emits every step or none, and every-step NΓ—N over 50 000 is +~28 GB/param, so preserving matrix snapshots needs a **chunked scan** (scan in +`save_every` blocks, record matrices between blocks). Also: collectible-observation +appends, `print` β†’ `jax.debug.print`, and the **nested-include** mode +(`run_<inner>()` inside the loop β†’ nested scan; Schirner uses `combined` so N/A). +Companion to the streaming-reducer work below (same loop body). MUST ship behind a +codegen flag with the Python loop as fallback + a `scan == python-loop` +byte-equivalence test before it becomes default. + +### DONE (2026-07-13): equation-based derived observations + +Added a general **`first_passage` aggregation** (`AggregationType` enum + +`tvbo-tvboptim-observation.py.mako` branch reading `parameters.threshold`) β€” first +sample where a source crosses a threshold over the time axis, via `argmax` of the +crossing (backend-independent). Works end-to-end (Schirner Exp 50 DM decision: +`t_A`/`t_B` = first 40 Hz crossing of A/B_PFC). + +**Fixed** the derived-observation gap: `compute_all_observations` +(`tvbo-tvboptim-experiment.py.mako`) only emitted CALLABLE/function-based derived +observations β€” an `equation`-pipeline stage set `pipeline_call=None` and was +silently dropped, so `obs.<name>` was never set (`'Bunch' object has no attribute +<name>`). Added an `elif pipeline_equation and src_obs_list` branch that binds each +source observation to a local and renders the equation inline via `jaxcode` +(= `render_expression`, so `user_functions` + local `parameters` are forwarded, +backend-independent). Covers BOTH the base run and the exploration grid (shared +function). `import functools` added (render_expression emits `functools.reduce` +for `Min`/`Max`). Validated byte-exact: Schirner Exp 50 `integration_time`/`winner` +over scalar first-passage sources, AND a synthetic `obs_v+obs_w` / `2*(obs_v-obs_w)` +over (300,1,1) TIME-SERIES sources (max err 0.0). No regression (observation + +experiment codegen suites green). The gap was tvboptim-specific β€” Julia/pyrates/report +templates don't share this path. + +### Workflow from_experiment dependency: SLURM afterok not wired + +FIXED (2026-07-14) the Snakemake key-mismatch: `plan().depends_on` recorded +`str(int(source.id))` while `_ep_by_key`/output dirs key by `_san(experiment_key)` +(explicit `key` if set) β€” an explicit-key source silently dropped its edge, and a +non-numeric ref crashed `int()`. Now `plan()` stores the raw id/key/name (no int), +and `_emit_snakemake_study` resolves each dep to the source's sanitized key via an +id/key/nameβ†’key map (`_key_of`), so the emitted `input:` points at the source's +real output dir. Validated: dep to a `key:baseline` (id 30) source β†’ +`input: f"{OUT_DIR}/baseline/result.h5"`; 37/37 workflow tests pass. + +STILL OPEN: the `depends_on` comment promises "SLURM afterok", but only +`_emit_snakemake_study` consumes it β€” no SLURM emitter turns a cross-experiment +`from_experiment` edge into an `afterok` (the existing afterok is the within-experiment +arrayβ†’finalize gather). A study with a `from_experiment` dep submitted via SLURM runs +dependents unordered. Wire cross-experiment afterok into the SLURM path (or drop the +comment's promise). + +### first_passage could emit a time, not a sample index (altitude) + +`first_passage` currently returns a sample INDEX; consumers convert to a time by +multiplying by the sampling step (Schirner Exp 50: `Min(t_A,t_B) * 0.5`, where 0.5 +duplicates `integration.step_size`). first_passage is the only aggregation whose +output unit isn't the source's unit, and the literal drifts if step_size changes. +Deeper form: have the aggregation emit `argmax(...) * dt` (a first-passage time in +ms) β€” then `integration_time` = `Min(t_A,t_B)` with no literal and the step lives +in one place. Deferred (behaviour/contract change, and needs correct dt/period +handling when the observation subsamples): the effective step is `period` when set, +else the integration `dt`; getting that wrong silently mis-scales. Winner (order +comparison) is unaffected either way. + +### Julia printer: `argmax(...) * scalar` fails + +`render_expression('argmax(r >= thr) * dt', format='julia')` raises +`TypeError: can't multiply sequence by non-int of type 'Symbol'` in the Julia +printer (jax/numpy render fine: `dt*jnp.argmax(jnp.greater_equal(r, thr))`). +Surfaced 2026-07-13 while proving the DM first-passage observation (decision = +first threshold crossing β†’ integration time) is expressible with existing +array-ops (`argmax`/`where`/`max`). Backend-independence gap β€” the DM decision +observation renders on jax/numpy but not Julia until this is fixed. Low priority +(DM circuit runs on jax/numpy), but it's a genuine printer bug in the +`argmax`-times-scalar path. + +### Codegen-emit streaming reducers (tvbo emits, tvboptim ships none) + +**Principle.** Windowed pipeline reducers (`compute_fc` β†’ an incremental FC +accumulator, dFC/FCD, metastability) are backend-independent math. tvbo EMITS the +concrete reducer into the generated experiment; the backend provides only the +framework the reducer plugs into (tvboptim's sliding-window loop drives an +`add/evict/emit/resync` protocol). Realizes the global "tvbo extends backends via +codegen" principle. (Origin: referencing tvboptim's unreleased `windowed_cov` by +string broke CI on the pinned `0.2.4` β€” hand-writing a realization in one backend +was the wrong layer.) + +**Stage 1 β€” DONE (2026-07-14).** The *algorithm* streaming path (mechanism A) now +emits the reducer instead of importing a tvboptim factory: +- `StreamingReducerSpec.factory` (tvboptim import string) β†’ `.emitter` (name of a + tvbo-emitted factory, `_make_windowed_fc_reducer`). +- `_factory_available` + the `importlib` guard **deleted** β€” no external factory + to resolve, so the `0.2.4` CI-breakage stopgap is gone by construction. +- `tvbo-tvboptim-algorithm.py.mako` emits `_make_windowed_fc_reducer` locally (a + `SimpleNamespace` with `add/evict/emit/resync`) carrying the **numerically-stable + mean-centred** co-moment: Welford `add` + reverse-Welford `evict` downdate + + two-pass `resync`. NOT the naive one-pass form β†’ byte-identical to `compute_fc` + incl. DC offset (8.3e-17 vs the naive 8.5e-4; proof + `scratchpad/verify_windowed_cov.py`). So the precision issue (old finding #1) is + fixed **by construction** β€” no separate windowed_cov fix needed. +- Generated EI_Tuning code: 0 `windowed_cov` references; `test_experiment_runs + [EI_Tuning]` passes. tvboptim's `windowed_cov`/`windowed_fcd` are now + unreferenced β†’ **delete them from tvboptim** (its own branch); the uncommitted + `windowed_cov` WIP mis-parked on `differentiable-delays` should be **dropped, not + fixed**. `types/spaces.py` (Space array-axis) is unrelated β€” its own tvboptim PR. +- Files: `tvbo/codegen/streaming_reducers.py`, `tvbo-tvboptim-algorithm.py.mako`. + +**Stage 2 β€” DONE: symbolic, use-case-independent, multi-backend lowering.** (2026-07-14) +- **Recipe is metadata**: the reducer is a declarative `StreamingReducerSpec` authored as + YAML in `tvbo/database/reducers/*.yaml` (`state` + `add`/`evict`/`resync` assignment + strings + `emit`); `streaming_reducers.py` loads and registers them. **No use case is + hardcoded** β€” adding a reducer is a YAML file. Sequential reassignment encodes the data + flow (no `new_*` temporaries). +- **General resolver**: `tvbo/codegen/reducers.py::resolve_streaming_reducer(spec, fmt)` + parses any spec's strings to sympy against its vocabulary and prints per backend. No + reducer-specifics. +- **General template**: `tvbo-tvboptim-algorithm.py.mako` iterates the resolved + state/assignments into backend scaffolding with generic comments (0 FC-specific words). +- **Printer array-ops**: `outer`/`diag`/`zero_diagonal`/`matmul` added to the printers + + parse vocabulary (`expression.py`); Julia `global_mean` (axis-mean) wired. The SAME spec + now lowers cleanly to **jax and julia** (byte-identical to `compute_fc` incl. DC offset). + +Remaining Stage-2 follow-ons: +- **Julia streaming *path*** (not just the reducer math): needs a Julia algorithm template + that emits the generic scaffolding + `using LinearAlgebra`/`Statistics`, and a Julia + runtime to validate. The reducer math is ready. +- **Unify with `Observation.dynamics`/`resolve_reduction`** (extend that declarative- + recurrence engine with sliding-window `evict`) so there is one reduction engine, not two + β€” gated on that WIP. +- FCD (`compute_fcd`) YAML with a `stride` emit when the template's stride branch lands + (dropped from the registry meanwhile; `is_windowed_reducer(compute_fcd)` is now False). + +**Stage 2 β€” FCD.** `_make_windowed_fcd_reducer` is registered (stride emit_kind) +but not yet emitted; `streaming_capable` reports False so it is inert (not broken). +The stride branch (emit per-window into a growing stream, `finalize` once) is the +documented follow-on. When wired, `finalize` must take a stacked array, not a +Python `list` (won't trace under the jitted scan). + +**Validation.** Byte-identity against the recompute reference +(`TVBO_STREAMING_REDUCERS=0`) on the online-tuning experiments (EI_Tuning, +RWW_BOLD_FC). Stage 1 verified; Stage 2 must re-verify per backend. + ### Explorations: Observations should be also available in Explorations So I want to setup: @@ -440,6 +754,44 @@ Neurodata without Borders (NDWB) - selection of variables should be possible etc. +## Native result container format (single-file save/load + `StudyResult` hierarchy) +Result objects can be *exported* but not *stored/reloaded* as a self-contained container. +Consumers (e.g. replication run scripts) fall back to ad-hoc `np.savez` because there is no +native "save this result to one file, load it back" path. + +- **Current state.** + - Result types: `SimulationResult`, `ExplorationResult(Bunch)`, `AlgorithmResult`, + `OptimizationResult`, `ExperimentResult` (in `tvbo/data/types.py`). There is **no + `StudyResult`** β€” a `SimulationStudy.run()` returns a loose dict/list of per-experiment + results with no container. + - `ExperimentResult.export()` / `.to_bids()` write a **multi-file BIDS BEP034 directory** + (yaml + per-observation `.nc`/`.h5`). This is **one-way** β€” there is no `from_bids` / + `load_result`, so an exported result cannot be reloaded into the typed objects. + - `experiment_result_io.py` has a fingerprint-keyed sidecar+h5 **cache** (internal), not a + user-facing result container. +- **Needed (two tiers, one API β€” mirrors the network sidecar/companion design).** + 1. **Single-file, self-contained container** for when the full BIDS tree is overkill: + `result.save(path.h5)` / `Result.load(path)` round-trip, xarray/HDF5-backed, one file per + `SimulationResult`/`ExperimentResult`. Extension-dispatched (`.h5`/`.nc`/`.zarr`). + 2. **`StudyResult` container** at the top of the hierarchy + `StudyResult β†’ ExperimentResult β†’ {SimulationResult, ExplorationResult, AlgorithmResult, + OptimizationResult}` β€” serializable either as one grouped file (HDF5 groups / zarr) or a + fan-out of per-experiment containers, with the study spec (key/title/provenance) carried + alongside. + 3. **Round-trip load** (`from_file` / `load_result`, `from_bids`) so `export`/`to_bids` output + reloads into the typed objects β€” export must not be one-way. + 4. **BIDS stays the interoperable/full tier**; the single-file container is the quick/local + tier. `result.save()` picks the container by extension; `.to_bids(dir)` writes the tree. + 5. `ExplorationResult` must serialize its **keyed** observations + axes + `n_up` as labeled + xarrays (per the keyed-xarray-never-positional rule), so a swept result reloads with named + coordinates (K, node, …), not positional arrays. +- **Related:** `Harmonize SimulationResult with tvboptim's NativeSolution`, `Bifurcation result + needs to be also xarray structure!`, `Data Standards` (NDWB) above β€” a unified result container + should subsume all of these. +- **Surfaced by:** the Taher2019 replication `code/run_sweeps.py`, which currently writes + `output/exp*.npz` as a documented stopgap pending this. + + ## Harmonize IRI resolution and DB metadata fetching across all classes - Currently each runtime class handles `iri`-based sourcing differently: - `Coupling.__init__` auto-resolves via `_populate_from_ontology` after super().__init__ @@ -843,6 +1195,42 @@ Option 2/3 is preferred: `SimulationResult` already handles the `result=NativeSolution` constructor path; the tvboptim template just needs to use that path and stop exposing raw `NativeSolution` objects to users. +## Thorough analysis of `Integrator.coupling_evaluation` (per_stage vs per_step) +A new backend-neutral integration field (`CouplingStageEvaluation`: `per_stage` / +`per_step`) was added after the Taher2019 replication revealed that tvboptim's Heun +**holds the network coupling constant across the two predictor-corrector stages by +default** (`recompute_coupling_per_stage=False`). For that chaotic + multistable +power grid this selected a *different attractor*: cold-start at K=817 gave 12/438 +nodes locked with `per_step` vs **437/438** with `per_stage` (matching an +independent full-Heun reference and the paper). The RHS, coupling sign/weights, and +parameters were all byte-exact β€” only the intra-step coupling evaluation differed. + +This needs a proper study before we trust either default broadly: +- **When does it matter / when is it safe?** Quantify the error vs `dt` (the two + schemes agree as `dt β†’ 0`, difference is O(dt) in the coupling); characterise + which regimes diverge (stiff, chaotic, multistable, near-bifurcation, strong + coupling) vs which are indifferent (linear, weakly-coupled, deep in a single + basin). Give guidance: "use per_stage when λ₁ ≳ 0 / multistable / matching a + reference; per_step is fine (and faster) for a single stable working point." +- **Equivalents in original TVB.** TVB's `HeunDeterministic`/`HeunStochastic` + compute the coupling **once per step** and reuse it in the corrector (coupling is + passed into `dfun` and not recomputed at the predicted state) β€” i.e. TVB is + effectively `per_step`. Confirm this against `tvb.simulator.integrators`, and + check RK4 and the SDE Heun. If TVB is per_step, the paper's own results (if TVB- + based) and any TVB cross-validation must account for it. Document the mapping for + every backend (diffrax = always per_stage; Julia DiffEq = per_stage; ND.jl = ?). +- **Should the default change?** `per_step` is the current tvboptim default and is a + silent correctness footgun for sensitive systems; `per_stage` is correct-by- + default but ~2Γ— the coupling-reduction cost per step. Decide per-backend defaults + and whether tvbo should override to `per_stage` for `method: heun/rk4`. +- **Audit existing results.** Re-run a sample of shipped experiments (esp. chaotic / + multistable / FIC-tuned working points) under both settings to see which reported + numbers move; flag any that were implicitly relying on `per_step`. +- **Naming / scope.** Confirm `per_stage`/`per_step` is the right conceptual axis + (vs a more general "coupling lag" / operator-splitting description), and whether + the same field should also govern *stimulus/external-input* evaluation across + stages (currently only coupling). + ## Julia backend: mode-axis state layout for multi-mode models The 4 multi-mode models (`number_of_modes > 1`) β€” `ReducedSetHindmarshRose`, @@ -945,3 +1333,153 @@ cheap wins: (1) enable jax **persistent compilation cache** single/interactive run β†’ a non-compiling backend (tvb/numpy), sweep/optimization β†’ jax/tvboptim. Disabling jit is NOT the fix (eager scan is slower); backend choice + compile cache are. + + + +## PDF to markdown / KG + +- [ ] compare https://github.com/opendataloader-project/opendataloader-pdf with dots-mocr setup (/Users/leonmartin_bih/tools/dots-mocr). + +- [ ] explore https://github.com/EPFLiGHT/mmore + + + +## Check SONATA Data format +https://github.com/AllenInstitute/sonata/blob/master/docs/SONATA_DEVELOPER_GUIDE.md + +- can we adopt? +- can we improve move to more modern state-of the art? +- Is it BIDS compatible? + + + +## Engine-agnostic `workflow.setup` (dedup env activation for multi-engine studies) + +`WorkflowEngineConfig.setup` (verbatim shell lines run before the workload, e.g. +`conda activate <env>`) is declared **per engine** β€” `workflow.slurm.setup`, +`workflow.snakemake.setup`, `workflow.nextflow.setup` β€” like `env`/`venv`/`modules`. +A study run under more than one engine must repeat the same activation lines in each +block, but env setup is engine-independent, so that's redundant. + +**Plan.** Add an engine-agnostic `workflow.setup` (on `WorkflowConfig`, sibling of +the per-engine blocks) that every emitter prepends to its own +`workflow.<engine>.setup`. Precedence: shared `workflow.setup` first, then per-engine +`setup` (an engine can add to / override after the shared lines). Touches: schema +`WorkflowConfig.setup` + `make gen-linkml`; `merge_workflow_spec` / `plan()` to fold +the shared list into each `engine_block['setup']` (reuse `_as_lines`); templates +already consume `sb.get('setup')` unchanged. Keep per-engine `setup` for +engine-specific lines. + +Context: per-engine `setup` hook + `tvbo workflow submit` landed 2026-07-13. The +per-engine model is consistent with `env`/`venv`/`modules`; this only removes the +multi-engine duplication. + +## tvboptim: sparse coupling for delayed / nonlinear per-edge `pre` (framework gap) + +Instantaneous *vectorized* (source-only) sparse coupling is DONE tvbo-side: the factored +angle-addition form (`pre=[sin,cos]`, `post` recombine) + `Network.graph_representation: +sparse` emits `SparseGraph` in the experiment codegen (Taher2019 sweeps: ~7.7Γ— faster, +byte-identical, tested in `tests/test_codegen_sparse_graph.py`). What remains is a genuine +**tvboptim** primitive gap for the two cases that must stay per-edge: + +- a **delayed** difference coupling β€” ΞΈ_j(tβˆ’Ο„_ij) is edge-indexed, so it can't reduce to a + per-node mat-vec; and +- any **nonlinear per-edge `pre`** (sigmoidal Jansen-Rit, hyperbolic tangent, …). + +tvboptim's sparse per-edge path (`experimental/network_dynamics/coupling/base.py`, +`_compute_sparse_incoming` β†’ `_sparse_pre` β†’ `jsparse.sparsify(self.pre)`) requires `pre` +to be sparsity-preserving, so a nonlinear `pre` (e.g. `cos`) raises +`NotImplementedError: sparse rule for cos … would result in dense output`. + +**Fix (small, local, general):** in the sparse per-edge path, replace +`jsparse.sparsify(pre)` with an element-wise-over-`nnz` evaluation β€” gather source/target +states at the edge indices (the dense edge-gather already exists in +`_sparse_weighted_sum(..., is_bcoo=False)`), apply `pre` element-wise, then scatter-sum +`pre_vals * weights.data`. This unblocks *every* nonlinear coupling on sparse graphs; tvbo +needs nothing beyond emitting the factored `pre`/`post` (already supported). + +Not on the critical path for Taher β€” its delayed control runs are single sims (cheap, +local) and correctly fall back to dense via the `use_sparse` gate (instantaneous + +vectorized only). Surfaced 2026-07-15 while adding the sparse codegen. + +## Progress logging for exploration / sweep `lax.scan` (JAX-native `io_callback`) + +PR#63 (central logging) wired `LoggingProgressCallback` into the OPTIMIZER path only +(optax loops, `tvbo/templates/tvboptim/callbacks.py`). The EXPLORATION / sweep path β€” +`adiabatic_scan` (hysteresis + operating point), `lyapunov_branch` (Benettin), and the +vmapped exploration grid β€” runs as one JIT-compiled `jax.lax.scan`, so it logs +`STEP 2 > <exploration>` and then nothing until it returns. For a long sweep (Taher exp 30 +was ~8 h before the sparse win) the .out stays empty the whole run β€” the cluster +"empty log" complaint. + +**Fix (JAX-native, no JIT break):** `jax.experimental.io_callback` (already in the env) +fires a host callback from *inside* a `lax.scan`. Carry an iteration counter in the scan +carry and call `io_callback(log_progress, ..., k, total)` every N steps β†’ stream +"K 42/181 …" through the central `tvbo.run` logger, gated by `TVBO_LOG_LEVEL`. This is the +`jax_tqdm` pattern (~15 lines; jax_tqdm itself need not be a dependency). Wire it into the +sweep / Lyapunov / grid codegen partials (`tvbo-tvboptim-sweep.py.mako`, the exploration +`<%def>`s). Surfaced 2026-07-15 running the Taher Lyapunov + hysteresis sweeps (they went +silent after `> lyapunov_branch` / `> hysteresis_sweep` despite finishing in ~15–25 min). + +## Figure spec β€” declarative figures from result containers + +Close the last open end of full study replication: **map result data β†’ publication +figures** declaratively. Design agreed + schema stub drafted 2026-07-16 β€” full write-up +in `dev/figure-spec-design.md`. + +LinkML-native `Figure/Panel/Layer/DataRef` (+ Encoding/Guard/ColorbarSpec/Style) in `schema/` +(stub: `schema/figure.yaml`, /simplify-reviewed to 8 classes reusing tvbo's name/description/ +label/iri + Provenance/Argument; wired into tvbo_datamodel + regen; SimulationStudy.figures +added). Rendering is **codegen** (not a runtime interpreter): a bsplot adapter +(`tvbo/adapters/bsplot.py`) resolves context + a Mako tree (`tvbo/templates/bsplot/`) emits a +self-contained `plot.py` β€” same machinery as sims/reports; the emitted script IS the +replication deliverable. `figure.render_code('bsplot')`/`.render('bsplot')` mirror +`experiment.render_code`/`.run`. 2nd backend = new template tree, not a rewrite. Turns each +study's hand-written `plot.py` into a generated one + a registered escape hatch (`custom` +panel callable / `transform`) for the bespoke. + +Resolved: unified `Panel` with `kind` enum (`cartesian`/`heatmap` grammar + `custom`/`image` +peers; `surface`/`network` reserved); data binding `used: {experiment: IRI, output, sel}` +(= PROV `used`, label-keyed); compute ladder Observation β†’ declarative-postproc β†’ callable; +**per-panel** backend (mixed-backend figures prepared, MVP all mpl); lightweight +PROV-by-`slot_uri`; **insets/colorbar/legend** first-class (per-node mini-plots, marginals, +zoom, pinned inset colorbars). + +Build (walking skeleton): (1) βœ… wire `schema/figure.yaml` in + LinkML regen + SimulationStudy.figures; +(2) codegen β€” `tvbo/adapters/bsplot.py` (resolve context) + `tvbo/templates/bsplot/` Mako tree +(`<%def>` partials `panel_cartesian`/`panel_heatmap`/`panel_image`/`panel_custom`, mosaic via +`bsplot.figure.subplots`, `style.use`, `format_fig`, guardβ†’placeholder, insets) emitting `plot.py`; +(3) IRIβ†’container binding (skip `*_network.h5`, `observation__`, `sel`, sidecar params); +(4) **PROOF**: `render_code('bsplot')` a Jansen1995 figure, run vs `output/nc/*`, diff the original; +(5) widen to Taher2019 (bifurcation/sweep/A-B/placeholder/insets); (6) registries + `tvbo figure render`; +(7) **workflow/HPC**: figure-rule `<%def>` in `tvbo/templates/workflow/{snakemake,slurm,nextflow}/` β€” inputs = +the figure's `used` containers (provenance graph = DAG), resources = `Figure.workflow_overrides` (reuses +`WorkflowConfig`, added) over study `workflow`; `tvbo workflow submit/snakemake <study>` emits figure rules +alongside experiment rules so heavy renders run as their own SLURM jobs after their experiments. Emitted +`plot.py` stays user-editable. + +**BUILT (2026-07): walking skeleton + fidelity + workflow emitter.** `tvbo/adapters/bsplot.py` +(resolve context, `TRANSFORMS` up/down/order_by_branch, `CUSTOM_PANELS` registry, `sel`, axopts) + +`tvbo/templates/bsplot/*.mako` (emits self-contained `plot.py`; cartesian/heatmap/image/custom; guardβ†’placeholder). +`tvbo/adapters/figure_workflow.py` + `tvbo/templates/workflow/snakemake/` emit figure Snakemake rules +(`used`β†’`input:`, `workflow_overrides`β†’`resources:`). **Taher2019 Fig 5 reproduced β€” 8 panels, plotted data +bit-identical to the hand-written `_sweep_figure`**; Jansen1995 image montage. Rendering contract in the schema: +`Figure.{width,height (mm), dpi, font_size (pt, real), auto_format, panel_numbers, panel_number_format, +panel_number_loc}` + `Panel.annotations` (Annotation class) + legend via `Panel.opts.legend`. Pipeline HTML schema at `docs/Replication/pipeline.qmd`. + +**MVP FINALIZED (2026-07).** CLI `tvbo figure render <spec>` (`tvbo/cli/figures.py`) loads a Figure/Study YAML and +renders each figure; `tvbo workflow snakemake <study>` now appends figure rules (`figures.smk` + `plot_<name>.py`) when +`study.figures` present. Rendering contract fields (physical mm/pt sizing, real font, dpi, auto_format toggle, +panel_numbers + format + loc), `Panel.annotations` (Annotation class), study `.mplstyle` support (`plt.style.use` for +paths, `bsplot.style.use` for names β€” bsplot can't take paths). **17 figure-codegen tests** (`tests/test_figure_codegen.py`) ++ datamodel green. PROOF-OF-CONCEPT: Taher2019 **Fig 5 reproduced declaratively, data bit-identical**, closely matching the +paper (structure, LaTeX labels, (a)-(h), circled K) β€” `dev/figure-demo/ab_fig5_final.png`. + +By design, NOT gaps: cross-container x/y merge + data-derived shared ranges live in `custom` callables (the escape hatch β€” +grammar can't express them). Out of scope: λ₁ magnitude paper-vs-run gap (a sim/analysis issue, pre-existing). +PIXEL-PARITY POLISH DONE: legends conditional (paper has none), `Figure.height_ratios`/`width_ratios` layout control added, +panel-label collision fixed (Kβ‰ˆ moved to the opposite corner from the panel letter), study `.mplstyle` via `plt.style.use`. +`dev/figure-demo/{fig5_final,ab_fig5_final}.png` β€” Taher Fig 5 declaratively, closely matches the paper. 277 tests green. +REMAINING (minor/deferred): λ₁ magnitude sim gap (not rendering); a negligible ylabel clip on the tall top panel; +slurm/nextflow figure emitters (snakemake primary); a `Figure.render()` method (funcs + CLI already cover it); kit +`OUT_DIR` vs local `output/nc/` path reconciliation. diff --git a/tvbo/__init__.py b/tvbo/__init__.py index 4c96284aa..2f6471dfc 100644 --- a/tvbo/__init__.py +++ b/tvbo/__init__.py @@ -35,7 +35,23 @@ tempdir = os.path.join(tempfile.gettempdir(), "tvbo") os.makedirs(tempdir, exist_ok=True) -logging.disable(logging.CRITICAL) +# Central logging. Importing tvbo installs only a NullHandler on the ``tvbo`` +# logger, so the package is silent as a library; entry points (``tvbo run``, +# ``SimulationExperiment.run``) surface progress via ``configure_logging`` and +# everything is controlled by one switch (``TVBO_LOG_LEVEL`` / ``set_log_level``). +# This replaces a former process-wide ``logging.disable(CRITICAL)`` that muted +# every logger β€” see :mod:`tvbo.log`. +from tvbo.log import ( # noqa: E402,F401 + configure_logging, + ensure_configured, + get_log_level, + log_level, + set_log_level, + silence, +) + +if os.environ.get("TVBO_LOG_LEVEL"): + configure_logging() __authors__ = [ "Leon K. Martin", @@ -70,12 +86,25 @@ def clean_temp(): # --------------------------------------------------------------------------- # jax-metal (Apple GPU) plugin versions <= 0.1.1 are incompatible with # JAX >= 0.7 and crash with "UNIMPLEMENTED: default_memory_space is not -# supported". Detect this early and fall back to the CPU backend so that +# supported". Detect this and fall back to the CPU backend so that # *every* downstream JAX call works out of the box. # Users can override by setting JAX_PLATFORMS or jax_default_device before # importing tvbo. +_JAX_CONFIGURED = False + + def _configure_jax_backend(): - """Fall back to CPU when the Metal plugin is broken.""" + """Fall back to CPU when the Metal plugin is broken. + + Called by the compute modules the first time TVBO touches JAX for a + simulation, not at ``import tvbo`` β€” so a bare import (and the CLI) never + imports JAX. Idempotent: the guard runs at most once regardless of how many + entry points call it. + """ + global _JAX_CONFIGURED + if _JAX_CONFIGURED: + return + _JAX_CONFIGURED = True # Respect explicit user override if "JAX_PLATFORMS" in os.environ: return @@ -100,48 +129,13 @@ def _configure_jax_backend(): jax.config.update("jax_default_device", jax.devices("cpu")[0]) except ImportError: pass # JAX not installed – nothing to configure - - -_configure_jax_backend() -# --------------------------------------------------------------------------- - - -# --------------------------------------------------------------------------- -# PyRates / networkx compatibility # --------------------------------------------------------------------------- -def _patch_pyrates_networkx_backend(): - """Fix networkx 3.4+ backend dispatch conflict with PyRates. - networkx β‰₯ 3.4 decorates ``MultiDiGraph.__new__`` with - ``@nx._dispatchable`` which intercepts a ``backend`` keyword argument. - PyRates' ``ComputeGraph(backend='default')`` triggers this and raises - ``ImportError: 'default' backend is not installed``. - We replace ``ComputeGraph.__new__`` with plain ``object.__new__`` so - the decorator is removed. Applied at tvbo import time so that all - code paths (adapter, export, doc notebooks) benefit. - """ - try: - from pyrates.backend.computegraph import ( - ComputeGraph, - ComputeGraphBackProp, - ) - except ImportError: - return - - def _plain_new(cls, *_args, **_kwargs): - return object.__new__(cls) - - # Check if the __new__ is wrapped by networkx dispatch - for klass in (ComputeGraph, ComputeGraphBackProp): - try: - klass(backend="default") - except (ImportError, TypeError): - klass.__new__ = _plain_new - - -_patch_pyrates_networkx_backend() -# --------------------------------------------------------------------------- +# PyRates is an optional backend, imported only when its adapter runs. Its +# networkx-dispatch monkeypatch lives with the adapters that build a PyRates +# ComputeGraph (``tvbo.adapters.pyrates`` and ``tvbo.adapters.pyrates_bifurcation``), +# each applying it before compiling β€” so a bare ``import tvbo`` pulls in no pyrates. # --------------------------------------------------------------------------- # Lazy public API β€” imports happen on first attribute access @@ -191,6 +185,7 @@ def __getattr__(name): raise AttributeError(f"module 'tvbo' has no attribute {name!r}") -# Eager side-effect imports: attach helper methods (.plot(), …) to -# auto-generated schema classes so users get them on bare ``schema.Event(...)``. -from tvbo.classes import event as _event_helpers # noqa: F401,E402 +# Helper methods (.plot(), …) are attached to the auto-generated schema classes +# by ``tvbo.datamodel`` when the datamodel is first imported, alongside the sibling +# Network/UnitEnum patches. Keeping that out of ``import tvbo`` avoids eagerly +# pulling the datamodel (pydantic, sympy, pandas) into every CLI invocation. diff --git a/tvbo/adapters/bids.py b/tvbo/adapters/bids.py index 1f331a041..41f71efa5 100644 --- a/tvbo/adapters/bids.py +++ b/tvbo/adapters/bids.py @@ -37,6 +37,48 @@ BEP034_CONFIG_PATH = Path(__file__).parent / "bep034.json" +# BIDS pybids rule string for an experiment-result artifact (``<prefix>_result.h5`` +# + ``.yaml`` sidecar). ``suffix``/``extension`` are value-constrained so an +# invalid combination fails fast; ``desc`` is optional. Customize the naming by +# editing this pattern β€” build_path handles entity substitution and optionality. +RESULT_PATTERNS = [ + "[sub-{subject}_]exp-{experiment}[_desc-{description}]_{suffix<result>}{extension<.h5|.yaml|.json>}", +] + + +def result_entities(experiment, extension: str = ".h5") -> dict: + """BIDS entities for an experiment's result, with alphanumeric values. + + BIDS entity values must be alphanumeric (no spaces/hyphens/underscores), so + the id and dynamics name are stripped to ``[A-Za-z0-9]``. The short model + *name* (``Kuramoto``) is used for ``desc-`` rather than the verbose label, so + filenames stay compact. Returns a dict ready for + :func:`bids.layout.writing.build_path` with ``RESULT_PATTERNS``. + """ + def _alnum(s): + return "".join(c for c in str(s) if c.isalnum()) + + entities = {"suffix": "result", "extension": extension} + # Per-subject shards (dataset fan-out) get a sub- entity so their results do + # not collide when reassembled. + active_subject = getattr(experiment, "_active_subject", None) + if active_subject: + entities["subject"] = _alnum(active_subject) + eid = getattr(experiment, "id", None) + if eid is not None: + entities["experiment"] = _alnum(eid) + dyn = getattr(experiment, "dynamics", None) + desc = (getattr(dyn, "name", None) or getattr(dyn, "label", None)) if dyn else None + if desc and _alnum(desc): + entities["description"] = _alnum(desc)[:24] # keep desc- compact + return entities + + +def build_result_path(experiment=None, *, entities: dict = None, extension: str = ".h5") -> str: + """Filename for an experiment result via pybids ``build_path`` + RESULT_PATTERNS.""" + return build_path(entities or result_entities(experiment, extension=extension), RESULT_PATTERNS) + + def load_bep034_config() -> dict: """Load the BEP034 configuration file.""" with open(BEP034_CONFIG_PATH, "r") as f: diff --git a/tvbo/adapters/bifurcationkit.py b/tvbo/adapters/bifurcationkit.py index a611e7ebd..e7cdaf9c4 100644 --- a/tvbo/adapters/bifurcationkit.py +++ b/tvbo/adapters/bifurcationkit.py @@ -124,6 +124,16 @@ def _prepare_context(model, cont, **kwargs): """ ctx = dict(model=model, continuation=cont) + # Network context (None or 1-node β‡’ single-node RHS; >1 node β‡’ coupled). + network = kwargs.get("network") + n_nodes = int(getattr(network, "number_of_nodes", 0) or 0) if network is not None else 0 + ctx["network"] = network if n_nodes > 1 else None + ctx["n_nodes"] = n_nodes if n_nodes > 1 else 1 + + # Constraint-defined free parameters (FIC J_i): promoted to unknown state + # blocks whose defining equation is the TuningObjective residual (D2). + ctx["constraints"] = kwargs.get("constraints") or [] + # -- Free parameter -- fp_dict = cont.free_parameters if cont else None if fp_dict: @@ -305,11 +315,73 @@ def render_code(self, model=None, continuation=None, **kwargs) -> str: if conts: continuation = next(iter(conts.values())) - ctx = self._prepare_context(model, continuation, **kwargs) + # A multi-node network on the experiment β‡’ continue the coupled system. + network = getattr(self.experiment, "network", None) + constraints = self._derive_constraints(model) + ctx = self._prepare_context( + model, continuation, network=network, constraints=constraints, **kwargs + ) template = templates.lookup.get_template("tvbo-julia-BifurcationKit.jl.mako") return template.render(**ctx) + def _derive_constraints(self, model): + """Derive constraint-defined free parameters for the continuation. + + Reuses the *existing* declarations (no new schema): a parameter marked + ``free: true`` on the model, together with an activity-target + ``TuningObjective`` on one of the experiment's algorithms, defines a + constraint ``target_variable = target_value``. Each such free parameter + (e.g. the FIC ``J_i``) is promoted by the emitter to an unknown state + block whose defining equation is that residual (see ``_build_network_context``). + + Returns a list of ``{"parameter", "target_variable", "target_value"}``; + empty when no parameter is free (E-E / FFI variants β‡’ plain continuation). + """ + from tvbo.utils import as_list + + free = [p.name for p in model.parameters.values() if getattr(p, "free", False)] + if not free: + return [] + algos = as_list(getattr(self.experiment, "algorithms", None)) + + def _activity_objective(a): + """The algorithm's objective iff it is an activity target (has a + target_variable + target_value); else None.""" + o = getattr(a, "objective", None) + tv = getattr(o, "target_variable", None) if o is not None else None + return o if (tv is not None and getattr(o, "target_value", None) is not None) else None + + def _tuned_params(a): + """Parameter names this algorithm's update rules tune (target_parameter).""" + names = set() + for r in as_list(getattr(a, "update_rules", None)): + tp = getattr(r, "target_parameter", None) + n = getattr(tp, "name", None) or (str(tp) if tp is not None else None) + if n: + names.add(n) + return names + + constraints = [] + for fp in free: + # Prefer the algorithm that explicitly tunes THIS parameter (so multiple + # free params each get their own target); fall back to a lone activity + # objective only when this is the sole free param. + obj = next( + (_activity_objective(a) for a in algos + if fp in _tuned_params(a) and _activity_objective(a)), + None, + ) + if obj is None and len(free) == 1: + obj = next((_activity_objective(a) for a in algos if _activity_objective(a)), None) + if obj is None: + continue + tv = getattr(obj.target_variable, "name", None) or str(obj.target_variable) + constraints.append( + {"parameter": str(fp), "target_variable": str(tv), "target_value": float(obj.target_value)} + ) + return constraints + @staticmethod def _get_ics(cont): """Extract the free parameter name from a Continuation spec.""" diff --git a/tvbo/adapters/bsplot.py b/tvbo/adapters/bsplot.py new file mode 100644 index 000000000..ab3a459b4 --- /dev/null +++ b/tvbo/adapters/bsplot.py @@ -0,0 +1,379 @@ +"""bsplot figure codegen adapter. + +Resolves a declarative ``Figure`` (see ``schema/figure.yaml``) into a codegen +context and renders the ``tvbo/templates/bsplot/`` Mako tree into a self-contained, +user-editable ``plot.py``. This is the figure sibling of the simulation adapters +(``julia_model``, ``pyrates``, …): resolution lives here in Python, code *structure* +lives in the Mako template. + +``render_code(figure, base_dir)`` returns the script; ``render(...)`` emits and runs +it β€” mirroring ``experiment.render_code`` / ``.run``. +""" +from __future__ import annotations + +import functools +import re +from pathlib import Path + +from tvbo.templates import lookup + + +@functools.lru_cache(maxsize=None) +def _open_ds(path): + """Open a result container once per distinct path (shared by the adapter's custom panels).""" + import xarray as xr + return xr.open_dataset(path, engine="h5netcdf") + +_TEMPLATE = "bsplot/tvbo-bsplot-figure.py.mako" + + +# --------------------------------------------------------------------------- registries +# Extension points for the layer `transform` and the `custom` panel escape hatch. Core ships +# no built-ins: a study ships figure-specific transforms/panels in its code_source module and +# decorates them with these; the emitted plot.py imports that module so the registration fires +# before lookup (see Figure.code_modules). + +TRANSFORMS: dict = {} # name -> fn(da) -> da presentation-only layer reductions +CUSTOM_PANELS: dict = {} # name -> fn(fig, ax, ctx) bespoke `custom` panel drawers + + +def register_transform(name): + """Register a presentation-only layer transform ``fn(da) -> da`` under *name* (decorator).""" + def deco(fn): + TRANSFORMS[name] = fn + return fn + return deco + + +def register_panel(name): + """Register a ``custom``-panel callable ``fn(fig, ax, ctx)`` under *name* (decorator).""" + def deco(fn): + CUSTOM_PANELS[name] = fn + return fn + return deco + + +def registered(registry, name, kind): + """Look a spec-declared name up in a registry, or raise an actionable error (public API). + + Shared by the adapter and the emitted plot.py, which imports it, so both report a miss + the same way. The registries are empty until a figure's code_modules are imported and + their register_* decorators run, so a miss almost always means code_modules is missing + the module, or importing it failed. + """ + try: + return registry[name] + except KeyError: + known = ", ".join(sorted(registry)) or "none β€” no code_modules registered anything" + raise KeyError( + f"{kind} {name!r} is not registered (registered: {known}). Declare the module " + f"that defines it in the figure's code_modules; it must be importable from here." + ) from None + + +def resolve_path(p, base_dir): + """Resolve a spec-relative file reference against *base_dir* (the study dir) β€” public API. + + A file a figure points at (an ``image`` panel's path, a study .mplstyle) is written + relative to the spec that declares it, so the spec stays portable; the emitted plot.py + runs from an arbitrary cwd and needs an absolute one. An absolute path is passed + through untouched. Returns *p* unchanged when it is empty. + + A ``custom`` panel resolving its own study-relative input (``ctx["opts"]`` naming a + tvbo Network yaml, say) should call this with ``ctx["base_dir"]`` so it follows the + same rule as the rest of the spec rather than re-implementing the join. + """ + if not p: + return p + p = str(p) + return p if Path(p).is_absolute() else str((Path(base_dir) / p).resolve()) + + +def _style_entries(figure, base_dir) -> list: + """Classify each figure style as a bsplot named style or an .mplstyle path. + + bsplot.style.use only knows its registered names; a study's own .mplstyle is a + filesystem path, applied via matplotlib's plt.style.use instead. This lets a + study carry its own design rules (Figure.style: ['<path>/study.mplstyle']). Only + the path form is resolved against base_dir β€” a named style is not a filesystem + reference. + """ + styles = list(getattr(figure, "style", None) or []) or ["tvbo"] + out = [] + for s in styles: + s = str(s) + is_path = s.endswith(".mplstyle") or "/" in s or "\\" in s + out.append({"path": is_path, "value": resolve_path(s, base_dir) if is_path else s}) + return out + + +def _arg_dict(coll) -> dict: + """Resolve an Argument collection (dict or list-of-Argument) into ``{name: value}``.""" + if not coll: + return {} + items = coll.items() if isinstance(coll, dict) else [(a.name, a) for a in coll] + return {key: getattr(arg, "value", arg) for key, arg in items} + + +def _style_kwargs(style) -> dict: + """Resolve a layer/panel Style into matplotlib kwargs.""" + if style is None: + return {} + kw: dict = {} + if getattr(style, "color", None): + kw["color"] = style.color + if getattr(style, "opacity", None) is not None: + kw["alpha"] = style.opacity + kw.update(_arg_dict(getattr(style, "opts", None))) + return kw + + +# Axis directives a grammar (cartesian/heatmap) panel may carry on ``Panel.opts``. +# Kept to a small, backend-independent set so the template can apply them uniformly; +# a ``custom`` panel routes ``opts`` to its callable instead (see ``build_context``). +_AXIS_OPTS = { + "xlabel", "ylabel", "title", "xlim", "ylim", "xticks", "yticks", + "hide_xticklabels", "hide_yticklabels", "axhline", "legend", +} + + +def _panel_opts(panel) -> dict: + """Resolve ``Panel.opts`` (Argument dict) into a plain ``{name: value}`` dict.""" + return _arg_dict(getattr(panel, "opts", None)) + + +def _axopts(panel) -> dict: + """Axis-level directives for a grammar panel (labels, limits, ticks, legend). + + Draws from ``Panel.opts`` (the recognised ``_AXIS_OPTS`` keys) plus the boolean + ``Panel.legend`` slot. This is the minimal per-panel label/limit override: the paper's + LaTeX axis labels and shared ranges live here rather than defaulting to the bare + variable name. + """ + o = {k: v for k, v in _panel_opts(panel).items() if k in _AXIS_OPTS} + if getattr(panel, "legend", None): + o.setdefault("legend", "best") + return o + + +_ANNOT_LOC = {"upper left": (0.03, 0.95), "upper right": (0.97, 0.95), + "lower left": (0.03, 0.05), "lower right": (0.97, 0.05), "center": (0.5, 0.5)} + +# Panel-number placement per corner -> kwargs for bsplot.panels.add_panel_number. +# In its coord="axes" mode the label lands at (x_shift, 1.0 + y_shift), so ha/va anchor +# the text and the shifts hug it just inside the corresponding spine. +_PANEL_NUM_LOC = { + "upper left": {"x_shift": 0.02, "y_shift": -0.02, "ha": "left", "va": "top"}, + "upper right": {"x_shift": 0.98, "y_shift": -0.02, "ha": "right", "va": "top"}, + "lower left": {"x_shift": 0.02, "y_shift": 0.02, "ha": "left", "va": "bottom"}, + "lower right": {"x_shift": 0.98, "y_shift": 0.02, "ha": "right", "va": "bottom"}, +} + + +def _annotations(panel) -> list: + """Resolve ``Panel.annotations`` into ``[{text, x, y}]`` in axes-fraction coords.""" + out = [] + for a in (getattr(panel, "annotations", None) or []): + loc = getattr(a, "loc", None) + if loc in _ANNOT_LOC: + x, y = _ANNOT_LOC[loc] + else: + x = a.x if getattr(a, "x", None) is not None else 0.5 + y = a.y if getattr(a, "y", None) is not None else 0.95 + out.append({"text": a.text, "x": x, "y": y}) + return out + + +@functools.lru_cache(maxsize=None) +def _container_path(iri, base_dir: Path) -> str: + """Resolve an experiment IRI/key to its result container (skips ``*_network.h5``). + + The PROV ``used`` edge points at an experiment; its container lives under + ``<base_dir>/output/nc/<exp>/``. Returns ``""`` when unresolved. + """ + if not iri: + return "" + key = re.split(r"[:/#]", str(iri))[-1] # last IRI segment (e.g. "exp-3") + digits = re.sub(r"\D", "", key) # trailing experiment number + for cand in [key, *([f"exp{digits}", f"exp-{digits}"] if digits else [])]: + d = base_dir / "output" / "nc" / cand + if d.is_dir(): + files = [f for f in sorted(d.glob("*.h5")) if "network" not in f.name] + if files: + return str(files[0].resolve()) + return "" + + +# --------------------------------------------------------------------------- custom panels +# The ``custom`` escape hatch: a registered ``fn(fig, ax, ctx)`` draws a bespoke sub-panel +# the grammar can't (yet) express. ``ctx`` carries the resolved layers (container paths, +# transforms, selectors already resolved by ``build_context``) plus the panel's ``opts``, so +# a callable opens the container(s) itself and draws exactly what the paper needs. A study +# registers its own the same way it registers a transform. + +def load_layer(layer: dict): + """Open a custom panel's resolved layer into a DataArray (public API). + + A registered ``custom`` panel receives ``ctx`` with a ``layers`` list of resolved-layer + dicts (container path, output, transform, selector β€” all resolved by ``build_context``); + it calls ``bsplot.load_layer(ctx["layers"][i])`` to open the i-th one as an xarray + ``DataArray`` with the declared ``transform`` and ``.sel`` already applied. The shared + container cache means opening the same file across panels is free. + """ + name = layer.get("transform") + fn = registered(TRANSFORMS, name, "transform") if name else None # spec error before any IO + da = _open_ds(layer["container"])[layer["output"]] + if fn: + da = fn(da) + if layer.get("sel"): + da = da.sel(layer["sel"], method=layer.get("sel_method")) + return da + + +def _items(coll): + """Yield ``(key, value)`` from a keyed dict or a list of keyed objects.""" + if coll is None: + return [] + if isinstance(coll, dict): + return list(coll.items()) + return [(getattr(v, "panel_key", None) or getattr(v, "name", i), v) + for i, v in enumerate(coll)] + + +def _sel_dict(used): + """Resolve ``DataRef.sel`` (Argument dict) into ``({dim: value}, method)`` or ``(None, None)``. + + A numeric selection uses ``method="nearest"`` (label-based nearest coordinate, e.g. the + sampled K-values on a continuous sweep); a non-numeric one is an exact label match. + """ + resolved = _arg_dict(getattr(used, "sel", None)) + if not resolved: + return None, None + + def _numeric(v): + vals = v if isinstance(v, (list, tuple)) else [v] + return all(isinstance(x, (int, float)) and not isinstance(x, bool) for x in vals) + + method = "nearest" if all(_numeric(v) for v in resolved.values()) else None + return resolved, method + + +def _resolve_layer(layer, panel_kind, base_dir): + """Resolve one ``Layer`` into the flat dict the template/callables consume.""" + used, enc = layer.used, getattr(layer, "encoding", None) + sel, method = _sel_dict(used) + return { + "container": _container_path(getattr(used, "iri", None), base_dir), + "output": used.output, + # str() collapses the MarkType enum (dataclass flavor) to a plain string the template compares. + "mark": str(layer.mark) if layer.mark else ("heatmap" if panel_kind == "heatmap" else "line"), + "x": getattr(enc, "x", None), + "y": getattr(enc, "y", None), + "transform": getattr(layer, "transform", None), + "sel": sel, + "sel_method": method, + "style": _style_kwargs(getattr(layer, "style", None)), + } + + +def build_context(figure, base_dir, outfile: str) -> dict: + """Resolve a ``Figure`` into the template context (all IO paths + names resolved).""" + base_dir = Path(base_dir) + panels = [] + for key, panel in _items(figure.panels): + kind = str(panel.kind) # datamodel enum -> plain string (flavor-agnostic) + layers = [_resolve_layer(l, kind, base_dir) + for l in (getattr(panel, "layers", None) or [])] + # ``custom`` routes Panel.opts to its callable; grammar panels read the axis subset. + # base_dir lets a panel resolve study-relative inputs (e.g. a tvbo Network yaml). + ctx = ({"layers": layers, "opts": _panel_opts(panel), "key": key, "base_dir": str(base_dir)} + if kind == "custom" else None) + # Default the axis labels to the first layer's x-dim / output; opts override them. + axopts = _axopts(panel) + if kind in ("cartesian", "heatmap") and layers: + axopts.setdefault("xlabel", layers[0]["x"] or "") + axopts.setdefault("ylabel", layers[0]["y"] or layers[0]["output"]) + panels.append({ + "key": key, + "kind": kind, + "title": getattr(panel, "label", None), + "path": resolve_path(getattr(panel, "path", None), base_dir), + "render": getattr(panel, "render", None), + "placeholder": getattr(panel, "placeholder", None), + "layers": layers, + "axopts": axopts, + "ctx": ctx, + "annotations": _annotations(panel), + "number_loc": getattr(panel, "number_loc", None), + }) + layout = (figure.layout or "".join(str(p["key"]) for p in panels) or "a") + layout = layout.replace("/", "\n") # bsplot mosaics split rows on newline + fmt = getattr(figure, "panel_number_format", None) or "{}" + fig_loc = getattr(figure, "panel_number_loc", None) # unset -> keep bsplot's own default placement + font_size = getattr(figure, "font_size", None) + for p in panels: + p["letter"] = fmt.format(p["key"]) # the mosaic key IS the panel letter + place = {"option": "numbers"} # label is given verbatim, no int->letter conversion + loc = p["number_loc"] or fig_loc + if loc: # only override placement when a corner was asked for + # loc is a Corner enum whose str() is the corner text in both datamodel flavors. + place.update(_PANEL_NUM_LOC.get(str(loc), _PANEL_NUM_LOC["upper left"])) + if font_size: + place["fontsize"] = font_size + p["number_kwargs"] = place # resolved here; the template just splats it + + # bsplot.figure.subplots kwargs, resolved here so the template just splats them. + dpi = getattr(figure, "dpi", None) or 200 + subplots_kwargs = {"layout": layout, "dpi": dpi} + width, height = getattr(figure, "width", None), getattr(figure, "height", None) + if width and height: # physical size in mm -> inches + subplots_kwargs["figsize"] = (width / 25.4, height / 25.4) + for key in ("height_ratios", "width_ratios"): + ratios = list(getattr(figure, key, None) or []) + if ratios: + subplots_kwargs[key] = ratios + + # fig.savefig kwargs, resolved here so the template just splats them. Trimming re-crops + # to content, so it is what makes a saved figure's aspect drift from the declared wΓ—h. + savefig_kwargs = {"dpi": dpi} + if getattr(figure, "trim_margins", None) is not False: + savefig_kwargs["bbox_inches"] = "tight" + + spines = getattr(figure, "spines", None) + spine_rcparams = {} + if spines == "box": + spine_rcparams = {f"axes.spines.{s}": True for s in ("top", "right", "left", "bottom")} + elif spines == "open": + spine_rcparams = {"axes.spines.top": False, "axes.spines.right": False} + + return { + "name": figure.name or "figure", + "style": _style_entries(figure, base_dir), + "outfile": outfile, + "panels": panels, + "subplots_kwargs": subplots_kwargs, + "spine_rcparams": spine_rcparams, + "dpi": dpi, + "font_size": font_size, + "auto_format": getattr(figure, "auto_format", None) is not False, + "panel_numbers": getattr(figure, "panel_numbers", None) is not False, + "savefig_kwargs": savefig_kwargs, + # study-shipped custom panels/transforms register when plot.py imports these + "code_modules": [str(m) for m in (getattr(figure, "code_modules", None) or [])], + } + + +def render_code(figure, base_dir=".", outfile="figure.png") -> str: + """Render the ``Figure`` into a self-contained ``plot.py`` string.""" + ctx = build_context(figure, base_dir, outfile) + return lookup.get_template(_TEMPLATE).render(**ctx) + + +def render(figure, base_dir=".", outfile="figure.png", script_path=None): + """Render and run the figure. Writes the script to *script_path* if given.""" + code = render_code(figure, base_dir, outfile) + if script_path: + Path(script_path).write_text(code, encoding="utf-8") + namespace: dict = {} + exec(compile(code, script_path or "<figure>", "exec"), namespace) + return namespace["main"]() diff --git a/tvbo/adapters/figure_workflow.py b/tvbo/adapters/figure_workflow.py new file mode 100644 index 000000000..8e8827edd --- /dev/null +++ b/tvbo/adapters/figure_workflow.py @@ -0,0 +1,226 @@ +"""Figure -> distributed-workflow emitter. + +Wires TVBO's declarative :class:`~tvbo.datamodel.pydantic.Figure` codegen into the +HPC/workflow emission so that figures render as their own scheduler jobs, siblings +of the experiment rules ``tvbo workflow snakemake`` already emits. + +The idea in one line: *a figure's PROV ``used`` edges are its workflow dependency +edges.* Every layer of a figure binds to an experiment result container (via +``bsplot._container_path``); those containers are exactly the render rule's +``input:``, so the rule schedules after the experiments that produce them. The +per-figure resource request comes from ``Figure.workflow_overrides`` (a +``WorkflowConfig``) merged over the study-level ``workflow`` β€” the same override +pattern experiments use. + +Resolution (used->inputs, workflow_overrides->resources, unit conversion) lives here +in Python; the rule *structure* lives in +``tvbo/templates/workflow/snakemake/tvbo-figure-rule.smk.mako`` (the house codegen +rule). ``emit_figure_rules`` returns the Snakemake rule text; ``write_figure_kit`` +also freezes each figure's self-contained ``plot.py`` and the ``.smk`` snippet to disk. +""" +from __future__ import annotations + +import datetime as _dt +from pathlib import Path + +from tvbo.adapters import bsplot +from tvbo.cli import _workflow as _wf +from tvbo.templates import lookup +from tvbo.utils import as_list, deep_merge, sanitize_name + +_RULE_TEMPLATE = "tvbo-figure-rule.smk.mako" + + +# --------------------------------------------------------------------------- helpers + +def _mem_mb(mem): + """'8G'/'8GB'/'512M'/'2000' -> integer megabytes (Snakemake ``mem_mb``).""" + if not mem: + return None + s = str(mem).strip().upper().rstrip("B") + try: + if s.endswith("G"): + return int(float(s[:-1]) * 1000) + if s.endswith("M"): + return int(float(s[:-1])) + if s.endswith("K"): + return max(1, int(float(s[:-1]) / 1000)) + return int(float(s)) + except ValueError: + return None + + +def _runtime_min(t): + """'02:00:00' (HH:MM:SS) or '120' -> integer minutes (Snakemake ``runtime``).""" + if not t: + return None + s = str(t).strip() + try: + if ":" in s: + p = [int(x) for x in s.split(":")] + if len(p) == 3: + return p[0] * 60 + p[1] + (1 if p[2] else 0) + if len(p) == 2: + return p[0] + (1 if p[1] else 0) + return int(float(s)) + except ValueError: + return None + + +def _figure_block(workflow, overrides, engine: str = "snakemake"): + """Merge ``figure.workflow_overrides`` over the study ``workflow`` -> (spec, block). + + Reuses the ``_workflow`` merge machinery so the semantics match the experiment + emitter exactly: name-keyed engine slots (env/options) merge by name, and the + engine block inherits the engine-agnostic resource keys (and, for Snakemake, the + SLURM scheduler identity) from the ``slurm`` block when it does not set them β€” + unset falls back, an override wins only where it names a key. + """ + base = _wf._canonicalize_engine_maps(_wf._as_plain_dict(workflow)) + over = _wf._canonicalize_engine_maps(_wf._as_plain_dict(overrides)) + spec = deep_merge(base, over) + + block = dict(spec.get(engine) or {}) + shared = ["cpus_per_task", "mem", "time", "modules", "venv", "env", "setup"] + if engine == "snakemake": + shared += ["partition", "account", "gres"] + slurm = spec.get("slurm") or {} + for k in shared: + if k not in block and k in slurm: + block[k] = slurm[k] + if "env" in block: + block["env"] = _wf._normalize_env(block["env"]) + if "options" in block: + block["options"] = _wf._normalize_directives(block["options"]) + if "setup" in block: + block["setup"] = _wf._as_lines(block["setup"]) + return spec, block + + +def _rule_resources(block: dict) -> dict: + """Lower a merged engine block into a Snakemake ``resources:`` map. + + Returns ``{key: python-literal-string}`` (already repr'd so the template emits + ``key=<literal>`` verbatim). ``cpus_per_task``/``mem_mb``/``runtime`` map across + engines; the SLURM scheduler identity (partition/account/gres) is surfaced as the + executor's ``slurm_partition``/``slurm_account``/``slurm_extra`` resources so a + per-figure override lands on the rule itself. ``options`` pass through verbatim. + """ + r: dict = {} + if block.get("cpus_per_task"): + r["cpus_per_task"] = str(int(block["cpus_per_task"])) + mb = _mem_mb(block.get("mem")) + if mb: + r["mem_mb"] = str(mb) + rt = _runtime_min(block.get("time")) + if rt: + r["runtime"] = str(rt) + if block.get("partition"): + r["slurm_partition"] = repr(str(block["partition"])) + if block.get("account"): + r["slurm_account"] = repr(str(block["account"])) + if block.get("gres"): + r["slurm_extra"] = repr("--gres=" + str(block["gres"])) + for opt in (block.get("options") or []): + v = str(opt["value"]) + # numeric -> bare int literal; else a repr'd (safely escaped) string literal + r[opt["name"]] = v if v.lstrip("-").isdigit() else repr(v) + return r + + +def _figure_inputs(figure, base_dir: Path) -> list[str]: + """Deduped result-container paths this figure's layers ``used`` (first-seen order). + + Each layer's ``used.iri`` is resolved to its container with the same + ``bsplot._container_path`` the emitted ``plot.py`` reads, so the rule's inputs + are exactly the files the render will open. Unresolved (missing) containers are + dropped β€” a rule cannot depend on a file that does not exist. + """ + inputs, seen = [], set() + for panel in as_list(getattr(figure, "panels", None)): + for layer in (getattr(panel, "layers", None) or []): + used = getattr(layer, "used", None) + container = bsplot._container_path(getattr(used, "iri", None), base_dir) + if container and container not in seen: + seen.add(container) + inputs.append(container) + return inputs + + +def _figure_context(figure, base_dir, workflow) -> dict: + """Resolve one ``Figure`` into the template context for its render rule.""" + base_dir = Path(base_dir) + name = figure.name or "figure" + fmt = (figure.format or "png").lstrip(".") + _spec, block = _figure_block(workflow, getattr(figure, "workflow_overrides", None)) + return { + "name": name, + "rule_name": "fig_" + sanitize_name(name), + "inputs": _figure_inputs(figure, base_dir), + "output": f"figures/{name}.{fmt}", + "figures_dir": "figures", + "script": f"figures/plot_{sanitize_name(name)}.py", + "threads": int(block.get("cpus_per_task") or block.get("cores") or 1), + "resources": _rule_resources(block), + "container": _spec.get("container"), + "setup": block.get("setup") or [], + "env": block.get("env") or [], + } + + +# --------------------------------------------------------------------------- emit + +def emit_figure_rules(figures, base_dir=".", workflow=None, kit_dir="kit", + include_all: bool = False) -> str: + """Render Snakemake render rules for *figures* β€” one rule per figure. + + Args: + figures: An iterable of ``Figure`` objects (e.g. ``study.figures``). + base_dir: Root the experiment result containers live under; each figure's + ``used`` IRIs resolve to ``<base_dir>/output/nc/<exp>/*.h5``. + workflow: The study-level ``WorkflowConfig`` (or ``None``); each figure's + ``workflow_overrides`` merges over it for that figure's resources. + kit_dir: Directory the companion :func:`write_figure_kit` writes to (kept for + API symmetry; rule paths are kit-relative and independent of it). + include_all: When True, prepend an aggregate ``all_figures`` target rule so + the snippet is runnable standalone (``snakemake -s figures.smk``). + + Returns: + The Snakemake rule text. Each rule's ``input:`` is the figure's ``used`` + containers and its ``resources:`` reflect ``workflow_overrides`` over + *workflow*; the rule runs the figure's frozen ``plot.py``. + """ + fig_ctxs = [_figure_context(f, base_dir, workflow) for f in figures] + now = _dt.datetime.now().isoformat(timespec="seconds") + return lookup.get_template(_RULE_TEMPLATE).render( + figures=fig_ctxs, now=now, include_all=include_all) + + +def write_figure_kit(figures, base_dir=".", out_dir="kit", workflow=None, + include_all: bool = True) -> Path: + """Freeze a figure workflow kit to disk: per-figure ``plot.py`` + the ``.smk`` snippet. + + Layout:: + + out_dir/ + figures.smk # the render rules (from emit_figure_rules) + figures/plot_<name>.py # self-contained bsplot script per figure + + Each ``plot_<name>.py`` is ``bsplot.render_code(figure, base_dir, outfile=…)`` with + ``outfile`` set to the rule's declared ``output`` (``figures/<name>.<fmt>``), so + running ``python figures/plot_<name>.py`` from the kit root produces exactly what + the rule promises. Returns the kit directory. + """ + out_dir = Path(out_dir) + (out_dir / "figures").mkdir(parents=True, exist_ok=True) + for figure in figures: + name = figure.name or "figure" + fmt = (figure.format or "png").lstrip(".") + script = out_dir / "figures" / f"plot_{sanitize_name(name)}.py" + code = bsplot.render_code(figure, base_dir=base_dir, + outfile=f"figures/{name}.{fmt}") + script.write_text(code, encoding="utf-8") + rules = emit_figure_rules(figures, base_dir, workflow=workflow, + kit_dir=str(out_dir), include_all=include_all) + (out_dir / "figures.smk").write_text(rules, encoding="utf-8") + return out_dir diff --git a/tvbo/adapters/julia.py b/tvbo/adapters/julia.py index 201adb73a..0804f9fb3 100644 --- a/tvbo/adapters/julia.py +++ b/tvbo/adapters/julia.py @@ -8,9 +8,12 @@ will install Julia (if needed) and all declared packages. """ +import logging import re from typing import Any, Optional +logger = logging.getLogger(__name__) + _julia_main = None _installed_packages = set() @@ -60,16 +63,16 @@ def install_julia_package(package_name: str, Main: Optional[Any] = None, update: if package_name in _installed_packages and not update: return - print(f"{'Updating' if update else 'Installing'} Julia package: {package_name}...") + logger.info("%s Julia package: %s...", "Updating" if update else "Installing", package_name) try: if update: Main.seval(f'import Pkg; Pkg.update("{package_name}")') else: Main.seval(f'import Pkg; Pkg.add("{package_name}")') _installed_packages.add(package_name) - print(f"Successfully {'updated' if update else 'installed'} {package_name}") + logger.info("Successfully %s %s", "updated" if update else "installed", package_name) except Exception as e: - print(f"Warning: Failed to {'update' if update else 'install'} {package_name}: {e}") + logger.warning("Failed to %s %s: %s", "update" if update else "install", package_name, e) raise @@ -91,7 +94,7 @@ def eval_with_auto_install(code, max_retries=3): # Retry after installing continue except Exception: - print(f"Failed to auto-install {package_name}, re-raising original error") + logger.warning("Failed to auto-install %s, re-raising original error", package_name) raise e else: # Not a package error or max retries reached diff --git a/tvbo/adapters/julia_model.py b/tvbo/adapters/julia_model.py index 9cd7b7477..ca644996f 100644 --- a/tvbo/adapters/julia_model.py +++ b/tvbo/adapters/julia_model.py @@ -115,7 +115,161 @@ def make_renderer(model, fmt="julia"): ) -def build_model_context(model) -> dict: +def _build_network_context(model, network, n_nodes, constraints=None) -> dict: + """Network-coupled variant of :func:`build_model_context` (loop-based RHS). + + State is ``n_nodes`` blocks per state variable (block ``k`` spans indices + ``k*N+1 .. (k+1)*N``). Each long-range coupling term becomes a connectivity + matvec evaluated once per step (``_coup_<c> = W_NET Β· s_view``); the per-node + scalar RHS (the same expressions the single-node emitter produces) runs inside + a ``for i in 1:N`` loop. ``local`` coupling inputs are zero in a region sim. + + ``constraints`` promotes constraint-defined free parameters (e.g. the FIC + ``J_i``) from parameters to extra unknown STATE blocks, appended after the real + state. Each block's defining equation is the ``TuningObjective`` residual + (``target_variable βˆ’ target_value``), not an ODE: at equilibrium the residual + is zero so the constraint holds, and during the initial-state warm-up the same + residual is stabilising negative feedback (``target_variable`` ↑ β‡’ free param ↑ + β‡’ inhibition ↑ β‡’ ``target_variable`` ↓), so no separate solver is needed. This + is the FIC branch of Deco 2014 Fig 2c. See ``DEV_PLAN_recipe_native.md`` (D2). + Each constraint is ``{"parameter", "target_variable", "target_value"}``. + """ + import numpy as np + + sv, params, coupling, _dvars, _dparams = symbol_names(model) + jl = make_renderer(model, "julia") + arg_x = "_x" if "x" in sv else "x" + + constraints = list(constraints or []) + free_names = {c["parameter"] for c in constraints} + + # Connectivity matrix as a Julia literal (rows ';'-separated). + W = np.asarray(network.weights_matrix, dtype=float) + if W.shape != (n_nodes, n_nodes): + raise ValueError(f"weights_matrix shape {W.shape} != ({n_nodes}, {n_nodes})") + w_const = "[" + ";\n ".join(" ".join(repr(float(v)) for v in row) for row in W) + "]" + + # Coupling source = the state variable flagged coupling_variable (fallback: sv[0]). + csv_k = 0 + for k, s in enumerate(model.state_variables.values()): + if getattr(s, "coupling_variable", False): + csv_k = k + break + csv_lo, csv_hi = csv_k * n_nodes + 1, (csv_k + 1) * n_nodes + + # Per coupling term: local β†’ 0.0 per node; long-range β†’ WΒ·s matvec once + gather. + cinputs = getattr(model, "coupling_inputs", None) or {} + coupling_pre, coupling_body = [], [] + for c in coupling: + ci = cinputs.get(c) if hasattr(cinputs, "get") else None + if ci is not None and bool(getattr(ci, "local", False)): + coupling_body.append(f"{c} = 0.0") + else: + coupling_pre.append(f"_coup_{c} = W_NET * (@view {arg_x}[{csv_lo}:{csv_hi}])") + coupling_body.append(f"{c} = _coup_{c}[i]") + + # Per-node state unpack and derivative LHS (block index k*N + i; k=0 β‡’ i). + unpack, dfun = [], [] + for k, (name, s) in enumerate(model.state_variables.items()): + idx = "i" if k == 0 else f"{k * n_nodes} + i" + unpack.append(f"{name} = {arg_x}[{idx}]") + dfun.append((f"dx[{idx}] =", jl(s.equation.rhs))) + + functions = [] + for fname, fdef in (getattr(model, "functions", None) or {}).items(): + functions.append((str(fname), [str(a) for a in fdef.arguments], jl(fdef.equation.rhs))) + derived_params = [ + (dp.name, jl(dp.equation.rhs)) + for dp in (getattr(model, "derived_parameters", None) or {}).values() + ] + derived_vars = [] + for dv in (getattr(model, "derived_variables", None) or {}).values(): + if getattr(dv, "conditional", False) and getattr(dv, "cases", None): + derived_vars.append((dv.name, build_ifelse(list(dv.cases), jl))) + else: + derived_vars.append((dv.name, jl(dv.equation.rhs))) + + # Parameters. A heterogeneous per-node parameter (value is a length-n_nodes + # array, e.g. the FIC-tuned J_i) is emitted as a Julia vector ``<name>_vec`` + # and gathered per node (``<name> = <name>_vec[i]``) at the top of the loop; + # scalar parameters (incl. a scalar default on a ``(n_nodes,)`` slot) stay scalar. + pval_parts, destructure_names, pernode_gather = [], [], [] + for p in model.parameters.values(): + if p.name in free_names: + continue # promoted to an unknown state block below (constraint-defined) + v = p.value + is_pernode = hasattr(v, "__len__") and not isinstance(v, str) and len(v) == n_nodes + if is_pernode: + vec = "[" + ", ".join(repr(float(x)) for x in v) + "]" + pval_parts.append(f"{p.name}_vec = {vec}") + destructure_names.append(f"{p.name}_vec") + pernode_gather.append(f"{p.name} = {p.name}_vec[i]") + else: + pval_parts.append(f"{p.name} = {v}") + destructure_names.append(p.name) + param_values = ", ".join(pval_parts) + ("," if len(pval_parts) == 1 else "") + destructure = ", ".join(destructure_names) + ("," if len(destructure_names) == 1 else "") + + u0 = [] + for s in model.state_variables.values(): + u0.extend([s.initial_value] * n_nodes) + + # Observables to record along the branch: every state variable plus any + # derived variable listed in the model's ``output`` (e.g. the firing rate + # H_e). Each is reduced across nodes to a max and a mean (see the record hook + # in the BifurcationKit template), so the branch plots e.g. max r_E vs G. + dv_names = {name for name, _ in derived_vars} + record_obs = list(sv) + for o in [str(o) for o in (getattr(model, "output", None) or [])]: + if o in dv_names and o not in record_obs: + record_obs.append(o) + + # ── Constraint-defined free-parameter blocks (FIC J_i etc.) ── + # Appended after the real state blocks: unpacked from the state vector, given a + # residual "dfun" (target_variable βˆ’ target_value), seeded in u0 from the + # declared value, and recorded along the branch (so J_i(G) is available). + n_sv = len(model.state_variables) + for j, c in enumerate(constraints): + pname, tv, tval = c["parameter"], str(c["target_variable"]), float(c["target_value"]) + idx = f"{(n_sv + j) * n_nodes} + i" # block after the real state (always β‰₯ 1) + unpack.append(f"{pname} = {arg_x}[{idx}]") + # Defining equation: residual β†’ 0. Rendered through the sympy printer (like + # every other dfun rhs) rather than string-formatted, for consistent emission. + dfun.append((f"dx[{idx}] =", jl(f"{tv} - {tval}"))) + pv = model.parameters[pname].value + if hasattr(pv, "__len__") and not isinstance(pv, str) and len(pv) == n_nodes: + u0.extend([float(x) for x in pv]) + else: + u0.extend([(float(pv) if pv is not None and not hasattr(pv, "__len__") else 1.0)] * n_nodes) + for name in (pname, tv): + if name not in record_obs: + record_obs.append(name) + + return { + "func_name": model.name, + "arg_x": arg_x, + "destructure": destructure, + "needs_special": needs_special_functions(model), + "needs_nanmath": needs_nanmath(model), + "functions": functions, + "derived_params": derived_params, + "derived_vars": derived_vars, + "unpack": unpack, + "dfun": dfun, + "param_values": param_values, + "u0": u0, + "n_modes": 1, + "network_mode": True, + "n_nodes": n_nodes, + "w_const": w_const, + "coupling_pre": coupling_pre, + "coupling_body": coupling_body, + "pernode_gather": pernode_gather, + "record_obs": record_obs, + } + + +def build_model_context(model, network=None, constraints=None) -> dict: """Build the full DifferentialEquations.jl model-function context. Everything the ``tvbo-julia-model.jl.mako`` / ``tvbo-julia-ODEProblem.jl.mako`` @@ -124,7 +278,28 @@ def build_model_context(model) -> dict: Multi-mode models (``number_of_modes > 1``) lay each state variable out as a contiguous length-n_modes block, so the dfun operates on per-mode vectors and writes vector slices (``dx[lo:hi] .= …``); scalar models keep the flat layout. + + When ``network`` is supplied (a multi-node ``Network``), the model is emitted + as a coupled network: the state is laid out as ``n_nodes`` blocks per state + variable, each long-range coupling term becomes a connectivity matvec + (``c = W Β· s_coupling``) evaluated once per step, and the per-node scalar RHS + runs inside a ``for i in 1:N`` loop β€” reusing the single-node equation emission + verbatim (no vectorised broadcasting). This is the vector field a whole-brain + equilibrium/periodic-orbit continuation (e.g. Deco 2014 Fig 2c) continues in G. """ + n_nodes = int(getattr(network, "number_of_nodes", 0) or 0) if network is not None else 0 + if n_nodes > 1: + return _build_network_context(model, network, n_nodes, constraints=constraints) + + if constraints: + # Constraint-defined free params (FIC J_i) are only implemented for the + # coupled network path; silently ignoring them here would emit an untuned + # (wrong) branch. Fail loudly instead. + raise NotImplementedError( + "Constraint-defined free parameters (e.g. FIC J_i) require a multi-node " + "network continuation; single-node constraint continuation is not implemented." + ) + sv, params, coupling, _dvars, _dparams = symbol_names(model) jl = make_renderer(model, "julia") diff --git a/tvbo/adapters/pyrates_bifurcation.py b/tvbo/adapters/pyrates_bifurcation.py index acdcb1a92..bd1cfa2bd 100644 --- a/tvbo/adapters/pyrates_bifurcation.py +++ b/tvbo/adapters/pyrates_bifurcation.py @@ -560,8 +560,14 @@ def _load_circuit(self, model): """Load a PyRates CircuitTemplate from a TVBO Dynamics model.""" from pyrates.frontend import CircuitTemplate + from tvbo.adapters.pyrates import _patch_pyrates_networkx_backend from tvbo.codegen.pyrates import to_pyrates_yaml_string + # PyRates threads a ``backend`` kwarg into ComputeGraph that networkx >= 3.4's + # dispatch decorator intercepts; apply the shared dispatch patch (same one the + # main PyRates adapter uses) before the circuit is built and compiled. + _patch_pyrates_networkx_backend() + yaml_content = to_pyrates_yaml_string(model) tmpdir = tempfile.mkdtemp(prefix="tvbo_pyrates_bif_") diff --git a/tvbo/adapters/tvboptim.py b/tvbo/adapters/tvboptim.py index 9937f50c2..42d3020b7 100644 --- a/tvbo/adapters/tvboptim.py +++ b/tvbo/adapters/tvboptim.py @@ -22,11 +22,11 @@ def _build_graph(network: "Network", delays: bool = True, max_delay: float | Non Returns a ``DenseDelayGraph`` when *delays* is True and the network has non-zero tract lengths, otherwise a ``DenseGraph``. - ``max_delay`` is forwarded to ``DenseDelayGraph`` to size the (static) - history buffer explicitly. Pass it as a concrete upper bound when the - delays are meant to vary differentiably (e.g. ``delays = lengths / speed`` - with ``speed`` optimised), so the buffer length stays static while the - delays may become JAX tracers. + ``max_delay`` is forwarded to ``DenseDelayGraph`` as its ``max_delay_bound`` + to size the (static) history buffer explicitly. Pass it as a concrete upper + bound when the delays are meant to vary differentiably (e.g. + ``delays = lengths / speed`` with ``speed`` optimised), so the buffer length + stays static while the delays may become JAX tracers. """ import jax.numpy as jnp from tvboptim.experimental.network_dynamics.graph import DenseGraph @@ -42,7 +42,7 @@ def _build_graph(network: "Network", delays: bool = True, max_delay: float | Non weights=weights, delays=delay_matrix, region_labels=labels, - max_delay=max_delay, + max_delay_bound=max_delay, ) return DenseGraph(weights=weights, region_labels=labels) @@ -215,7 +215,9 @@ def to_tvboptim( if noise is None and dyn_obj is not None: noise = _extract_noise(dyn_obj) - # Enable differentiable (interpolated) delays on every delayed coupling. + # Enable differentiable (interpolated) delays on every delayed coupling: + # linear history interpolation makes d(state)/d(delay) informative, so + # conduction speed becomes gradient-optimisable. if interpolate_delays: if isinstance(coupling, dict): _coups = coupling.values() @@ -224,8 +226,8 @@ def to_tvboptim( else: _coups = [coupling] for _c in _coups: - if hasattr(_c, "interpolate_delays"): - _c.interpolate_delays = True + if hasattr(_c, "history_interpolation"): + _c.history_interpolation = "linear" from tvboptim.experimental.network_dynamics import Network as TvboptimNetwork diff --git a/tvbo/analysis/bifurcation.py b/tvbo/analysis/bifurcation.py index 0f1972b20..e35efc7a3 100644 --- a/tvbo/analysis/bifurcation.py +++ b/tvbo/analysis/bifurcation.py @@ -85,8 +85,15 @@ "LC_EP": dict(marker="none", color=_C["po_line"], label="LC EP"), } -# Canonical TY normalisation (lower-case backend strings β†’ upper TY key) -_TY_ALIASES = { +# Canonical TY normalisation (backend special-point label β†’ canonical short +# code, e.g. "LP"/"HB"/"BP"). The AUTHORITATIVE source is the ontology's +# bifurcation taxonomy (``ontology/tvb-o-bifurcation.ttl``, merged into +# ``tvbo.owl``): each type carries a ``tvbo:canonicalCode`` plus ``skos:altLabel`` +# for every backend spelling (BifurcationKit ``:bp``/``:fold``, AUTO ``LP``/``HB``/ +# ``BP``, PyRates, ...). The map below is a built-in fallback, used verbatim only +# when the ontology cannot be read (headless / minimal installs); the ontology is +# layered on top of it so it stays the single source of truth. +_TY_ALIASES_FALLBACK = { # equilibria "fold": "LP", "saddle-node": "LP", "sn": "LP", "lp": "LP", "hopf": "HB", "hb": "HB", @@ -102,6 +109,47 @@ "hh": "HH", "hopf-hopf": "HH", } +_TY_ALIASES_CACHE = None + + +def _derive_ty_aliases(): + """Build ``{backend-label(lower) β†’ canonical code}`` from the ontology. + + Reads ``tvbo:canonicalCode`` + ``skos:altLabel`` off the merged bifurcation + taxonomy so the label map tracks the ontology automatically. Falls back to + (and is layered over) ``_TY_ALIASES_FALLBACK`` if the ontology is missing. + """ + aliases = dict(_TY_ALIASES_FALLBACK) + try: + from pathlib import Path + + import rdflib + + import tvbo + + owl = Path(tvbo.__file__).parent / "data" / "ontology" / "tvbo.owl" + if owl.exists(): + g = rdflib.Graph() + g.parse(str(owl)) + q = ( + "SELECT ?alt ?code WHERE { " + "?c <https://w3id.org/tvbo/canonicalCode> ?code ; " + "<http://www.w3.org/2004/02/skos/core#altLabel> ?alt }" + ) + for alt, code in g.query(q): + aliases[str(alt).strip().lower()] = str(code).strip() + except Exception: + pass + return aliases + + +def _ty_aliases(): + """Lazily-derived, cached backend-label β†’ canonical-code map.""" + global _TY_ALIASES_CACHE + if _TY_ALIASES_CACHE is None: + _TY_ALIASES_CACHE = _derive_ty_aliases() + return _TY_ALIASES_CACHE + def canonical_ty(ty): """Normalise any backend label to a key in ``BIF_STYLES``.""" @@ -116,7 +164,7 @@ def canonical_ty(ty): su = s.upper() if su in BIF_STYLES: return su - return _TY_ALIASES.get(s.lower()) + return _ty_aliases().get(s.lower()) def get_bif_style(ty, base=None): @@ -496,8 +544,55 @@ def __init__(self, br=None, *, df=None, **kwargs): self.df.at[rix, "sp_norm"] = norm self.df.at[rix, "sp_idx"] = idx_val + # Disambiguate BifurcationKit's overloaded ``:bp``. On an equilibrium + # branch it labels BOTH genuine branch points and saddle-node folds + # ``:bp``. The ontology distinguishes them by branch geometry (Fold β‡’ + # LimitPointGeometry, BranchPoint β‡’ BranchCrossingGeometry); a fold is + # the one where the continuation parameter turns around. Relabel those + # to ``fold`` so ``canonical_ty`` resolves them to ``LP``. + if sp_list and kind == "EquilibriumCont": + self._reclassify_folds() + self._finalize() + def _reclassify_folds(self): + """Relabel a ``:bp`` as a fold when it sits at a parameter turning point. + + Operationalises the ontology's ``LimitPointGeometry`` discriminator + (``ontology/tvb-o-bifurcation.ttl``): on an equilibrium branch, a + branch-point label whose continuation parameter is a local extremum is a + saddle-node fold, not a transversal branch crossing. + """ + df = self.df + if df is None or df.empty or "specialpoint" not in df.columns \ + or "param" not in df.columns: + return + p = df["param"].to_numpy(dtype=float) + n = len(p) + bp_tokens = ("bp", "branchpoint", "branch-point") + sp_col = df.columns.get_loc("specialpoint") + for pos in range(n): + val = df.iat[pos, sp_col] + if val is None: + continue + toks = [t.strip() for t in str(val).split(",")] + if not any(t.lower() in bp_tokens for t in toks): + continue + # nearest neighbours with a distinct parameter value on each side + lo = pos - 1 + while lo >= 0 and p[lo] == p[pos]: + lo -= 1 + hi = pos + 1 + while hi < n and p[hi] == p[pos]: + hi += 1 + if lo < 0 or hi >= n: + continue + # parameter reverses direction across the point β‡’ turning point β‡’ fold + if (p[pos] - p[lo]) * (p[hi] - p[pos]) < 0: + df.iat[pos, sp_col] = ",".join( + "fold" if t.lower() in bp_tokens else t for t in toks + ) + # ── Shared post-extraction bookkeeping ────────────────────────────── def _finalize(self): """Populate ``hopf_indices`` / ``bp_indices`` (+ matching steps). @@ -520,6 +615,41 @@ def _finalize(self): self.hopf_steps = self.df.loc[hopf_mask, "step"].tolist() self.bp_steps = self.df.loc[bp_mask, "step"].tolist() + def to_dataset(self): + """Return the continuation branch as a native, self-describing xarray ``Dataset``. + + The branch is a labelled table indexed by continuation ``step``; the + continuation parameter (``ICS``, e.g. ``G``) is a coordinate along it and + every recorded observable / stability flag becomes a data variable. This is + the same labelled container the rest of tvbo uses (``ExperimentResult`` holds + it under ``continuations``), so continuation results persist through the + standard result format instead of any ad-hoc per-figure array dump. + """ + import xarray as xr + + df = self.df + if df is None or len(df) == 0: + return xr.Dataset() + pname = str(getattr(self, "ICS", None) or "param") + coords = {"step": np.arange(len(df))} + if "param" in df.columns: + coords[pname] = ("step", np.asarray(df["param"], dtype=float)) + data_vars = {} + for col in df.columns: + if col in ("param", "step"): # param β†’ coord; step β†’ the dimension + continue + arr = df[col].to_numpy() + if col == "specialpoint": + # Keep the special-point labels (fold/hopf/…) as strings, "" for none. + data_vars[col] = ("step", np.array(["" if v is None else str(v) for v in arr])) + elif arr.dtype == bool or np.issubdtype(arr.dtype, np.number): + data_vars[col] = ("step", arr) + return xr.Dataset( + data_vars=data_vars, + coords=coords, + attrs={"continuation_kind": str(getattr(self, "kind", "") or ""), "ICS": pname}, + ) + # ── Backend factory shortcuts ─────────────────────────────────────── @classmethod def from_bifkit(cls, br, **kwargs): diff --git a/tvbo/analysis/linear_response.py b/tvbo/analysis/linear_response.py new file mode 100644 index 000000000..42a259a8a --- /dev/null +++ b/tvbo/analysis/linear_response.py @@ -0,0 +1,215 @@ +# +# Module: linear_response.py +# +# Author: Leon Martin +# Copyright Β© 2024 CharitΓ© UniversitΓ€tsmedizin Berlin. +# Licensed under the EUPL-1.2-or-later +# + +""" +Linear response +================ +Symbolic linear-response machinery derived entirely from a model's declarative +metadata β€” the network Jacobian ``A`` at an operating point, and the noise input +matrix ``Q`` β€” from which fixed-point observables follow (stationary covariance +via the Lyapunov equation, power spectra, Fisher information; Deco 2014 Figs 5/6). + +Everything model-specific is **symbolic** and backend-independent: :func:`jacobian_terms` +differentiates the dfun metadata with ``sympy`` (derived-variable chain unfolded) and +returns the symbolic per-node Jacobians, which the **code generator renders to any +backend** through ``render_expression``. The network assembly (block-diagonal local +Jacobian + connectome-scattered coupling Jacobian) is likewise **emitted by codegen +per backend** β€” a ``vmap``/scatter on JAX, a loop on Julia β€” exactly as the network RHS +is emitted (one metadata source, every backend); ideally through the backend-abstracted +``arrayops`` structural primitives so the assembly, too, is one handler. + +:func:`network_jacobian` below is a **NumPy reference oracle only** β€” it assembles ``A`` +numerically so the symbolic terms can be verified against a finite-difference Jacobian in +tests. It is NOT the runtime path (the runtime path is the codegen described above); do +not call it from generated code. + +The full network Jacobian is + + A[(k,i),(l,j)] = Ξ΄_ij Β· βˆ‚f_k/βˆ‚x_l (local block, per node) + + Ξ£_c (βˆ‚f_k/βˆ‚c) Β· (βˆ‚c_i/βˆ‚x_{l,j}) (coupling block) + +where for an instantaneous coupling input ``c`` whose source state variable is +``s`` (``c_i = Ξ£_j W_ij s_j``), ``βˆ‚c_i/βˆ‚x_{l,j} = W_ij`` when ``l == s`` else 0. +Both ``βˆ‚f_k/βˆ‚x_l`` (``Jloc``) and ``βˆ‚f_k/βˆ‚c`` (``Jcpl``) are symbolic per-node +Jacobians of the metadata dfun. +""" + +from __future__ import annotations + +from typing import Any + +import numpy as np +import sympy as sp + + +def _dfun_symbols(model): + """Return (state_syms, net_coupling_names, source_var, per-node f expressions). + + ``f`` are the state-variable RHS with the derived-variable chain fully + unfolded and local (non-network) coupling inputs zeroed β€” so each ``f_k`` is + expressed in state variables, network-coupling inputs, and parameters only. + """ + svs = list(model.state_variables) + cpl_inputs = dict(getattr(model, "coupling_inputs", {}) or {}) + net_cpls = [c for c, ci in cpl_inputs.items() if not getattr(ci, "local", False)] + local_cpls = [c for c, ci in cpl_inputs.items() if getattr(ci, "local", False)] + source_var = next( + (n for n, sv in model.state_variables.items() if getattr(sv, "coupling_variable", False)), + svs[0], + ) + + from tvbo.classes.equation import substitute_function_in_state_equations + + dvars = {n: sp.sympify(dv.equation.rhs) + for n, dv in (getattr(model, "derived_variables", {}) or {}).items()} + zero_local = {sp.Symbol(c): 0 for c in local_cpls} + + # Inline the derived-variable chain into the state equations with the codebase's + # canonical inliner, iterated to unfold nested references (a derived var may + # reference another), then zero local (non-network) coupling inputs. + sv_eqs = {v: sp.sympify(model.state_variables[v].equation.rhs) for v in svs} + for _ in range(len(dvars) + 1): + substitute_function_in_state_equations(sv_eqs, dvars) + state_syms = [sp.Symbol(v) for v in svs] + f = [sv_eqs[v].subs(zero_local) for v in svs] + return svs, state_syms, net_cpls, source_var, f + + +def jacobian_terms(model): + """Symbolic per-node Jacobian terms of the metadata dfun. + + Returns a dict with the symbolic ``Jloc`` (βˆ‚f/βˆ‚state, ``n_sv Γ— n_sv``) and + ``Jcpl`` (βˆ‚f/βˆ‚net-coupling, ``n_sv Γ— n_cpl``) sympy matrices plus the symbol + ordering needed to lower them (state vars, network coupling names, the coupling + source variable). Backend-independent β€” a printer turns these into code. + """ + svs, state_syms, net_cpls, source_var, f = _dfun_symbols(model) + cpl_syms = [sp.Symbol(c) for c in net_cpls] + fmat = sp.Matrix(f) + return { + "state_vars": svs, + "state_syms": state_syms, + "net_couplings": net_cpls, + "coupling_syms": cpl_syms, + "source_var": source_var, + "rhs": f, # per-node RHS (derived-var chain unfolded, local coupling zeroed) + "Jloc": fmat.jacobian(state_syms), + "Jcpl": fmat.jacobian(cpl_syms) if cpl_syms else sp.zeros(len(svs), 0), + } + + +def constraint_expr(model, var_name): + """Unfolded symbolic expression of a derived variable (e.g. the FIC constraint variable + ``I_E``), in state variables, network-coupling inputs and parameters β€” same unfolding as + :func:`_dfun_symbols` uses for the RHS (derived-variable chain inlined, local coupling + zeroed), so it prints against the same symbol set (``ctx['syms']``). Used to emit the + constraint residual of a constraint-defined operating point (Deco FIC: ``I_E = target``, + with ``J_i`` the free parameter), solved deterministically alongside the fixed point. + """ + from tvbo.classes.equation import substitute_function_in_state_equations + + cpl_inputs = dict(getattr(model, "coupling_inputs", {}) or {}) + local_cpls = [c for c, ci in cpl_inputs.items() if getattr(ci, "local", False)] + dvars = {n: sp.sympify(dv.equation.rhs) + for n, dv in (getattr(model, "derived_variables", {}) or {}).items()} + if var_name not in dvars: + raise KeyError(f"constraint variable '{var_name}' is not a derived variable of the model") + expr = {var_name: sp.sympify(dvars[var_name])} + for _ in range(len(dvars) + 1): + substitute_function_in_state_equations(expr, dvars) + return expr[var_name].subs({sp.Symbol(c): 0 for c in local_cpls}) + + +def linear_response_context(model): + """Resolution for the linear-response codegen: symbolic terms + layout, NO code. + + Keeps *resolution* in Python and *code structure* in the template, per the codegen + convention. The Mako ``<%def>`` partials in ``_linear_response.py.mako`` consume this + and emit the vector-field / Jacobian / covariance structure, rendering each symbolic + entry with ``render_expression`` (so any backend prints it) β€” no Python string-emit. + + Returns the state / coupling / parameter layout β€” including which parameters are + per-node (``pernode``: heterogeneous, gathered by node index) and the symbol set the + printer must treat as plain symbols (``syms``) β€” plus the symbolic per-node RHS + (``rhs``), local Jacobian (``Jloc``) and coupling Jacobian (``Jcpl``). + """ + t = jacobian_terms(model) + svs, net_cpls, src = t["state_vars"], t["net_couplings"], t["source_var"] + pnames = [p.name for p in model.parameters.values()] + pernode = {p.name for p in model.parameters.values() if getattr(p, "heterogeneous", False)} + return { + "svs": svs, + "net_cpls": net_cpls, + "src_k": svs.index(src), + "n_sv": len(svs), + "n_cpl": len(net_cpls), + "pnames": pnames, + "pernode": pernode, + "syms": svs + net_cpls + pnames, + "rhs": t["rhs"], + "Jloc": t["Jloc"], + "Jcpl": t["Jcpl"], + } + + +def network_jacobian(model, weights: Any, state: Any, params: dict) -> np.ndarray: + """NumPy **reference oracle** β€” assemble ``A`` numerically for verification only. + + Used by tests to check the symbolic :func:`jacobian_terms` against a + finite-difference Jacobian. The runtime path renders those symbolic terms to the + target backend and assembles ``A`` in codegen (``vmap``/scatter on JAX, loop on + Julia); this function is deliberately NumPy and must not be called from generated + code. + + Parameters + ---------- + model : Dynamics + The model (source of the symbolic dfun). + weights : array (n_nodes, n_nodes) + Connectome ``W`` (``c_i = Ξ£_j W_ij s_j`` for the coupling source ``s``). + state : array (n_sv, n_nodes) + The operating point (e.g. the deterministic fixed point), per state + variable and node. + params : dict + Scalar parameter values by name. + + Returns + ------- + A : array (n_svΒ·n_nodes, n_svΒ·n_nodes) + The Jacobian in block layout (state-variable block ``k`` spans rows/cols + ``kΒ·N .. (k+1)Β·N``), matching the network state layout used elsewhere. + """ + t = jacobian_terms(model) + svs, net_cpls, src = t["state_vars"], t["net_couplings"], t["source_var"] + n_sv = len(svs) + W = np.asarray(weights, float) + Y = np.asarray(state, float).reshape(n_sv, W.shape[0]) + N = W.shape[0] + src_k = svs.index(src) + + arg_syms = t["state_syms"] + t["coupling_syms"] + [sp.Symbol(p) for p in params] + Jloc = sp.lambdify(arg_syms, t["Jloc"], "numpy") + Jcpl = sp.lambdify(arg_syms, t["Jcpl"], "numpy") + + # coupling per network input per node: c_i = Ξ£_j W_ij s_src,j + C = {c: W @ Y[src_k] for c in net_cpls} + + A = np.zeros((n_sv * N, n_sv * N)) + for i in range(N): + ci = [C[c][i] for c in net_cpls] + # per-node (array-valued) params are indexed by node; scalars pass through + pvals_i = [np.asarray(v)[i] if np.ndim(v) > 0 else v for v in params.values()] + jl = np.asarray(Jloc(*Y[:, i], *ci, *pvals_i), float).reshape(n_sv, n_sv) + jc = np.asarray(Jcpl(*Y[:, i], *ci, *pvals_i), float).reshape(n_sv, len(net_cpls)) + for k in range(n_sv): + for l in range(n_sv): + A[k * N + i, l * N + i] += jl[k, l] # local block (node-diagonal) + for cix in range(len(net_cpls)): + # βˆ‚f_k/βˆ‚c Β· βˆ‚c_i/βˆ‚s_src,j = jc[k]Β·W_ij (source variable's column block) + A[k * N + i, src_k * N : src_k * N + N] += jc[k, cix] * W[i, :] + return A diff --git a/tvbo/classes/atlas.py b/tvbo/classes/atlas.py index 0aa5918a8..3661c3e81 100644 --- a/tvbo/classes/atlas.py +++ b/tvbo/classes/atlas.py @@ -6,6 +6,7 @@ produce ranked (relabelled) parcellation volumes from FreeSurfer segmentations. """ +import logging import os try: @@ -63,6 +64,7 @@ def tqdm(x, **kwargs): ] available_atlases = bids_utils.get_unique_entity_values(atlas_data, "atlas") +logger = logging.getLogger(__name__) class Atlas(tvbo_datamodel.BrainAtlas): @@ -258,7 +260,7 @@ def centers(self): except ImportError: centers = [] lookup_labels = [] - print( + logger.warning( "nilearn is required to compute atlas region centers. " "Setting to empty. Install nilearn or provide atlas metadata." ) diff --git a/tvbo/classes/coupling.py b/tvbo/classes/coupling.py index eac9da0e5..c6d24cc8f 100644 --- a/tvbo/classes/coupling.py +++ b/tvbo/classes/coupling.py @@ -597,12 +597,79 @@ def _local(sn): with sp.evaluate(False): pre_expr = parse_eq(self.pre_expression, local_dict=local_dict) post_expr = parse_eq(self.post_expression, local_dict=local_dict) - pre_indexed = pre_expr.subs(subs_map) - - # Full coupling: Sum(w[i,j] * pre, (j, 0, N-1)), substituted into post + if not isinstance(pre_expr, (list, tuple)): + pre_indexed = pre_expr.subs(subs_map) + + # Factored / vectorized coupling: the pre-expression is a *list* whose k-th + # component is summed into gx_k and the post recombines the gx_k. When the post + # is linear in the gx_k (the usual case) collapse to the canonical single sum + # c = Sum_j w[i,j] * sum_k a_k(x_i) * pre_k(x_j) + # and let ``trigsimp`` fold the per-edge term (cos(x_i)sin(x_j) - sin(x_i)cos(x_j) + # -> sin(x_j - x_i)); otherwise keep the explicit gx_k = Sum(w * pre_k) form. + # Built outside the evaluate(False) block so the sum, coeff and trigsimp evaluate. + if isinstance(pre_expr, (list, tuple)): + # A bare state name in a summed pre refers to the summed (j) node, even when + # declared `local` (e.g. [sin(theta), cos(theta)]); explicit `_i` stays local. + pre_subs = dict(subs_map) + for sn in set(incoming) | set(local): + pre_subs[Symbol(sn)] = _incoming(sn) + pre_k = [comp.subs(pre_subs) for comp in pre_expr] + gxk = [Symbol(f"gx_{k}") for k in range(len(pre_k))] + post_indexed = post_expr.subs(subs_map) + coeffs = [post_indexed.coeff(g) for g in gxk] + if sp.expand(post_indexed - sum(a * g for a, g in zip(coeffs, gxk))) == 0: + edge = sp.trigsimp(sum(a * p for a, p in zip(coeffs, pre_k))) + # Show a folded odd-trig term in the physics convention f(incoming - local): + # sympy canonicalises f(x_j - x_i) to -f(x_i - x_j), so rebuild f(x_j - x_i) + # as a positive-first, unevaluated Add (the report renders with order='none'). + c0, rest = edge.as_coeff_Mul() + odd = (sp.sin, sp.tan, sp.sinh, sp.tanh) + if c0 == -1 and getattr(rest, "func", None) in odd and rest.args[0].is_Add: + terms = sorted((-t for t in rest.args[0].as_ordered_terms()), + key=lambda t: t.could_extract_minus_sign()) + with sp.evaluate(False): + edge = rest.func(sp.Add(*terms, evaluate=False)) + return Sum(w[i, j] * edge, (j, 0, N - 1)) + return post_indexed.subs({g: Sum(w[i, j] * p, (j, 0, N - 1)) for g, p in zip(gxk, pre_k)}) + + # Scalar pre: Sum(w[i,j] * pre, (j, 0, N-1)), substituted into post gx_sum = Sum(w[i, j] * pre_indexed, (j, 0, N - 1)) return post_expr.subs({gx: gx_sum}) + def summed_inputs(self, delays=False): + """Summed inputs ``gx_k`` of a factored / vectorized coupling. + + A factored coupling emits a *list* pre-expression whose k-th component is summed + over the graph into ``gx_k = Sum_j w[i,j] * (c_pre)_k(x_j)``, which the + post-expression then recombines. Returns ``[(gx_k, sum_expr), ...]`` so a report + can state precisely what ``gx_0``, ``gx_1``, … mean; empty for a scalar coupling. + """ + import sympy as sp + from sympy import IndexedBase, Symbol, symbols, Sum + from tvbo.parse.expression import parse_eq + + with sp.evaluate(False): + pre = parse_eq(self.pre_expression) + if not isinstance(pre, (list, tuple)): + return [] + + i, j, N = symbols("i j N") + w = IndexedBase("w") + states = {str(s) for s in (self.incoming_states or [])} | {str(s) for s in (self.local_states or [])} + t, tau = Symbol("t"), IndexedBase("tau") + + def _incoming(sn): + base = IndexedBase(sn) + return base[j, t - tau[i, j]] if delays else base[j] + + # In a summed pre a bare state (or its `_j` alias) is the incoming (j) node. + subs = {} + for sn in states: + subs[Symbol(sn)] = _incoming(sn) + subs[Symbol(f"{sn}_j")] = _incoming(sn) + return [(Symbol(f"gx_{k}"), Sum(w[i, j] * comp.subs(subs), (j, 0, N - 1))) + for k, comp in enumerate(pre)] + def plot(self, weights=None, node_idx=0, xs=None, ax=None, **kwargs): """Plot the coupling output against a single input state component. diff --git a/tvbo/classes/dynamics.py b/tvbo/classes/dynamics.py index 83c91f4da..ea342748c 100644 --- a/tvbo/classes/dynamics.py +++ b/tvbo/classes/dynamics.py @@ -16,6 +16,7 @@ class that augments the generated LinkML `Dynamics` datamodel with model together with the `Model` and `Dynamics` convenience subclasses. """ +import logging import copy as _copy import functools import os @@ -46,6 +47,8 @@ class that augments the generated LinkML `Dynamics` datamodel with model from tvbo.parse.expression import parse_eq from tvbo.utils import report +logger = logging.getLogger(__name__) + TEMPLATES = templates.root @functools.cache @@ -425,7 +428,7 @@ def update_parameters(metadata, ontoclass, verbose=0, only_used=True, **kwargs): synonym in metadata.parameters for synonym in k.synonym + k.symbol ): if verbose > 0: - print(f"using parameter {label} from the ontology") + logger.debug("using parameter %s from the ontology", label) metadata.parameters.update( { label: tvbo_datamodel.Parameter( @@ -3283,6 +3286,7 @@ def generate_report( template_name="tvbo-report-model", outputfile=None, derivative_notation: str = "dot", + baseline=None, ): """Render a human-readable report of the model. @@ -3295,6 +3299,11 @@ def generate_report( template_name: Base name of the report Mako template. outputfile: If given, path the report is written to. derivative_notation: Notation for time derivatives, e.g. `"dot"`. + baseline: Another `Dynamics` to diff against. When given, the report + lists only the state variables, parameters, derived variables and + couplings that are new or changed relative to it (a "relative to" + note replaces the shared rows) β€” e.g. a controlled variant shown + against its uncontrolled base without repeating every shared term. Returns: The rendered Markdown report string. @@ -3309,7 +3318,7 @@ def generate_report( md_template = templates.lookup.get_template(f"{template_name}.md.mako") md_render = ( - md_template.render(model=self, derivative_notation=derivative_notation) + md_template.render(model=self, derivative_notation=derivative_notation, baseline=baseline) .replace(r"\mathcal{lo}_{coupling}", "c_{local}") .replace("c_{pop0}", "c_{global}") ) diff --git a/tvbo/classes/equation.py b/tvbo/classes/equation.py index 6c384f046..ae9777004 100644 --- a/tvbo/classes/equation.py +++ b/tvbo/classes/equation.py @@ -10,6 +10,7 @@ # Handling Equations and Expressions """ +import logging import re from collections import deque @@ -55,6 +56,7 @@ coupling_variables = ["lrc", "short_range_coupling", "coupling", "lc_0", "c_0", "lc_1"] lambda_symbol = sp.symbols("lambda") E = sp.symbols("E") # TODO: not used +logger = logging.getLogger(__name__) def add_spaces_around_operators(expression): @@ -262,8 +264,7 @@ def sympify_value(v, acronym="", evaluate=False): evaluate=False, ) except Exception as e: - print(f"Error parsing equation: {eq}") - print(f"Error message: {e}") + logger.debug("Error parsing equation %r: %s", eq, e) raise ValueError(f"Failed to parse equation: {eq}. Ensure the equation is in a valid format.") return eq @@ -808,7 +809,7 @@ def get_latex_equation(model, func_dict="all", mul_symbol="dot"): if len(search) == 1: c_rhs = search[0] else: - print(search) + logger.debug("ambiguous search for %s in %s: %s", s, model, search) raise ValueError(f"Could not find {s} in {model}") symb = c_rhs.symbol.first() @@ -909,17 +910,17 @@ class and the equation's class in the ontology. Equations that are `None` or for k, v in symbolic_model_equations(model).items(): k_cls = ontology.find_variables(k, model) if k_cls is None: - print('did not find "{}" in "{}"'.format(k, model)) + logger.warning('did not find "%s" in "%s"', k, model) continue # Handle cases where v might be None (e.g., for discrete maps with conditionals) if v is None: - print(f'Skipping "{k}" in "{model}" - equation is None') + logger.debug('Skipping "%s" in "%s" - equation is None', k, model) continue # Check if v has free_symbols attribute (valid SymPy expression) if not hasattr(v, "free_symbols"): - print(f'Skipping "{k}" in "{model}" - not a valid SymPy expression') + logger.debug('Skipping "%s" in "%s" - not a valid SymPy expression', k, model) continue for symbol in v.free_symbols: diff --git a/tvbo/classes/event.py b/tvbo/classes/event.py index ca6552804..ecb9b1a5e 100644 --- a/tvbo/classes/event.py +++ b/tvbo/classes/event.py @@ -11,7 +11,6 @@ from sympy import Symbol, lambdify from tvbo.datamodel import schema as tvbo_datamodel -from tvbo.parse.expression import parse_eq class Event(tvbo_datamodel.Event): @@ -23,6 +22,12 @@ def _signal(self): Generic: works for any ``event.equation.rhs`` expressed in terms of ``t`` and the event's own parameters. """ + # Imported here rather than at module top: this module is imported by + # ``tvbo.datamodel`` to attach the Event helpers, and parse.expression + # imports back from ``tvbo.datamodel.schema`` β€” a module-top import would + # form an import cycle when parse.expression is imported first. + from tvbo.parse.expression import parse_eq + params = {name: Symbol(name) for name in (self.parameters or {})} params.setdefault("t", Symbol("t")) expr = parse_eq(self.equation, local_dict=params) diff --git a/tvbo/classes/experiment.py b/tvbo/classes/experiment.py index d1a537579..ceb8adbc3 100644 --- a/tvbo/classes/experiment.py +++ b/tvbo/classes/experiment.py @@ -14,7 +14,10 @@ `tvboptim`, `jax`, `pde`, `cuda`, `python`). """ import copy as _copy +import logging import os +import re +from collections import Counter from os.path import join from pathlib import Path from typing import Any @@ -24,6 +27,13 @@ import numpy as np import xarray as xr +# Apply the JAX Metal-fallback guard before any simulation touches JAX. Idempotent +# and cheap here (jax is already imported); kept out of ``import tvbo`` so the CLI +# and bare imports stay fast. See tvbo.__init__._configure_jax_backend. +from tvbo import _configure_jax_backend as _cfg_jax + +_cfg_jax() + try: from lems.base.util import validate_lems except ImportError: @@ -46,10 +56,62 @@ from tvbo.utils import traverse_metadata from tvbo.utils import Bunch from tvbo.utils import as_list +from tvbo.log import ensure_configured + +logger = logging.getLogger(__name__) sessionid = 1 +def _strip_private_yaml_keys(text: str) -> str: + """Drop private/runtime keys (``_source_file``, a codegen ``_coupling_key`` on a + Parameter, …) from a serialized YAML at any depth, so the spec round-trips + through ``from_file``. A private key line and its whole value block go too. The + value block includes deeper-indented lines and a block-sequence value whose + ``-`` items YAML writes at the key's own indentation (not deeper); without that + case a private list-valued cache (e.g. ``_model_labels_from_bids``) would leave + its items orphaned as a bare list at the document root. + """ + import re as _re + + key = _re.compile(r"^(\s*)_[A-Za-z]\w*\s*:") + kept, drop_indent = [], None + for line in text.splitlines(): + if drop_indent is not None: + stripped = line.strip() + indent = len(line) - len(line.lstrip()) + same_indent_seq_item = indent == drop_indent and ( + stripped == "-" or stripped.startswith("- ") + ) + if stripped == "" or indent > drop_indent or same_indent_seq_item: + continue + drop_indent = None + m = key.match(line) + if m: + drop_indent = len(m.group(1)) + continue + kept.append(line) + return "\n".join(kept) + "\n" + + +# Maps ``BidsEntities`` attribute names to the short entity keys that +# ``tvbo.classes.network._parse_bids_entities`` emits from a filename. ``suffix`` +# is deliberately absent β€” it is the trailing filename component, not a key-value +# entity, and is handled separately by its consumers. +_BIDS_ENTITY_SHORT_KEYS = { + "template": "tpl", "cohort": "cohort", "reconstruction": "rec", + "segmentation": "seg", "scale": "scale", "atlas": "atlas", + "acquisition": "acq", "hemi": "hemi", "desc": "desc", +} + + +def _bids_entities_to_short_dict(obj) -> dict: + """Convert a ``BidsEntities`` object to ``{short_key: value}`` for the set entities.""" + return {short: str(getattr(obj, attr)) + for attr, short in _BIDS_ENTITY_SHORT_KEYS.items() + if getattr(obj, attr, None) is not None} + + def _sync_network_node_count(net): """Sync number_of_nodes from the nodes list. @@ -406,6 +468,34 @@ def _coerce(cls, obj, **extra): if val is not None and not isinstance(val, _EventCls): val.__class__ = _EventCls + # Resolve observations that reference a curated model by `iri` (e.g. + # `iri: tvbo:BOLD_TVB`): merge the model's pipeline/parameters/class_reference + # in non-destructively so locally declared source/period overrides still win. + obss = getattr(self, "observations", None) + if obss and hasattr(obss, "values"): + from tvbo.classes.observation import populate_observation_from_iri + # A curated model may ship the helper functions its pipeline calls; collect + # them into a fresh sink so an experiment with no iri-referenced model keeps + # its functions table untouched (reassigning it re-wraps the type downstream). + _iri_funcs: dict = {} + for val in obss.values(): + if val is not None and getattr(val, "iri", None): + populate_observation_from_iri(val, functions_sink=_iri_funcs) + if _iri_funcs: + # Keep experiment.functions a plain name->Function dict (the YAML-loaded + # form). Assigning through the LinkML setter re-wraps it into a JsonObj + # that mangles the Function values and breaks `dict(experiment.functions)` + # in codegen β€” so mutate the existing dict in place, and for an + # experiment with none, install a plain dict via object.__setattr__ + # (bypassing that setter). Add only functions the experiment lacks. + funcs = getattr(self, "functions", None) + if funcs is None: + funcs = {} + object.__setattr__(self, "functions", funcs) + for k, v in _iri_funcs.items(): + if k not in funcs: + funcs[k] = v + if not getattr(self, "network", None): self.network = Network() else: @@ -732,11 +822,15 @@ def from_file(cls, filepath: str): A new `SimulationExperiment` populated from the file. """ from pathlib import Path - from tvbo.utils import yaml_loader + from tvbo.utils import yaml_loader, register_recipe_code_paths import yaml # Store source file path BEFORE loading so __init__ can use it cls._pending_source_file = str(Path(filepath).resolve()) + # Make the recipe's code/ subdir importable, so custom builders/callables + # resolve by bare module name without a PYTHONPATH prefix. Before loading: + # construction resolves the network builder eagerly (see __init__). + register_recipe_code_paths(cls._pending_source_file) try: with open(filepath) as file_handle: data_as_dict = yaml.safe_load(file_handle) or {} @@ -1057,20 +1151,25 @@ def from_bids( # 6. Verify reproducibility if requested # ===================================================================== if run_to_verify and timeseries is not None: - print("Running simulation to verify reproducibility...") + logger.info("Running simulation to verify reproducibility...") ts_rerun = experiment.run(format="jax") # Compare shapes if ts_rerun.shape != timeseries.shape: - print(f"WARNING: Shape mismatch! Loaded: {timeseries.shape}, Rerun: {ts_rerun.shape}") + logger.warning( + "Shape mismatch! Loaded: %s, Rerun: %s", timeseries.shape, ts_rerun.shape + ) else: # Compare data max_diff = np.max(np.abs(np.asarray(ts_rerun.data) - np.asarray(timeseries.data))) if max_diff < 1e-6: - print(f"βœ“ Verification passed! Max difference: {max_diff:.2e}") + logger.info("Verification passed! Max difference: %.2e", max_diff) else: - print(f"⚠ Data differs. Max difference: {max_diff:.2e}") - print(" This may be expected if noise was used or parameters differ.") + logger.warning( + "Data differs. Max difference: %.2e " + "(may be expected if noise was used or parameters differ).", + max_diff, + ) return experiment, timeseries @@ -1216,8 +1315,7 @@ def noise_sigma_array(self) -> np.ndarray: try: sigma = float(sv.noise.parameters["sigma"].value) except Exception as e: - print(f"Error retrieving sigma for state variable {sv.name}: {e}") - pass + logger.debug("Error retrieving sigma for state variable %s: %s", sv.name, e) if sigma == 0.0: try: @@ -1232,8 +1330,7 @@ def noise_sigma_array(self) -> np.ndarray: ): sigma = float(inparams["sigma"].value) except Exception as e: - print(f"Error retrieving integration-level sigma: {e}") - pass + logger.debug("Error retrieving integration-level sigma: %s", e) sigmas.append(float(sigma)) @@ -1356,10 +1453,7 @@ def to_yaml(self, filepath: str | None = None, format: str = "tvbo") -> str: from pathlib import Path as _Path from tvbo.utils import to_yaml as _to_yaml - text = _to_yaml(self, None) - # Drop top-level private/provenance keys (e.g. _source_file, an absolute - # machine path) so the exported spec is clean and round-trips through from_file. - text = "\n".join(l for l in text.splitlines() if not re.match(r"^_[A-Za-z]", l)) + "\n" + text = _strip_private_yaml_keys(_to_yaml(self, None)) if filepath: _Path(filepath).write_text(text, encoding="utf-8") return filepath @@ -1403,6 +1497,10 @@ def configure(self): # and metadata export reflect what was actually executed. _resolve_coupling(self) + # Lower declarative stimulus events (target_variable -> name, target_regions + # -> node indices) into the fields codegen consumes β€” same idempotent boundary. + self._resolve_events() + # Disable delayed logic if the connectome has no path lengths or conduction speed is infinite try: network = getattr(self, "network", None) @@ -1631,7 +1729,278 @@ def execute(self, format="tvb", **kwargs): else: raise ValueError(f"Format {format} not supported. Valid formats: tvb, tvboptim, jax.") - def run(self, format="tvboptim", initial_conditions=None, **kwargs): + def _locate_source_result(self, results_root, source_id): + """Path to the ``from_experiment`` source run's saved result HDF5. + + Globs ``results_root`` (or cwd) by the ``exp-<id>_`` stem, skipping the + network sidecar. Raises if the source hasn't been run yet. Shared by the + seed / branch / parameter resolvers. + """ + from pathlib import Path + + root = Path(results_root) if results_root else Path.cwd() + cands = [p for p in root.glob(f"**/*exp-{source_id}_*.h5") if "network" not in p.name] + if not cands: + raise FileNotFoundError( + f"initial_state.from_experiment: no saved result for experiment {source_id} " + f"under {root} (looked for '*exp-{source_id}_*.h5'). Run experiment " + f"{source_id} first so its result is available." + ) + return sorted(cands)[0] + + def _resolve_from_experiment_seed(self, results_root=None): + """Load the operating point for ``initial_state.method == from_experiment``. + + The source experiment exposes its settled per-node state as observations + named ``<state_variable>_final`` (e.g. ``theta_final``). This locates that + experiment's saved result under ``results_root`` β€” matched by the + ``exp-<id>_`` file stem, so the output-directory layout (``results/2``, + ``output/nc/exp2``, …) does not matter β€” and reads one ``<sv>_final`` per + state variable of *this* experiment. Everything is keyed by name/dim, never + positional: the result is a ``{state_variable_name: (n_nodes,)}`` dict that + the generated code places into its own canonical rows. For a swept source + (an adiabatic ramp) the operating point is the last recorded point + (``source_point``; default ``'endpoint'``). + + Returns the name-keyed IC dict, or ``None`` when this experiment does not + use ``from_experiment``. + For ``source_point == 'branch'`` this returns ``None`` β€” the whole + recorded branch is a per-cell seed, resolved by + :meth:`_resolve_from_experiment_branch`. + """ + return self._read_source_final(results_root, branch=False) + + def _resolve_from_experiment_branch(self, results_root=None): + """Load the WHOLE recorded branch for ``source_point == 'branch'``. + + Where :meth:`_resolve_from_experiment_seed` picks one settled point, this + keeps the source run's swept dimension, so every ``<sv>_final`` observation + loads as ``(n_cells, n_nodes)`` and the swept-axis coordinate supplies the + per-cell parameter values ``(n_cells,)``. An independent exploration can then + restart an analysis (Lyapunov exponents, Jacobian/Floquet spectra, basin + sampling, perturbation kicks, first-passage, …) at every branch point in + parallel β€” the per-cell, cross-experiment counterpart of the single operating + point above. Returns ``{axis_name, axis_values, seeds, n_cells}`` (``seeds`` a + name-keyed ``{sv: (n_cells, n_nodes)}`` dict), or ``None`` when this experiment + does not use ``from_experiment`` with ``source_point='branch'``. + """ + return self._read_source_final(results_root, branch=True) + + def _read_source_final(self, results_root=None, *, branch: bool): + """Shared loader behind the two ``from_experiment`` resolvers. + + Locates the source run and reads the ``<sv>_final`` settled-state + observations, keyed by state-variable name (never positional). With + ``branch=False`` it selects a single point (``source_point``; default + ``endpoint``) β†’ ``{sv: (n_nodes,)}``; with ``branch=True`` it keeps the + swept dimension β†’ the branch dict described in + :meth:`_resolve_from_experiment_branch`. Returns ``None`` when the + experiment's ``source_point`` mode does not match ``branch``. + """ + ini = getattr(self, "initial_state", None) + if ini is None or str(getattr(ini, "method", "") or "") != "from_experiment": + return None + point = str(getattr(ini, "source_point", "") or "endpoint") + # Each resolver owns exactly one mode, so the run() call site can invoke both. + if branch != (point == "branch"): + return None + src = getattr(ini, "source_experiment", None) + if src is None: + raise ValueError("initial_state.method=from_experiment requires source_experiment") + source_id = int(getattr(src, "id", src)) + + # State variables of THIS experiment β†’ which <sv>_final observations to + # load. Keyed by name; the generated code places each into its own row. + svs = self.dynamics.state_variables + sv_items = svs.items() if hasattr(svs, "items") else [(getattr(s, "name", None), s) for s in svs] + sv_names = [getattr(sv, "name", None) or key for key, sv in sv_items] + + src_h5 = self._locate_source_result(results_root, source_id) + n_nodes = len(self.network.nodes) if self.network.nodes else None + + def _node_dim(da): + if n_nodes is not None: + for d in da.dims: + if da.sizes[d] == n_nodes: + return d + for d in da.dims: + if "node" in str(d).lower(): + return d + return da.dims[-1] + + def _final_key(ds, sv): + target = f"{sv}_final" + for k in ds.data_vars: + if k == target or k.endswith(f"__{target}"): + return k + raise KeyError( + f"initial_state.from_experiment: source experiment {source_id} does not " + f"record '{target}'. The source must expose its settled state as an " + f"observation named '{sv}_final' for each state variable." + ) + + ds = xr.open_dataset(src_h5, engine="h5netcdf") + try: + if not branch: + seed = {} + sel = -1 if (point in ("", "endpoint")) else int(point) + for sv in sv_names: + da = ds[_final_key(ds, sv)] + for d in [d for d in da.dims if d != _node_dim(da)]: + da = da.isel({d: sel}) + seed[sv] = jnp.asarray(np.asarray(da.values).ravel()) + return seed + + seeds, axis_values, axis_name, n_cells = {}, None, None, None + for sv in sv_names: + da = ds[_final_key(ds, sv)] + nd = _node_dim(da) + sweep = [d for d in da.dims if d != nd] + if len(sweep) != 1: + raise ValueError( + "initial_state.from_experiment source_point='branch' expects the source " + f"'{sv}_final' to have exactly one swept dimension besides nodes; got " + f"dims {tuple(da.dims)}. Only a single-axis branch can be restarted per cell." + ) + sd = sweep[0] + da = da.transpose(sd, nd) # (n_cells, n_nodes), by name + seeds[sv] = jnp.asarray(np.asarray(da.values)) + if axis_values is None: + axis_name = str(sd) + if sd not in da.coords: + raise ValueError( + "initial_state.from_experiment source_point='branch': the source's " + f"'{sv}_final' has no coordinate on its swept dim '{sd}', so the per-cell " + "parameter values are unavailable β€” the restart would run at wrong values. " + "The source experiment must record its swept axis (a warm-start scan does)." + ) + axis_values = np.asarray(da.coords[sd].values) + n_cells = int(da.sizes[sd]) + elif int(da.sizes[sd]) != n_cells: + raise ValueError( + "initial_state.from_experiment source_point='branch': state variables " + "disagree on the number of recorded branch points." + ) + finally: + ds.close() + return { + "axis_name": axis_name, + "axis_values": jnp.asarray(np.asarray(axis_values, dtype=float)), + "seeds": seeds, + "n_cells": n_cells, + } + + def _resolve_from_experiment_params(self, results_root=None): + """Load model PARAMETERS sourced from the from_experiment operating point. + + A parameter (dynamics **or** coupling) that declares ``measure: <name>`` in a + ``method=from_experiment`` experiment takes its value from the source run's + operating point. Two flavours share one path: a recorded per-node observation + (e.g. ``g`` from a ``control_mask``), or a tuned free parameter the source fit + persisted as ``estimate__<name>`` (warm-start / prior location, e.g. ``wLRE``). + Per-node **vectors and per-edge matrices** are both handled; when the source + array carries node-label coordinates (``node`` / ``node_i``+``node_j``) it is + reconciled to THIS experiment's network **by label** β€” alias-aware, on every + node axis β€” via the same `.sel` path the dataset targets use. An unlabelled + source array is taken in model order (legacy behaviour). Returns + ``{param_name: ndarray}``, or ``None`` when no parameter sources a value. + """ + ini = getattr(self, "initial_state", None) + if ini is None or str(getattr(ini, "method", "") or "") != "from_experiment": + return None + + # Parameters that source from the operating point β€” dynamics + coupling. + def _items(params): + if params is None: + return [] + return list(params.items()) if hasattr(params, "items") \ + else [(getattr(p, "name", None), p) for p in params] + + def _couplings(obj): + if obj is None: + return [] + if hasattr(obj, "values"): + return list(obj.values()) + return list(obj) if isinstance(obj, (list, tuple)) else [obj] + + wanted: dict = {} + param_sets = [getattr(getattr(self, "dynamics", None), "parameters", None)] + net = getattr(self, "network", None) + for c in _couplings(getattr(net, "coupling", None)) + _couplings(getattr(self, "coupling", None)): + param_sets.append(getattr(c, "parameters", None)) + for ps in param_sets: + for key, p in _items(ps): + m = str(getattr(p, "measure", "") or "") + nm = getattr(p, "name", None) or key + if m and nm and nm not in wanted: + wanted[nm] = m + if not wanted: + return None + + src = getattr(ini, "source_experiment", None) + if src is None: + raise ValueError("initial_state.method=from_experiment requires source_experiment") + source_id = int(getattr(src, "id", src)) + src_h5 = self._locate_source_result(results_root, source_id) + + n_nodes = len(self.network.nodes) if self.network.nodes else None + point = str(getattr(ini, "source_point", "") or "endpoint") + # 'branch' has no single point for a parameter value; fall back to the settled + # endpoint rather than crash on int('branch'). + sel = -1 if point in ("", "endpoint", "branch") else int(point) + + def _node_dims(da): + labelled = [d for d in da.dims if str(d).startswith("node")] + if labelled: + return labelled + if n_nodes is not None: + by_size = [d for d in da.dims if da.sizes[d] == n_nodes] + if by_size: + return by_size[:1] + return [da.dims[-1]] + + def _measure_key(ds, measure): + for k in ds.data_vars: + if k == measure or k.endswith(f"__{measure}"): + return k + raise KeyError( + f"initial_state.from_experiment: source experiment {source_id} does not record " + f"'{measure}' (looked for an observation or estimate__{measure}). Have the source " + f"record it β€” a per-node observation, or a tuned free parameter." + ) + + _recon: dict = {} # cache the network-invariant alias map + model labels + def _reconcile(da, node_dims): + # Relabel each LABELLED node axis source->canonical, then select this model's + # node order (both axes for a matrix). Unlabelled axes are assumed already in + # model order (legacy). Reuses the dataset-target `.sel` reconcile path. The + # alias map + labels depend only on self.network, so compute them once (lazily, + # to keep the all-unlabelled case free of an atlas load) and reuse across params. + labelled = [d for d in node_dims if d in da.coords] + if not labelled: + return np.asarray(da.values) + if not _recon: + _recon["amap"] = self.network.region_alias_map() + _recon["labels"] = self._resolve_model_node_labels() + for d in labelled: + da = da.assign_coords({d: [_recon["amap"].get(str(l), str(l)) for l in da[d].values]}) + da = da.sel({d: _recon["labels"]}) + return np.asarray(da.values) + + ds = xr.open_dataset(src_h5, engine="h5netcdf") + try: + out = {} + for pname, measure in wanted.items(): + da = ds[_measure_key(ds, measure)] + node_dims = _node_dims(da) + for d in [d for d in da.dims if d not in node_dims]: + da = da.isel({d: sel}) # settle any swept dims to the operating point + out[pname] = jnp.asarray(_reconcile(da, node_dims)) + finally: + ds.close() + return out + + def run(self, format="tvboptim", initial_conditions=None, results_root=None, **kwargs): """Configure, build, and run the experiment on a backend. Dispatches on `format` to the corresponding backend (`tvb`, `tvboptim`, @@ -1643,6 +2012,11 @@ def run(self, format="tvboptim", initial_conditions=None, **kwargs): initial_conditions: Optional history to seed the simulation (used by the JAX backend); defaults to conditions collected from the experiment. + results_root: Directory under which sibling experiments' saved + results are searched when this experiment's + `initial_state.method == from_experiment` (see + `_resolve_from_experiment_seed`). Defaults to the current + directory; the CLI passes the run's output-directory parent. **kwargs: Backend-specific run options. A `duration` value is applied to the integration settings before running; other keys (e.g. `benchmark`, `mode`) are passed through to the @@ -1652,9 +2026,23 @@ def run(self, format="tvboptim", initial_conditions=None, **kwargs): An `ExperimentResult` holding the integrated time series and any observations, with `source` set to this experiment. """ + # Make tvbo progress visible for interactive/script runs without + # clobbering an app's own logging β€” the same switch the CLI uses, so + # ``exp.run(...)`` and ``tvbo run`` log identically. No-op if the + # embedding application already configured logging. + ensure_configured() + if "duration" in kwargs: self.integration.duration = kwargs.pop("duration") + # The active subject (set by the per-subject workflow fan-out) selects + # which per-subject empirical target this run resolves. Popped here so it + # never leaks into a backend runner's kwargs. + active_subject = kwargs.pop("active_subject", None) + if active_subject is None: + active_subject = getattr(getattr(self, "dataset", None), "active_subject", None) + self._active_subject = str(active_subject) if active_subject is not None else None + self.configure() Bunch() @@ -1752,9 +2140,36 @@ def run(self, format="tvboptim", initial_conditions=None, **kwargs): # set when present, so experiments without network observations are # unaffected. net_obs = self.resolve_network_observations() + # Per-subject dataset-sourced targets (e.g. this subject's empirical + # FC), reconciled to the model's node labels, merge into the same + # network_observations injection. + if getattr(self, "_active_subject", None): + for obs_name, da in self.resolve_dataset_observations(self._active_subject).items(): + net_obs = dict(net_obs or {}) + net_obs[obs_name] = np.asarray(da.values) if net_obs: kwargs.setdefault("network_observations", net_obs) + # Resolve InitialState.from_experiment -> the operating point another + # experiment already reached, loaded from its saved run and handed to the + # generated code as seed_dynamics. No-op unless method == from_experiment. + _seed = self._resolve_from_experiment_seed(results_root) + if _seed is not None: + kwargs.setdefault("seed_dynamics", _seed) + + # Parameters sourced from the same operating point (Parameter.measure, e.g. + # a control mask g <- source's control_mask), injected as seed_params. + _pseed = self._resolve_from_experiment_params(results_root) + if _pseed is not None: + kwargs.setdefault("seed_params", _pseed) + + # source_point='branch': the source run's WHOLE branch is a per-cell seed + # (axis values + settled state per point), handed over as branch_seed so an + # independent exploration can restart an analysis at every branch point. + _branch = self._resolve_from_experiment_branch(results_root) + if _branch is not None: + kwargs.setdefault("branch_seed", _branch) + # Run the experiment with optional per-step timing if benchmark: # Run with detailed timing @@ -2079,7 +2494,27 @@ def _run_python_explorations(self, **kwargs): parameter = str(getattr(axis, "parameter")) values = list(getattr(axis, "explored_values", None) or []) if not values: - raise ValueError(f"Exploration {name!r} axis {parameter!r} needs explored_values") + # Fall back to the axis domain (lo/hi + n or step) so a + # domain-based sweep works here too, not only explicit lists. + dom = getattr(axis, "domain", None) + lo = getattr(dom, "lo", None) if dom is not None else None + hi = getattr(dom, "hi", None) if dom is not None else None + if lo is not None and hi is not None: + lo, hi = float(lo), float(hi) + n = int(getattr(dom, "n", 0) or 0) + step = getattr(dom, "step", None) + if n >= 1: + # n==1 -> linspace(lo, hi, 1) == [lo] (a single-point axis), + # not the 11-point default below. + values = [float(v) for v in jnp.linspace(lo, hi, n)] + elif step: + values = [float(v) for v in jnp.arange(lo, hi + float(step) / 2, float(step))] + else: + values = [float(v) for v in jnp.linspace(lo, hi, 11)] + if not values: + raise ValueError( + f"Exploration {name!r} axis {parameter!r} needs explored_values or a domain (lo/hi)" + ) axis_values.append(values) # Harmonized axis shape shared by every backend: Bunch(name, # explored_values, n) β€” the coordinate source for ExplorationResult.as_grid(). @@ -2163,6 +2598,77 @@ def get_experiment_file_prefix(self): desc = self.dynamics.label or self.dynamics.name or "simulation" return f"ses-{self.id}_desc-{desc}" + def freeze_yaml(self, out_dir, network_stem="network"): + """Render a self-contained spec YAML with the connectome frozen alongside. + + When the experiment has a resolved multi-node network, its matrices are + written as an HDF5 companion (``<network_stem>.h5`` + ``.yaml`` sidecar) in + *out_dir* and the returned YAML references them via ``network.data_file`` + (inline coupling / transforms / parameters preserved). This makes the spec + reproducible on reload without the original data sources β€” the same + mechanism the workflow emitter uses. Without such a network the plain + metadata YAML already round-trips and is returned unchanged. + """ + from pathlib import Path as _Path + + import numpy as _np + + from tvbo import datamodel as _dm + from tvbo.classes.network import Network as _Network + + net = getattr(self, "network", None) + has_matrices = net is not None and ( + (getattr(net, "number_of_nodes", None) or 0) > 1 + or (getattr(net, "weights", None) is not None and _np.asarray(net.weights).size > 1) + ) + if not has_matrices: + return self.to_yaml() + + out_dir = _Path(out_dir) + out_dir.mkdir(parents=True, exist_ok=True) + if not isinstance(net, _Network): + net.__class__ = _Network + self.bake_real_node_labels() + sidecar = out_dir / f"{network_stem}.yaml" + net.save(sidecar, binary_format="h5") + # The network sidecar goes through a different serializer; strip the same + # private runtime keys so the frozen connectome round-trips on reload. + sidecar.write_text(_strip_private_yaml_keys(sidecar.read_text()), encoding="utf-8") + + ref = _dm.Network(data_file=f"{network_stem}.h5") + if getattr(net, "coupling", None): + for k, v in dict(net.coupling).items(): + ref.coupling[k] = v + if getattr(net, "transforms", None): + ref.transforms = list(net.transforms) + if getattr(net, "parameters", None): + for k, v in dict(net.parameters).items(): + ref.parameters[k] = v + if getattr(net, "observations", None): + for k, v in dict(net.observations).items(): + ref.observations[k] = v + + original = self.network + self.network = ref + try: + return self.to_yaml() + finally: + self.network = original + + def get_result_stem(self): + """BIDS result basename (no extension), generated with pybids ``build_path``. + + Returns e.g. ``exp-<id>_desc-<label>_result`` β€” the shared stem for this + experiment's ``<stem>.h5`` data file and ``<stem>.yaml`` provenance sidecar, + identical whether written by a local run or the HPC gather pass. The naming + is driven by ``tvbo.adapters.bids.RESULT_PATTERNS`` (a pybids rule string), + so it stays BIDS-compliant and customizable in one place. + """ + from tvbo.adapters.bids import build_result_path + + path = build_result_path(self, extension=".h5") + return os.path.splitext(path)[0] if path else "result" + @property def max_delay(self) -> float: """Compute the maximum delay (ms) from the current network/connectome.""" @@ -2247,6 +2753,437 @@ def resolve_network_observations(self) -> dict: resolved[name] = available[measure] return resolved + def bake_real_node_labels(self) -> bool: + """Replace the model network's placeholder labels with real ones in place. + + A network sourced by a ``bids:`` entity block carries only ``region_N`` + placeholders until run time; freezing drops that block, so the real labels + (hydrated from the db) are written onto the network's nodes here. This keeps + a frozen kit self-contained and label reconciliation (never positional) + working on reload. Returns True when labels were applied. + """ + net = getattr(self, "network", None) + nodes = list(getattr(net, "nodes", None) or []) if net is not None else [] + real_labels = self._resolve_model_node_labels() + if not real_labels or len(real_labels) != len(nodes): + return False + if [str(getattr(nd, "label", "")) for nd in nodes] == real_labels: + return False + for nd, lbl in zip(nodes, real_labels): + nd.label = lbl + return True + + def _resolve_model_node_labels(self) -> list: + """Real node labels of the model network, hydrated if needed. + + A network sourced by a ``bids:`` entity block loads its weights lazily, + so at parse time its node labels can be placeholders (``region_<i>``). + Label reconciliation needs the true labels, so when the current ones look + like placeholders this resolves the ``bids:`` entities against the tvbo + database and reads the matched connectome's labels. Returns the existing + labels unchanged when they are already real. + """ + net = getattr(self, "network", None) + if net is None: + return [] + labels = [str(lbl) for lbl in (net.node_labels or [])] + placeholder = bool(labels) and all(re.fullmatch(r"region_\d+", lbl) for lbl in labels) + if labels and not placeholder: + return labels + # Placeholder path β€” resolving from the db is a directory glob + a sidecar + # parse, so cache it (the bids block + db are stable for the experiment). + cached = getattr(self, "_model_labels_from_bids", None) + if cached is not None: + return cached + bids = getattr(net, "bids", None) + if bids is None: + return labels + from tvbo.classes.network import _filter_networks_by_entities + + ents = _bids_entities_to_short_dict(bids) + matches = _filter_networks_by_entities(ents) if ents else [] + if len(matches) == 1: + resolved = [str(lbl) for lbl in Network.load(str(matches[0])).node_labels] + self._model_labels_from_bids = resolved + return resolved + return labels + + @property + def dataset_observation_targets(self) -> dict: + """Map each dataset-sourced observation to its measure name. + + Recognises ``source: [dataset.subject.<measure>]`` pointers β€” the + per-subject empirical target selected by the observation's ``query`` + under ``dataset.bids_root``. Returns e.g. ``{'empirical_fc': 'fc'}``; + empty when no observation is dataset-sourced. + """ + out: dict = {} + for name, obs in (self.observations or {}).items(): + src = getattr(obs, "source", None) + if isinstance(src, (list, tuple)): + src = src[0] if src else None + if src is not None and hasattr(src, "name"): + src = src.name + s = str(src) if src is not None else "" + if s.startswith("dataset.subject."): + out[name] = s.split(".")[-1] + return out + + @staticmethod + def _bids_query_dict(query) -> tuple[dict, str | None]: + """Split a ``BidsEntities`` query into (key-value entities, suffix). + + Maps the schema's attribute names to the short entity keys that + :func:`tvbo.classes.network._parse_bids_entities` emits. ``suffix`` is + returned separately because it is the trailing filename component, not a + ``key-value`` entity. + """ + if query is None: + return {}, None + ents = _bids_entities_to_short_dict(query) + suffix = getattr(query, "suffix", None) + return ents, (str(suffix) if suffix is not None else None) + + @staticmethod + def _match_subject_files(files, ents: dict, suffix: str | None): + """Yield (subject, path) for files whose parsed entities match *ents* + *suffix*.""" + from tvbo.classes.network import _parse_bids_entities + + for f in files: + file_ents = _parse_bids_entities(f.stem) + if not file_ents.get("sub"): + continue + if suffix is not None and not f.stem.endswith(f"_{suffix}"): + continue + if all(file_ents.get(k) == v for k, v in ents.items()): + yield file_ents["sub"], f + + def _find_subject_file(self, root: Path, subject: str, query) -> Path: + """Resolve the single per-subject file under *root* matching *query*.""" + ents, suffix = self._bids_query_dict(query) + return self._find_subject_file_by_entities(root, subject, ents, suffix) + + def _find_subject_file_by_entities(self, root: Path, subject: str, + ents: dict, suffix: str | None) -> Path: + """Resolve the single per-subject file under *root* matching *ents* + *suffix*. + + The entity-level entry point behind :meth:`_find_subject_file`: callers that + need to tighten or override the query entities (a kit bundling one atlas + variant out of several) build the ``(ents, suffix)`` pair themselves. + """ + sub = str(subject).replace("sub-", "") + files = sorted((Path(root) / f"sub-{sub}").glob("*.yaml")) + matches = [f for s, f in self._match_subject_files(files, ents, suffix) if s == sub] + if not matches: + raise ValueError( + f"No file for sub-{sub} matching query {ents} suffix={suffix!r} under {root}." + ) + if len(matches) > 1: + raise ValueError( + f"Query {ents} suffix={suffix!r} is ambiguous for sub-{sub}: " + f"{[m.name for m in matches]}. Add entities to disambiguate." + ) + return matches[0] + + @staticmethod + def _reconcile_mode(obs) -> str: + """The ``reconcile`` mode of an observation as a plain string (default by_label).""" + m = getattr(obs, "reconcile", None) + return str(getattr(m, "value", m) or "by_label") + + def _dataset_bids_root(self) -> Path: + """``dataset.bids_root`` as a Path, or a clear error if a dataset target needs it. + + A relative root resolves against the spec file's directory (exactly like a + network ``data_file``), so a kit that bundles its per-subject data under + ``spec/dataset`` and records ``bids_root: dataset`` resolves on any host + regardless of the working directory it is run from. + """ + ds = getattr(self, "dataset", None) + root = getattr(ds, "bids_root", None) if ds is not None else None + if not root: + raise ValueError("A dataset-sourced observation needs experiment.dataset.bids_root.") + root = Path(root) + if not root.is_absolute() and getattr(self, "_source_file", None): + root = Path(self._source_file).parent / root + return root + + def _target_canonical_labels(self, target_net) -> list: + """Each target node's label mapped to the model's canonical label, target order. + + Alias-aware: a target label that equals a model node's ``label`` or any of its + ``alternateName`` entries maps to that node's canonical label; an unmatched + label is returned unchanged (it will not intersect the model set and so is + excluded from the reconciliation, counting against coverage). Mapping is by + name only β€” a target whose nodes are permuted still maps correctly. + """ + amap = self.network.region_alias_map() + return [amap.get(str(tl), str(tl)) for tl in target_net.node_labels] + + def _shared_labels(self, model_labels: list, target_net) -> list: + """Canonical labels shared by the model network and a target, in model order. + + Keyed and alias-aware (never positional): the target's labels are mapped to + the model's canonical labels first, so a divergent nomenclature reconciles. + """ + tset = set(self._target_canonical_labels(target_net)) + return [lbl for lbl in model_labels if lbl in tset] + + @staticmethod + def _coverage_threshold(obs) -> float: + """Minimum reconciliation coverage for a ``by_label`` dataset target. + + Absent ``min_coverage`` means require full coverage (``1.0``): silently + fitting on a partial node subset must be an explicit opt-in. + """ + mc = getattr(obs, "min_coverage", None) + return 1.0 if mc is None else float(mc) + + def resolve_dataset_observations(self, active_subject: str) -> dict: + """Resolve per-subject dataset-sourced targets for one subject. + + For each observation whose ``source`` is ``dataset.subject.<measure>``: + query ``dataset.bids_root`` for the subject's matching file, load it as a + Network, read ``<measure>``, and reconcile its nodes to the model network. + ``reconcile: by_label`` maps each target node to the model's canonical label + (alias-aware β€” a divergent nomenclature such as ``THALAMUS_LEFT`` for + ``L_Thalamus`` still matches via the atlas ``alternateName`` crosswalk), then + selects the shared labels in the model's order. Alignment is by name on both + the empirical target and the simulated observable β€” never by row index β€” so a + differing node count or order (or a swapped hemisphere block) cannot silently + misalign the comparison. The realised coverage is logged, and falls back to + requiring full coverage unless the observation sets ``min_coverage``. + + Returns ``{obs_name: xarray.DataArray}`` keyed by canonical node label on both + axes, restricted to the labels shared with the model network. The model-side + gather (which model nodes the shared labels are) is available via + :meth:`dataset_reconcile_index` so the simulated observation selects the same + sub-block. + """ + targets = self.dataset_observation_targets + if not targets: + return {} + root = self._dataset_bids_root() + model_labels = self._resolve_model_node_labels() + logger = logging.getLogger(__name__) + resolved: dict = {} + for name, measure in targets.items(): + obs = self.observations[name] + path = self._find_subject_file(root, active_subject, getattr(obs, "query", None)) + target_net = Network.load(str(path)) + mat = np.asarray(target_net.matrix(measure)) + if mat.ndim != 2: + raise ValueError( + f"Observation '{name}': measure '{measure}' is not a 2-D matrix " + f"in {path.name}." + ) + tlabels = list(target_net.node_labels) + if self._reconcile_mode(obs) == "by_label" and model_labels: + # Relabel the target's node axes to the model's canonical labels by + # NAME (alias-aware), then select the shared labels in model order. + tcanon = self._target_canonical_labels(target_net) + tcanon_set = set(tcanon) + model_set = set(model_labels) + counts = Counter(tcanon) + dup = sorted(c for c in tcanon_set if c in model_set and counts[c] > 1) + if dup: + raise ValueError( + f"Observation '{name}': target {path.name} maps multiple nodes " + f"onto the same model region(s) {dup} β€” ambiguous reconciliation." + ) + shared = [lbl for lbl in model_labels if lbl in tcanon_set] + coverage = len(shared) / len(model_labels) if model_labels else 0.0 + logger.info( + "reconcile[%s] sub-%s: %d/%d model nodes matched (coverage %.3f) " + "against %s", + name, active_subject, len(shared), len(model_labels), coverage, + path.name, + ) + if not shared: + raise ValueError( + f"Observation '{name}': no node labels shared between the model " + f"network and target {path.name} (after alias reconciliation). " + f"Check the atlas alternateName crosswalk." + ) + threshold = self._coverage_threshold(obs) + if coverage < threshold: + unmatched = [lbl for lbl in model_labels if lbl not in tcanon_set] + raise ValueError( + f"Observation '{name}': reconciliation coverage {coverage:.3f} " + f"< required {threshold:.3f} for {path.name}. " + f"{len(unmatched)} model node(s) unmatched, e.g. {unmatched[:5]}. " + f"Set observation.min_coverage to accept a partial subset." + ) + da = xr.DataArray( + mat, dims=("node_i", "node_j"), + coords={"node_i": tcanon, "node_j": tcanon}, + ) + da = da.sel(node_i=shared, node_j=shared) + else: + da = xr.DataArray( + mat, dims=("node_i", "node_j"), + coords={"node_i": tlabels, "node_j": tlabels}, + ) + resolved[name] = da + return resolved + + def dataset_reconcile_index(self, shared_labels: list, model_labels: list = None) -> np.ndarray: + """Indices into the model network's nodes for *shared_labels* (keyed). + + The simulated observation selects this sub-block so it aligns, label for + label, with a ``by_label``-reconciled empirical target. Pass *model_labels* + to avoid re-resolving them. + """ + model_labels = model_labels if model_labels is not None else self._resolve_model_node_labels() + pos = {lbl: i for i, lbl in enumerate(model_labels)} + return np.array([pos[lbl] for lbl in shared_labels], dtype=int) + + def dataset_reconcile_indices(self) -> dict: + """Model-side gather index for each ``by_label`` dataset target (keyed). + + For every observation sourced from ``dataset.subject.<measure>`` with + ``reconcile: by_label``, returns the positions of the shared node labels + within the model network's node order β€” derived from the labels, never + from position. The shared label set is identical across the cohort, so it + is resolved once from the first cohort subject (reading only its node + labels, not its matrix). Codegen uses this to gather the simulated + observable onto the same shared labels as the reconciled empirical target + before comparing them. Returns ``{}`` (no gather) when nothing is + dataset-sourced or the data cannot be resolved. + """ + targets = self.dataset_observation_targets + subjects = self.dataset_subject_ids() if targets else [] + if not subjects: + return {} + try: + root = self._dataset_bids_root() + model_labels = self._resolve_model_node_labels() + out: dict = {} + for name, _measure in targets.items(): + obs = self.observations[name] + if self._reconcile_mode(obs) != "by_label": + continue + path = self._find_subject_file(root, subjects[0], getattr(obs, "query", None)) + shared = self._shared_labels(model_labels, Network.load(str(path))) + out[name] = self.dataset_reconcile_index(shared, model_labels).tolist() + except Exception: + return {} + return out + + def dataset_subject_ids(self) -> list: + """Enumerate the cohort for the per-subject workflow fan-out. + + An explicit ``dataset.subjects`` list wins (a curated subset). Otherwise + the subjects are discovered by querying ``dataset.bids_root`` with the + first dataset-sourced observation's ``query`` β€” the same filter that + resolves each shard's target, so discovery and resolution never diverge. + Returns sorted subject IDs without the ``sub-`` prefix; empty when the + experiment has no dataset-sourced observation. + """ + ds = getattr(self, "dataset", None) + if ds is None: + return [] + subs = getattr(ds, "subjects", None) + if subs: + ids = list(subs.keys()) if hasattr(subs, "keys") else [ + getattr(x, "subject_id", x) for x in subs + ] + return [str(s).replace("sub-", "") for s in ids] + targets = self.dataset_observation_targets + root = getattr(ds, "bids_root", None) + if not targets or not root: + return [] + cached = getattr(self, "_subject_ids_from_query", None) + if cached is not None: + return cached + query = getattr(self.observations[next(iter(targets))], "query", None) + ents, suffix = self._bids_query_dict(query) + files = sorted(self._dataset_bids_root().glob("sub-*/*.yaml")) + found = sorted({s for s, _ in self._match_subject_files(files, ents, suffix)}) + self._subject_ids_from_query = found + return found + + @staticmethod + def _sidecar_companions(sidecar: Path) -> list: + """Data files a network sidecar references, resolved next to the sidecar. + + A per-subject FC file is a YAML sidecar plus its payload (``data_file``, an + HDF5 matrix); some networks instead reference ``nodes``/``edges`` tables or an + ``edge_matrix_files`` map. Return every companion the sidecar points at so a + bundle copies the sidecar together with the bytes it needs β€” nothing more. + """ + import yaml + + try: + meta = yaml.safe_load(sidecar.read_text(encoding="utf-8")) or {} + except Exception: + return [] + if not isinstance(meta, dict): # a malformed (non-mapping) sidecar has no companions + return [] + refs: list = [] + for key in ("data_file", "nodes", "edges"): + v = meta.get(key) + if isinstance(v, str): + refs.append(v) + emf = meta.get("edge_matrix_files") + if isinstance(emf, dict): + refs += [v for v in emf.values() if isinstance(v, str)] + elif isinstance(emf, list): + refs += [v for v in emf if isinstance(v, str)] + return [sidecar.parent / r for r in refs] + + def dataset_bundle_files(self, entity_overrides: dict | None = None) -> dict: + """Per enumerated subject, the source file(s) a self-contained kit must carry. + + For each dataset-sourced observation, resolve the subject's matching sidecar + under ``dataset.bids_root`` and pair it with the payload(s) it references, so a + workflow kit can bundle exactly the empirical targets its fan-out consumes and + drop its dependence on a machine-specific data tree. *entity_overrides* pins or + tightens the BIDS entities used for selection (e.g. ``{'atlas': 'HCPMMP1', + 'suffix': 'relmat'}``) β€” the exact variant is chosen when a subject directory + holds several. ``suffix`` overrides the trailing filename component; every + other key overrides a ``key-value`` entity. The overrides disambiguate among + the variants a subject already has; the cohort itself is still enumerated by + the observation's own query (:meth:`dataset_subject_ids`). + + Returns ``{subject_id: [sidecar, payload, …]}`` (existing files, de-duplicated + in first-seen order); empty when the experiment has no dataset target. + """ + targets = self.dataset_observation_targets + if not targets: + return {} + root = self._dataset_bids_root() + overrides = dict(entity_overrides or {}) + suffix_override = overrides.pop("suffix", None) + out: dict = {} + for subject in self.dataset_subject_ids(): + picked: list = [] + for name in targets: + obs = self.observations[name] + ents, suffix = self._bids_query_dict(getattr(obs, "query", None)) + ents = {**ents, **overrides} + if suffix_override is not None: + suffix = suffix_override + sidecar = self._find_subject_file_by_entities(root, subject, ents, suffix) + picked.append(sidecar) + picked.extend(self._sidecar_companions(sidecar)) + seen: set = set() + unique: list = [] + for f in picked: + if f in seen: + continue + seen.add(f) + if not f.exists(): + # A referenced payload absent from the tree would bundle a sidecar + # without its data β€” surface it now, not as a load failure on a node. + raise FileNotFoundError( + f"sub-{subject}: dataset target references {f.name}, absent under " + f"{f.parent} β€” the source tree is incomplete." + ) + unique.append(f) + out[subject] = unique + return out + def _resolve_events(self) -> None: """Lower declarative stimulus/stimulation Event fields into the form the (shared) tvboptim codegen already consumes β€” done in Python at load @@ -2529,7 +3466,8 @@ def ensure_ms(x): def render_code(self, format="tvb", **kwargs): """Render generated code in *format* (back-compat shim around the registry).""" - # Backend codegen requires resolved coupling/delay metadata. Idempotent. + # Backend codegen requires resolved coupling/delay/stimulus metadata (configure + # lowers coupling + stimulus events; idempotent). self.configure() from tvbo import export as _export return _export.render(self, format, **kwargs) diff --git a/tvbo/classes/network.py b/tvbo/classes/network.py index 6de607b4e..edd4cbc4b 100644 --- a/tvbo/classes/network.py +++ b/tvbo/classes/network.py @@ -10,6 +10,7 @@ """ import os +from contextlib import contextmanager from pathlib import Path from typing import Any, Dict, List, Optional, Tuple, Union @@ -26,6 +27,13 @@ from matplotlib.axes import Axes from matplotlib.figure import Figure +# Apply the JAX Metal-fallback guard before any Network-level JAX compute. Idempotent +# and cheap (jax already imported); kept out of ``import tvbo``. See +# tvbo.__init__._configure_jax_backend. +from tvbo import _configure_jax_backend as _cfg_jax + +_cfg_jax() + from tvbo.data.registry import database_dir from tvbo.datamodel import schema as tvbo_datamodel @@ -34,6 +42,28 @@ NETWORK_DIR = database_dir("Network") +@contextmanager +def _source_dir_on_path(source_dir): + """Temporarily prepend ``source_dir`` to ``sys.path`` so modules living beside + a study YAML (graph builders, transform callables) import by bare name. + + Skips insertion when ``source_dir`` is falsy or already on the path, and only + removes what it added. + """ + src = str(Path(source_dir).resolve()) if source_dir else None + added = bool(src) and src not in os.sys.path + if added: + os.sys.path.insert(0, src) + try: + yield + finally: + if added: + try: + os.sys.path.remove(src) + except ValueError: + pass + + def graph_laplacian(M): """Combinatorial graph Laplacian ``L = W - diag(rowsum(W))`` of a weight matrix. @@ -140,6 +170,26 @@ def _filter_networks_by_entities(entities: Dict[str, str]) -> list: } +def _length_like_key(keys) -> Optional[str]: + """Find the edge key holding tract lengths among *keys*. + + Prefers the canonical ``length`` / ``lengths``; otherwise accepts any length-like + name in :data:`_LENGTH_MEASURES` (``tract_length``, ``tractLength``, …). Unlike + weights (selected by ``primary_weight`` / ``weight`` / ``weights`` / ``sc``), the + length matrix has no explicit selector, so this by-meaning resolution is what makes + a length edge findable regardless of how a sidecar names it β€” and delayed + simulations depend on it being found. + """ + ks = list(keys) + for canonical in ("length", "lengths"): + if canonical in ks: + return canonical + for k in ks: + if str(k).lower() in _LENGTH_MEASURES: + return k + return None + + def _discover_bids_measures(bids_dir) -> list[str]: """Auto-discover structural measures from BEP017 relmat files. @@ -184,7 +234,8 @@ def get_normative_connectome_data( tractogram: str = "dTOR", segmentation: Optional[str] = None, scale: Optional[str] = None, -) -> Tuple[np.ndarray, Optional[np.ndarray]]: + with_nodes: bool = False, +): """Load normative connectivity matrices from tvbo/database/networks/ HDF5 files. Parameters @@ -203,6 +254,10 @@ def get_normative_connectome_data( Connection strength matrix (N x N) lengths : np.ndarray or None Tract length matrix (N x N), or None if not available + nodes : list of Node, optional + Only when ``with_nodes=True``: the sidecar's labelled + positioned + region nodes, so the network is keyed by region (alignment by label, + never by position). ``None`` if the sidecar declares no nodes. Examples -------- @@ -235,6 +290,8 @@ def get_normative_connectome_data( lengths = arrays.get("lengths") if weights is None: raise ValueError(f"No 'weight' edge found in {sidecar.name}") + if with_nodes: + return weights, lengths, (getattr(net, "nodes", None) or None) return weights, lengths @@ -492,6 +549,10 @@ def __init__(self, **kwargs: Any) -> None: _pending = getattr(_SE, "_pending_source_file", None) if _pending: _source_dir = os.path.dirname(_pending) + # Persist the source dir so lazily-applied callable transforms (resolved + # in _apply_transform long after load) can import modules beside the YAML. + if _source_dir: + self._source_dir = _source_dir self._resolve(source_dir=_source_dir) # Runtime default: a Network with no nodes, no declared count, and no @@ -787,22 +848,10 @@ def _resolve_from_graph_generator(self, source_dir: Optional[Union[str, Path]]) # Make the YAML source directory importable so builders can live # next to the study YAML. - added_to_path = False - if source_dir is not None: - src = str(Path(source_dir).resolve()) - if src not in os.sys.path: - os.sys.path.insert(0, src) - added_to_path = True - try: + with _source_dir_on_path(source_dir): mod = importlib.import_module(module_name) fn = getattr(mod, func_name) result = fn(**kwargs) - finally: - if added_to_path: - try: - os.sys.path.remove(src) - except ValueError: - pass # Accept a Network, a dict, or a (weights, lengths[, node_params]) tuple. if isinstance(result, Network): @@ -974,8 +1023,8 @@ def _resolve_from_parcellation(self) -> None: scale = str(scale) try: - w_arr, l_arr = get_normative_connectome_data( - atlas_name, trk_name, segmentation=seg, scale=scale + w_arr, l_arr, sc_nodes = get_normative_connectome_data( + atlas_name, trk_name, segmentation=seg, scale=scale, with_nodes=True ) except FileNotFoundError: return @@ -994,7 +1043,14 @@ def _resolve_from_parcellation(self) -> None: l_arr = l_arr[:n_nodes, :n_nodes] if not self.nodes or len(self.nodes) != n_nodes: - self.nodes = [tvbo_datamodel.Node(id=i, label=f"region_{i}") for i in range(n_nodes)] + if sc_nodes and len(sc_nodes) >= n_nodes: + # Preserve the sidecar's region labels + MNI positions so the + # network is keyed by region (alignment by label, never by + # position) for downstream by_label / crosswalk consumers. Slice + # in case a weight/length size mismatch truncated n_nodes above. + self.nodes = sc_nodes[:n_nodes] + else: + self.nodes = [tvbo_datamodel.Node(id=i, label=f"region_{i}") for i in range(n_nodes)] if not self.edges: self.edges = [] self.number_of_nodes = n_nodes @@ -1213,25 +1269,25 @@ def _items(self): yield k, v @classmethod - def from_datamodel(cls, datamodel: tvbo_datamodel.Network) -> "Connectome": - """Create a Connectome from a datamodel instance. + def from_datamodel(cls, datamodel: tvbo_datamodel.Network) -> "Network": + """Create a Network from a datamodel instance. Parameters ---------- datamodel : tvbo_datamodel.Network - Source datamodel Connectome instance + Source datamodel Network instance Returns ------- - Connectome - New Connectome with fields copied from datamodel + Network + New Network with fields copied from datamodel Examples -------- ```python from tvbo.datamodel import schema as tvbo_datamodel dm = tvbo_datamodel.Network(number_of_nodes=10) - sc = Connectome.from_datamodel(dm) + sc = Network.from_datamodel(dm) ``` """ data = as_dict(datamodel) @@ -2197,7 +2253,7 @@ def __setattr__(self, name: str, value: Any) -> None: super_setattr(name, value) def to_yaml(self, filepath: Optional[str] = None, format: str = "tvbo") -> str: - """Serialize Connectome to YAML format. + """Serialize Network to YAML format. Parameters ---------- @@ -2210,12 +2266,12 @@ def to_yaml(self, filepath: Optional[str] = None, format: str = "tvbo") -> str: Returns ------- str - YAML representation of the Connectome + YAML representation of the Network Examples -------- ```python - sc = Connectome(parcellation={"atlas": {"name": "DesikanKilliany"}}) + sc = Network(parcellation={"atlas": {"name": "DesikanKilliany"}}) yaml_str = sc.to_yaml() sc.to_yaml("connectome.yaml") # Save to file sc.to_yaml("network.yaml", format="pyrates") # PyRates format @@ -2350,8 +2406,8 @@ def _strip_none(obj): return children, aux # type: ignore[return-value] @classmethod - def tree_unflatten(cls, aux_data: Tuple[str], children: Tuple[JaxArray, JaxArray]) -> "Connectome": - """Rebuild a `Connectome` from JAX pytree children and metadata (inverse of `tree_flatten`). + def tree_unflatten(cls, aux_data: Tuple[str], children: Tuple[JaxArray, JaxArray]) -> "Network": + """Rebuild a `Network` from JAX pytree children and metadata (inverse of `tree_flatten`). Arrays are re-attached as `_pytree_data` rather than `Matrix` objects, so it stays valid under JAX tracing. """ @@ -2377,7 +2433,7 @@ def tree_unflatten(cls, aux_data: Tuple[str], children: Tuple[JaxArray, JaxArray # Back-compat pointer @property - def metadata(self) -> "Connectome": + def metadata(self) -> "Network": """Back-compatible pointer that returns the network itself as its metadata.""" return self @@ -2420,6 +2476,24 @@ def _weights_from_edges(self) -> Optional[np.ndarray]: W[i, j] = w return W + def node_positions(self) -> np.ndarray: + """Node coordinates as an ``(n_nodes, 3)`` array, in declared node order. + + A missing ``z`` defaults to 0; a node with no position at all raises, since a + partial coordinate matrix (a mesh, a distance calc) is silently wrong rather + than merely incomplete. Use ``_get_node_position`` for a tolerant per-node lookup. + """ + out = [] + for node in (self.nodes or []): + pos = getattr(node, "position", None) + if pos is None: + raise ValueError( + f"node {getattr(node, 'id', '?')!r} has no position; a full " + f"(n_nodes, 3) coordinate array cannot be built." + ) + out.append([pos.x, pos.y, getattr(pos, "z", 0.0) or 0.0]) + return np.asarray(out, dtype=float) + def _get_node_position(self, node_id: int) -> Optional[Tuple[float, float, float]]: """Get (x, y, z) position for a node by ID.""" if not self.nodes: @@ -2526,6 +2600,81 @@ def node_labels(self) -> List[str]: return [] return [n.label for n in self.nodes] # type: ignore[union-attr] + def _atlas_terminology_entities(self) -> dict: + """Parcellation-terminology entities for this network's atlas, or ``{}``. + + Resolves ``parcellation.atlas.name`` (case-insensitively β€” networks may + declare ``HCPMMP1`` while the packaged atlas is keyed ``hcpmmp1``) and reads + its SANDS ``terminology.entities``. Returns ``{}`` when the network declares + no atlas or the atlas has no terminology. + """ + parc = getattr(self, "parcellation", None) + atlas = getattr(parc, "atlas", None) if parc is not None else None + name = getattr(atlas, "name", None) if atlas is not None else None + if not name: + return {} + try: + from tvbo.classes.atlas import Atlas, available_atlases + + resolved = name if name in available_atlases else next( + (a for a in available_atlases if a.lower() == str(name).lower()), None + ) + if not resolved: + return {} + term = getattr(Atlas(resolved), "terminology", None) + return getattr(term, "entities", None) or {} + except Exception as exc: # noqa: BLE001 β€” aliases are optional; degrade but surface + import logging + + logging.getLogger(__name__).warning( + "Could not load atlas terminology for %r (region aliases unavailable): %s", + name, exc, + ) + return {} + + def region_alias_map(self) -> Dict[str, str]: + """Map each node's canonical label AND every known alias -> canonical label. + + Aliases are alternative label strings that denote the SAME region under a + different nomenclature. They come from two sources, unioned: each node's own + ``alternateName`` (inline on the network) and, when the network declares a + parcellation atlas, that atlas terminology's ``alternateName`` per region + (joined to nodes by canonical label β€” never by position). The identity + ``label -> label`` is always included so exact matches still resolve. + + Used by ``by_label`` node reconciliation so a dataset-sourced target whose + nodes carry a divergent convention (e.g. ``THALAMUS_LEFT`` for + ``L_Thalamus``) aligns by name. Raises when one alias would map to two + different canonical labels β€” an ambiguous crosswalk must fail loudly rather + than silently mis-assign a region (and, in particular, a hemisphere). + """ + labels = self.node_labels + canon_set = set(labels) + index: Dict[str, str] = {} + + def _add(alias: str, canonical: str) -> None: + prev = index.get(alias) + if prev is not None and prev != canonical: + raise ValueError( + f"Ambiguous node alias {alias!r}: maps to both {prev!r} and " + f"{canonical!r}. A region alias must identify exactly one node." + ) + index[alias] = canonical + + for lbl in labels: + _add(str(lbl), str(lbl)) + for node in self.nodes or []: + canonical = str(getattr(node, "label", "") or "") + for alias in getattr(node, "alternateName", None) or []: + _add(str(alias), canonical) + for key, ent in self._atlas_terminology_entities().items(): + canonical = str(getattr(ent, "name", None) or key) + if canonical not in canon_set: + continue # atlas region not present in this (sub)network + for alias in getattr(ent, "alternateName", None) or []: + _add(str(alias), canonical) + return index + @property def weights_matrix(self) -> Optional[Union[np.ndarray, JaxArray]]: """Connection weights matrix as numpy/JAX array. @@ -2652,39 +2801,44 @@ def lengths_matrix(self) -> Optional[Union[np.ndarray, JaxArray]]: if hasattr(self, "_pytree_data") and self._pytree_data is not None: return self._pytree_data[1] - # Check _arrays (set by set_matrix / add_edges) - _arrs = self._get_arrays() - if "length" in _arrs: - from scipy import sparse as _sp - - L = _arrs["length"] - return L.toarray() if _sp.issparse(L) else L - elif "lengths" in _arrs: - from scipy import sparse as _sp - - L = _arrs["lengths"] - return L.toarray() if _sp.issparse(L) else L - - # Check for cached matrix from from_matrix (performance optimization) - if hasattr(self, "_cached_lengths") and self._cached_lengths is not None: - return self._cached_lengths + # Check _arrays (set by set_matrix / add_edges). Resolve the length edge by + # meaning, not just the canonical name, so a sidecar naming it e.g. tract_length + # still drives delayed simulations. + from scipy import sparse as _sp - if hasattr(self, "_store") and self._store is not None: + L = None + _arrs = self._get_arrays() + _lk = _length_like_key(_arrs) + if _lk is not None: + _raw = _arrs[_lk] + L = _raw.toarray() if _sp.issparse(_raw) else _raw + # Cached matrix from from_matrix (performance optimization) + elif hasattr(self, "_cached_lengths") and self._cached_lengths is not None: + L = self._cached_lengths + elif hasattr(self, "_store") and self._store is not None: # Lazy load from companion file (set by load_network) arrays = self._store.arrays - if "length" in arrays: - self._cached_lengths = arrays["length"] - return self._cached_lengths - elif "lengths" in arrays: - self._cached_lengths = arrays["lengths"] - return self._cached_lengths + _lk = _length_like_key(arrays) + if _lk is not None: + self._cached_lengths = arrays[_lk] + L = self._cached_lengths # Compute from edges (fallback for networks built from explicit edges) - L = self._lengths_from_edges() + if L is None: + L = self._lengths_from_edges() if L is None: n = len(self.nodes) if self.nodes else (self.number_of_nodes or self.number_of_regions or 0) if n > 0: return np.zeros((n, n), dtype=np.float64) + return L + + # Apply transforms targeting "length" (mirrors weights_matrix; the + # add_transform contract lists "length" as a valid edge-property target). + for t in self.transforms or []: + if t.name in ("length", "lengths"): + L = self._apply_transform( + L.toarray() if _sp.issparse(L) else np.asarray(L), t + ) return L @property @@ -2763,7 +2917,7 @@ def labels(self) -> Dict[str, str]: Examples -------- ```python - sc = Connectome(parcellation={"atlas": {"name": "DesikanKilliany"}}) + sc = Network(parcellation={"atlas": {"name": "DesikanKilliany"}}) labels = sc.labels print(f"Number of labeled regions: {len(labels)}") ``` @@ -2900,8 +3054,8 @@ def graph(self) -> nx.MultiDiGraph: def __str__(self) -> str: parc = getattr(self, "parcellation", None) if parc and hasattr(parc, "atlas") and hasattr(parc.atlas, "name"): # type: ignore[attr-defined] - return f"Connectome-{parc.atlas.name}({self.number_of_regions})" # type: ignore[attr-defined] - return f"Connectome(N={self.number_of_regions})" + return f"Network-{parc.atlas.name}({self.number_of_regions})" # type: ignore[attr-defined] + return f"Network(N={self.number_of_regions})" def __repr__(self) -> str: return self.__str__() @@ -2918,7 +3072,7 @@ def atlas(self) -> Any: Examples -------- ```python - sc = Connectome(parcellation={"atlas": {"name": "DesikanKilliany"}}) + sc = Network(parcellation={"atlas": {"name": "DesikanKilliany"}}) atlas = sc.atlas print(atlas.region_labels) ``` @@ -2936,7 +3090,7 @@ def get_atlas(self) -> Any: Examples -------- ```python - sc = Connectome(parcellation={"atlas": {"name": "DesikanKilliany"}}) + sc = Network(parcellation={"atlas": {"name": "DesikanKilliany"}}) atlas = sc.get_atlas() ``` """ @@ -3163,7 +3317,7 @@ def normalize_weights(self, equation_rhs: str = "(M - M_min) / (M_max - M_min)") Examples -------- ```python - sc = Connectome(parcellation={"atlas": {"name": "DesikanKilliany"}}) + sc = Network(parcellation={"atlas": {"name": "DesikanKilliany"}}) sc.normalize_weights("M / M_max") # Normalize to [0, 1] normalized = sc.weights_matrix # Returns normalized weights ``` @@ -3195,7 +3349,7 @@ def plot_weights(self, ax: Axes, cmap: str = "magma", log: bool = False) -> Any: -------- ```python import matplotlib.pyplot as plt - sc = Connectome(parcellation={"atlas": {"name": "DesikanKilliany"}}) + sc = Network(parcellation={"atlas": {"name": "DesikanKilliany"}}) fig, ax = plt.subplots() im = sc.plot_weights(ax, log=True) plt.colorbar(im, ax=ax) @@ -3240,7 +3394,7 @@ def plot_lengths(self, ax: Axes, cmap: str = "magma") -> Any: -------- ```python import matplotlib.pyplot as plt - sc = Connectome(parcellation={"atlas": {"name": "DesikanKilliany"}}) + sc = Network(parcellation={"atlas": {"name": "DesikanKilliany"}}) fig, ax = plt.subplots() im = sc.plot_lengths(ax) plt.colorbar(im, ax=ax, label="mm") @@ -3272,7 +3426,7 @@ def plot_matrix(self, log_weights: bool = False, cmap: str = "magma") -> Figure: Examples -------- ```python - sc = Connectome(parcellation={"atlas": {"name": "DesikanKilliany"}}) + sc = Network(parcellation={"atlas": {"name": "DesikanKilliany"}}) sc.plot_matrix(log_weights=True) ``` """ @@ -3325,7 +3479,7 @@ def calculate_delays( -------- ```python import matplotlib.pyplot as plt - sc = Connectome(parcellation={"atlas": {"name": "DesikanKilliany"}}) + sc = Network(parcellation={"atlas": {"name": "DesikanKilliany"}}) delays = sc.calculate_delays(conduction_speed=3.0) plt.imshow(delays, cmap='viridis') plt.colorbar(label='Delay (ms)') @@ -3438,7 +3592,7 @@ def create_graph(self, weight_threshold: float = 0) -> nx.MultiDiGraph: G = network.create_graph() # From weight matrix - sc = Connectome(parcellation={"atlas": {"name": "DesikanKilliany"}}) + sc = Network(parcellation={"atlas": {"name": "DesikanKilliany"}}) G = sc.create_graph(weight_threshold=0.1) print(f"Nodes: {G.number_of_nodes()}, Edges: {G.number_of_edges()}") ``` @@ -3524,7 +3678,7 @@ def get_centers(self) -> Dict[int, Tuple[float, float, float]]: Examples -------- ```python - sc = Connectome(parcellation={"atlas": {"name": "DesikanKilliany"}}) + sc = Network(parcellation={"atlas": {"name": "DesikanKilliany"}}) centers = sc.get_centers() for idx, (x, y, z) in centers.items(): print(f"Region {idx}: ({x:.1f}, {y:.1f}, {z:.1f})") @@ -3685,7 +3839,7 @@ def plot_graph( -------- ```python import matplotlib.pyplot as plt - sc = Connectome(parcellation={"atlas": {"name": "DesikanKilliany"}}) + sc = Network(parcellation={"atlas": {"name": "DesikanKilliany"}}) # Simple graph fig, ax = plt.subplots(figsize=(10, 10)) @@ -3888,7 +4042,7 @@ def plot_overview( Examples -------- ```python - sc = Connectome(parcellation={"atlas": {"name": "DesikanKilliany"}}) + sc = Network(parcellation={"atlas": {"name": "DesikanKilliany"}}) sc.plot_overview(log_weights=True) ``` @@ -4073,7 +4227,7 @@ def normalize(self) -> None: Examples -------- ```python - sc = Connectome(parcellation={"atlas": {"name": "DesikanKilliany"}}) + sc = Network(parcellation={"atlas": {"name": "DesikanKilliany"}}) sc.normalize() normalized_weights = sc.weights_matrix # Now in [0, 1] range ``` @@ -4419,20 +4573,28 @@ def _apply_transform(self, M, func): import importlib import inspect - mod = importlib.import_module(c.module) - fn = getattr(mod, c.name) - kwargs = {} - for name, arg in func.arguments.items(): # arguments keyed by name - kwargs[name] = getattr(arg, "value", None) - available = {"L": self.lengths_matrix, "network": self} - sig = inspect.signature(fn) - accepts_var_kw = any( - p.kind == inspect.Parameter.VAR_KEYWORD for p in sig.parameters.values() - ) - for key, val in available.items(): - if key in sig.parameters or accepts_var_kw: - kwargs.setdefault(key, val) - return fn(M, **kwargs) + # Make the recipe's source dir importable so a transform callable can + # live beside the study YAML, mirroring the builder injection in + # _resolve_from_graph_generator. + with _source_dir_on_path(getattr(self, "_source_dir", None)): + mod = importlib.import_module(c.module) + fn = getattr(mod, c.name) + kwargs = {} + for name, arg in func.arguments.items(): # arguments keyed by name + kwargs[name] = getattr(arg, "value", None) + sig = inspect.signature(fn) + accepts_var_kw = any( + p.kind == inspect.Parameter.VAR_KEYWORD for p in sig.parameters.values() + ) + if "network" in sig.parameters or accepts_var_kw: + kwargs.setdefault("network", self) + # Inject L only when asked. For a length-target transform ``M`` IS + # the lengths, so use it directly β€” reading ``self.lengths_matrix`` + # here would re-enter this same transform (infinite recursion). + if "L" in sig.parameters: + _is_length = getattr(func, "name", None) in ("length", "lengths") + kwargs.setdefault("L", M if _is_length else self.lengths_matrix) + return fn(M, **kwargs) # Equation-based transform eq = getattr(func, "equation", None) @@ -4503,7 +4665,7 @@ def add_transform( Examples -------- ```python - sc = Connectome(parcellation={"atlas": {"name": "DesikanKilliany"}}) + sc = Network(parcellation={"atlas": {"name": "DesikanKilliany"}}) sc.add_transform("weight", "M / M_max") ``` """ @@ -4564,7 +4726,7 @@ def __init__(self, *args, **kwargs): warnings.warn( "Connectome is deprecated and will be removed in a future version. " - "Use tvbo.data.tvbo_data.connectomes.Network instead.", + "Use tvbo.Network (tvbo.classes.network.Network) instead.", DeprecationWarning, stacklevel=2, ) diff --git a/tvbo/classes/observation.py b/tvbo/classes/observation.py index 274860b73..4835636a6 100644 --- a/tvbo/classes/observation.py +++ b/tvbo/classes/observation.py @@ -8,6 +8,7 @@ callables and curated ontology instances into the underlying datamodel shape. """ +import logging import importlib import inspect from types import FunctionType @@ -34,6 +35,7 @@ from tvbo.codegen.code import render_expression from tvbo.ontology import owl as ontology from tvbo.plot.ontology import draw_custom_nodes +logger = logging.getLogger(__name__) def expand_to_4d(array): @@ -845,7 +847,7 @@ def apply(self, timeseries, mode=0): if "Input" in self.graph.predecessors(node_label): node.update({"data": self.current_data}) elif node["data"] is None: - print("Node", node_label, "has no data") + logger.warning("Node %s has no data", node_label) continue time = ( @@ -961,6 +963,102 @@ def plot_graph_data(self, ax=None): return fig +def populate_observation_from_iri(obs, functions_sink=None) -> bool: + """Fill an observation's missing fields from the curated model its ``iri`` names. + + When an observation declares ``iri: tvbo:BOLD_TVB`` (or any curated entry under + ``tvbo/database/observation_models/``), its metadata β€” ``pipeline``, ``parameters``, + ``class_reference``, ``imaging_modality``, ``label``/``description`` β€” is loaded from + that model and merged **non-destructively**: a field the recipe set locally always + wins, so ``source``/``period`` overrides stay in force while the curated hemodynamic + pipeline fills in. Mirrors :func:`tvbo.classes.coupling._load_coupling_from_database`. + + When ``functions_sink`` (a mutable nameβ†’Function mapping) is given, the model's + ``functions`` block is merged into it too β€” the helper functions a functional + pipeline calls by name, which codegen reads from ``experiment.functions``. + + Returns True if a curated model was found and merged, False otherwise. + """ + iri = getattr(obs, "iri", None) + if not iri: + return False + from tvbo.data.registry import local_name, resolve + + name = local_name(iri) if ":" in str(iri) else str(iri) + try: + path = resolve("Observation", name) + except Exception: + return False + if path is None or not path.exists(): + return False + + import yaml as _yaml + + data = _yaml.safe_load(path.read_text()) or {} + + # Scalar fields: adopt the curated value only where the recipe left it empty. + for field in ("label", "description", "imaging_modality", "period", + "downsample_period", "time_scale"): + if data.get(field) is not None and not getattr(obs, field, None): + setattr(obs, field, data[field]) + + # source: a list β€” take the curated one only if the recipe declared none. + if data.get("source") and not getattr(obs, "source", None): + obs.source = list(data["source"]) + + # pipeline: the heart of a curated observation model. Fill only if absent so a + # recipe that hand-declares its own pipeline is never silently overridden. + if data.get("pipeline") and not getattr(obs, "pipeline", None): + # A pipeline step is a FunctionCall (it may reference a function by name, + # inline a callable, or carry its own equation/source_code) β€” not a bare + # Function. Building it as Function drops `function:`/`callable:` steps. + obs.pipeline = [ + step if isinstance(step, tvbo_datamodel.FunctionCall) + else tvbo_datamodel.FunctionCall(**step) + for step in data["pipeline"] + ] + + # class_reference: a monitor/class handle (e.g. tvb Bold). Fill if absent. + if data.get("class_reference") is not None and not getattr(obs, "class_reference", None): + cr = data["class_reference"] + obs.class_reference = ( + cr if isinstance(cr, tvbo_datamodel.ClassReference) + else tvbo_datamodel.ClassReference(**cr) + ) + + # parameters: keyed collection β€” fill each missing key, keep recipe overrides. + if data.get("parameters"): + params = obs.parameters if getattr(obs, "parameters", None) else {} + for pname, pval in data["parameters"].items(): + if pname in params: + continue + if isinstance(pval, dict): + pval = {"name": pname, **pval} + params[pname] = tvbo_datamodel.Parameter(**pval) + else: + params[pname] = tvbo_datamodel.Parameter(name=pname, value=pval) + obs.parameters = params + + # functions: a curated model may ship the helper functions its pipeline calls + # by name (an HRF kernel, a downsample, a convolution). Observation carries no + # `functions` slot β€” codegen reads them from the experiment β€” so hand them to the + # caller's sink to merge into `experiment.functions` (non-destructively: a + # function the experiment already declares wins). + if data.get("functions") and functions_sink is not None: + for fname, fdef in data["functions"].items(): + if fname in functions_sink: + continue + if isinstance(fdef, tvbo_datamodel.Function): + functions_sink[fname] = fdef + else: + # The dict key is the function's name; a redundant inner ``name`` + # (against the keyed-collection convention) must not double the + # keyword. Merge with the key winning. + functions_sink[fname] = tvbo_datamodel.Function(**{**fdef, "name": fname}) + + return True + + class Observation(tvbo_datamodel.Observation): """Wrapper around the LinkML Observation datamodel with convenience factory methods for loading from file, database, or TVB monitors.""" diff --git a/tvbo/classes/perturbation.py b/tvbo/classes/perturbation.py index 0c28f32ad..ea2d25fe3 100644 --- a/tvbo/classes/perturbation.py +++ b/tvbo/classes/perturbation.py @@ -6,6 +6,7 @@ convert ontology classes to metadata and to replay audio files as stimuli. """ +import logging import os import matplotlib.pyplot as plt @@ -15,6 +16,7 @@ import librosa except ImportError: librosa = None +logger = logging.getLogger(__name__) def _require_librosa(): @@ -210,7 +212,7 @@ class directly. if not ontoclasses: raise ValueError(f"No stimulus class found for label '{ontoclass}'") if len(ontoclasses) > 1: - print(f"Multiple stimulus classes found: {ontoclasses}") + logger.warning("Multiple stimulus classes found: %s", ontoclasses) ontoclass = ontoclasses[0] metadata = class2metadata(ontoclass) return cls(**metadata._as_dict) @@ -313,7 +315,7 @@ def execute( ) if self.weighting: weighting = np.array(self.weighting) - print(weighting) + logger.debug("stimulus weighting: %s", weighting) elif weighting is None and connectivity: weighting = np.zeros(connectivity.number_of_regions) weighting[region_indices] = 1 diff --git a/tvbo/classes/study.py b/tvbo/classes/study.py index c95a9cb65..dd305d0d1 100644 --- a/tvbo/classes/study.py +++ b/tvbo/classes/study.py @@ -59,10 +59,16 @@ def from_file(cls, filepath): A `SimulationStudy` parsed from the file. """ from pathlib import Path + from tvbo.utils import register_recipe_code_paths import yaml study = yaml_loader.load(filepath, cls) study._source_file = str(Path(filepath).resolve()) + # Make the recipe's callable code importable so custom builders/callables + # resolve by bare module name without a PYTHONPATH prefix: an explicit + # code_source (local dir or git repo) when declared, else the code/ + # subdir beside the YAML. + register_recipe_code_paths(study._source_file, getattr(study, "code_source", None)) # Keep the raw (anchor-resolved) experiment dicts so experiments can be # materialised through SimulationExperiment.from_string β€” that path # iri-sources dynamics/coupling from the registry, which loading the diff --git a/tvbo/cli/__init__.py b/tvbo/cli/__init__.py index 4c0aa1fe9..4a251ef68 100644 --- a/tvbo/cli/__init__.py +++ b/tvbo/cli/__init__.py @@ -16,9 +16,11 @@ from . import ( config as _config_cmd, export as _export_cmd, + figures as _figures_cmd, formats as _formats_cmd, info as _info_cmd, import_ as _import_cmd, + network as _network_cmd, run as _run_cmd, save as _save_cmd, skills as _skills_cmd, @@ -64,8 +66,42 @@ # Sub-trees (registered as their own Typer apps) app.add_typer(_validate_cmd.app, name="validate", help="Validate YAML / OMEX / BIDS / SED-ML files.") app.add_typer(_config_cmd.app, name="config", help="Manage CLI configuration.") +app.add_typer(_network_cmd.app, name="network", help="Build connectomes from a tractogram + parcellation (MRtrix wrapper).") +app.add_typer(_figures_cmd.app, name="figure", help="Render declarative figures (Figure / SimulationStudy YAML) via bsplot codegen.") app.add_typer(_workflow_cmd.app, name="workflow", help="Plan / emit HPC + pipeline artefacts (slurm, snakemake, nextflow).") app.add_typer(_skills_cmd.app, name="skills", help="Render skills for Claude Code / Copilot / Cursor; install user skills locally.") +@app.callback() +def _configure( + log_level: str = typer.Option( + None, "--log-level", "-L", metavar="LEVEL", + help="tvbo log level (DEBUG|INFO|WARNING|ERROR|OFF); overrides TVBO_LOG_LEVEL.", + ), + verbose: bool = typer.Option(False, "--verbose", "-v", help="Verbose output (DEBUG)."), + quiet: bool = typer.Option(False, "--quiet", "-q", help="Errors only β€” suppress progress."), +) -> None: + """Configure tvbo logging once for every verb. + + Progress and status flow through the central ``tvbo`` logger (see + :mod:`tvbo.log`), so ``tvbo run`` and the in-process ``.run()`` API behave + identically. ``--log-level`` wins over ``--quiet``/``--verbose``; with none + set the level falls back to ``TVBO_LOG_LEVEL`` and then INFO. + """ + from tvbo.log import configure_logging + + level = None + if verbose: + level = "DEBUG" + if quiet: + level = "ERROR" + if log_level: + level = log_level + # CLI output is user-facing: keep it bare (no "LEVEL [name]" diagnostic + # prefix), matching the plain lines the CLI printed before. force=True so + # this format wins even if ``import tvbo`` already installed the default + # (diagnostic) handler because ``TVBO_LOG_LEVEL`` was set in the environment. + configure_logging(level, fmt="%(message)s", force=True) + + __all__ = ["app"] diff --git a/tvbo/cli/_common.py b/tvbo/cli/_common.py index 9378d3b58..98224f37d 100644 --- a/tvbo/cli/_common.py +++ b/tvbo/cli/_common.py @@ -5,12 +5,15 @@ from __future__ import annotations import json as _json +import logging import sys from pathlib import Path from typing import Any import typer +logger = logging.getLogger("tvbo.cli") + # --------------------------------------------------------------------------- # SPEC resolution @@ -88,6 +91,29 @@ def resolve_spec(spec: str) -> tuple[str, Any]: ) +def experiment_ids(exp: Any) -> set[str]: + """The identifiers an experiment can be selected by on the CLI. + + Its ``key``, ``name``, ``label``, and stringified ``id`` (dropping the empty + ones). Shared by ``tvbo run`` and ``tvbo workflow`` so ``--experiment`` matches + the same way in both. + """ + return {getattr(exp, "key", None), getattr(exp, "name", None), + getattr(exp, "label", None), str(getattr(exp, "id", ""))} - {None, ""} + + +def experiment_key(exp: Any) -> str: + """The canonical short key for an experiment. + + An explicit ``key`` if set, else its ``id`` (the usual identifier, e.g. ``40``), + else ``name``. Used for job names, result stems, and kit paths so they read + ``…-40`` rather than a generic fallback β€” one source of truth shared by every + emitter (``experiment_ids`` is the wider *match* set for ``--experiment``). + """ + return str(getattr(exp, "key", None) or getattr(exp, "id", None) + or getattr(exp, "name", None) or "experiment") + + def _load_from_file(path: Path) -> tuple[str, Any]: """Best-effort type detection by reading the YAML's `class:` / shape.""" import tvbo @@ -158,10 +184,32 @@ def emit_json(payload: Any) -> None: def info(msg: str) -> None: - """Human-facing log line β€” always to stderr.""" - typer.echo(msg, err=True) + """Human-facing progress line, routed through the central ``tvbo`` logger. + + Emits at INFO on ``tvbo.cli`` (stderr by default), so ``--quiet`` / + ``TVBO_LOG_LEVEL`` govern it exactly as they govern in-process ``.run()``. + """ + logger.info(msg) + + +def warn(msg: str) -> None: + """Human-facing warning line, routed through the central ``tvbo`` logger. + + Emits at WARNING on ``tvbo.cli`` (stderr by default), so ``--quiet`` / + ``TVBO_LOG_LEVEL`` govern it exactly as they govern ``info`` / ``.run()``. + """ + logger.warning(msg) def die(msg: str, code: int = 1) -> None: - typer.echo(f"error: {msg}", err=True) + """Log *msg* at ERROR and abort the CLI with *code*. + + A fatal abort must always explain itself: when the configured level would + suppress ERROR (e.g. ``--log-level OFF`` / ``TVBO_LOG_LEVEL=OFF``) the reason + still goes to stderr, so the CLI never exits non-zero in silence. + """ + if logger.isEnabledFor(logging.ERROR): + logger.error(msg) + else: + typer.echo(f"error: {msg}", err=True) raise typer.Exit(code) diff --git a/tvbo/cli/_workflow.py b/tvbo/cli/_workflow.py index 1e91b8ef1..673c2e75c 100644 --- a/tvbo/cli/_workflow.py +++ b/tvbo/cli/_workflow.py @@ -36,6 +36,11 @@ class SweepAxis: values: tuple[float, ...] kind: str # AXIS_KIND (parameters | initial_conditions | ...) placement: str = "auto" # auto | vectorize | workflow + # A branch-restart axis (initial_state source_point='branch') whose cell count is + # known only at run time, from the source run's recorded branch. It fans into a + # fixed number of array shards (``chunk``); each task slices its share of the loaded + # branch. ``values`` is empty and ``n`` is unknown until the source result is read. + runtime_sized: bool = False @property def n(self) -> int: @@ -65,6 +70,8 @@ class WorkflowPlan: requirements: list[dict[str, Any]] = field(default_factory=list) # normalized pip/conda deps source_spec: str = "" # SPEC arg for `tvbo run` (recipe path / CURIE / DB name) experiment_selector: str | None = None # --experiment value picking this experiment in a study + workflow_spec: dict[str, Any] = field(default_factory=dict) # effective merged workflow config (study < experiment < --set) + depends_on: list[str] = field(default_factory=list) # experiment keys whose result seeds this run (initial_state.from_experiment) # ---- derived helpers -------------------------------------------------- @@ -79,6 +86,10 @@ def n_workflow_cells(self) -> int: def n_vectorize_cells(self) -> int: n = 1 for ax in self.vectorize_axes: + # Runtime-sized (branch-restart) axes have an unknown cell count at plan + # time; they don't contribute a static factor to the vectorised total. + if getattr(ax, "runtime_sized", False): + continue n *= ax.n return n @@ -87,6 +98,12 @@ def n_array_tasks(self) -> int: if self.workflow_axes: # Fanned axes β†’ one array task per ``chunk`` workflow cells. return max(1, (self.n_workflow_cells + self.chunk - 1) // self.chunk) + # A runtime-sized (branch-restart) sweep is fanned into exactly ``chunk`` array + # shards: the cell count is known only when the source branch is read, so each + # task slices its share of the loaded branch (``_branch_p[i::N]``). No cell-count + # cap, because there is no static count to cap against. + if any(getattr(ax, "runtime_sized", False) for ax in self.vectorize_axes): + return max(1, self.chunk) # Fully backend-vectorized sweep (no fanned axes): ``chunk`` is the number # of SLURM array shards. Each task runs ``tvbo run --slurm-chunk=$i/N`` over # 1/N of the sweep cells (the backend vmap/pmap-s its own share). Capped at @@ -126,21 +143,6 @@ def cell_iter(self) -> Iterable[dict[str, float]]: for combo in product(*(ax.values for ax in self.workflow_axes)): yield dict(zip(names, combo)) - def per_cell_command(self, *, run_cmd: str = "tvbo run") -> str: - """Render a `tvbo run` command line for one workflow cell.""" - spec = f"experiment:{self.experiment_key}" - parts = [run_cmd, spec, f"--backend={self.backend.name}"] - if self.container: - parts.append(f"--container={self.container}") - # Workflow-fanned axes become explicit --override flags - for ax in self.workflow_axes: - parts.append(f"--override={ax.parameter}={{wildcards.{ax.name}}}") - # Vectorized axes are passed as a sweep range so the backend packs them - for ax in self.vectorize_axes: - parts.append(f"--sweep={ax.parameter}={','.join(repr(v) for v in ax.values)}") - parts.append(f"-o {self.out_dir}") - return " ".join(parts) - # --------------------------------------------------------------------------- # Sweep extraction @@ -183,6 +185,14 @@ def extract_axes(experiment) -> list[SweepAxis]: else: explorations = list(explorations) + # A from_experiment:branch experiment restarts an analysis over a sibling run's whole + # recorded branch: its exploration axes carry no domain (values come from the branch at + # run time), so they are runtime-sized shard axes rather than statically-valued grids. + _ini = getattr(experiment, "initial_state", None) + _is_branch = (_ini is not None + and str(getattr(_ini, "method", "") or "") == "from_experiment" + and str(getattr(_ini, "source_point", "") or "endpoint") == "branch") + out: list[SweepAxis] = [] seen: set[str] = set() for expl in explorations: @@ -198,15 +208,44 @@ def extract_axes(experiment) -> list[SweepAxis]: uniq = f"{name}{i}" i += 1 seen.add(uniq) + _branch_axis = (_is_branch and getattr(ax, "domain", None) is None + and not getattr(ax, "explored_values", None)) out.append(SweepAxis( name=uniq, parameter=param, - values=_axis_values(ax), + values=() if _branch_axis else _axis_values(ax), kind=axis_kind_of(param), + runtime_sized=_branch_axis, )) return out +def _dataset_subject_axis(experiment) -> "SweepAxis | None": + """A workflow-fanned ``subject`` axis when the experiment has a per-subject target. + + Values are the cohort subject IDs (from ``experiment.dataset_subject_ids()``); + each fanned cell runs ``tvbo run … --subject <sub>`` so the run resolves that + subject's empirical target. Returns ``None`` when the experiment declares no + dataset-sourced observation. + """ + ids_fn = getattr(experiment, "dataset_subject_ids", None) + if not callable(ids_fn): + return None + try: + subjects = list(ids_fn()) + except Exception: + return None + if not subjects: + return None + return SweepAxis( + name="subject", + parameter="dataset.active_subject", + values=tuple(str(s) for s in subjects), + kind="subjects", + placement="workflow", + ) + + # --------------------------------------------------------------------------- # Planner # --------------------------------------------------------------------------- @@ -225,6 +264,104 @@ def _norm_requirement(item) -> dict[str, Any]: "source_url": get("source_url") or get("url")} +def _normalize_env(raw) -> list[dict[str, str]]: + """Canonicalise an engine block's ``env`` into a shell-ready list. + + Accepts the YAML list form ``[{name, value}]`` and the mapping form + ``{NAME: value}`` produced by ``--set slurm.env.NAME=value``. Booleans lower + to ``true``/``false``; every value is shell-quoted so the template can emit + ``export NAME=value`` verbatim without branching on shape or escaping. + """ + import shlex + + pairs: list[tuple[Any, Any]] = [] + if isinstance(raw, dict): + for name, value in raw.items(): + # schema-inlined EnvironmentVariable carries {name, value}; --set is scalar. + pairs.append((name, value.get("value") if isinstance(value, dict) else value)) + elif isinstance(raw, (list, tuple)): + for item in raw: + if isinstance(item, dict): + pairs.append((item.get("name"), item.get("value"))) + out: list[dict[str, str]] = [] + for name, value in pairs: + if name is None: + continue + if isinstance(value, bool): + value = str(value).lower() + out.append({"name": str(name), "value": shlex.quote(str(value))}) + return out + + +def _pairs_to_map(items) -> dict[str, Any]: + """Flatten a name-keyed slot (YAML ``[{name, value}]`` list or schema/CLI map) + into a plain ``{name: value}`` dict.""" + if isinstance(items, dict): + return {k: (v.get("value") if isinstance(v, dict) else v) for k, v in items.items()} + out: dict[str, Any] = {} + if isinstance(items, (list, tuple)): + for item in items: + if isinstance(item, dict) and item.get("name") is not None: + out[item["name"]] = item.get("value") + return out + + +#: Engine-block slots that are name-keyed lists in YAML but must merge by name. +_ENGINE_MAP_SLOTS = ("env", "options") + + +def _canonicalize_engine_maps(block: dict) -> dict: + """Rewrite each engine block's name-keyed slots (env, options) to maps in place. + + The YAML author writes ``env: [{name, value}]`` (a list) while ``--set + slurm.env.X=v`` yields a mapping; representing both as a name-keyed map lets + the workflow merge (study < experiment < --set) override single entries by + name instead of replacing the whole list. The plan later lowers each map back + to a list via :func:`_normalize_env` / :func:`_normalize_directives`. + """ + for engine in ("slurm", "snakemake", "nextflow"): + eng = block.get(engine) + if isinstance(eng, dict): + for slot in _ENGINE_MAP_SLOTS: + if slot in eng: + eng[slot] = _pairs_to_map(eng[slot]) + return block + + +def _normalize_directives(raw) -> list[dict[str, str]]: + """Canonicalise an engine block's ``options`` into a ``[{name, value}]`` list. + + Same name-keyed shapes as :func:`_normalize_env`, but the values are scheduler + directive tokens (e.g. a Slurm ``#SBATCH --<name>=<value>`` line), not shell + words, so they are emitted verbatim rather than shell-quoted. + """ + src = raw.items() if isinstance(raw, dict) else ( + ((i.get("name"), i.get("value")) for i in raw if isinstance(i, dict)) + if isinstance(raw, (list, tuple)) else ()) + out: list[dict[str, str]] = [] + for name, value in src: + if name is None: + continue + if isinstance(value, bool): + value = str(value).lower() + out.append({"name": str(name), "value": str(value)}) + return out + + +def _as_lines(raw) -> list[str]: + """Normalize a shell-line field (``setup``) to a list of strings. + + A string (or any scalar) becomes a single line; a list/tuple is stringified + per element. So ``--set slurm.setup="conda activate env"`` yields one line, not + one line per character, and a bare scalar does not raise. + """ + if raw is None: + return [] + if isinstance(raw, (list, tuple)): + return [str(x) for x in raw] + return [str(raw)] + + def plan( *, study_key: str, @@ -251,9 +388,21 @@ def plan( axes = extract_axes(experiment) + # A per-subject empirical target adds an implicit "subject" fan-out axis: one + # shard per subject, each resolving its own target. It reuses the same + # wildcard/array machinery as sweep axes, so no separate per-subject path. + subject_axis = _dataset_subject_axis(experiment) + if subject_axis is not None: + axes = [subject_axis, *axes] + vectorize: list[SweepAxis] = [] workflow: list[SweepAxis] = [] for ax in axes: + # An axis constructed with an explicit placement (e.g. the subject + # fan-out) is honoured as-is rather than re-decided by the auto rule. + if ax.placement in ("workflow", "vectorize"): + (workflow if ax.placement == "workflow" else vectorize).append(ax) + continue forced_vec = ax.parameter in explicit_vec or ax.name in explicit_vec forced_wf = ax.parameter in explicit_wf or ax.name in explicit_wf if forced_vec and forced_wf: @@ -280,8 +429,31 @@ def plan( chunk = int(distribute.get("chunk") or spec.get("chunk") or 1) engine_block = dict(spec.get(engine) or {}) + # Resource requirements (cpus_per_task, mem, time, env, setup, …) map across + # engines (WorkflowEngineConfig doc): a Snakemake run on a cluster orchestrates + # Slurm via its executor, so it needs the same partition/time/mem/cpus. When the + # engine's own block omits them, inherit from the Slurm block (the de-facto + # resource spec); the engine block still wins where it sets a key. + if engine != "slurm": + # Engine-agnostic resources map across engines (WorkflowEngineConfig doc). + _shared = ["cpus_per_task", "mem", "time", "modules", "venv", "env", "setup"] + # Snakemake orchestrates Slurm through its executor, so it also needs the + # Slurm scheduler identity; other engines (Nextflow) have their own and must + # not inherit these. + if engine == "snakemake": + _shared += ["partition", "account", "gres"] + _slurm = spec.get("slurm") or {} + for _k in _shared: + if _k not in engine_block and _k in _slurm: + engine_block[_k] = _slurm[_k] if "array_chunk" in engine_block: chunk = int(engine_block["array_chunk"]) + if "env" in engine_block: + engine_block["env"] = _normalize_env(engine_block["env"]) + if "options" in engine_block: + engine_block["options"] = _normalize_directives(engine_block["options"]) + if "setup" in engine_block: + engine_block["setup"] = _as_lines(engine_block["setup"]) # Software dependencies come from the experiment's schema-native # environment.requirements (overridable via workflow_spec["requirements"]). @@ -292,11 +464,59 @@ def plan( _reqs = [r for r in (_norm_requirement(x) for x in _as_list(_req_raw)) if r.get("package") or r.get("source_url")] - experiment_key = str(getattr(experiment, "key", None) - or getattr(experiment, "name", None) or "experiment") - out_dir = str(spec.get("out_dir") or "out/{study}/{experiment}") + from ._common import experiment_key as _experiment_key # canonical (id-first) key + + experiment_key = _experiment_key(experiment) + # Results land in a kit-relative ``results/`` by default (the emitted scripts + # run from the kit dir, which already encodes study/experiment/engine β€” like + # ``logs/``). An explicit out_dir (relative or absolute) overrides it; the + # {study}/{experiment} placeholders still resolve for custom templates. + out_dir = str(spec.get("out_dir") or "results") out_dir = out_dir.replace("{study}", study_key).replace("{experiment}", experiment_key) + # A ``from_experiment`` initial state makes this experiment depend on another + # experiment's completed result (its operating point). Recorded as an ordering + # edge so DAG engines run the source first (Snakemake input; SLURM afterok). + depends_on: list[str] = [] + _ini = getattr(experiment, "initial_state", None) + if _ini is not None and str(getattr(_ini, "method", "") or "") == "from_experiment": + _src = getattr(_ini, "source_experiment", None) + if _src is not None: + # ``source_experiment`` is referenced by identifier; keep the raw + # reference (id, key, or name) as a string. The emitter resolves it to + # the source's canonical workflow key, so a non-numeric key/name here + # does not crash and an explicit ``key`` still matches its rule/output. + _sid = getattr(_src, "id", None) + depends_on.append(str(_sid if _sid is not None else (getattr(_src, "name", None) or _src))) + + # A post-hoc experiment (e.g. Fig 4 input-statistics) reads a prior fit's + # recorded parameters/observations by sourcing ``<study>.exp<id>`` on one of its + # observations or parameters. That is a result dependency exactly like + # ``from_experiment``, so record the referenced experiment id here β€” otherwise a + # DAG engine schedules the analysis before the fit it consumes. + # Match ``exp<id>`` as a whole dotted segment: the bare ref (``…exp30``) and a + # sub-reference into a prior result (``…exp30.observations.fc``) both depend on + # experiment 30. Anchoring on ``$`` alone would miss the dotted sub-reference. + _exp_ref = re.compile(r"(?:^|\.)exp(\d+)(?:\.|$)") + + def _record_source_deps(container): + _items = container.values() if hasattr(container, "values") else (container or []) + for _it in _items: + _src = getattr(_it, "source", None) + if not _src: + continue + for _s in (_src if isinstance(_src, (list, tuple)) else [_src]): + _sn = _s if isinstance(_s, str) else (getattr(_s, "name", None) or str(_s)) + _m = _exp_ref.search(str(_sn)) + if _m and _m.group(1) != str(getattr(experiment, "id", "")) and _m.group(1) not in depends_on: + depends_on.append(_m.group(1)) + + _record_source_deps(getattr(experiment, "observations", None)) + _dyn = getattr(experiment, "dynamics", None) + if _dyn is not None: + _record_source_deps(getattr(_dyn, "parameters", None)) + _record_source_deps(getattr(experiment, "parameters", None)) + return WorkflowPlan( study_key=study_key, experiment_key=experiment_key, @@ -306,7 +526,7 @@ def plan( container=(spec.get("container") or None), retries=int(spec.get("retries") or 0), rng=str(spec.get("rng") or "deterministic"), - provenance=bool(spec.get("provenance", True)), + provenance=bool(spec.get("emit_provenance", True)), vectorize_axes=vectorize, workflow_axes=workflow, chunk=max(1, chunk), @@ -315,9 +535,69 @@ def plan( requirements=_reqs, source_spec=source_spec or "", experiment_selector=experiment_selector, + workflow_spec=spec, + depends_on=depends_on, ) +def workflow_config_from_spec(spec: dict) -> Any: + """Rebuild a datamodel ``WorkflowConfig`` from the merged workflow spec dict. + + Lets an emitted kit freeze the *effective* configuration (study < experiment + < ``--set``) into its spec, so the spec re-emits identically without the flags + being re-supplied β€” full, self-contained provenance. Returns ``None`` when the + spec carries no workflow settings. + """ + from tvbo import datamodel as dm + + if not spec: + return None + wc = dm.WorkflowConfig() + for key in ("out_dir", "container", "retries", "rng", "emit_provenance", "chunk"): + if spec.get(key) is not None: + setattr(wc, key, spec[key]) + dist = spec.get("distribute") + if isinstance(dist, dict): + dc = dm.DistributionConfig() + for key in ("by", "chunk"): + if dist.get(key) is not None: + setattr(dc, key, dist[key]) + if dist.get("vectorize"): + dc.vectorize = list(dist["vectorize"]) + if dist.get("workflow"): + dc.workflow = list(dist["workflow"]) + wc.distribute = dc + for engine in ("slurm", "snakemake", "nextflow"): + blk = spec.get(engine) + if isinstance(blk, dict) and blk: + setattr(wc, engine, _engine_config_from_dict(blk)) + return wc + + +def _engine_config_from_dict(blk: dict) -> Any: + """Rebuild a ``WorkflowEngineConfig`` from a merged engine block (env/options as + name-keyed maps or lists, values raw so they re-quote cleanly on the next emit).""" + from tvbo import datamodel as dm + + ec = dm.WorkflowEngineConfig() + for key in ("cpus_per_task", "mem", "time", "gres", "partition", "account", + "cores", "executor", "queue", "venv", "mail_type", "mail_user", + "array_chunk"): + if blk.get(key) is not None: + setattr(ec, key, blk[key]) + if blk.get("modules"): + ec.modules = list(blk["modules"]) + if blk.get("setup"): + ec.setup = _as_lines(blk["setup"]) + env_map = _pairs_to_map(blk.get("env")) if blk.get("env") else {} + if env_map: + ec.env = [dm.EnvironmentVariable(name=str(n), value=str(v)) for n, v in env_map.items()] + opt_map = _pairs_to_map(blk.get("options")) if blk.get("options") else {} + if opt_map: + ec.options = [dm.SchedulerDirective(name=str(n), value=str(v)) for n, v in opt_map.items()] + return ec + + def merge_workflow_spec(study, experiment=None) -> dict[str, Any]: """Merge the study's ``workflow`` defaults with an experiment's ``workflow``. @@ -325,9 +605,10 @@ def merge_workflow_spec(study, experiment=None) -> dict[str, Any]: precedence, the rest are inherited. Pass the experiment object directly β€” it need not carry a ``key``. With no experiment, only the study block is returned. """ - base = _as_plain_dict(getattr(study, "workflow", None)) - override = (_as_plain_dict(getattr(experiment, "workflow", None)) - if experiment is not None else {}) + base = _canonicalize_engine_maps(_as_plain_dict(getattr(study, "workflow", None))) + override = _canonicalize_engine_maps( + _as_plain_dict(getattr(experiment, "workflow", None)) + if experiment is not None else {}) return _deep_merge(base, override) diff --git a/tvbo/cli/figures.py b/tvbo/cli/figures.py new file mode 100644 index 000000000..54c4db704 --- /dev/null +++ b/tvbo/cli/figures.py @@ -0,0 +1,100 @@ +"""``tvbo figure`` β€” render declarative figures from a Figure or Study YAML. + +A :class:`~tvbo.datamodel.Figure` is TVBO's backend-independent spec of a +publication figure: a mosaic of panels whose layers bind experiment result +containers to visual channels (see ``schema/figure.yaml``). This verb resolves +such a spec and drives :mod:`tvbo.adapters.bsplot` to emit a self-contained +``plot.py`` and run it, mirroring how ``tvbo run`` drives the simulation +adapters. + +The spec may be a standalone ``Figure`` (top-level ``panels:``) or a +``SimulationStudy`` carrying a ``figures:`` list β€” the latter closes the +replication loop (a study is its experiments plus the figures that read them). +""" +from __future__ import annotations + +from pathlib import Path + +import typer + +from . import _common +from tvbo.utils import as_list, sanitize_name + +app = typer.Typer(name="figure", no_args_is_help=True) + + +def _load_figures(spec_path: Path) -> tuple[list, str]: + """Resolve *spec_path* to ``(figures, kind)``. + + A spec with a top-level ``panels:`` (and no study markers) is a standalone + ``Figure``; otherwise it is loaded as a ``SimulationStudy`` and its + ``figures`` slot is returned. *kind* is ``"figure"`` or ``"study"`` so the + caller can phrase the empty case correctly. + """ + from tvbo.utils import yaml_loader + + data = yaml_loader.load_as_dict(str(spec_path)) + if not isinstance(data, dict): + _common.die(f"{spec_path} is not a Figure or SimulationStudy spec (got {type(data).__name__}).") + + study_markers = ("experiments", "simulation_experiments", "figures") + if "panels" in data and not any(k in data for k in study_markers): + from tvbo.datamodel import schema as dm + + figure = yaml_loader.load(str(spec_path), dm.Figure) + return [figure], "figure" + + import tvbo + + study = tvbo.SimulationStudy.from_file(str(spec_path)) + return as_list(getattr(study, "figures", None)), "study" + + +@app.command("render", help="Render declarative figures from a Figure or SimulationStudy YAML.") +def render( + spec: str = typer.Argument( + ..., help="Path to a Figure YAML (top-level panels:) or a SimulationStudy YAML with a figures: list." + ), + out: Path = typer.Option( + None, "-o", "--out", + help="Directory for the rendered figures + plot scripts (default: <base-dir>/figures).", + ), + base_dir: Path = typer.Option( + None, "--base-dir", + help="Root the experiment result containers live under (where output/nc/ sits). " + "Defaults to the spec file's directory.", + ), +) -> None: + """Render every figure in *spec* via bsplot codegen. + + For each figure a self-contained ``plot_<name>.py`` is emitted next to the + output image and executed, so the ``<name>.<format>`` file is produced and + the script stays as an editable, rerunnable artefact. ``<base-dir>`` is the + root each layer's ``used`` IRI resolves against (``<base-dir>/output/nc/…``). + """ + from tvbo.adapters import bsplot + + spec_path = Path(spec).expanduser() + if not spec_path.is_file(): + _common.die(f"No such spec file: {spec_path}") + + base = base_dir.expanduser().resolve() if base_dir else spec_path.resolve().parent + out_dir = out.expanduser().resolve() if out else base / "figures" + + figures, kind = _load_figures(spec_path) + if not figures: + detail = ("study has an empty `figures:` list" if kind == "study" + else "spec has no panels") + _common.info(f"{spec_path.name}: no figures to render ({detail}).") + return + + out_dir.mkdir(parents=True, exist_ok=True) + for figure in figures: + name = getattr(figure, "name", None) or "figure" + fmt = (getattr(figure, "format", None) or "png").lstrip(".") + outfile = out_dir / f"{name}.{fmt}" + script_path = out_dir / f"plot_{sanitize_name(name)}.py" + bsplot.render(figure, base_dir=str(base), outfile=str(outfile), + script_path=str(script_path)) + _common.info(f"wrote {outfile}") + _common.info(f"wrote {script_path}") diff --git a/tvbo/cli/network.py b/tvbo/cli/network.py new file mode 100644 index 000000000..e40d85e46 --- /dev/null +++ b/tvbo/cli/network.py @@ -0,0 +1,186 @@ +"""``tvbo network`` β€” build brain-network connectomes from tractograms.""" +from __future__ import annotations + +from pathlib import Path +from typing import List, Optional + +import typer + +from . import _common + +app = typer.Typer( + name="network", + help="Build connectomes from a tractogram + parcellation (MRtrix wrapper).", + no_args_is_help=True, +) + + +@app.command("build") +def build( + tractogram: Path = typer.Argument( + ..., + help="Streamline tractogram MRtrix can read (e.g. .tck). Must be in the " + "same space as the parcellation.", + ), + parcellation: Path = typer.Argument( + ..., + help="Integer-labelled parcellation image (e.g. dseg.nii.gz), in the same " + "space as the tractogram.", + ), + output: Optional[Path] = typer.Option( + None, "-o", "--output", + help="Sidecar output path (.yaml); the .h5 companion is written next to it. " + "Default: a BIDS-derived name in the current directory.", + ), + atlas: Optional[str] = typer.Option( + None, "--atlas", help="Parcellation/atlas name (metadata + filename entity)."), + space: Optional[str] = typer.Option( + None, "--space", + help="Coordinate space both inputs share (e.g. FSLMNI152). Recorded as the " + "template entity; the build assumes the inputs are already co-registered."), + cohort: Optional[str] = typer.Option( + None, "--cohort", help="Cohort/dataset entity (e.g. HCPYA)."), + reconstruction: Optional[str] = typer.Option( + None, "--reconstruction", "--rec", + help="Tractography pipeline name (e.g. dTOR); recorded as the tractogram and " + "reconstruction entity."), + segmentation: Optional[str] = typer.Option( + None, "--seg", help="Segmentation entity (e.g. 17Networks)."), + scale: Optional[str] = typer.Option( + None, "--scale", help="Scale entity (e.g. 1000)."), + labels: Optional[Path] = typer.Option( + None, "--labels", + help="Optional node labels: a text file with one label per line, ordered by " + "parcellation label (1..N)."), + symmetric: bool = typer.Option( + True, "--symmetric/--no-symmetric", help="Pass -symmetric to tck2connectome."), + zero_diagonal: bool = typer.Option( + True, "--zero-diagonal/--no-zero-diagonal", + help="Pass -zero_diagonal to tck2connectome."), + keep_assignments: Optional[Path] = typer.Option( + None, "--keep-assignments", + help="Also save tck2connectome's -out_assignments to this path."), + mrtrix_arg: Optional[List[str]] = typer.Option( + None, "--mrtrix-arg", + help="Extra raw argument forwarded to both tck2connectome calls (repeatable)."), + overwrite: bool = typer.Option(False, "--overwrite", help="Overwrite existing output."), + dry_run: bool = typer.Option( + False, "--dry-run", + help="Print the tck2connectome commands and exit without running them."), +) -> None: + """Build a structural connectome (SC) from a tractogram + parcellation. + + A thin wrapper around MRtrix3 ``tck2connectome``: it counts streamlines between + parcellation nodes (edge weights) and their mean lengths, then writes a tvbo + network (``…_desc-SC_relmat.h5`` + YAML sidecar) you can load with + ``tvbo.Network(...)``. The tractogram and parcellation must already be in the + same space β€” this command does not register them. + """ + from tvbo.data.connectome_build import ( + connectome_from_tractogram, + ensure_mrtrix, + tck2connectome_commands, + ) + + extra = list(mrtrix_arg) if mrtrix_arg else None + + if dry_run: + import tempfile + + tmp = Path(tempfile.gettempdir()) + for cmd in tck2connectome_commands( + tractogram, parcellation, + tmp / "weights.csv", tmp / "lengths.csv", + (tmp / "assignments.csv") if keep_assignments else None, + symmetric=symmetric, zero_diagonal=zero_diagonal, extra_args=extra, + ): + typer.echo(" ".join(cmd)) + return + + ensure_mrtrix() # friendly error before doing any work + + for path, what in ((tractogram, "tractogram"), (parcellation, "parcellation")): + if not path.exists(): + _common.die(f"{what} not found: {path}") + if labels is not None and not labels.exists(): + _common.die(f"labels file not found: {labels}") + + if not space: + _common.info( + "No --space given; assuming the tractogram and parcellation are already " + "co-registered in the same space.") + + from tvbo.classes.network import Network + + bids = {k: v for k, v in ( + ("template", space), ("cohort", cohort), ("reconstruction", reconstruction), + ("atlas", atlas), ("segmentation", segmentation), ("scale", scale), + ) if v} + + def apply_metadata(net: "Network") -> "Network": + """Attach the flag-derived SC metadata used for naming and serialisation. + + The ``atlas`` filename entity is read from ``parcellation.atlas.name`` + (not ``bids``), so the naming shell needs the same parcellation the saved + network gets β€” hence one shared helper for both. + """ + net.descriptor = "SC" + net.distance_unit = "mm" + if atlas or space: + net.parcellation = {"atlas": { + k: v for k, v in (("name", atlas), ("coordinateSpace", space)) if v}} + if reconstruction: + net.tractogram = {"name": reconstruction} + if bids: + net.bids = bids + label_bits = [b for b in (atlas, segmentation, scale, reconstruction) if b] + if label_bits: + net.label = " ".join(label_bits) + return net + + # BIDS entities are entirely flag-derived, so resolve the output path and the + # overwrite guard up front β€” before the (potentially minutes-long) MRtrix run. + if output is not None: + sidecar = Path(output).with_suffix(".yaml") + else: + shell = apply_metadata(Network(nodes=[], edges=[], number_of_nodes=0)) + fname = getattr(shell, "bids_filename", None) + if not fname: + _common.die( + "Could not derive an output name from the given entities; pass " + "-o/--output, or add entities like --space/--atlas/--rec.") + sidecar = Path.cwd() / Path(fname).with_suffix(".yaml") + companion = sidecar.with_suffix(".h5") + if (sidecar.exists() or companion.exists()) and not overwrite: + _common.die(f"{sidecar.name} already exists (use --overwrite).") + + # 1. MRtrix β†’ weight and length matrices. + _common.info(f"Running tck2connectome on {tractogram.name} Γ— {parcellation.name} …") + weights, lengths = connectome_from_tractogram( + tractogram, parcellation, + symmetric=symmetric, zero_diagonal=zero_diagonal, extra_args=extra, + assignments_out=keep_assignments, + ) + n_nodes = weights.shape[0] + + # 2. Optional node labels. + node_labels = None + if labels is not None: + node_labels = [ln.strip() for ln in labels.read_text().splitlines() if ln.strip()] + if len(node_labels) != n_nodes: + _common.die( + f"labels count ({len(node_labels)}) != parcellation node count ({n_nodes}).") + + # 3. Assemble the tvbo Network with the same metadata used for naming. + net = apply_metadata(Network.from_matrix(weights=weights, lengths=lengths, labels=node_labels)) + + # 4. Save (sidecar + .h5 companion). + sidecar.parent.mkdir(parents=True, exist_ok=True) + net.save(sidecar) + + import numpy as np + + n_edges = int((np.asarray(weights) != 0).sum() // (2 if symmetric else 1)) + typer.echo(f"OK β€” built SC network: {n_nodes} nodes, {n_edges} edges") + typer.echo(f" sidecar: {sidecar}") + typer.echo(f" companion: {companion}") diff --git a/tvbo/cli/run.py b/tvbo/cli/run.py index 76bb9b253..583e4ab27 100644 --- a/tvbo/cli/run.py +++ b/tvbo/cli/run.py @@ -7,7 +7,7 @@ * ``--container IMAGE`` re-execs the run inside the named OCI image (Singularity if ``SINGULARITY_BIND`` is set in the environment, else Docker). -* ``--slurm-chunk i/N`` shards the study's sweep grid across array tasks: +* ``--shard i/N`` runs one shard of the sweep in-process (no scheduler): cell index ``j`` runs iff ``j %% N == i``. This is what the generated sbatch script invokes for every array index. """ @@ -33,6 +33,13 @@ def run( out_dir: Path = typer.Option( None, "--out-dir", "-o", help="Directory to write results into." ), + results_root: Path = typer.Option( + None, "--results-root", + help="Directory searched for a sibling run's saved result when this experiment's " + "initial_state.method=from_experiment (state / parameter warm-start). Defaults " + "to the output dir's parent; set it to point at another run's output β€” e.g. the " + "group fit's results dir for a per-subject warm-start (Run A β†’ Run B).", + ), experiment: str = typer.Option( None, "--experiment", help="When SPEC is a Study, run only this named experiment." ), @@ -47,9 +54,39 @@ def run( None, "--container", help="OCI image (e.g. ghcr.io/the-virtual-brain/tvbo:0.7.0); re-execs the same `tvbo run` inside it.", ), - slurm_chunk: str = typer.Option( - None, "--slurm-chunk", - help="Shard sweep cells across array tasks: ``i/N`` runs cells where j%N==i.", + shard: str = typer.Option( + None, "--shard", "--slurm-chunk", + help="Run one shard of the sweep in-process: ``i/N`` runs cells where j%N==i " + "(no scheduler needed). ``--slurm-chunk`` is a deprecated alias.", + ), + limit: int = typer.Option( + None, "--limit", min=1, + help="Run at most N cells of the sweep (a spread sample) β€” a quick look " + "without needing to know the grid size. Ignored when --shard is given.", + ), + subject: str = typer.Option( + None, "--subject", + help="Active subject ID for a per-subject dataset experiment: resolves and " + "injects that subject's empirical target (e.g. their FC). Set per shard " + "by the workflow fan-out.", + ), + set_: list[str] = typer.Option( + [], "--set", + help="Override an experiment metadata field for THIS run only (the recipe file is " + "not modified), e.g. --set integration.duration=8 --set integration.step_size=0.05. " + "Repeatable; dotted keys traverse attributes and keyed collections. Lets one " + "recipe stay the single source of truth while the CLI runs it with test settings.", + ), + compress: bool = typer.Option( + True, "--compress/--no-compress", + help="gzip-deflate the result HDF5 (default on; grids compress well). " + "--no-compress writes uncompressed for maximum write speed.", + ), + save_all: bool = typer.Option( + False, "--save-all", + help="Persist every observation, including intermediates. By default only " + "recorded outputs are saved (leaves + `record: true`); this keeps the " + "scaffolding (e.g. a raw BOLD feeding an FC) for debugging.", ), ) -> None: """Run a SPEC (experiment or study) in the selected backend. @@ -72,24 +109,29 @@ def run( kwargs: dict = {} if duration is not None: kwargs["duration"] = duration + if subject is not None: + kwargs["active_subject"] = subject + kwargs["compress"] = compress + kwargs["record_only"] = not save_all + if results_root is not None: + kwargs["results_root"] = str(results_root) chunk_i = chunk_n = None - if slurm_chunk: - chunk_i, chunk_n = _parse_chunk(slurm_chunk) + if shard: + chunk_i, chunk_n = _parse_chunk(shard) _common.info(f"sharding: cell j runs iff j%{chunk_n}=={chunk_i}") + # --limit is a cell budget; it becomes a per-experiment shard in _run_one, + # which knows each experiment's grid size (a study's experiments can differ). if kind == "study": exps = obj.experiments if hasattr(obj, "experiments") else obj.simulation_experiments items = list(exps.values()) if hasattr(exps, "values") else list(exps) if experiment is not None: - items = [ - e for e in items - if (getattr(e, "key", None) == experiment - or getattr(e, "name", None) == experiment - or getattr(e, "label", None) == experiment) - ] + # Accept one id/name or a comma-separated list ("2,3,20,30" runs all). + wanted = {s.strip() for s in str(experiment).split(",") if s.strip()} + items = [e for e in items if wanted & _common.experiment_ids(e)] if not items: - _common.die(f"No experiment named {experiment!r} in study.") + _common.die(f"No experiment(s) matching {experiment!r} in study.") for exp in items: _common.info(f"running experiment: {getattr(exp, 'key', None) or getattr(exp, 'label', None)}") # Resolve to the runtime experiment (has .run) rather than the datamodel object. @@ -98,13 +140,20 @@ def run( or getattr(exp, "name", None) or getattr(exp, "label", None)) try: exp = obj.get_experiment(sel) - except Exception: - pass - _run_one(exp, backend, out_dir, kwargs, chunk_i, chunk_n) + except Exception as e: + _common.die( + f"Could not resolve experiment {sel!r} to a runnable object: {e}\n" + "If the recipe references custom builder/analysis modules " + "(e.g. `module: my_networks`), make them importable β€” run from " + "their directory or set PYTHONPATH." + ) + _apply_metadata_overrides(exp, set_) + _run_one(exp, backend, out_dir, kwargs, chunk_i, chunk_n, limit) return if kind == "experiment": - _run_one(obj, backend, out_dir, kwargs, chunk_i, chunk_n) + _apply_metadata_overrides(obj, set_) + _run_one(obj, backend, out_dir, kwargs, chunk_i, chunk_n, limit) return _common.die(f"`tvbo run` does not yet support kind={kind!r}.") @@ -116,16 +165,89 @@ def run( def _parse_chunk(s: str) -> tuple[int, int]: if "/" not in s: - raise typer.BadParameter("--slurm-chunk must be of the form i/N") + raise typer.BadParameter("--shard must be of the form i/N") i_s, n_s = s.split("/", 1) i, n = int(i_s), int(n_s) if not (0 <= i < n): - raise typer.BadParameter(f"--slurm-chunk i={i} out of range [0,{n})") + raise typer.BadParameter(f"--shard i={i} out of range [0,{n})") return i, n +def _coerce_scalar(v: str): + """Coerce a ``--set`` value string to bool/int/float/JSON, else leave a string.""" + low = v.strip().lower() + if low in {"true", "false"}: + return low == "true" + for cast in (int, float): + try: + return cast(v) + except ValueError: + pass + if v[:1] in "[{": # JSON list/object, e.g. [0,2] or ["xi","freq"] + import json + try: + return json.loads(v) + except ValueError: + pass + return v + + +def _apply_metadata_overrides(experiment, overrides: list[str]) -> None: + """Apply ``--set dotted.path=value`` overrides to a resolved experiment in place. + + Traverses attributes and keyed collections (LinkML keyed dicts) so one recipe can + stay the single source of truth while a run uses test settings. Mutates the loaded + object only β€” the recipe file is untouched. + """ + def _step(cur, seg): + if isinstance(cur, dict) and seg in cur: + return cur[seg] + if hasattr(cur, seg): + return getattr(cur, seg) + try: # LinkML keyed collection (dict-like __getitem__) + return cur[seg] + except Exception: + _common.die(f"--set: cannot resolve {seg!r} on {type(cur).__name__}") + + for raw in overrides: + s = raw.lstrip("-") + if "=" not in s: + raise typer.BadParameter(f"--set {raw!r} must be of the form path=value") + path, _, val = s.partition("=") + segs = [p for p in path.split(".") if p] + cur = experiment + for seg in segs[:-1]: + cur = _step(cur, seg) + leaf, value = segs[-1], _coerce_scalar(val) + if isinstance(cur, dict): + cur[leaf] = value + elif hasattr(cur, leaf): + setattr(cur, leaf, value) + else: + try: + cur[leaf] = value + except Exception: + setattr(cur, leaf, value) + _common.info(f"--set {path} = {value!r}") + + def _run_one(experiment, backend: str, out_dir: Path | None, - kwargs: dict, chunk_i: int | None, chunk_n: int | None) -> None: + kwargs: dict, chunk_i: int | None, chunk_n: int | None, + limit: int | None = None) -> None: + # --limit N is a cell budget: turn it into a stride over this experiment's own + # grid so ``Space[0::stride]`` yields ~N spread cells β€” no need to know the size. + if limit is not None and chunk_n is None: + import math + + from ._workflow import extract_axes + n_cells = 1 + for ax in extract_axes(experiment): + n_cells *= len(ax.values) + if n_cells > limit: + chunk_i, chunk_n = 0, math.ceil(n_cells / limit) + _common.info(f"--limit {limit}: running ~{-(-n_cells // chunk_n)} of " + f"{n_cells} cells (Space[0::{chunk_n}])") + if chunk_n is not None: from ._backends import resolve_backend from ._workflow import extract_axes @@ -148,19 +270,27 @@ def _run_one(experiment, backend: str, out_dir: Path | None, if fanned: names = ", ".join(f"{ax.parameter} ({ax.kind})" for ax in fanned) _common.die( - f"--slurm-chunk shards a sweep by slicing the backend's vectorised " + f"--shard shards a sweep by slicing the backend's vectorised " f"batch, but backend {backend!r} does not vectorise: {names}. Emit " f"the kit with snakemake/nextflow (which fan these axes into per-cell " f"tasks), or use a backend that vectorises them (e.g. tvboptim)." ) - n_cells = 1 - for ax in axes: - n_cells *= len(ax.values) - per_task = -(-n_cells // chunk_n) # ceil - _common.info( - f"sharding: task {chunk_i}/{chunk_n} runs ~{per_task} of {n_cells} " - f"sweep cells (backend-vectorised, Space[{chunk_i}::{chunk_n}])" - ) + if any(getattr(ax, "runtime_sized", False) for ax in axes): + # Branch-restart sweep: the cell count comes from the source run's recorded + # branch (read at run time), so this task just slices its share of it. + _common.info( + f"sharding: task {chunk_i}/{chunk_n} runs its slice of a runtime-sized " + f"branch (Space[{chunk_i}::{chunk_n}]; cell count known at run time)" + ) + else: + n_cells = 1 + for ax in axes: + n_cells *= len(ax.values) + per_task = -(-n_cells // chunk_n) # ceil + _common.info( + f"sharding: task {chunk_i}/{chunk_n} runs ~{per_task} of {n_cells} " + f"sweep cells (backend-vectorised, Space[{chunk_i}::{chunk_n}])" + ) shard_kwargs = dict(kwargs) shard_kwargs["shard"] = (chunk_i, chunk_n) _exec_one(experiment, backend, out_dir, shard_kwargs) @@ -170,12 +300,18 @@ def _run_one(experiment, backend: str, out_dir: Path | None, def _exec_one(experiment, backend: str, out_dir: Path | None, kwargs: dict) -> None: - result = experiment.run(format=backend, **kwargs) + compress = kwargs.pop("compress", True) # save options, not backend-run kwargs + record_only = kwargs.pop("record_only", True) + # initial_state.from_experiment seeds from a sibling experiment's saved result; + # search the output dir's parent (covers results/<key> and output/nc/exp<id> alike). + # Explicit --results-root (in kwargs) wins; else default to the output dir's parent. + results_root = kwargs.pop("results_root", None) or (out_dir.parent if out_dir is not None else None) + result = experiment.run(format=backend, results_root=results_root, **kwargs) _common.info(f"done: {type(result).__name__}") if out_dir is not None: out_dir.mkdir(parents=True, exist_ok=True) if hasattr(result, "save"): - saved = result.save(str(out_dir)) + saved = result.save(str(out_dir), compress=compress, record_only=record_only) _common.info(f"wrote {saved}") else: _common.info(f"(result has no .save(); skipping write to {out_dir})") @@ -184,8 +320,17 @@ def _exec_one(experiment, backend: str, out_dir: Path | None, kwargs: dict) -> N def _dispatch_to_engine(engine: str, *, spec: str, backend: str, experiment: str | None, container: str | None, out_dir: Path | None) -> None: - if engine not in {"slurm", "snakemake", "nextflow"}: - _common.die(f"--engine {engine!r} not supported. Use local|slurm|snakemake|nextflow.") + """Emit a workflow kit for *engine* and submit/execute it, all in-process. + + Shares the emit + execute path with ``tvbo workflow <engine>`` rather than + re-shelling ``tvbo`` (which needs it on ``$PATH`` β€” fragile under venv / + module / container setups on HPC) and rather than building the plan twice. + """ + from . import workflow as _workflow_cmd + + if engine not in _workflow_cmd._ARTEFACT_NAME: + supported = "|".join(_workflow_cmd._ARTEFACT_NAME) + _common.die(f"--engine {engine!r} not supported. Use local|{supported}.") overrides: list[str] = [] if container: @@ -193,24 +338,12 @@ def _dispatch_to_engine(engine: str, *, spec: str, backend: str, if out_dir: overrides.append(f"--set=out_dir={out_dir}") - artefact = Path(out_dir or ".") / { - "slurm": "run.sbatch", - "snakemake": "Snakefile", - "nextflow": "main.nf", - }[engine] - - cmd = ["tvbo", "workflow", engine, spec, "--backend", backend, "-o", str(artefact)] - if experiment: - cmd.extend(["--experiment", experiment]) - cmd.extend(overrides) - _common.info("$ " + " ".join(shlex.quote(c) for c in cmd)) - subprocess.run(cmd, check=True) - _common.info(f"emitted {artefact}") - - if engine == "slurm": - sub = ["sbatch", str(artefact)] - _common.info("$ " + " ".join(shlex.quote(c) for c in sub)) - subprocess.run(sub, check=True) + kit_dir = _workflow_cmd._emit(engine, spec=spec, backend=backend, + experiment=experiment, output=out_dir, + override=overrides, stdout=False) + if kit_dir is None: + _common.die("failed to emit workflow kit") + _workflow_cmd._execute_emitted(engine, kit_dir) def _reexec_in_container(image: str, argv: list[str]) -> None: diff --git a/tvbo/cli/skills.py b/tvbo/cli/skills.py index 5112ebb26..661cefe07 100644 --- a/tvbo/cli/skills.py +++ b/tvbo/cli/skills.py @@ -14,6 +14,9 @@ """ from __future__ import annotations +import re +import shutil +import tomllib from enum import Enum from pathlib import Path @@ -24,6 +27,7 @@ CANONICAL_PACKAGE_DIR, CANONICAL_REPO_DIR, Skill, + is_asset_noise, is_managed_file, load_canonical, render_agents_md, @@ -138,7 +142,7 @@ def sync( agents_md = repo_root / "AGENTS.md" if check: - return _sync_check(skills, claude_dir, copilot_dir, agents_md) + return _sync_check(skills, claude_dir, copilot_dir, agents_md, repo_root) written: list[Path] = [] for skill in skills: @@ -150,11 +154,140 @@ def sync( typer.echo(f"synced {len(skills)} skills β†’ {len(written)} files") + # Warn, never repair: an unrecognised file may be someone's local work, and + # a bad reference or extra is a content decision the maintainer has to make. + _report(_lint(skills, claude_dir, copilot_dir, repo_root)) -def _sync_check(skills: list[Skill], claude_dir: Path, copilot_dir: Path, agents_md: Path) -> None: - """Render in-memory, compare to on-disk; non-zero exit if anything differs.""" - import io - import shutil + +def _references(body: str, name: str) -> bool: + """True if *body* points at the skill *name*. + + Matches the three forms the corpus actually uses β€” ``**name**``, ``/name``, + and ``` `name` skill ``` β€” rather than a bare substring, so a skill named + ``git`` is not matched by every mention of ``gitignore``. + """ + n = re.escape(name) + return any( + re.search(p, body) + for p in (rf"\*\*{n}\*\*", rf"/{n}\b", rf"`{n}`\s+skill") + ) + + +def _find_leaked_refs(skills: list[Skill]) -> list[str]: + """Shipped user skills that point at maintainer skills. + + ``install`` renders only the user root, so a maintainer skill named in a + shipped body is a dead pointer for everyone outside this repo. It looks + fine here because ``sync`` renders both audiences side by side. + """ + maintainer = {s.name for s in skills if s.audience == "maintainer"} + return [ + f"{skill.source}: references maintainer skill {name!r}" + for skill in skills + if skill.audience != "maintainer" + for name in sorted(maintainer) + if _references(skill.body, name) + ] + + +def _find_bad_extras(skills: list[Skill], repo_root: Path) -> list[str]: + """``requires_extras`` entries naming no real optional-dependency group.""" + pyproject = repo_root / "pyproject.toml" + if not pyproject.is_file(): + return [] + with pyproject.open("rb") as fh: + data = tomllib.load(fh) + real = set((data.get("project") or {}).get("optional-dependencies") or {}) + return [ + f"{skill.source}: requires_extras {extra!r} is not a group in " + f"[project.optional-dependencies]" + for skill in skills + for extra in skill.requires_extras + if extra not in real + ] + + +def _lint( + skills: list[Skill], claude_dir: Path, copilot_dir: Path, repo_root: Path +) -> list[tuple[str, list[str], str]]: + """Content problems that re-rendering cannot fix, as (title, items, hint). + + Distinct from drift: these live in the canonical sources, or in what + surrounds the rendered output, so they are reported for a human to resolve + rather than silently repaired. + """ + findings: list[tuple[str, list[str], str]] = [] + if stray := _find_orphans(skills, claude_dir, copilot_dir): + findings.append(( + "orphaned rendered skills (no canonical source):", + stray, + "Either add a canonical source under skills/ (maintainer) or " + "tvbo/skills/canonical/ (user), or delete the rendered file. " + "Personal skills belong in ~/.claude/skills/, not the project dir.", + )) + if leaks := _find_leaked_refs(skills): + findings.append(( + "shipped user skills referencing maintainer skills:", + leaks, + "`tvbo skills install` ships only the user root, so these pointers are " + "dead outside this repo. Inline the guidance, or drop the reference.", + )) + if bad := _find_bad_extras(skills, repo_root): + findings.append(( + "requires_extras naming no real optional-dependency group:", + bad, + "Name a group from [project.optional-dependencies] in pyproject.toml, " + "or use [] if the skill needs no extra.", + )) + return findings + + +def _report(findings: list[tuple[str, list[str], str]]) -> None: + """Print lint findings. Never deletes β€” removal is the maintainer's call.""" + for title, items, hint in findings: + typer.echo(title, err=True) + for item in items: + typer.echo(f" - {item}", err=True) + typer.echo(f"\n{hint}\n", err=True) + + +def _find_orphans(skills: list[Skill], claude_dir: Path, copilot_dir: Path) -> list[str]: + """Rendered skill files that no canonical source accounts for. + + The rendered directories hold generated output only, so anything in them + without a canonical source behind it is a stray β€” typically a personal + skill committed by accident. Those belong in a user-scope directory + (``~/.claude/skills/``) instead. + """ + claude_known = {s.name for s in skills} + copilot_known = {s.name for s in skills if s.audience in {"maintainer", "both"}} + + stray = [ + f".claude/skills/{md.parent.name}/" + for md in sorted(claude_dir.glob("*/SKILL.md")) + if md.parent.name not in claude_known + ] + stray += [ + f".github/instructions/{inst.name}" + for inst in sorted(copilot_dir.glob("*.instructions.md")) + if inst.name.removesuffix(".instructions.md") not in copilot_known + ] + return stray + + +def _sync_check( + skills: list[Skill], + claude_dir: Path, + copilot_dir: Path, + agents_md: Path, + repo_root: Path, +) -> None: + """Render in-memory, compare to on-disk; non-zero exit if anything differs. + + Two independent failure modes: *drift*, where a committed copy no longer + matches what its canonical source renders to (fix by re-running sync), and + the :func:`_lint` findings, which sync cannot fix. + """ import tempfile with tempfile.TemporaryDirectory() as tmp: @@ -175,12 +308,36 @@ def _cmp(a: Path, b: Path, label: str) -> None: if ax != bx: drift.append(label) + def _cmp_tree(a: Path, b: Path, label: str) -> None: + """Compare two directory trees byte-for-byte, recording per-file drift. + + Byte-compiled and OS-noise files are ignored on both sides (they are + never rendered), so a locally-run asset script cannot spoof drift. + """ + def _files(root: Path) -> dict[Path, bytes]: + if not root.exists(): + return {} + return { + rel: p.read_bytes() + for p in root.rglob("*") + if p.is_file() and not is_asset_noise(rel := p.relative_to(root)) + } + af, bf = _files(a), _files(b) + for rel in sorted(set(af) | set(bf), key=str): + if af.get(rel) != bf.get(rel): + drift.append(f"{label}/{rel}") + for skill in skills: _cmp( tmp_path / "claude" / skill.name / "SKILL.md", claude_dir / skill.name / "SKILL.md", f".claude/skills/{skill.name}/SKILL.md", ) + _cmp_tree( + tmp_path / "claude" / skill.name / "assets", + claude_dir / skill.name / "assets", + f".claude/skills/{skill.name}/assets", + ) if skill.audience in {"maintainer", "both"}: _cmp( tmp_path / "copilot" / f"{skill.name}.instructions.md", @@ -189,11 +346,14 @@ def _cmp(a: Path, b: Path, label: str) -> None: ) _cmp(tmp_path / "AGENTS.md", agents_md, "AGENTS.md") + findings = _lint(skills, claude_dir, copilot_dir, repo_root) if drift: - typer.echo("skills sync drift detected:", err=True) - for d in drift: - typer.echo(f" - {d}", err=True) - typer.echo("\nRun `tvbo skills sync` to regenerate.", err=True) + findings.insert( + 0, + ("skills sync drift detected:", drift, "Run `tvbo skills sync` to regenerate."), + ) + if findings: + _report(findings) raise typer.Exit(1) typer.echo("skills sync: up to date") @@ -347,12 +507,17 @@ def uninstall( for path in candidates: if not is_managed_file(path): continue + assets = path.parent / "assets" # only meaningful for claude-code if dry_run: typer.echo(f" would remove: {path}") + if t is Target.claude_code and assets.is_dir(): + typer.echo(f" would remove: {assets}/") else: path.unlink() - # for claude-code, also drop the now-empty parent dir + # for claude-code, also drop our assets/ and the now-empty parent dir if t is Target.claude_code: + if assets.is_dir(): + shutil.rmtree(assets) try: path.parent.rmdir() except OSError: diff --git a/tvbo/cli/workflow.py b/tvbo/cli/workflow.py index 7cc5464b9..d3cf64b76 100644 --- a/tvbo/cli/workflow.py +++ b/tvbo/cli/workflow.py @@ -2,7 +2,10 @@ from __future__ import annotations import datetime as _dt +import json import os +import shlex +import subprocess from pathlib import Path from typing import Any @@ -38,9 +41,15 @@ def _parse_overrides(items: list[str]) -> dict[str, Any]: parts = k.split(".") for p in parts[:-1]: target = target.setdefault(p, {}) - # Try numeric/bool coercion + # Coerce the value: JSON for a list/object literal (e.g. a `setup` + # command list), else bool/int/float, else the raw string. coerced: Any = v - if v.lower() in {"true", "false"}: + if v.lstrip()[:1] in ("[", "{"): + try: + coerced = json.loads(v) + except ValueError: + coerced = v + elif v.lower() in {"true", "false"}: coerced = v.lower() == "true" else: try: @@ -66,12 +75,7 @@ def _resolve_study_and_experiment(spec: str, experiment_arg: str | None): if not items: _common.die(f"Study {spec!r} has no experiments.") if experiment_arg is not None: - wanted = [ - e for e in items - if (getattr(e, "key", None) == experiment_arg - or getattr(e, "name", None) == experiment_arg - or getattr(e, "label", None) == experiment_arg) - ] + wanted = [e for e in items if experiment_arg in _common.experiment_ids(e)] if not wanted: _common.die(f"No experiment named {experiment_arg!r} in study.") exp = wanted[0] @@ -79,14 +83,17 @@ def _resolve_study_and_experiment(spec: str, experiment_arg: str | None): exp = items[0] # Prefer the *runtime* experiment (has render/render_code/render_yaml) over the # datamodel object, so the kit can freeze the backend script + YAML snapshot. - if hasattr(obj, "get_experiment"): - sel = getattr(exp, "id", None) - if sel is None: - sel = getattr(exp, "key", None) or getattr(exp, "name", None) or getattr(exp, "label", None) + if not hasattr(exp, "render") and hasattr(obj, "get_experiment"): + sel = (getattr(exp, "id", None) or getattr(exp, "key", None) + or getattr(exp, "name", None) or getattr(exp, "label", None)) try: exp = obj.get_experiment(sel) - except Exception: - pass + except Exception as e: + _common.die( + f"Could not resolve experiment {sel!r} to a runnable object: {e}\n" + "If the recipe references custom modules, make them importable " + "(run from their directory or set PYTHONPATH)." + ) return obj, exp, getattr(obj, "key", None) or "study" if kind == "experiment": @@ -167,49 +174,191 @@ def _network_has_matrices(net) -> bool: return False -def _freeze_spec_yaml(experiment, spec_dir: Path) -> str: +def _freeze_spec_yaml(experiment, spec_dir: Path, *, workflow_spec: dict | None = None, + dataset_bids_root: str | None = None) -> str: """Render the experiment as a self-contained YAML spec next to *spec_dir*. When the experiment has a connectome, its matrices are saved as an HDF5 companion (``network.h5``) with a YAML sidecar (``network.yaml``) and the rendered spec references them through ``network.data_file`` while preserving any inline coupling / transforms / parameters. Without a connectome the plain - metadata render already round-trips, so it is returned unchanged. + metadata render already round-trips. + + *workflow_spec* is the effective merged workflow config (study < experiment < + ``--set``). When given, the frozen spec's ``workflow`` block is rewritten to it, + so the spec records exactly what ran and re-emits identically without the flags. + + *dataset_bids_root* rewrites the frozen ``dataset.bids_root`` (e.g. to a relative + ``dataset`` once the per-subject data is bundled under ``spec/dataset``), so the + spec points at the bundled tree instead of the author's machine-specific path. """ from tvbo import datamodel as dm from tvbo.classes.network import Network net = getattr(experiment, "network", None) - if not _network_has_matrices(net): - return experiment.render(format="yaml") - - spec_dir.mkdir(parents=True, exist_ok=True) - if not isinstance(net, Network): - net.__class__ = Network - net.save(spec_dir / "network.yaml", binary_format="h5") - _common.info("wrote spec/network.yaml + spec/network.h5") - - # Compact network reference: data_file + inline coupling/transforms/parameters, - # so the rendered spec loads the companion connectome rather than a stub. - ref = dm.Network(data_file="network.h5") - if getattr(net, "coupling", None): - for k, v in dict(net.coupling).items(): - ref.coupling[k] = v - if getattr(net, "transforms", None): - ref.transforms = list(net.transforms) - if getattr(net, "parameters", None): - for k, v in dict(net.parameters).items(): - ref.parameters[k] = v - - original = experiment.network - experiment.network = ref + has_net = _network_has_matrices(net) + + original_net = getattr(experiment, "network", None) + original_wf = getattr(experiment, "workflow", None) + ds = getattr(experiment, "dataset", None) + original_ds_root = getattr(ds, "bids_root", None) if ds is not None else None + if dataset_bids_root is not None and ds is not None: + ds.bids_root = dataset_bids_root + if workflow_spec: + effective = _wf.workflow_config_from_spec(workflow_spec) + if effective is not None: + experiment.workflow = effective try: + if not has_net: + return experiment.render(format="yaml") + + spec_dir.mkdir(parents=True, exist_ok=True) + if not isinstance(net, Network): + net.__class__ = Network + # Bake real node labels into the frozen connectome so the kit is + # self-contained and label reconciliation works on reload (the bids- block + # that would hydrate them is dropped from the frozen spec). + if hasattr(experiment, "bake_real_node_labels"): + experiment.bake_real_node_labels() + net.save(spec_dir / "network.yaml", binary_format="h5") + _common.info("wrote spec/network.yaml + spec/network.h5") + + # Compact network reference: data_file + inline coupling/transforms/parameters, + # so the rendered spec loads the companion connectome rather than a stub. + ref = dm.Network(data_file="network.h5") + if getattr(net, "coupling", None): + for k, v in dict(net.coupling).items(): + ref.coupling[k] = v + if getattr(net, "transforms", None): + ref.transforms = list(net.transforms) + if getattr(net, "parameters", None): + for k, v in dict(net.parameters).items(): + ref.parameters[k] = v + + experiment.network = ref return experiment.to_yaml() finally: - experiment.network = original + experiment.network = original_net + if workflow_spec: + experiment.workflow = original_wf + if dataset_bids_root is not None and ds is not None: + ds.bids_root = original_ds_root + + +def _bundle_callable_modules(spec_yaml_text: str, out_dir: Path) -> bool: + """Copy the recipe's custom callable/builder modules into the kit's ``code/``. + + A recipe references user code by bare module name (``callable: {module: + my_analysis}`` / ``builder: {module: my_networks}``). Those modules are + importable at emit time (on the author's ``PYTHONPATH``) but are not installed + packages, so the frozen spec cannot resolve them on a compute node unless they + travel with the kit. Each referenced module that resolves to a **local** ``.py`` + file (not under ``site-packages``/``dist-packages`` β€” installed deps are + provisioned via ``requirements.txt``/``environment.yml`` instead) is copied into + ``code/``. Returns True if anything was bundled (the sbatch then puts ``code`` on + ``PYTHONPATH``). + """ + import importlib + import re + import shutil + + names = set(re.findall(r'module:\s*["\']?([A-Za-z_][\w.]*)', spec_yaml_text)) + bundled: list[str] = [] + code_dir = out_dir / "code" + for name in sorted(names): + try: + mod = importlib.import_module(name) + except Exception: + continue + f = getattr(mod, "__file__", None) or "" + if not f.endswith(".py") or "site-packages" in f or "dist-packages" in f: + continue # installed package β€” comes from the emitted requirements, not bundled + code_dir.mkdir(exist_ok=True) + shutil.copy2(f, code_dir / Path(f).name) + bundled.append(Path(f).name) + if bundled: + _common.info(f"bundled callable modules β†’ code/: {', '.join(bundled)}") + return bool(bundled) + + +def _parse_bundle_select(items: list[str]) -> dict[str, str]: + """Parse ``--bundle-select atlas=HCPMMP1`` entries into a BIDS-entity dict. + + Each key is a BIDS entity as it appears in the target filename (``atlas``, + ``desc``, ``cohort``, ``tpl`` …) or ``suffix``; the pairs pin exactly which + per-subject file a bundle copies when a subject directory holds several variants. + """ + out: dict[str, str] = {} + for raw in items: + s = raw.lstrip("-") + if "=" not in s: + raise typer.BadParameter( + f"--bundle-select {raw!r} must be KEY=VALUE (e.g. atlas=HCPMMP1)." + ) + k, _, v = s.partition("=") + out[k.strip()] = v.strip() + return out + + +def _bundle_selection(experiment, cli_select: dict | None) -> dict | None: + """Resolve whether to bundle this experiment's dataset, and with what selection. + + Bundling is requested either on the command line (``--bundle-dataset``, which + passes at least ``{}``) or declaratively in the recipe (``dataset.bundle: true``). + The metadata flag makes a self-contained kit the recipe's own intent, so the + packaging command needs no bundle flag. Returns the entity-override dict to pass + to :func:`_bundle_dataset` (``{}`` = resolve purely from the observation's BIDS + query), or ``None`` when neither source requests a bundle. + """ + if cli_select is not None: + return cli_select + ds = getattr(experiment, "dataset", None) + return {} if (ds is not None and getattr(ds, "bundle", None)) else None -def _emit_kit(*, engine: str, plan, experiment, out_dir: Path) -> Path: +def _bundle_dataset(experiment, dest_dir: Path, entity_overrides: dict | None) -> str | None: + """Copy the fan-out's per-subject dataset files into the kit; return the new root. + + Resolves each enumerated subject's empirical target (sidecar + payload) through the + experiment's dataset query β€” tightened by *entity_overrides* β€” and copies it under + *dest_dir* as ``sub-<id>/<file>``, so a kit carries exactly the data its fan-out + consumes and nothing else. *dest_dir* is a sibling of the frozen spec, so its bare + name is the relative ``dataset.bids_root`` to record. Returns that name, or None + when there is no dataset-sourced target to bundle. + + A *requested* bundle that cannot be resolved (a missing file, an over-tight + ``--bundle-select``) is a hard error: silently keeping the machine-specific root + would ship a kit that fails on every node β€” the exact hazard this removes. + """ + import shutil + + try: + manifest = experiment.dataset_bundle_files(entity_overrides) + except (FileNotFoundError, ValueError) as exc: + _common.die(f"--bundle-dataset: {exc}") + if not manifest: + _common.warn("--bundle-dataset: experiment has no dataset-sourced target to bundle.") + return None + n_files = n_bytes = 0 + for subject, files in manifest.items(): + subdir = dest_dir / f"sub-{subject}" + subdir.mkdir(parents=True, exist_ok=True) + for f in files: + dst = subdir / f.name + shutil.copytree(f, dst, dirs_exist_ok=True) if f.is_dir() else shutil.copy2(f, dst) + n_files += 1 + n_bytes += (sum(p.stat().st_size for p in dst.rglob("*") if p.is_file()) + if dst.is_dir() else dst.stat().st_size) + _common.info( + f"bundled dataset: {len(manifest)} subject(s), {n_files} file(s), " + f"{n_bytes / 1e6:.1f} MB β†’ {dest_dir.name}/ " + f"(dataset.bids_root rewritten to relative '{dest_dir.name}')" + ) + return dest_dir.name + + +def _emit_kit(*, engine: str, plan, experiment, out_dir: Path, + bundle_select: dict | None = None) -> Path: """Write a self-contained reproducibility kit under *out_dir*. Layout:: @@ -232,13 +381,22 @@ def _emit_kit(*, engine: str, plan, experiment, out_dir: Path) -> Path: # a single node. Instead the network is written as an HDF5 companion # (network.h5) + YAML sidecar (network.yaml) and referenced from the spec # via ``network.data_file`` β€” the mechanism resolve_spec loads on the node. + spec_dir = out_dir / "spec" + # A requested per-subject data bundle runs BEFORE the (error-swallowing) spec + # freeze: if bundling fails it is a hard error the user must see, not a kit that + # falls back to the raw recipe / a machine-specific bids_root and fails on a node. + _sel = _bundle_selection(experiment, bundle_select) + bundle_root = (_bundle_dataset(experiment, spec_dir / "dataset", _sel) + if _sel is not None else None) spec_relpath = None + bundled_code = False try: - spec_dir = out_dir / "spec" - yaml_text = _freeze_spec_yaml(experiment, spec_dir) + yaml_text = _freeze_spec_yaml(experiment, spec_dir, workflow_spec=plan.workflow_spec, + dataset_bids_root=bundle_root) spec_path = spec_dir / f"{plan.experiment_key}.yaml" spec_path.write_text(yaml_text, encoding="utf-8") spec_relpath = str(spec_path.relative_to(out_dir)) + bundled_code = _bundle_callable_modules(yaml_text, out_dir) except Exception as exc: _common.info(f"(could not snapshot YAML spec: {exc})") @@ -256,16 +414,42 @@ def _emit_kit(*, engine: str, plan, experiment, out_dir: Path) -> Path: # 3) Workflow artefact artefact = out_dir / _ARTEFACT_NAME[engine] + # BIDS result stem (no subject) so the engine can declare the exact output a + # per-subject `tvbo run` writes (sub-<subject>_<stem>.h5), not a bare result.h5. + try: + result_stem = experiment.get_result_stem() + except Exception: + result_stem = "result" text = _render_template( _TEMPLATE_PATH[engine], plan=plan, block=plan.engine_block, script_relpath=str(script_path.relative_to(out_dir)) if script_path else None, spec_relpath=spec_relpath, + bundled_code=bundled_code, + result_stem=result_stem, ) artefact.write_text(text, encoding="utf-8") _common.info(f"wrote {artefact.relative_to(out_dir)}") + # 3a) Gather job β€” reassembles the array's shard outputs into one result per + # experiment (identical to a local run). Submitted with a dependency by + # `tvbo workflow run`, so no manual post-processing is needed. A single-task + # array (e.g. chunk=1 on one GPU) has nothing to reassemble β€” it writes the + # canonical result directly β€” so no gather job is emitted. + if engine == "slurm" and plan.n_array_tasks > 1: + # BIDS-style result stem (pybids), matching what a local ExperimentResult.save writes. + try: + result_stem = experiment.get_result_stem() + except Exception: + result_stem = "result" + finalize = out_dir / "finalize.sbatch" + finalize.write_text( + _render_template("slurm/finalize.sbatch.mako", plan=plan, + block=plan.engine_block, result_stem=result_stem), + encoding="utf-8") + _common.info(f"wrote {finalize.relative_to(out_dir)}") + # 3b) Environment files (pip + conda) rendered via Mako from the experiment's # declared environment.requirements, so the kit provisions the right env. if plan.pip_specs: @@ -303,7 +487,14 @@ def _write_readme(out_dir: Path, *, engine: str, plan, script_relpath: str | Non if engine == "slurm": lines.append(f"sbatch {_ARTEFACT_NAME[engine]}") elif engine == "snakemake": - lines.append("snakemake --cores all") + lines += [ + "# On a SLURM cluster (login node) β€” submits each rule to the scheduler:", + "# needs: pip install snakemake-executor-plugin-slurm", + "snakemake --profile profile # or: tvbo workflow submit <this kit>", + "", + "# Local (laptop / one interactive node) β€” no scheduler:", + "# snakemake --cores all", + ] elif engine == "nextflow": lines.append("nextflow run main.nf") lines += [ @@ -396,17 +587,386 @@ def plan_cmd( typer.echo(f" - {o['key']}={o['value']!r} ({o['source']})") +def _study_experiments(spec: str, experiment: str | None): + """Resolve the runtime experiments a study/experiment SPEC fans out over. + + Returns ``(study_or_none, [runtime_experiments], study_key)``. A study yields + all its experiments (or the ``--experiment`` id/label subset); a bare + experiment SPEC yields a single-item list. + """ + kind, obj = _common.resolve_spec(spec) + if kind != "study": + _study, exp, study_key = _resolve_study_and_experiment(spec, experiment) + return None, [exp], study_key + raw = getattr(obj, "experiments", None) or getattr(obj, "simulation_experiments", None) or [] + items = list(raw.values()) if hasattr(raw, "values") else list(raw) + if experiment is not None: + wanted = {s.strip() for s in str(experiment).split(",") if s.strip()} + items = [e for e in items if wanted & _common.experiment_ids(e)] + if not items: + _common.die(f"No experiment(s) matching {experiment!r} in study.") + resolved = [] + for e in items: + if not hasattr(e, "render") and hasattr(obj, "get_experiment"): + sel = (getattr(e, "id", None) or getattr(e, "key", None) + or getattr(e, "name", None) or getattr(e, "label", None)) + try: + e = obj.get_experiment(sel) + except Exception as exc: + _common.die(f"Could not resolve experiment {sel!r} to a runnable object: {exc}") + resolved.append(e) + return obj, resolved, getattr(obj, "key", None) or "study" + + +def _study_figures(study) -> list: + """The study's ``Figure`` objects as a list, or ``[]`` when it declares none. + + A bare-experiment SPEC (``study is None``) never carries figures, so the + figure emission is skipped and existing experiment-rule emission is + untouched. + """ + if study is None: + return [] + from tvbo.utils import as_list + + return as_list(getattr(study, "figures", None)) + + +def _figure_base_dir(study, out_dir: Path) -> str: + """Root the figures' ``used`` containers resolve against. + + Prefers the study's source-file directory (where ``output/nc/`` lives at + author time); falls back to the kit dir. ``bsplot`` resolves each layer's + IRI to ``<base>/output/nc/<exp>/*.h5``. + """ + src = getattr(study, "_source_file", None) + return str(Path(src).parent) if src else str(out_dir) + + +def _emit_snakemake_study(*, spec: str, backend: str, experiment: str | None, + output: Path | None, override: list[str], stdout: bool = False, + bundle_select: dict | None = None): + """Emit one Snakefile that fans every experiment (and, per experiment, every + subject / sweep cell) into its own job. In kit mode each experiment is frozen + into a self-contained ``spec/<key>/`` so a rule runs ``tvbo run + spec/<key>/experiment.yaml``; in ``--stdout`` mode nothing is written and the + rules run ``tvbo run <source-spec> --experiment <id>``.""" + study, experiments, study_key = _study_experiments(spec, experiment) + out_dir = output or Path("output").joinpath(str(study_key), "snakemake") + if not stdout: + out_dir.mkdir(parents=True, exist_ok=True) + parsed = _parse_overrides(override) + + def _san(s): + return "".join(c if (c.isalnum() or c in ".-") else "_" for c in str(s)) + + # Every experiment identifier (id / key / name) -> its sanitized workflow key, + # so a from_experiment dependency (recorded by id in plan.depends_on) resolves + # to the source experiment's rule and output dir even when that experiment + # carries an explicit ``key`` that differs from its id. + _key_of = {} + for _e in experiments: + _k = _san(_common.experiment_key(_e)) + for _ref in (getattr(_e, "id", None), getattr(_e, "key", None), getattr(_e, "name", None)): + if _ref is not None: + _key_of[str(_ref)] = _k + + exp_plans, block, last_plan, bundled_code = [], {}, None, False + for exp in experiments: + key = _san(_common.experiment_key(exp)) + base = _wf.merge_workflow_spec(study, exp) + spec_dict = _deep_merge(base, parsed["merged"]) + plan = _wf.plan(study_key=str(study_key), experiment=exp, backend=backend, + engine="snakemake", workflow_spec=spec_dict, + overrides=parsed["records"], source_spec=spec, experiment_selector=key) + block = plan.engine_block or {} + last_plan = plan + try: + result_stem = exp.get_result_stem() + except Exception: + result_stem = "result" + if stdout: + spec_relpath, select = spec, key + else: + edir = out_dir / "spec" / key + _sel = _bundle_selection(exp, bundle_select) + bundle_root = (_bundle_dataset(exp, edir / "dataset", _sel) + if _sel is not None else None) + yaml_text = _freeze_spec_yaml(exp, edir, workflow_spec=spec_dict, + dataset_bids_root=bundle_root) + (edir / "experiment.yaml").write_text(yaml_text, encoding="utf-8") + # Custom callable/builder modules the recipe references travel with the + # kit (shared code/ dir), so `tvbo run` resolves them on the node. + bundled_code = _bundle_callable_modules(yaml_text, out_dir) or bundled_code + spec_relpath, select = f"spec/{key}/experiment.yaml", None + _common.info(f"froze experiment {key} ({len(plan.workflow_axes)} fan-out axes)") + exp_plans.append({ + "key": key, + "rule_name": "exp_" + key.replace("-", "_").replace(".", "_"), + "spec_relpath": spec_relpath, + "select": select, + "backend": backend, + "out_dir": plan.out_dir, + "result_stem": result_stem, + "container": plan.container, + "axes": [{"name": ax.name, "parameter": ax.parameter, "values": list(ax.values)} + for ax in plan.workflow_axes], + "depends_on": [_key_of.get(str(d), _san(str(d))) for d in plan.depends_on], + }) + + text = _render_template("snakemake/study.smk.mako", exp_plans=exp_plans, + block=block, bundled_code=bundled_code) + figs = _study_figures(study) + if stdout: + typer.echo(text) + if figs: + from tvbo.adapters import figure_workflow + + typer.echo(figure_workflow.emit_figure_rules( + figs, base_dir=_figure_base_dir(study, out_dir), + workflow=getattr(study, "workflow", None), include_all=True)) + return None + (out_dir / "Snakefile").write_text(text, encoding="utf-8") + _common.info(f"wrote Snakefile ({len(exp_plans)} experiment rule(s))") + # Match the Snakefile's global `container:` directive (keyed on the first + # experiment): when it is emitted, enable Apptainer in the profile so the run + # needs no extra flag; when it is not, leave the profile container-free. + _kit_container = exp_plans[0].get("container") if exp_plans else None + _write_snakemake_profile(out_dir, block, container=_kit_container) + if last_plan is not None: + _write_readme(out_dir, engine="snakemake", plan=last_plan, script_relpath=None) + if figs: + # A study is its experiments PLUS the figures that read their results: + # freeze each figure's self-contained plot.py + the render rules, then + # wire them into the Snakefile. Additive β€” `rule all` (the experiments) + # stays the default target; figures run via `snakemake all_figures` + # (the aggregate is named `all_figures`, so there is no rule-name clash). + from tvbo.adapters import figure_workflow + + figure_workflow.write_figure_kit( + figs, base_dir=_figure_base_dir(study, out_dir), out_dir=out_dir, + workflow=getattr(study, "workflow", None), include_all=True) + with (out_dir / "Snakefile").open("a", encoding="utf-8") as fh: + fh.write('\n\ninclude: "figures.smk"\n') + _common.info(f"wrote figures.smk + {len(figs)} figure plot script(s) " + f"(run: `snakemake all_figures`)") + return out_dir + + +def _write_snakemake_profile(out_dir: Path, block: dict, container: str | None = None) -> None: + """Ship a SLURM profile so the kit runs from a login node with one command. + + Snakemake 8+/9 submits to the scheduler via an executor plugin: the lightweight + ``snakemake`` process runs on the login node and dispatches each rule as its own + SLURM job (with the per-rule ``resources:`` in the Snakefile). The profile carries + the compute-environment settings β€” ``executor: slurm``, the concurrent-jobs cap, + and the cluster-identity default-resources (partition/account) that don't belong in + the workflow definition. Run: ``snakemake --profile profile`` from the kit dir. + """ + partition = block.get("partition") + account = block.get("account") + lines = [ + "# Snakemake profile β€” submit each rule to SLURM via the executor plugin.", + "# Run (login node): snakemake --profile profile", + "# Requires: pip install snakemake-executor-plugin-slurm", + "executor: slurm", + "jobs: 100 # max SLURM jobs queued/running at once", + "slurm-logdir: logs # per-rule SLURM logs -> <kit>/logs/rule_<name>/ (visible, not .snakemake/)", + ] + if container: + # A `container:` directive is declared, so run every rule inside it. Snakemake + # converts the docker:// image to a SIF and executes via Apptainer (provided on + # the compute nodes) β€” no venv/module activation needed. The CLI option is + # nargs="+" (a set of deployment methods), so the profile value must be a YAML + # list, not a scalar. + lines.append("# run each rule inside the declared container: (docker:// -> SIF)") + lines.append("software-deployment-method:") + lines.append(" - apptainer") + lines.append("default-resources:") + if partition: + lines.append(f" slurm_partition: {partition}") + if account: + lines.append(f" slurm_account: {account}") + else: + lines.append(" # slurm_account: your_account # set workflow.slurm.account or --set slurm.account=…") + lines += ["retries: 1", "keep-going: True"] + prof = out_dir / "profile" + prof.mkdir(parents=True, exist_ok=True) + (prof / "config.yaml").write_text("\n".join(lines) + "\n", encoding="utf-8") + _common.info("wrote profile/config.yaml (SLURM executor β€” `snakemake --profile profile`)") + + +def _pack_kit(out_dir: Path) -> Path: + """Archive the kit into ``<out_dir>.tar.gz`` and remove the loose directory. + + The tarball IS the shippable artifact: ``tvbo workflow submit <archive>`` (and + any run) re-extracts it, so keeping the uncompressed directory beside it is pure + clutter. The archive holds the kit directory at top level, so submit extracts + and runs it directly (see :func:`_resolve_kit_dir`). Emit without ``--pack`` when + the loose directory is what you want (e.g. to ``sbatch`` it in place). + """ + import shutil + + out_dir = Path(out_dir) + archive = shutil.make_archive(str(out_dir), "gztar", + root_dir=str(out_dir.parent), base_dir=out_dir.name) + shutil.rmtree(out_dir) + _common.info(f"packed {Path(archive).name} (removed loose {out_dir.name}/)") + return Path(archive) + + +def _warn_machine_specific_bids_root(out_dir: Path) -> None: + """Warn when a kit bakes an absolute ``dataset.bids_root`` into its frozen spec. + + A reproducibility kit is meant to travel. A per-subject dataset fan-out points + ``dataset.bids_root`` at a data tree that is almost always machine-specific, so + the baked absolute path will not resolve on the target host and every task fails + to load its per-subject target. Surface it (engine-agnostic β€” read from the + frozen ``spec/*.yaml``) with the exact override, so a packed kit is never shipped + with a silently-wrong data root. + """ + import re + + spec_dir = out_dir / "spec" + if not spec_dir.is_dir(): + return + seen: set[str] = set() + for spec_file in sorted(spec_dir.glob("*.yaml")): + try: + text = spec_file.read_text(encoding="utf-8") + except OSError: + continue + for m in re.finditer(r"^\s*bids_root:\s*(\S.*?)\s*$", text, re.MULTILINE): + root = m.group(1).strip().strip("'\"") + if root.startswith("/"): + seen.add(root) + for root in sorted(seen): + _common.warn( + f"kit bakes an absolute dataset.bids_root ({root}) β€” this data tree is " + f"machine-specific; verify it exists on the target host (a per-subject " + f"dataset fan-out fails to resolve each subject's target if it does not). " + f"The slurm launcher reads it from $TVBO_BIDS_ROOT when set (just " + f"`export TVBO_BIDS_ROOT=<cluster path>`); otherwise override at submit " + f"time with `--set dataset.bids_root=<cluster path>`." + ) + + +def _finalize_kit(out_dir: Path, *, pack: bool) -> Path: + """Warn on portability hazards, optionally pack, and return the artifact path. + + Returns the ``<kit>.tar.gz`` when *pack* (the loose dir is removed), else the + kit directory β€” so the caller always gets a path that exists. + """ + _warn_machine_specific_bids_root(out_dir) + return _pack_kit(out_dir) if pack else out_dir + + def _emit(engine: str, *, spec: str, backend: str, experiment: str | None, - output: Path | None, override: list[str], stdout: bool) -> None: + output: Path | None, override: list[str], stdout: bool, pack: bool = False, + bundle_select: dict | None = None) -> None: + if engine == "snakemake": + out_dir = _emit_snakemake_study(spec=spec, backend=backend, experiment=experiment, + output=output, override=override, stdout=stdout, + bundle_select=bundle_select) + return _finalize_kit(out_dir, pack=pack) if out_dir is not None else None plan, exp = _build_plan(spec, engine=engine, backend=backend, experiment=experiment, overrides=override) if stdout: text = _render_template(_TEMPLATE_PATH[engine], plan=plan, block=plan.engine_block, script_relpath=None) typer.echo(text) - return - out_dir = output or Path("out") / plan.study_key / plan.experiment_key / engine - _emit_kit(engine=engine, plan=plan, experiment=exp, out_dir=out_dir) + return None + if output: + out_dir = output + else: + # A standalone experiment has study_key == experiment_key (same fallback), + # so collapse the redundant level: out/<experiment>/<engine> not …/x/x/…. + parts = ([plan.experiment_key] if plan.study_key == plan.experiment_key + else [plan.study_key, plan.experiment_key]) + out_dir = Path("output").joinpath(*parts, engine) + _emit_kit(engine=engine, plan=plan, experiment=exp, out_dir=out_dir, + bundle_select=bundle_select) + return _finalize_kit(out_dir, pack=pack) + + +def _execute_engine_artefact(engine: str, artefact: Path, *, slurm_array: str | None = None) -> None: + """Submit/execute a rendered workflow artefact for *engine*. + + Runs from the artefact's own directory so the generated script can use the + relative ``spec/`` and ``scripts/`` paths of an emitted kit. *slurm_array* + restricts a Slurm submission to an index or range (``'0'`` for a single + smoke task, ``'0-3'`` for four); ignored for non-Slurm engines. + """ + if engine == "slurm": + cmd = ["sbatch"] + if slurm_array is not None: + cmd.append(f"--array={slurm_array}") + cmd.append(artefact.name) + elif engine == "snakemake": + # A shipped SLURM profile makes the login-node run submit each rule to the + # scheduler (executor: slurm + jobs); without one, fall back to local cores. + if (artefact.parent / "profile" / "config.yaml").exists(): + cmd = ["snakemake", "--profile", "profile"] + else: + cmd = ["snakemake", "--cores", "all"] + elif engine == "nextflow": + cmd = ["nextflow", "run", artefact.name] + else: + _common.die(f"unsupported engine {engine!r}; expected {'|'.join(_ARTEFACT_NAME)}") + _common.info("$ " + " ".join(shlex.quote(c) for c in cmd)) + subprocess.run(cmd, check=True, cwd=artefact.parent) + + +def _execute_emitted(engine: str, out_dir: Path, *, slurm_array: str | None = None) -> None: + """Execute a generated workflow artefact inside *out_dir*. + + For Slurm this submits the array job and then chains the gather job + (``finalize.sbatch``) with an ``afterok`` dependency, so the run converges to + one reassembled result with no manual step. + """ + if engine == "slurm": + _submit_slurm_chain(out_dir, slurm_array=slurm_array) + else: + _execute_engine_artefact(engine, out_dir / _ARTEFACT_NAME[engine], slurm_array=slurm_array) + + +def _submit_slurm_chain(out_dir: Path, *, slurm_array: str | None = None) -> None: + """Submit ``run.sbatch`` (array), then ``finalize.sbatch`` with a dependency. + + ``sbatch --parsable`` returns the array job id; the gather job is submitted + ``--dependency=afterok`` on it and told where the shards landed via + ``TVBO_SHARD_DIR``, so it reassembles them into one result once every task + succeeds. + """ + cmd = ["sbatch", "--parsable"] + if slurm_array is not None: + cmd.append(f"--array={slurm_array}") + cmd.append(_ARTEFACT_NAME["slurm"]) + _common.info("$ " + " ".join(shlex.quote(c) for c in cmd)) + res = subprocess.run(cmd, check=True, cwd=out_dir, capture_output=True, text=True) + job_id = (res.stdout or "").strip().split(";")[0] + _common.info(f"submitted array job {job_id}") + + finalize = out_dir / "finalize.sbatch" + if finalize.exists() and job_id: + base = job_id.split("_")[0] + fcmd = ["sbatch", f"--dependency=afterok:{base}", + f"--export=ALL,TVBO_SHARD_DIR=results/{base}", finalize.name] + _common.info("$ " + " ".join(shlex.quote(c) for c in fcmd)) + subprocess.run(fcmd, check=True, cwd=out_dir) + _common.info(f"submitted gather job (afterok:{base}) β€” one result when the array finishes") + + +def _detect_engine_from_kit(kit_dir: Path) -> str | None: + """Infer an already-emitted kit's engine from its artefact file. + + A kit carries exactly one engine artefact (``run.sbatch`` / ``Snakefile`` / + ``main.nf``); its presence names the engine to submit with. + """ + for engine, artefact in _ARTEFACT_NAME.items(): + if (kit_dir / artefact).exists(): + return engine + return None @app.command("slurm", help="Emit a self-contained sbatch kit (artefact + scripts + spec).") @@ -417,10 +977,24 @@ def slurm( output: Path = typer.Option(None, "-o", "--output", help="Output directory."), override: list[str] = typer.Option([], "--set"), stdout: bool = typer.Option(False, "--stdout", help="Print artefact only; do not write a kit."), + pack: bool = typer.Option(False, "--pack", help="Emit ONLY <kit>.tar.gz (remove the loose kit dir), ready to scp + `tvbo workflow submit`."), + bundle_dataset: bool = typer.Option( + False, "--bundle-dataset", + help="Copy the fan-out's per-subject dataset files into the kit (spec/dataset/) " + "and point dataset.bids_root at them, so the kit is self-contained β€” no " + "separate FC upload or $TVBO_BIDS_ROOT needed. Scope subjects via dataset.subjects.", + ), + bundle_select: list[str] = typer.Option( + [], "--bundle-select", + help="Override: add a BIDS entity to disambiguate when a subject directory holds " + "several files matching the observation's query (not needed when the query " + "already names one file). Repeatable. Implies --bundle-dataset.", + ), ) -> None: """Emit a self-contained sbatch kit (`run.sbatch` + scripts + frozen spec).""" + sel = _parse_bundle_select(bundle_select) if (bundle_dataset or bundle_select) else None _emit("slurm", spec=spec, backend=backend, experiment=experiment, - output=output, override=override, stdout=stdout) + output=output, override=override, stdout=stdout, pack=pack, bundle_select=sel) @app.command("snakemake", help="Emit a self-contained Snakemake kit (Snakefile + scripts + spec).") @@ -431,10 +1005,24 @@ def snakemake( output: Path = typer.Option(None, "-o", "--output", help="Output directory."), override: list[str] = typer.Option([], "--set"), stdout: bool = typer.Option(False, "--stdout", help="Print artefact only; do not write a kit."), + pack: bool = typer.Option(False, "--pack", help="Emit ONLY <kit>.tar.gz (remove the loose kit dir), ready to scp + `tvbo workflow submit`."), + bundle_dataset: bool = typer.Option( + False, "--bundle-dataset", + help="Copy the fan-out's per-subject dataset files into the kit (spec/<exp>/dataset/) " + "and point dataset.bids_root at them, so the kit is self-contained β€” no " + "separate FC upload or $TVBO_BIDS_ROOT needed. Scope subjects via dataset.subjects.", + ), + bundle_select: list[str] = typer.Option( + [], "--bundle-select", + help="Override: add a BIDS entity to disambiguate when a subject directory holds " + "several files matching the observation's query (not needed when the query " + "already names one file). Repeatable. Implies --bundle-dataset.", + ), ) -> None: """Emit a self-contained Snakemake kit (`Snakefile` + scripts + frozen spec).""" + sel = _parse_bundle_select(bundle_select) if (bundle_dataset or bundle_select) else None _emit("snakemake", spec=spec, backend=backend, experiment=experiment, - output=output, override=override, stdout=stdout) + output=output, override=override, stdout=stdout, pack=pack, bundle_select=sel) @app.command("nextflow", help="Emit a self-contained Nextflow kit (main.nf + scripts + spec).") @@ -445,10 +1033,252 @@ def nextflow( output: Path = typer.Option(None, "-o", "--output", help="Output directory."), override: list[str] = typer.Option([], "--set"), stdout: bool = typer.Option(False, "--stdout", help="Print artefact only; do not write a kit."), + pack: bool = typer.Option(False, "--pack", help="Emit ONLY <kit>.tar.gz (remove the loose kit dir), ready to scp + `tvbo workflow submit`."), + bundle_dataset: bool = typer.Option( + False, "--bundle-dataset", + help="Copy the fan-out's per-subject dataset files into the kit (spec/dataset/) " + "and point dataset.bids_root at them, so the kit is self-contained β€” no " + "separate FC upload or $TVBO_BIDS_ROOT needed. Scope subjects via dataset.subjects.", + ), + bundle_select: list[str] = typer.Option( + [], "--bundle-select", + help="Override: add a BIDS entity to disambiguate when a subject directory holds " + "several files matching the observation's query (not needed when the query " + "already names one file). Repeatable. Implies --bundle-dataset.", + ), ) -> None: """Emit a self-contained Nextflow kit (`main.nf` + scripts + frozen spec).""" + sel = _parse_bundle_select(bundle_select) if (bundle_dataset or bundle_select) else None _emit("nextflow", spec=spec, backend=backend, experiment=experiment, - output=output, override=override, stdout=stdout) + output=output, override=override, stdout=stdout, pack=pack, bundle_select=sel) + + +@app.command("finalize", help="Reassemble an array run's shard outputs into one keyed result artifact.") +def finalize( + shards_dir: str = typer.Argument("results", help="Directory holding the array tasks' shard outputs."), + output: Path = typer.Option(Path("results"), "-o", "--output", help="Where to write the reassembled result."), + spec: Path = typer.Option(None, "--spec", help="Frozen spec YAML to attach as the result sidecar (auto-detected in spec/ when omitted)."), + stem: str = typer.Option("result", "--stem", help="Basename of the result artifact (<stem>.h5 + <stem>.yaml)."), + compress: bool = typer.Option(True, "--compress/--no-compress", + help="gzip-deflate the reassembled HDF5 (default on)."), +) -> None: + """Gather sharded HPC outputs into one self-describing ``ExperimentResult``. + + Concatenates each array task's slice by parameter value into the full grid a + local run produces, and writes it as ``<stem>.h5`` (keyed groups) plus a + ``<stem>.yaml`` sidecar (the frozen, fully-overridden spec) β€” the same + HDF5-plus-YAML layout as a network. No manual post-processing is needed; + emitted kits submit this automatically as a dependent gather job. + """ + from tvbo.data.types import reassemble_experiment_results + + sidecar = spec + if sidecar is None: + specs = sorted(p for p in Path("spec").glob("*.yaml") + if p.name != "network.yaml") if Path("spec").is_dir() else [] + sidecar = specs[0] if specs else None + written = reassemble_experiment_results(shards_dir, str(output), stem=stem, + sidecar=sidecar, compress=compress) + for w in written: + _common.info(f"wrote {w}") + + +@app.command("run", help="Emit a workflow kit and execute it with the selected engine.") +def run_workflow( + engine: str = typer.Argument(..., help="Execution engine: slurm | snakemake | nextflow."), + spec: str = typer.Argument(..., help="Path, CURIE, or DB name (Study or Experiment)."), + backend: str = typer.Option("tvboptim", "--backend", "-b"), + experiment: str = typer.Option(None, "--experiment"), + output: Path = typer.Option(None, "-o", "--output", help="Output directory."), + override: list[str] = typer.Option([], "--set"), + array: str = typer.Option( + None, "--array", + help="Slurm array index or range to submit (e.g. '0' for smoke, '0-3' for four tasks). Ignored for non-Slurm engines.", + ), + array_throttle: int = typer.Option( + None, + "--array-throttle", + min=1, + help="Limit concurrent Slurm array tasks when using --array, e.g. 1 for one GPU at a time.", + ), +) -> None: + """Emit a self-contained kit then execute it (or submit for Slurm). + + Use ``--array 0`` to submit only the first array task as a quick smoke test + without changing the experiment spec. Use ``--array-throttle`` to cap how + many Slurm array tasks run at once, for example ``--array 0-39 --array-throttle 1`` + to keep one GPU busy at a time. + """ + engine = engine.lower() + if engine not in _ARTEFACT_NAME: + _common.die(f"`tvbo workflow run` expects engine one of: {', '.join(_ARTEFACT_NAME)}") + # A comma-separated --experiment ("2,3,20,30") submits each as its own kit/job; + # on the cluster they run in parallel. Each gets its own output subdir. + _exp_ids = [e.strip() for e in str(experiment).split(",") if e.strip()] if experiment else [] + if len(_exp_ids) > 1: + for _eid in _exp_ids: + _out_i = (output / f"exp{_eid}") if output else Path("output") / f"exp{_eid}" + _common.info(f"── experiment {_eid} β†’ {_out_i}") + run_workflow(engine, spec, backend, _eid, _out_i, override, array, array_throttle) + return + effective_overrides = list(override) + if engine == "slurm" and array is not None: + override_keys = { + s.lstrip("-").split("=", 1)[0] + for s in effective_overrides + if "=" in s + } + chunk_keys = {"distribute.chunk", "chunk", "slurm.array_chunk"} + if not (override_keys & chunk_keys): + plan_preview, _exp = _build_plan( + spec, + engine=engine, + backend=backend, + experiment=experiment, + overrides=effective_overrides, + ) + # Smoke submissions should not run the full vectorized sweep as task 0/1. + if (not plan_preview.workflow_axes + and plan_preview.n_array_tasks == 1 + and plan_preview.n_vectorize_cells > 1): + effective_overrides.append( + f"slurm.array_chunk={plan_preview.n_vectorize_cells}" + ) + _common.info( + "auto smoke chunking: set slurm.array_chunk=" + f"{plan_preview.n_vectorize_cells} for --array run" + ) + out_dir = _emit(engine, spec=spec, backend=backend, experiment=experiment, + output=output, override=effective_overrides, stdout=False) + if out_dir is None: + _common.die("failed to emit workflow kit") + if array is not None and array_throttle is not None: + array = f"{array}%{array_throttle}" + _execute_emitted(engine, out_dir, slurm_array=array) + + +def _tar_extractall_safe(tar, dest: Path) -> None: + """Extract *tar* into *dest*, using the ``data`` filter where available. + + The ``filter='data'`` guard (Python >= 3.12) rejects members with absolute or + ``..`` paths; older interpreters fall back to a plain extract. Kits are emitted + by tvbo, so this is defensive rather than a trust boundary. + """ + try: + tar.extractall(dest, filter="data") + except TypeError: + tar.extractall(dest) + + +def _resolve_kit_dir(kit: Path, force: bool = False, dest_override: Path | None = None) -> Path: + """Resolve a kit path that may be a directory or a packaged archive. + + A directory is returned as-is. A ``.tar.gz`` / ``.tgz`` / ``.tar`` / ``.zip`` + archive is extracted into *dest_override* (default: next to itself) and the kit + root inside it (the directory holding the engine artefact) is returned, so a + shipped kit runs without a manual unzip. Point *dest_override* at a fresh + directory to run a second copy in parallel without touching an in-progress kit's + ``results/`` + ``logs/``. An already-extracted kit at the destination is reused + rather than re-extracted, so a re-submit never clobbers an in-progress + ``results/`` β€” unless *force*, which re-extracts a freshly re-uploaded archive + over the stale kit files (Snakefile/spec/code/profile) while leaving ``results/`` + and ``.snakemake/`` (not in the archive) untouched, so the run resumes anew. + """ + if kit.is_dir(): + return kit + if not kit.is_file(): + _common.die(f"not a kit directory or archive: {kit}") + name = kit.name.lower() + is_tar = name.endswith((".tar.gz", ".tgz", ".tar")) + is_zip = name.endswith(".zip") + if not (is_tar or is_zip): + _common.die(f"{kit} is neither a kit directory nor a .tar.gz/.tgz/.tar/.zip archive.") + import tarfile + import zipfile + + dest = dest_override or kit.parent + dest.mkdir(parents=True, exist_ok=True) + with (zipfile.ZipFile(kit) if is_zip else tarfile.open(kit)) as arc: + names = arc.namelist() if is_zip else arc.getnames() + tops = sorted({n.split("/", 1)[0] for n in names if n and not n.startswith("/")}) + if not force: + for t in tops: # reuse an already-extracted kit; keep its results + d = dest / t + if d.is_dir() and _detect_engine_from_kit(d): + _common.info(f"kit already extracted β†’ {d} (reusing; pass --force to re-extract)") + return d + # --force overwrites the kit files with the (re-uploaded) archive; results/ and + # .snakemake/ aren't in the archive, so they survive and the run resumes. + arc.extractall(dest) if is_zip else _tar_extractall_safe(arc, dest) + for t in tops: + d = dest / t + if d.is_dir() and _detect_engine_from_kit(d): + _common.info(f"extracted kit β†’ {d}") + return d + if _detect_engine_from_kit(dest): # artefact sat at the archive root + return dest + _common.die(f"{kit} did not contain an engine artefact ({', '.join(_ARTEFACT_NAME.values())}).") + + +@app.command("submit", help="Submit an already-emitted kit (directory or .tar.gz/.zip) to its engine.") +def submit_kit( + kit: Path = typer.Argument(..., help="Path to an emitted kit directory OR a .tar.gz/.tgz/.tar/.zip archive of one (holds run.sbatch / Snakefile / main.nf)."), + engine: str = typer.Option(None, "--engine", "-e", help="Engine to submit with; auto-detected from the kit when omitted."), + array: str = typer.Option( + None, "--array", + help="Slurm array index or range to submit (e.g. '0' for a smoke task, '0-3' for four). Ignored for non-Slurm engines.", + ), + array_throttle: int = typer.Option( + None, "--array-throttle", min=1, + help="Limit concurrent Slurm array tasks when using --array (e.g. 1 for one GPU at a time).", + ), + force: bool = typer.Option( + False, "--force", "-f", + help="Re-extract a re-uploaded archive over an already-extracted kit, refreshing " + "the Snakefile/spec/code/profile. Leaves results/ and .snakemake/ intact so the " + "run resumes with the new definition (no need to rm the kit dir first).", + ), + out: Path = typer.Option( + None, "--out", "-o", + help="Directory to extract the archive into (default: next to the archive). Point it " + "at a fresh dir to run a second copy in parallel β€” its results/ + logs/ stay " + "isolated from an in-progress kit. Ignored when the kit is already a directory.", + ), +) -> None: + """Submit a kit already emitted by ``tvbo workflow slurm|snakemake|nextflow``. + + Runs only the *execute* half of ``tvbo workflow run`` against an existing kit β€” + no recipe, no re-emit. The kit may be a directory or a packaged ``.tar.gz`` / + ``.zip`` archive of one; an archive is extracted next to itself first, so a + shipped kit runs without a manual unzip. For Slurm this submits ``run.sbatch`` + (the array job) and chains ``finalize.sbatch`` with an ``afterok`` dependency, + so you get one reassembled result without touching ``sbatch`` yourself. The + engine is inferred from the kit's artefact file unless ``--engine`` is given. + Run it from a login node (Slurm) or wherever the engine's launcher is available. + """ + kit = _resolve_kit_dir(kit.expanduser().resolve(), force=force, + dest_override=out.expanduser().resolve() if out else None) + eng = (engine or "").lower() or _detect_engine_from_kit(kit) + if eng is None: + _common.die( + f"could not detect an engine in {kit} " + f"(expected one of: {', '.join(_ARTEFACT_NAME.values())})." + ) + if eng not in _ARTEFACT_NAME: + _common.die(f"unknown engine {eng!r}; expected one of: {', '.join(_ARTEFACT_NAME)}") + if not (kit / _ARTEFACT_NAME[eng]).exists(): + _common.die(f"{kit} has no {_ARTEFACT_NAME[eng]} (needed for engine {eng!r}).") + import shutil + launcher = {"slurm": "sbatch", "snakemake": "snakemake", "nextflow": "nextflow"}[eng] + if shutil.which(launcher) is None: + _common.die( + f"{launcher!r} is not on PATH β€” {eng} kits are launched with {launcher}. " + f"Run this where {launcher} is available" + + (" (a Slurm login node)." if eng == "slurm" else ".") + ) + if array is not None and array_throttle is not None: + array = f"{array}%{array_throttle}" + _execute_emitted(eng, kit, slurm_array=array) @app.command("backends", help="List backends and their ontology-derived capabilities.") diff --git a/tvbo/codegen/code.py b/tvbo/codegen/code.py index 63e295e0b..87fd5889d 100644 --- a/tvbo/codegen/code.py +++ b/tvbo/codegen/code.py @@ -9,6 +9,8 @@ expression and prints it for the chosen backend. """ +import logging + import sympy.printing.julia as spj import sympy.printing.numpy as spn import sympy.printing.fortran as spf @@ -19,6 +21,8 @@ from tvbo.datamodel.schema import Equation from tvbo.parse.expression import parse_eq +logger = logging.getLogger(__name__) + # ============================================================================= # Array Function Printer Mappings @@ -61,6 +65,8 @@ "ones": "jnp.ones", "where": "jnp.where", "clip": "jnp.clip", + "any": "jnp.any", + "all": "jnp.all", "dot": "jnp.dot", "matmul": "jnp.matmul", }, @@ -96,6 +102,8 @@ "ones": "np.ones", "where": "np.where", "clip": "np.clip", + "any": "np.any", + "all": "np.all", "dot": "np.dot", "matmul": "np.matmul", }, @@ -193,15 +201,12 @@ def print_Piecewise(Printer, expr, verbose=False): result = default # Default fallback for np.where if verbose: - print("expr:", expr) - print("args:", args) - print("default:", default) + logger.debug("Piecewise expr=%s args=%s default=%s", expr, args, default) # Iterate over conditions and expressions in reverse order (excluding the default) for value, condition in reversed(args[:-1]): if verbose: - print("condition:", condition) - print("value:", value) + logger.debug("Piecewise branch: condition=%s value=%s", condition, value) condition_str = Printer._print(condition) value_str = Printer._print(value) # Build the nested conditional via the printer's backend-abstracted primitive @@ -209,8 +214,7 @@ def print_Piecewise(Printer, expr, verbose=False): result = Printer._where3(condition_str, value_str, result) if verbose: - print("result:", result) - print() + logger.debug("Piecewise result=%s", result) return result @@ -287,6 +291,65 @@ def _afp_mode_sum(p, expr): return p._reduce_axis("sum", p._print(expr.args[0]), -1, keepdims=True) +def _afp_outer(p, expr): + """``outer(a, b)`` -> rank-1 outer product ``a_i b_j`` (a mean/co-moment update).""" + return p._outer(p._print(expr.args[0]), p._print(expr.args[1])) + + +def _afp_diag(p, expr): + """``diag(M)`` -> the main diagonal of matrix ``M`` as a vector.""" + return p._diag(p._print(expr.args[0])) + + +def _afp_zero_diagonal(p, expr): + """``zero_diagonal(M)`` -> ``M`` with its main diagonal set to 0 (e.g. FC self-links).""" + return p._zero_diagonal(p._print(expr.args[0])) + + +def _afp_matmul(p, expr): + """``matmul(A, B)`` -> ordinary matrix product ``A @ B`` (e.g. ``Xα΅€ X`` co-moment).""" + return p._matmul(p._print(expr.args[0]), p._print(expr.args[1])) + + +def _afp_strided_convolve(p, expr): + """``strided_convolve(X, k, s)`` -> the ``'valid'`` convolution of ``X`` (leading + time axis) with kernel ``k``, evaluated ONLY at output indices ``[s::s]``. + + Fuses a full convolution and a strided subsample: computing just the retained + outputs is a small ``(n_kept, len(k))`` window matmul instead of an FFT over the + whole signal, so it avoids the FFT buffer entirely. Trailing axes are preserved + (per-node), matching ``fftconvolve(..., 'valid')[s::s]``. + """ + return p._strided_convolve(p._print(expr.args[0]), p._print(expr.args[1]), p._print(expr.args[2])) + + +def _afp_take(p, expr): + """``take(x, idx)`` -> gather ``x`` by an integer index array; the result takes the + shape of ``idx`` (a 2-D k-ring neighbour gather, a scatter-read, …).""" + return p._gather(p._print(expr.args[0]), p._print(expr.args[1])) + + +def _afp_sum_axis(p, expr): + """``sum_axis(x, axis)`` -> reduce a single axis (e.g. the numerator of an axis-1 + masked mean). ``axis`` must be an integer literal (a compile-time array axis).""" + axis = expr.args[1] + if not getattr(axis, "is_Integer", False): + raise ValueError( + f"sum_axis(x, axis): axis must be an integer literal, got {axis!r}." + ) + return p._reduce_axis("sum", p._print(expr.args[0]), int(axis)) + + +def _afp_pearson(p, expr): + """``pearson(x, y)`` -> Pearson correlation of two FLAT/1-D operands (the reduction + is over all elements). This is the per-step, node-collapsing correlation an observer + needs (e.g. corr(in-strength, flow-potential) for one timestep); it is NOT a + columnwise correlation of 2-D operands. Distinct from the loss-helper ``correlation`` + in ``codegen/functions.py``, which is a preserved call to a generated function, not an + inline-expanded expression primitive.""" + return p._pearson(p._print(expr.args[0]), p._print(expr.args[1])) + + _ARRAY_FUNCTION_PRINTERS = { "concatenate": _afp_concatenate, "window_mean": _afp_window_mean, @@ -298,12 +361,24 @@ def _afp_mode_sum(p, expr): "transpose": _afp_transpose, "mode_dot": _afp_mode_dot, "mode_sum": _afp_mode_sum, + "outer": _afp_outer, + "diag": _afp_diag, + "zero_diagonal": _afp_zero_diagonal, + "matmul": _afp_matmul, + "strided_convolve": _afp_strided_convolve, + "take": _afp_take, + "sum_axis": _afp_sum_axis, + "pearson": _afp_pearson, } -# Ops Julia renders natively (slice/stride family + shape, plus the mode-axis -# contractions used by multi-mode models); the rest defer to Julia's -# name-mappings (vcat/transpose/…) or graceful-degrade, so Julia output never regresses. -_JULIA_HANDLED_OPS = {"subsample", "slice_axis", "slice_from", "shape", "mode_dot", "mode_sum"} +# Ops Julia renders natively (slice/stride family + shape, the mode-axis +# contractions used by multi-mode models, and the linear-algebra primitives for +# streaming co-moment reducers); the rest defer to Julia's name-mappings +# (vcat/transpose/…) or graceful-degrade, so Julia output never regresses. +_JULIA_HANDLED_OPS = { + "subsample", "slice_axis", "slice_from", "shape", "mode_dot", "mode_sum", + "outer", "diag", "zero_diagonal", "matmul", "global_mean", +} class _ArrayFunctionPrinterMixin: @@ -347,13 +422,56 @@ def _transpose(self, base): def _mat_dot(self, a, b): return f"{self._afn('dot')}({a}, {b})" + def _outer(self, a, b): + return f"{self._afn('outer')}({a}, {b})" + + def _diag(self, base): + return f"{self._afn('diag')}({base})" + + def _zero_diagonal(self, base): + # ``M - diag(diag(M))``: extract the diagonal, embed it back as a diagonal + # matrix, subtract -> exact-zero diagonal (M_ii - M_ii), off-diagonal + # untouched. Byte-identical to a scatter-set of the diagonal to 0. + return f"({base} - {self._afn('diag')}({self._afn('diag')}({base})))" + + def _matmul(self, a, b): + # Parenthesize both operands: `@` and `/`/`*` share precedence and left-associate, + # so `A @ B/c` would parse as `(A @ B)/c`. matmul(hhd, pg/nrm) must stay hhd @ (pg/nrm). + return f"(({a}) @ ({b}))" + def _reduce_axis(self, fn, base, axis, keepdims=False): kw = ", keepdims=True" if keepdims else "" return f"{self._afn(fn)}({base}, axis={axis}{kw})" + def _gather(self, base, idx): + # numpy/jax: `take` with an int index array returns the index array's shape + # (a fancy-index gather). JuliaPrinter overrides for 1-based indexing. + return f"{self._afn('take')}({base}, {idx})" + + def _pearson(self, x, y): + # Pearson r over the shared axis, expanded into the reduction primitives so it + # is backend-agnostic: sum(xc*yc) / sqrt(sum(xc^2)*sum(yc^2)), xc = x - mean(x). + xc = f"({x} - {self._afn('mean')}({x}))" + yc = f"({y} - {self._afn('mean')}({y}))" + num = f"{self._afn('sum')}({xc} * {yc})" + den = f"{self._afn('sqrt')}({self._afn('sum')}({xc}**2) * {self._afn('sum')}({yc}**2))" + return f"({num} / {den})" + def _window_mean(self, X, w): return f"{self._afn('mean')}({X}.reshape(-1, {w}, *{X}.shape[1:]), axis=1)" + def _strided_convolve(self, X, k, s): + # 'valid' convolution XβŠ›k sampled only at the [s::s] output indices. Build the + # retained windows by gathering the leading (time) axis with the index grid + # kept[:, None] + arange(len(k)), then contract the reversed kernel over the + # window axis; trailing axes (nodes, …) ride along via tensordot. Equivalent to + # fftconvolve(X, k, 'valid')[s::s] to FFT roundoff, and byte-identical to a + # direct full 'valid' convolution then [s::s] β€” no FFT buffer. + af = self._afn + kept = f"{af('arange')}({s}, {X}.shape[0] - {k}.shape[0] + 1, {s})" + idx = f"({kept}[:, None] + {af('arange')}({k}.shape[0])[None, :])" + return f"{af('tensordot')}({k}[::-1], {X}[{idx}], axes=([0], [1]))" + def _shape(self, base, axis): return f"{base}.shape[{axis}]" @@ -745,11 +863,32 @@ def _mat_dot(self, a, b): # ``reduce(hcat, M) * X`` reproduces that contraction as a mode vector. return f"(reduce(hcat, {b}) * {a})" + def _outer(self, a, b): + # Column-vector outer product a_i b_j -> a * transpose(b) (real: == adjoint). + return f"({a} * transpose({b}))" + + def _diag(self, base): + return f"diag({base})" + + def _zero_diagonal(self, base): + # M - Diagonal(diag(M)) -> zero the main diagonal (needs `using LinearAlgebra`). + return f"({base} - Diagonal(diag({base})))" + + def _matmul(self, a, b): + # Parenthesize both operands (see the numpy/jax _matmul): Julia's `*`/`/` also + # left-associate, so matmul(A, B/c) must render A * (B/c), not (A * B)/c. + return f"(({a}) * ({b}))" + def _reduce_axis(self, fn, base, axis, keepdims=False): - # Mode-axis reduction (``mode_sum``) over a per-node mode vector reduces - # the whole vector to a scalar that broadcasts back through ``.+``/``.-``. jl_fn = {"sum": "sum", "mean": "Statistics.mean"}.get(fn, fn) - return f"{jl_fn}({base})" + # Mode-axis reduction (``mode_sum``, axis -1) over a per-node mode vector reduces + # the whole vector to a scalar that broadcasts back through ``.+``/``.-``. + if axis == -1: + return f"{jl_fn}({base})" + # General keepdims axis reduction (e.g. ``global_mean``, axis -2). The numpy axis + # (possibly negative) maps to a 1-based Julia dim at runtime; ``dims=`` keeps it. + jl_dim = f"ndims({base}) {axis + 1:+d}" if axis < 0 else str(axis + 1) + return f"{jl_fn}({base}, dims={jl_dim})" def _render_index(self, base, specs): parts = [] diff --git a/tvbo/codegen/reducers.py b/tvbo/codegen/reducers.py new file mode 100644 index 000000000..05c69d31d --- /dev/null +++ b/tvbo/codegen/reducers.py @@ -0,0 +1,54 @@ +"""General resolver: lower a declarative streaming-reducer spec to backend source. + +A :class:`~tvbo.codegen.streaming_reducers.StreamingReducerSpec` authors a windowed +reducer as symbolic **assignment recurrences** (strings). This module parses each RHS +to sympy against the reducer's vocabulary and prints it with the target +:mod:`tvbo.codegen.code` printer, so the SAME spec emits jax / numpy / julia. There is +**no reducer-specific logic here** β€” the concrete recipe lives in the spec (metadata); +the algorithm template emits the resolved assignments into a backend-shaped scaffolding. +Verified byte-identical to ``compute_fc`` including a large DC baseline +(``scratchpad/proto_general.py``). +""" +from __future__ import annotations + +from typing import Any + +import sympy as sp + +from tvbo.codegen.code import get_printer +from tvbo.parse.expression import ARRAY_FUNCTIONS + + +def resolve_streaming_reducer(spec: Any, fmt: str = "jax") -> dict: + """Lower a declarative reducer *spec* to printed per-assignment source for *fmt*. + + Returns ``{"state": [...], "add": [(lhs, rhs_src), ...], "evict": ..., "resync": ..., + "emit": rhs_src}``. The reducer's symbolic vocabulary is the state variables plus the + per-step sample ``v`` and the window ``x``; each assignment's ``lhs`` joins the + vocabulary so later RHS may reference it (sequential data flow). State-var symbols win + over same-named array functions (e.g. a state ``mean`` shadows the ``mean`` reducer). + """ + printer = get_printer(fmt).doprint + vocab = { + **ARRAY_FUNCTIONS, + "pi": sp.pi, + **{name: sp.Symbol(name) for name in (*spec.state, "v", "x")}, + } + + def _print(rhs: str) -> str: + return printer(sp.sympify(str(rhs), locals=vocab)) + + def _block(assignments) -> list: + out = [] + for lhs, rhs in assignments: + out.append((lhs, _print(rhs))) + vocab[lhs] = sp.Symbol(lhs) # available to subsequent RHS + return out + + return { + "state": list(spec.state), + "add": _block(spec.add), + "evict": _block(spec.evict), + "resync": _block(spec.resync), + "emit": _print(spec.emit), + } diff --git a/tvbo/codegen/reducers_unification.md b/tvbo/codegen/reducers_unification.md new file mode 100644 index 000000000..2f14b9e61 --- /dev/null +++ b/tvbo/codegen/reducers_unification.md @@ -0,0 +1,75 @@ +# Unifying the sliding-window FC reducer with `Observation.dynamics` / `resolve_reduction` + +## What the two engines actually are (read 2026-07-14) + +**`resolve_reduction` + `render_reduction`** (utils.py + observation.mako:619, your WIP) β€” +a **co-integrated observer**: an `Observation.dynamics` whose state vars carry an `init` + +an `update` recurrence (`equation_type: recurrence`). `render_reduction` emits it as an +`(init, update, finalize)` triple that **folds over integration steps** β€” `_update` runs a +`jax.lax.scan` over a block, gating accumulators on `_gstep > skip` (transient). Consumed by +`prepare(reduce=…)` (grid, no trajectory held) and the host monitor. Handles mean (running +sum / count) and median (per-node histogram). **No eviction, no window, no resync.** + +**Streaming FC reducer** (`streaming_reducers.py` + `reducers.py`, my work) β€” a +**sliding-window** reducer `(add, evict, emit, resync)` **driven manually in the algorithm +tuning loop**: each tuning iteration adds the arriving BOLD sample, evicts the leaving one, +and reads FC. It slides over the **BOLD ring buffer per tuning iteration**, not over +integration steps. + +**They fold over different axes.** One reduces the integration scan (`(init,update,finalize)` +into `prepare(reduce=…)`); the other slides a window across tuning iterations. So this is NOT +"add `evict` and they're the same" β€” the *use sites* and *emission shapes* genuinely differ. + +## Where they SHOULD unify (and where they shouldn't) + +Shared and worth merging: +1. **The spec form.** Both are declarative recurrence specs. `Observation.dynamics` + (state_variables + recurrence + output) is the schema home; my YAML + (`state`/`add`/`evict`/`resync`/`emit`) is the same idea outside the schema. β†’ The FC + reducer should be an `Observation.dynamics`, authored once. +2. **The symbolic resolution.** `resolve_reduction` and `resolve_streaming_reducer` both + sympify recurrence RHS against a vocabulary. `resolve_reduction` is the more complete one + (unknown-symbol check, user functions, accumulator classification). β†’ One resolver. + +Distinct and should stay two emission modes of ONE partial: +3. **Emission.** `render_reduction` emits `(init, update, finalize)` (cumulative, for + `prepare(reduce=…)`). A windowed observer additionally needs `(add, evict, emit, resync)` + for the algorithm loop. β†’ `render_reduction` gains a **windowed mode** selected by the + observer declaring an `evict` recurrence (and a window/`resync`), reusing the same parsed + state/output. + +## Concrete changes + +1. **Schema** (`schema/*.yaml`, then `make gen-linkml`): on the reduction `StateVariable`, + add an optional second recurrence β€” `evict_equation` (or a role tag on a second + `equation`) β€” the reverse update for the leaving sample. Optionally a `window`/`resync` + marker on the observer (else `resync` is derived as the two-pass rebuild). The FC state + `comoment`'s update is the Welford `add`; its `evict_equation` is the reverse-Welford + downdate. Follows the linkml-schema skill; `tvbo/datamodel/**` is generated. +2. **`resolve_reduction`**: when a state carries `evict_equation`, parse it too (same vocab) + and set `red['windowed'] = True`; carry `evict`/`resync`/`emit`(=output) alongside + `update`. Cumulative path unchanged (no `evict` β‡’ `windowed=False`). +3. **`render_reduction`**: add a `% if red['windowed']:` branch emitting the + `(add, evict, emit, resync)` protocol object (the generic scaffolding now in + `algorithm.mako`) from the resolved exprs. The cumulative branch is untouched. +4. **`algorithm.mako`**: `streaming_map` resolves the source observation's reduction via + `resolve_reduction` and emits via `render_reduction`'s windowed branch β€” deleting the + `next(iter(streaming_map))['spec']` path. +5. **Author FC as `Observation.dynamics`** in `EI_Tuning_FIC_EIB_Optimization.yaml` (and the + other online-tuning experiments), replacing the `pipeline: [compute_fc]` derived obs. +6. **Retire** `tvbo/codegen/streaming_reducers.py`, `tvbo/codegen/reducers.py`, and + `tvbo/database/reducers/windowed_fc.yaml` β€” subsumed. Keep the array-op printer + primitives (`code.py`) and parse vocab (`expression.py`) β€” they're general. + +## Validation +Byte-identity on **both** paths, independently: the grid/`prepare(reduce=…)` path (existing +`Observation.dynamics` observers must be unchanged) AND the algorithm streaming path +(`test_experiment_runs[EI_Tuning_FIC_EIB_Optimization]`), each vs `TVBO_STREAMING_REDUCERS=0` +recompute. + +## Recommendation +This is a schema + engine change spanning your active `resolve_reduction`/`render_reduction` +WIP. Do it on a **stable base** (once that WIP is committed) as one focused effort with the +two-path byte-identity gate above β€” not interleaved with the WIP. The array-op primitives and +the declarative-spec + general-resolver + general-template shape already landed are the +foundation this builds on; nothing here is blocked on new infrastructure, only on a clean base. diff --git a/tvbo/codegen/streaming_reducers.py b/tvbo/codegen/streaming_reducers.py new file mode 100644 index 000000000..8046d9e64 --- /dev/null +++ b/tvbo/codegen/streaming_reducers.py @@ -0,0 +1,163 @@ +"""Codegen registry: pipeline reducer callable -> backend streaming reducer. + +A *streaming reducer* replaces the ``O(window * N^2)``/step rolled-buffer +recompute of a sliding-window source observation (e.g. ``compute_fc`` recomputed +over the whole BOLD window every online-tuning iteration) with an incremental +``O(N^2)``/step reducer over the ``(add, evict, emit, resync)`` protocol. The +reducer is authored declaratively (:class:`StreamingReducerSpec`) and lowered to +backend source by :mod:`tvbo.codegen.reducers`, so tvbo emits the realization +into the generated experiment β€” no backend ships one. + +The registry is **per backend**: a backend that has a registered streaming form +for a given pipeline reducer uses the streaming path in generated code; a backend +that registers nothing (``tvb`` / ``pyrates`` / ``julia``) keeps the recompute +path byte-for-byte unchanged. The whole mechanism is transparent to the recipe / +schema β€” a study keeps declaring ``pipeline: [compute_fc]`` and the algorithm +codegen swaps in the streaming reducer only where one is registered. + +Registering a new streaming reducer (e.g. for dFC / metastability) is a new +``database/reducers/*.yaml`` recipe β€” state + add/evict/resync/emit assignment +strings β€” loaded at import; no code change. +""" +from __future__ import annotations + +import os +import pathlib +from dataclasses import dataclass + + +@dataclass(frozen=True) +class StreamingReducerSpec: + """Declarative, backend-agnostic spec of a windowed streaming reducer (metadata). + + The reducer's math is authored as symbolic **assignment recurrences** (strings + over the state vars, the arriving/leaving sample ``v``, and the window ``x``); the + general resolver in :mod:`tvbo.codegen.reducers` parses them and the sympy printers + lower them per backend, so tvbo emits the reducer into the generated experiment and + no backend ships a reducer realization (works on any backend/tvboptim version β€” + nothing external to resolve). **Sequential reassignment encodes the data flow** β€” a + later RHS sees the value assigned to a state var above it β€” so no ``new_*`` + temporaries are needed. The recipe is data here; the template that emits it is + fully general. + + Attributes: + state: accumulator state variables, unpacked from ``acc`` and returned. + add: ordered ``(lhs, rhs)`` assignments folding one arriving sample ``v``. + evict: ordered assignments dropping one leaving sample ``v`` (sliding window). + resync: ordered assignments rebuilding the state exactly from the window ``x``. + emit: readout expression over the final state (the reduced value). + emit_kind: ``"window"`` (emit every step; wired today) or ``"stride"`` (emit a + per-window observation for a downstream reduction β€” the dFC / FCD + follow-on; :func:`streaming_capable` returns ``False`` for it until the + template's stride branch lands, recompute fallback meanwhile). + """ + + state: tuple + add: tuple + evict: tuple + resync: tuple + emit: str + emit_kind: str = "window" + + +# backend -> {fully_qualified_reducer_name -> StreamingReducerSpec} +_REGISTRY: dict[str, dict[str, StreamingReducerSpec]] = {} + +def register_streaming_reducer(backend: str, reducer: str, spec: StreamingReducerSpec) -> None: + """Register *spec* as *backend*'s streaming form of the *reducer* callable. + + Args: + backend: Codegen backend key (e.g. ``"tvboptim"``). + reducer: Fully-qualified pipeline reducer callable the spec replaces + (e.g. ``"tvboptim.observations.observation.compute_fc"``). The bare + callable name is also matched as a fallback. + spec: The streaming reducer descriptor. + """ + _REGISTRY.setdefault(backend, {})[reducer] = spec + + +def lookup_streaming_reducer(backend: str, reducer_module: str | None, reducer_name: str): + """Return the :class:`StreamingReducerSpec` for a pipeline reducer, or ``None``. + + Returns ``None`` (-> recompute fallback) when the backend registers nothing + for this reducer, or when streaming is disabled via the + ``TVBO_STREAMING_REDUCERS=0`` environment switch (used to codegen the + recompute reference for validation and as an escape hatch). The reducer + realization is tvbo-emitted, so there is no external factory to resolve. + """ + if os.environ.get("TVBO_STREAMING_REDUCERS", "1") == "0": + return None + backend_map = _REGISTRY.get(backend) + if not backend_map: + return None + qualified = f"{reducer_module}.{reducer_name}" if reducer_module else reducer_name + return backend_map.get(qualified) or backend_map.get(reducer_name) + + +def streaming_capable(backend: str, reducer_module: str | None, reducer_name: str) -> bool: + """True when a step-wise (``"window"``) streaming reducer is registered. + + The algorithm template gates its streaming branch on this; ``"stride"`` + (dFC / FCD) specs return ``False`` here until the template's stride branch + lands, so registering them is safe (recompute fallback stays in force). + """ + spec = lookup_streaming_reducer(backend, reducer_module, reducer_name) + return spec is not None and spec.emit_kind == "window" + + +def is_windowed_reducer(reducer_module: str | None, reducer_name: str, backend: str = "tvboptim") -> bool: + """True when a pipeline reducer is a registered windowed reducer for *backend*. + + The registered reducer (``compute_fc`` for ``tvboptim``) is a windowed + correlation reduction β€” undefined over a ``< 2``-sample window, where + ``jnp.corrcoef`` collapses to a scalar β€” so codegen routes it through a + degenerate-window guard. Unlike :func:`lookup_streaming_reducer`, this is a pure + registry-membership test with no factory-availability or + ``TVBO_STREAMING_REDUCERS`` gating: the guard applies whether or not the + streaming *path* is active. It shares the one registered reducer set so the + guard's routing and the streaming lookup cannot drift. + """ + backend_map = _REGISTRY.get(backend) + if not backend_map: + return False + qualified = f"{reducer_module}.{reducer_name}" if reducer_module else reducer_name + return qualified in backend_map or reducer_name in backend_map + + +# ── Built-in reducer recipes (declarative YAML metadata) ──────────────────────── +# The concrete reducer recipes live as data in ``tvbo/database/reducers/*.yaml`` (state +# + add/evict/resync assignment strings + emit); this loads and registers each for the +# backends and pipeline reducers it declares. No reducer realisation is hardcoded here β€” +# adding a reducer is a YAML file, not code. Backends that register nothing (tvb / pyrates +# / julia today) fall back to the recompute path. +_REDUCERS_DIR = pathlib.Path(__file__).resolve().parents[1] / "database" / "reducers" + + +def _spec_from_metadata(meta: dict) -> StreamingReducerSpec: + """Build a :class:`StreamingReducerSpec` from a parsed reducer YAML.""" + def _assigns(key): + return tuple((str(lhs), str(rhs)) for lhs, rhs in meta.get(key, [])) + + return StreamingReducerSpec( + state=tuple(str(s) for s in meta["state"]), + add=_assigns("add"), + evict=_assigns("evict"), + resync=_assigns("resync"), + emit=str(meta["emit"]), + emit_kind=str(meta.get("emit_kind", "window")), + ) + + +def _load_reducer_recipes() -> None: + """Register every ``database/reducers/*.yaml`` recipe for its declared backends.""" + import yaml + + for yf in sorted(_REDUCERS_DIR.glob("*.yaml")): + meta = yaml.safe_load(yf.read_text()) + spec = _spec_from_metadata(meta) + for backend in meta.get("backends", []): + for reducer_ref in meta.get("replaces", []): + register_streaming_reducer(str(backend), str(reducer_ref), spec) + + +_load_reducer_recipes() diff --git a/tvbo/codegen/templater.py b/tvbo/codegen/templater.py index 86cf868b2..d5bb26375 100644 --- a/tvbo/codegen/templater.py +++ b/tvbo/codegen/templater.py @@ -11,6 +11,7 @@ coupling and integrator metadata from the ontology and render it into executable TVBO/TVB source using the templates in `tvbo.templates`. """ +import logging import re from os.path import join from typing import Any @@ -25,6 +26,18 @@ from tvbo.ontology import owl as ontology from tvbo.classes import equation as equations, coupling +logger = logging.getLogger(__name__) + + +def _log_source(rendered_code: str) -> None: + """Emit rendered code with line numbers when ``print_source`` is requested.""" + if not logger.isEnabledFor(logging.INFO): + return + numbered = "\n".join( + f"{i}\t{line}" for i, line in enumerate(rendered_code.split("\n"), start=1) + ) + logger.info("rendered source:\n%s", numbered) + exec_globals = {} TEMPLATES = templates.root @@ -289,9 +302,7 @@ def equation2class(EQ, fout=None, print_source=False, **kwargs): eq_type=eq_type, ) if print_source: - # Print each line with its line number - for i, line in enumerate(rendered_code.split("\n"), start=1): - print(f"{i}\t{line}") + _log_source(rendered_code) if fout: with open(fout, "w") as f: f.write(rendered_code) @@ -345,9 +356,7 @@ def coupling2class(CF, fout=None, print_source=False, **kwargs): sparse=sparse, ) if print_source: - # Print each line with its line number - for i, line in enumerate(rendered_code.split("\n"), start=1): - print(f"{i}\t{line}") + _log_source(rendered_code) if fout: with open(fout, "w") as f: f.write(rendered_code) @@ -475,9 +484,7 @@ def model2class( import_statements=import_statements, ) if print_source: - # Print each line with its line number - for i, line in enumerate(rendered_code.split("\n"), start=1): - print(f"{i}\t{line}") + _log_source(rendered_code) if fout: with open(fout, "w") as f: f.write(rendered_code) diff --git a/tvbo/data/connectome_build.py b/tvbo/data/connectome_build.py new file mode 100644 index 000000000..8f46e1010 --- /dev/null +++ b/tvbo/data/connectome_build.py @@ -0,0 +1,157 @@ +"""Build a structural connectome from a tractogram + parcellation via MRtrix3. + +A thin wrapper around MRtrix3's ``tck2connectome``. Given a streamline tractogram +and an integer-labelled parcellation image that already live in the *same* space, +it returns the edge-weight (streamline-count) and mean-tract-length matrices. The +inputs are assumed to be co-registered β€” this module does not register them. + +Assembling the matrices into a :class:`tvbo.classes.network.Network` and writing +the ``…_desc-SC_relmat.h5`` + YAML sidecar happens in the caller (``tvbo network +build``); this module only shells out to MRtrix and reads back the CSVs, so it is +the single place the ``tck2connectome`` invocation is defined. +""" +from __future__ import annotations + +import shutil +import subprocess +import tempfile +from pathlib import Path +from typing import Optional, Sequence + +import numpy as np + +TCK2CONNECTOME = "tck2connectome" + + +def mrtrix_available(tool: str = TCK2CONNECTOME) -> bool: + """Return True when the given MRtrix command is on ``PATH``.""" + return shutil.which(tool) is not None + + +def ensure_mrtrix(tool: str = TCK2CONNECTOME) -> None: + """Raise a friendly ``RuntimeError`` when the MRtrix command is missing.""" + if not mrtrix_available(tool): + raise RuntimeError( + f"{tool!r} was not found on PATH. `tvbo network build` is a thin wrapper " + f"around MRtrix3.\n" + f" Install MRtrix3: https://www.mrtrix.org/download/\n" + f" {tool} reference: " + f"https://mrtrix.readthedocs.io/en/latest/reference/commands/{tool}.html\n" + f"After installing, make sure `{tool}` runs from your shell." + ) + + +def tck2connectome_commands( + tractogram: Path, + parcellation: Path, + weights_csv: Path, + lengths_csv: Path, + assignments_csv: Optional[Path] = None, + *, + symmetric: bool = True, + zero_diagonal: bool = True, + force: bool = True, + extra_args: Optional[Sequence[str]] = None, +) -> list[list[str]]: + """Return the two ``tck2connectome`` argv lists (edge weights, then lengths). + + The first call counts streamlines between each node pair (edge weights); the + second scales each streamline by its length and averages per edge to get mean + tract lengths. Returned rather than run so callers can preview them (dry-run). + """ + common: list[str] = [] + if symmetric: + common.append("-symmetric") + if zero_diagonal: + common.append("-zero_diagonal") + if force: + common.append("-force") + if extra_args: + common.extend(extra_args) + + weights_cmd = [TCK2CONNECTOME, str(tractogram), str(parcellation), str(weights_csv)] + if assignments_csv is not None: + weights_cmd += ["-out_assignments", str(assignments_csv)] + weights_cmd += common + + lengths_cmd = [ + TCK2CONNECTOME, str(tractogram), str(parcellation), str(lengths_csv), + "-scale_length", "-stat_edge", "mean", + ] + common + + return [weights_cmd, lengths_cmd] + + +def run_tck2connectome( + tractogram: Path, + parcellation: Path, + weights_csv: Path, + lengths_csv: Path, + assignments_csv: Optional[Path] = None, + *, + symmetric: bool = True, + zero_diagonal: bool = True, + force: bool = True, + extra_args: Optional[Sequence[str]] = None, +) -> None: + """Run ``tck2connectome`` twice: edge weights (count) then mean tract lengths.""" + for cmd in tck2connectome_commands( + tractogram, parcellation, weights_csv, lengths_csv, assignments_csv, + symmetric=symmetric, zero_diagonal=zero_diagonal, force=force, + extra_args=extra_args, + ): + subprocess.run(cmd, check=True) + + +def connectome_from_tractogram( + tractogram: Path, + parcellation: Path, + *, + symmetric: bool = True, + zero_diagonal: bool = True, + extra_args: Optional[Sequence[str]] = None, + assignments_out: Optional[Path] = None, +) -> tuple[np.ndarray, np.ndarray]: + """Compute the ``(weights, lengths)`` matrices for a tractogram + parcellation. + + Runs ``tck2connectome`` in a temporary directory and loads the CSVs it writes. + Both inputs must already be co-registered in the same space. + + Parameters + ---------- + tractogram : Path + Streamline tractogram MRtrix can read (e.g. ``.tck``). + parcellation : Path + Integer-labelled parcellation image (e.g. ``dseg.nii.gz``). + assignments_out : Path, optional + When given, ``tck2connectome``'s ``-out_assignments`` is kept at this path. + + Returns + ------- + weights, lengths : np.ndarray + ``(N, N)`` streamline-count and mean-length matrices. + """ + ensure_mrtrix() + tractogram = Path(tractogram) + parcellation = Path(parcellation) + for path, what in ((tractogram, "tractogram"), (parcellation, "parcellation")): + if not path.exists(): + raise FileNotFoundError(f"{what} not found: {path}") + + with tempfile.TemporaryDirectory(prefix="tvbo_conn_") as tmp: + tmpdir = Path(tmp) + weights_csv = tmpdir / "weights.csv" + lengths_csv = tmpdir / "lengths.csv" + assignments_csv = tmpdir / "assignments.csv" if assignments_out else None + + run_tck2connectome( + tractogram, parcellation, weights_csv, lengths_csv, assignments_csv, + symmetric=symmetric, zero_diagonal=zero_diagonal, extra_args=extra_args, + ) + + weights = np.atleast_2d(np.loadtxt(weights_csv, delimiter=",")) + lengths = np.atleast_2d(np.loadtxt(lengths_csv, delimiter=",")) + if assignments_out is not None and assignments_csv is not None: + shutil.copyfile(assignments_csv, assignments_out) + + return weights, lengths diff --git a/tvbo/data/experiment_result_io.py b/tvbo/data/experiment_result_io.py index 7da063c2b..d0470df23 100644 --- a/tvbo/data/experiment_result_io.py +++ b/tvbo/data/experiment_result_io.py @@ -18,8 +18,8 @@ β”œβ”€β”€ J_i (n_nodes,) float32 └── ... -Cache invalidation (per /grill-me Q8 = C.3) -------------------------------------------- +Cache invalidation +------------------ - ``provenance.experiment_yaml_hash`` β€” SHA-256 of the normalised YAML that produced this sidecar. diff --git a/tvbo/data/network_io.py b/tvbo/data/network_io.py index 48fb756a4..9a0a72499 100644 --- a/tvbo/data/network_io.py +++ b/tvbo/data/network_io.py @@ -569,16 +569,30 @@ def save_network(network, yaml_path, binary_format: str = "h5", sidecar_format: # Network._items() hides _cached_* attrs, so yaml_dumper works directly meta = yaml_loader.load_as_dict(yaml_dumper.dumps(network)) - # Align array keys with template edge names from metadata + # Remap the GENERIC canonical keys ("weight"/"length", as produced by from_matrix) + # onto the sidecar's declared edge names. Match by MEANING, never by position: + # weight/length are only two of arbitrarily many edge attributes a sidecar may + # bundle (weight_NMF_*, fc, local_connectivity, …), and they may appear in any + # order, so the length matrix β€” the one delayed simulations require β€” must be + # routed to the length-like template edge, not to "the second edge". Guards: + # * skip when the array is already correctly named (the template declares it), so + # a directly-named `length` edge is never renamed away; and + # * if no matching template edge is found, keep the generic key (the loader + # resolves "weight"/"length" directly) rather than risk misplacing the matrix. if arrays: - tedges = _template_edges(meta.get("edges", [])) - if tedges and "weight" in arrays: - w_name = tedges[0].get("name") or tedges[0].get("label") or "weight" - if w_name != "weight": + from tvbo.classes.network import _WEIGHT_MEASURES, _LENGTH_MEASURES + + names = [te.get("name") or te.get("label") for te in _template_edges(meta.get("edges", []))] + names = [nm for nm in names if nm] + nameset = set(names) + if "weight" in arrays and "weight" not in nameset: + w_name = (next((nm for nm in names if nm.lower() in _WEIGHT_MEASURES), None) + or next((nm for nm in names if nm.lower() not in _LENGTH_MEASURES), None)) + if w_name and w_name != "weight": arrays[w_name] = arrays.pop("weight") - if len(tedges) > 1 and "length" in arrays: - l_name = tedges[1].get("name") or tedges[1].get("label") or "length" - if l_name != "length": + if "length" in arrays and "length" not in nameset: + l_name = next((nm for nm in names if nm.lower() in _LENGTH_MEASURES), None) + if l_name and l_name != "length": arrays[l_name] = arrays.pop("length") if not arrays: diff --git a/tvbo/data/ontology/tvbo.owl b/tvbo/data/ontology/tvbo.owl index d31cd40e5..97bbebfbd 100644 --- a/tvbo/data/ontology/tvbo.owl +++ b/tvbo/data/ontology/tvbo.owl @@ -17,12 +17,12 @@ xmlns:clinical="https://w3id.org/tvbo/clinical/" xmlns:oboInOwl="http://www.geneontology.org/formats/oboInOwl#"> <owl:Ontology rdf:about="https://w3id.org/tvbo/tvbo.owl"> - <owl:versionIRI rdf:resource="https://w3id.org/tvbo/2026-07-08/tvbo.owl"/> + <owl:versionIRI rdf:resource="https://w3id.org/tvbo/struct/0.4.0"/> <terms:contributor>The Virtual Brain Ontology contributors</terms:contributor> <terms:created rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2024-01-01</terms:created> <terms:description>Metadata schema for simulation studies using The Virtual Brain neuroinformatics platform or other dynamic network models of large-scale brain activity.</terms:description> <terms:license rdf:resource="https://spdx.org/licenses/EUPL-1.2"/> - <terms:modified rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2026-07-08</terms:modified> + <terms:modified rdf:datatype="http://www.w3.org/2001/XMLSchema#date">2026-07-13</terms:modified> <terms:publisher rdf:resource="https://www.thevirtualbrain.org/"/> <terms:title>The Virtual Brain Data Model</terms:title> <pav:version>0.4.0</pav:version> @@ -288,6 +288,15 @@ + <!-- https://w3id.org/tvbo/canonicalCode --> + + <owl:AnnotationProperty rdf:about="https://w3id.org/tvbo/canonicalCode"> + <rdfs:comment xml:lang="en">Backend-independent short code for a special-point type (e.g. "LP", "HB", "BP"). The Python special-point label map derives (altLabel β†’ canonicalCode) from these annotations.</rdfs:comment> + <rdfs:label xml:lang="en">canonical code</rdfs:label> + </owl:AnnotationProperty> + + + <!-- https://w3id.org/tvbo/enabledByCouplingSlot --> <owl:AnnotationProperty rdf:about="https://w3id.org/tvbo/enabledByCouplingSlot"> @@ -335,6 +344,15 @@ + <!-- https://w3id.org/tvbo/realisedByBackend --> + + <owl:AnnotationProperty rdf:about="https://w3id.org/tvbo/realisedByBackend"> + <rdfs:comment xml:lang="en">Backend(s) whose codegen currently lowers this analysis observable to a concrete implementation.</rdfs:comment> + <rdfs:label xml:lang="en">realised by backend</rdfs:label> + </owl:AnnotationProperty> + + + <!-- https://w3id.org/tvbo/unit --> <owl:AnnotationProperty rdf:about="https://w3id.org/tvbo/unit"> @@ -648,12 +666,17 @@ <!-- https://w3id.org/tvbo/builder --> - <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/builder"> - <rdfs:label>builder (slot)</rdfs:label> - <skos:definition>Optional Python callable that builds the network at YAML load time. When set, ``Network._resolve`` imports ``<module>.<name>`` and invokes it with the ``parameters`` block as keyword arguments. The callable must return either a ``Network`` instance or a tuple ``(weights, lengths, node_params)``. Use the existing ``Callable`` slots (``name`` is the function name, ``module`` is its dotted module path). Reuses the same idiom as TVB monitor class references; no free ``module:function`` strings. -</skos:definition> + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/builder"/> + + + + <!-- https://w3id.org/tvbo/by --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/by"> + <rdfs:label>by (slot)</rdfs:label> + <skos:definition>Default tier for axes not named in ``vectorize`` or ``workflow``. Unset means ``auto``.</skos:definition> <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> - <skos:notation>builder</skos:notation> + <skos:notation>by</skos:notation> </owl:ObjectProperty> @@ -822,6 +845,17 @@ + <!-- https://w3id.org/tvbo/coupling_evaluation --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/coupling_evaluation"> + <rdfs:label>coupling_evaluation (slot)</rdfs:label> + <skos:definition>Backend-neutral numerical treatment of the network coupling term across the stages of a multi-stage integrator (Heun, RK4, ...): re-evaluated at every stage (per_stage β€” standard ODE accuracy) or computed once per step and held constant across stages (per_step β€” a TVB-style efficiency shortcut). Single- stage methods (Euler) and always-recompute solvers (diffrax) ignore it. per_stage is required to match reference integrators for stiff / chaotic / multistable systems, where the frozen- coupling error can select a different trajectory or attractor. See CouplingStageEvaluation.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>coupling_evaluation</skos:notation> + </owl:ObjectProperty> + + + <!-- https://w3id.org/tvbo/coupling_function --> <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/coupling_function"> @@ -950,6 +984,17 @@ + <!-- https://w3id.org/tvbo/distribute --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/distribute"> + <rdfs:label>distribute (slot)</rdfs:label> + <skos:definition>How exploration axes map onto the vectorized vs fanned-out tiers.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>distribute</skos:notation> + </owl:ObjectProperty> + + + <!-- https://w3id.org/tvbo/distribution --> <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/distribution"/> @@ -1045,6 +1090,17 @@ + <!-- https://w3id.org/tvbo/env --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/env"> + <rdfs:label>env (slot)</rdfs:label> + <skos:definition>Environment variables exported before the task command on every engine (e.g. XLA_PYTHON_CLIENT_PREALLOCATE=false). An ordered list of {name, value}; values are shell-quoted at emit time.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>env</skos:notation> + </owl:ObjectProperty> + + + <!-- https://w3id.org/tvbo/environment --> <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/environment"> @@ -1193,6 +1249,17 @@ + <!-- https://w3id.org/tvbo/graph_representation --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/graph_representation"> + <rdfs:label>graph_representation (slot)</rdfs:label> + <skos:definition>Representation used to evaluate coupling over this network's connectivity (``auto`` | ``dense`` | ``sparse``). ``auto`` lets the backend choose by connection density. This names whether to exploit edge sparsity, not a concrete data structure, so it is backend-independent; the delayed-vs-instantaneous graph kind is decided separately from the couplings' conduction delays.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>graph_representation</skos:notation> + </owl:ObjectProperty> + + + <!-- https://w3id.org/tvbo/hasAttractor --> <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/hasAttractor"> @@ -1201,6 +1268,34 @@ + <!-- https://w3id.org/tvbo/hasBranchGeometry --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/hasBranchGeometry"> + <rdfs:range rdf:resource="https://w3id.org/tvbo/BranchGeometry"/> + <rdfs:label xml:lang="en">has branch geometry</rdfs:label> + </owl:ObjectProperty> + + + + <!-- https://w3id.org/tvbo/hasCodimension --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/hasCodimension"> + <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#FunctionalProperty"/> + <rdfs:range rdf:resource="https://w3id.org/tvbo/Codimension"/> + <rdfs:label xml:lang="en">has codimension</rdfs:label> + </owl:ObjectProperty> + + + + <!-- https://w3id.org/tvbo/hasEigenvalueSignature --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/hasEigenvalueSignature"> + <rdfs:range rdf:resource="https://w3id.org/tvbo/EigenvalueSignature"/> + <rdfs:label xml:lang="en">has eigenvalue signature</rdfs:label> + </owl:ObjectProperty> + + + <!-- https://w3id.org/tvbo/hasModelFeature --> <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/hasModelFeature"> @@ -1592,6 +1687,17 @@ + <!-- https://w3id.org/tvbo/nextflow --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/nextflow"> + <rdfs:label>nextflow (slot)</rdfs:label> + <skos:definition>Nextflow execution directives.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>nextflow</skos:notation> + </owl:ObjectProperty> + + + <!-- https://w3id.org/tvbo/node_template --> <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/node_template"> @@ -1715,12 +1821,6 @@ - <!-- https://w3id.org/tvbo/outsym --> - - <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/outsym"/> - - - <!-- https://w3id.org/tvbo/over --> <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/over"> @@ -1860,6 +1960,17 @@ + <!-- https://w3id.org/tvbo/query --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/query"> + <rdfs:label>query (slot)</rdfs:label> + <skos:definition>BIDS entity filter that selects one per-subject file under the experiment's ``dataset.bids_root`` when ``source`` is dataset-sourced (``dataset.subject.<measure>``). The active subject fills the ``sub-`` entity at resolution time; the remaining entities (e.g. ``desc: FCavg, atlas: Schaefer1000, suffix: relmat``) disambiguate among the subject's several networks/measurements. The same filter enumerates the cohort for the per-subject workflow fan-out, so one declaration drives both discovery and resolution.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>query</skos:notation> + </owl:ObjectProperty> + + + <!-- https://w3id.org/tvbo/random_state --> <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/random_state"> @@ -1870,6 +1981,17 @@ + <!-- https://w3id.org/tvbo/reconcile --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/reconcile"> + <rdfs:label>reconcile (slot)</rdfs:label> + <skos:definition>How a dataset-sourced target's nodes are aligned to the model network before comparison. ``by_label`` selects the shared node labels on both sides by name (keyed ``.sel``), never by position, so a differing node count or order cannot silently misalign the comparison. Matching is alias-aware: a target label matches a model node when it equals that node's ``label`` or any of its ``alternateName`` entries, so a differing nomenclature reconciles without relabelling either side. ``none`` disables reconciliation (identical node sets).</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>reconcile</skos:notation> + </owl:ObjectProperty> + + + <!-- https://w3id.org/tvbo/region_mapping --> <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/region_mapping"> @@ -1897,6 +2019,7 @@ <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/requirements"> <rdfs:range rdf:resource="https://w3id.org/tvbo/software/SoftwareRequirement"/> <rdfs:label>requirements (slot)</rdfs:label> + <skos:definition>Software requirements for the workflow environment; overrides ``experiment.environment.requirements`` when set.</skos:definition> <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>requirements</skos:notation> </owl:ObjectProperty> @@ -1957,6 +2080,28 @@ + <!-- https://w3id.org/tvbo/slurm --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/slurm"> + <rdfs:label>slurm (slot)</rdfs:label> + <skos:definition>Slurm sbatch directives for array-job execution.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>slurm</skos:notation> + </owl:ObjectProperty> + + + + <!-- https://w3id.org/tvbo/snakemake --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/snakemake"> + <rdfs:label>snakemake (slot)</rdfs:label> + <skos:definition>Snakemake execution directives.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>snakemake</skos:notation> + </owl:ObjectProperty> + + + <!-- https://w3id.org/tvbo/software --> <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/software"/> @@ -2116,6 +2261,28 @@ + <!-- https://w3id.org/tvbo/sweep_direction --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/sweep_direction"> + <rdfs:label>sweep_direction (slot)</rdfs:label> + <skos:definition>Order in which a branch-following axis (sweep_seeding: from_previous) is traversed: 'up' increases the parameter once, 'down' decreases it once, 'bidirectional' increases then decreases over the same values and records both branches β€” a hysteresis loop where they differ. Ignored when sweep_seeding is 'independent'. Applies to a single swept axis.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>sweep_direction</skos:notation> + </owl:ObjectProperty> + + + + <!-- https://w3id.org/tvbo/sweep_seeding --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/sweep_seeding"> + <rdfs:label>sweep_seeding (slot)</rdfs:label> + <skos:definition>How each sweep point's initial state is obtained. 'independent' (default) cold-starts every point from the model's initial values, so points are order-independent and may run in parallel (see parallel_mode). 'from_previous' seeds each point from the final state of the preceding point, so the trajectory follows the solution branch as the swept parameter changes quasi-statically; this forces sequential execution (a scan, not a vmap) and, with sweep_direction, exposes hysteresis / multistability. It is forward-integration branch following, not numerical continuation (cf. the Continuation class).</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>sweep_seeding</skos:notation> + </owl:ObjectProperty> + + + <!-- https://w3id.org/tvbo/symmetry --> <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/symmetry"/> @@ -2196,11 +2363,7 @@ <!-- https://w3id.org/tvbo/time --> - <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/time"> - <rdfs:label>time (slot)</rdfs:label> - <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> - <skos:notation>time</skos:notation> - </owl:ObjectProperty> + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/time"/> @@ -2330,6 +2493,12 @@ + <!-- https://w3id.org/tvbo/workflow --> + + <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/workflow"/> + + + <!-- https://w3id.org/tvbo/x --> <owl:ObjectProperty rdf:about="https://w3id.org/tvbo/x"> @@ -2919,6 +3088,12 @@ + <!-- https://w3id.org/tvbo/account --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/account"/> + + + <!-- https://w3id.org/tvbo/acquisition --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/acquisition"/> @@ -2991,6 +3166,17 @@ + <!-- https://w3id.org/tvbo/array_chunk --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/array_chunk"> + <rdfs:label>array_chunk (slot)</rdfs:label> + <skos:definition>Overrides ``distribute.chunk`` for this engine only: the number of array-task shards to split the vectorized sweep across.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>array_chunk</skos:notation> + </owl:DatatypeProperty> + + + <!-- https://w3id.org/tvbo/atlas --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/atlas"/> @@ -3066,6 +3252,12 @@ + <!-- https://w3id.org/tvbo/chunk --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/chunk"/> + + + <!-- https://w3id.org/tvbo/citekey --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/citekey"/> @@ -3135,6 +3327,23 @@ + <!-- https://w3id.org/tvbo/container --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/container"/> + + + + <!-- https://w3id.org/tvbo/cores --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/cores"> + <rdfs:label>cores (slot)</rdfs:label> + <skos:definition>Total cores for local engines (Snakemake --cores).</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>cores</skos:notation> + </owl:DatatypeProperty> + + + <!-- https://w3id.org/tvbo/correlated --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/correlated"> @@ -3156,6 +3365,17 @@ + <!-- https://w3id.org/tvbo/cpus_per_task --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/cpus_per_task"> + <rdfs:label>cpus_per_task (slot)</rdfs:label> + <skos:definition>CPU cores requested per task (Slurm --cpus-per-task).</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>cpus_per_task</skos:notation> + </owl:DatatypeProperty> + + + <!-- https://w3id.org/tvbo/criticalValue --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/criticalValue"> @@ -3306,6 +3526,12 @@ + <!-- https://w3id.org/tvbo/desc --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/desc"/> + + + <!-- https://w3id.org/tvbo/description --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/description"/> @@ -3492,6 +3718,12 @@ + <!-- https://w3id.org/tvbo/executor --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/executor"/> + + + <!-- https://w3id.org/tvbo/experiment_yaml_hash --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/experiment_yaml_hash"/> @@ -3594,6 +3826,12 @@ + <!-- https://w3id.org/tvbo/gres --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/gres"/> + + + <!-- https://w3id.org/tvbo/grounding --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/grounding"> @@ -3833,6 +4071,18 @@ + <!-- https://w3id.org/tvbo/mail_type --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/mail_type"/> + + + + <!-- https://w3id.org/tvbo/mail_user --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/mail_user"/> + + + <!-- https://w3id.org/tvbo/max_bisection_steps --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/max_bisection_steps"> @@ -3883,6 +4133,12 @@ + <!-- https://w3id.org/tvbo/mem --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/mem"/> + + + <!-- https://w3id.org/tvbo/mesh_file --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/mesh_file"/> @@ -3912,6 +4168,17 @@ + <!-- https://w3id.org/tvbo/min_coverage --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/min_coverage"> + <rdfs:label>min_coverage (slot)</rdfs:label> + <skos:definition>Minimum fraction of the model network's nodes that a ``by_label`` reconciliation must cover, else resolution raises. The realised coverage is always logged. Absent (``null``) means require full coverage (``1.0``) for a dataset-sourced target β€” silently fitting on a partial node subset must be an explicit opt-in (e.g. ``0.95`` to tolerate a few genuinely-missing empirical parcels), never the default.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>min_coverage</skos:notation> + </owl:DatatypeProperty> + + + <!-- https://w3id.org/tvbo/mode --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/mode"/> @@ -3946,6 +4213,12 @@ + <!-- https://w3id.org/tvbo/modules --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/modules"/> + + + <!-- https://w3id.org/tvbo/mtime --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/mtime"> @@ -3989,7 +4262,7 @@ <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/n_parallel"> <rdfs:label>n_parallel (slot)</rdfs:label> - <skos:definition>Parallel evaluations</skos:definition> + <skos:definition>Parallel evaluations / batch size for parameter exploration. Backends translate this into their own execution primitive (e.g. tvboptim's vectorised chunk size) without exposing any backend-specific names in the schema.</skos:definition> <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>n_parallel</skos:notation> </owl:DatatypeProperty> @@ -4253,6 +4526,12 @@ + <!-- https://w3id.org/tvbo/out_dir --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/out_dir"/> + + + <!-- https://w3id.org/tvbo/output --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/output"/> @@ -4294,6 +4573,12 @@ + <!-- https://w3id.org/tvbo/partition --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/partition"/> + + + <!-- https://w3id.org/tvbo/path --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/path"/> @@ -4345,6 +4630,12 @@ + <!-- https://w3id.org/tvbo/provenance --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/provenance"/> + + + <!-- https://w3id.org/tvbo/pycode --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/pycode"/> @@ -4357,6 +4648,12 @@ + <!-- https://w3id.org/tvbo/queue --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/queue"/> + + + <!-- https://w3id.org/tvbo/random_seed --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/random_seed"> @@ -4440,12 +4737,29 @@ + <!-- https://w3id.org/tvbo/retries --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/retries"> + <rdfs:label>retries (slot)</rdfs:label> + <skos:definition>Automatic retries per failed task. Unset means none.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>retries</skos:notation> + </owl:DatatypeProperty> + + + <!-- https://w3id.org/tvbo/rhs --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/rhs"/> + <!-- https://w3id.org/tvbo/rng --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/rng"/> + + + <!-- https://w3id.org/tvbo/run_id --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/run_id"> @@ -4520,6 +4834,12 @@ + <!-- https://w3id.org/tvbo/setup --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/setup"/> + + + <!-- https://w3id.org/tvbo/shape --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/shape"/> @@ -4673,6 +4993,12 @@ + <!-- https://w3id.org/tvbo/suffix --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/suffix"/> + + + <!-- https://w3id.org/tvbo/symbol --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/symbol"> @@ -4763,6 +5089,12 @@ + <!-- https://w3id.org/tvbo/time --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/time"/> + + + <!-- https://w3id.org/tvbo/time_dependent --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/time_dependent"/> @@ -4881,6 +5213,12 @@ + <!-- https://w3id.org/tvbo/vectorize --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/vectorize"/> + + + <!-- https://w3id.org/tvbo/vectorized --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/vectorized"> @@ -4892,6 +5230,12 @@ + <!-- https://w3id.org/tvbo/venv --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/venv"/> + + + <!-- https://w3id.org/tvbo/vertex_to_region --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/vertex_to_region"> @@ -4992,6 +5336,12 @@ + <!-- https://w3id.org/tvbo/workflow --> + + <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/workflow"/> + + + <!-- https://w3id.org/tvbo/wrt --> <owl:DatatypeProperty rdf:about="https://w3id.org/tvbo/wrt"/> @@ -5628,6 +5978,16 @@ + <!-- http://qudt.org/vocab/unit/KiloGM-M2 --> + + <owl:Class rdf:about="http://qudt.org/vocab/unit/KiloGM-M2"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/UnitEnum"/> + <rdfs:label>kg_m2</rdfs:label> + <skos:definition>Kilogram metre squared (moment of inertia)</skos:definition> + </owl:Class> + + + <!-- http://qudt.org/vocab/unit/KiloHZ --> <owl:Class rdf:about="http://qudt.org/vocab/unit/KiloHZ"> @@ -5679,6 +6039,16 @@ + <!-- http://qudt.org/vocab/unit/MegaW --> + + <owl:Class rdf:about="http://qudt.org/vocab/unit/MegaW"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/UnitEnum"/> + <rdfs:label>MW</rdfs:label> + <skos:definition>Megawatt (10⁢ W); grid real/net power</skos:definition> + </owl:Class> + + + <!-- http://qudt.org/vocab/unit/MicroM3 --> <owl:Class rdf:about="http://qudt.org/vocab/unit/MicroM3"> @@ -5999,6 +6369,16 @@ + <!-- http://qudt.org/vocab/unit/W --> + + <owl:Class rdf:about="http://qudt.org/vocab/unit/W"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/UnitEnum"/> + <rdfs:label>W</rdfs:label> + <skos:definition>Watt (power)</skos:definition> + </owl:Class> + + + <!-- http://schema.org/Book --> <owl:Class rdf:about="http://schema.org/Book"> @@ -7237,6 +7617,8 @@ <rdf:Description rdf:about="https://w3id.org/tvbo/AggregationType#last"/> <rdf:Description rdf:about="https://w3id.org/tvbo/AggregationType#mean"/> <rdf:Description rdf:about="https://w3id.org/tvbo/AggregationType#none"/> + <rdf:Description rdf:about="https://w3id.org/tvbo/AggregationType#std"/> + <rdf:Description rdf:about="https://w3id.org/tvbo/AggregationType#variance"/> <rdf:Description rdf:about="https://w3id.org/tvbo/AggregationType#window"/> </owl:unionOf> </owl:Class> @@ -7250,6 +7632,8 @@ <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/AggregationType#last"/> <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/AggregationType#mean"/> <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/AggregationType#none"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/AggregationType#std"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/AggregationType#variance"/> <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/AggregationType#window"/> </owl:Class> @@ -7803,6 +8187,16 @@ + <!-- https://w3id.org/tvbo/AnalysisObservable --> + + <owl:Class rdf:about="https://w3id.org/tvbo/AnalysisObservable"> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:comment xml:lang="en">A quantity obtained by analysing the model, its solve, or a derived loss β€” the vocabulary of Analysis.type.</rdfs:comment> + <rdfs:label xml:lang="en">Analysis observable</rdfs:label> + </owl:Class> + + + <!-- https://w3id.org/tvbo/Argument --> <owl:Class rdf:about="https://w3id.org/tvbo/Argument"> @@ -7927,6 +8321,12 @@ <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/desc"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/hemi"/> @@ -7951,6 +8351,12 @@ <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/suffix"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/template"/> @@ -7981,6 +8387,12 @@ <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/desc"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/hemi"/> @@ -8005,6 +8417,12 @@ <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/suffix"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/template"/> @@ -8023,6 +8441,12 @@ <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/desc"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/hemi"/> @@ -8047,6 +8471,12 @@ <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/suffix"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/template"/> @@ -8172,7 +8602,25 @@ <owl:Class rdf:about="https://w3id.org/tvbo/BogdanovTakens"> <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Bifurcation"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasCodimension"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/Codimension2"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasEigenvalueSignature"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/DoubleZeroEigenvalue"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:comment xml:lang="en">Codim-2 point with a double-zero (nilpotent) eigenvalue, where fold, Hopf and homoclinic curves meet.</rdfs:comment> <rdfs:label xml:lang="en">Bogdanov-Takens</rdfs:label> + <skos:altLabel>BT</skos:altLabel> + <skos:altLabel>bogdanov takens</skos:altLabel> + <skos:altLabel>bogdanov-takens</skos:altLabel> + <skos:altLabel>bt</skos:altLabel> + <tvbo:canonicalCode>BT</tvbo:canonicalCode> </owl:Class> @@ -8347,6 +8795,52 @@ + <!-- https://w3id.org/tvbo/BranchGeometry --> + + <owl:Class rdf:about="https://w3id.org/tvbo/BranchGeometry"> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:comment xml:lang="en">Local geometry of the solution branch at the special point in the (state, parameter) space.</rdfs:comment> + <rdfs:label xml:lang="en">Branch geometry</rdfs:label> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/BranchPoint --> + + <owl:Class rdf:about="https://w3id.org/tvbo/BranchPoint"> + <owl:equivalentClass> + <owl:Class> + <owl:intersectionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="https://w3id.org/tvbo/Bifurcation"/> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasBranchGeometry"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/BranchCrossingGeometry"/> + </owl:Restriction> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasCodimension"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/Codimension1"/> + </owl:Restriction> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasEigenvalueSignature"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/RealEigenvalueZero"/> + </owl:Restriction> + </owl:intersectionOf> + </owl:Class> + </owl:equivalentClass> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Bifurcation"/> + <rdfs:comment xml:lang="en">Branch point: two solution branches intersect transversally as a real eigenvalue crosses zero (e.g. transcritical, pitchfork). Distinct from a Fold, which turns back on the parameter.</rdfs:comment> + <rdfs:label xml:lang="en">Branch point</rdfs:label> + <skos:altLabel>BP</skos:altLabel> + <skos:altLabel>bp</skos:altLabel> + <skos:altLabel>branch point</skos:altLabel> + <skos:altLabel>branch-point</skos:altLabel> + <skos:altLabel>branchpoint</skos:altLabel> + <skos:prefLabel xml:lang="en">Branch point</skos:prefLabel> + <tvbo:canonicalCode>BP</tvbo:canonicalCode> + </owl:Class> + + + <!-- https://w3id.org/tvbo/BranchSwitch --> <owl:Class rdf:about="https://w3id.org/tvbo/BranchSwitch"> @@ -8713,6 +9207,16 @@ + <!-- https://w3id.org/tvbo/Codimension --> + + <owl:Class rdf:about="https://w3id.org/tvbo/Codimension"> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:comment xml:lang="en">Number of parameters that must be tuned for the bifurcation to occur generically.</rdfs:comment> + <rdfs:label xml:lang="en">Codimension</rdfs:label> + </owl:Class> + + + <!-- https://w3id.org/tvbo/ColoredNoise --> <owl:Class rdf:about="https://w3id.org/tvbo/ColoredNoise"> @@ -9402,12 +9906,6 @@ <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> - <rdfs:subClassOf> - <owl:Restriction> - <owl:onProperty rdf:resource="https://w3id.org/tvbo/outsym"/> - <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> - </owl:Restriction> - </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/parameters"/> @@ -9564,6 +10062,12 @@ <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/outsym"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/sparse"/> @@ -9724,6 +10228,48 @@ + <!-- https://w3id.org/tvbo/CouplingStageEvaluation --> + + <owl:Class rdf:about="https://w3id.org/tvbo/CouplingStageEvaluation"> + <owl:equivalentClass> + <owl:Class> + <owl:unionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="https://w3id.org/tvbo/CouplingStageEvaluation#per_stage"/> + <rdf:Description rdf:about="https://w3id.org/tvbo/CouplingStageEvaluation#per_step"/> + </owl:unionOf> + </owl:Class> + </owl:equivalentClass> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>CouplingStageEvaluation</rdfs:label> + <skos:definition>How the network coupling term is evaluated within one step of a multi-stage integrator (Heun, RK4, ...). A backend-neutral numerical contract: whether the coupling is part of the vector field, re-evaluated at each solver stage, or computed once per step and held constant across the stages. Matters because the two choices integrate a different effective system β€” for stiff / chaotic / multistable dynamics they can converge to different trajectories or attractors.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/CouplingStageEvaluation#per_stage"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/CouplingStageEvaluation#per_step"/> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/Cusp --> + + <owl:Class rdf:about="https://w3id.org/tvbo/Cusp"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Bifurcation"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasCodimension"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/Codimension2"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:comment xml:lang="en">Codim-2 organising centre where two fold curves meet tangentially.</rdfs:comment> + <rdfs:label xml:lang="en">Cusp</rdfs:label> + <skos:altLabel>CP</skos:altLabel> + <skos:altLabel>cp</skos:altLabel> + <skos:altLabel>cusp</skos:altLabel> + <tvbo:canonicalCode>CP</tvbo:canonicalCode> + </owl:Class> + + + <!-- https://w3id.org/tvbo/DataSource --> <owl:Class rdf:about="https://w3id.org/tvbo/DataSource"> @@ -9881,6 +10427,26 @@ + <!-- https://w3id.org/tvbo/DenseDelayGraph --> + + <owl:Class rdf:about="https://w3id.org/tvbo/DenseDelayGraph"> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:comment xml:lang="en">Dense adjacency with a delay-history buffer, used when any coupling carries a conduction delay and graph_representation resolves to dense. Required for interpolated (differentiable) delays (Β§4.1b).</rdfs:comment> + <rdfs:label xml:lang="en">DenseDelayGraph</rdfs:label> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/DenseGraph --> + + <owl:Class rdf:about="https://w3id.org/tvbo/DenseGraph"> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:comment xml:lang="en">Dense adjacency, instantaneous coupling. Used when graph_representation resolves to dense and no coupling carries a conduction delay.</rdfs:comment> + <rdfs:label xml:lang="en">DenseGraph</rdfs:label> + </owl:Class> + + + <!-- https://w3id.org/tvbo/DerivedParameter --> <owl:Class rdf:about="https://w3id.org/tvbo/DerivedParameter"> @@ -10709,6 +11275,93 @@ + <!-- https://w3id.org/tvbo/DistributionConfig --> + + <owl:Class rdf:about="https://w3id.org/tvbo/DistributionConfig"> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/by"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/WorkflowDistributeBy"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/vectorize"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/workflow"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/by"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/workflow"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/by"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/chunk"/> + <owl:allValuesFrom> + <rdfs:Datatype> + <owl:intersectionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="http://www.w3.org/2001/XMLSchema#integer"/> + <rdfs:Datatype> + <owl:onDatatype rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/> + <owl:withRestrictions rdf:parseType="Collection"> + <rdf:Description> + <xsd:minInclusive rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</xsd:minInclusive> + </rdf:Description> + </owl:withRestrictions> + </rdfs:Datatype> + </owl:intersectionOf> + </rdfs:Datatype> + </owl:allValuesFrom> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/chunk"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/vectorize"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/chunk"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>DistributionConfig</rdfs:label> + <skos:definition>Policy for mapping a parameter sweep's exploration axes onto the two parallelism tiers when rendering a distributed workflow. Vectorized axes are packed into a single batched backend call (e.g. vmap/pmap); workflow axes are fanned out into independent scheduler tasks, one per value combination. Backend-independent: the emitter validates that a requested vectorized axis is one the chosen backend can actually batch.</skos:definition> + <skos:exactMatch rdf:resource="https://w3id.org/tvbo/DistributionConfig"/> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + </owl:Class> + + + <!-- https://w3id.org/tvbo/DomainEnforcement --> <owl:Class rdf:about="https://w3id.org/tvbo/DomainEnforcement"> @@ -11607,6 +12260,16 @@ + <!-- https://w3id.org/tvbo/EigenvalueSignature --> + + <owl:Class rdf:about="https://w3id.org/tvbo/EigenvalueSignature"> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:comment xml:lang="en">Qualitative crossing of the Jacobian spectrum through the stability boundary at the bifurcation.</rdfs:comment> + <rdfs:label xml:lang="en">Eigenvalue signature</rdfs:label> + </owl:Class> + + + <!-- https://w3id.org/tvbo/ElementType --> <owl:Class rdf:about="https://w3id.org/tvbo/ElementType"> @@ -11657,6 +12320,55 @@ + <!-- https://w3id.org/tvbo/EnvironmentVariable --> + + <owl:Class rdf:about="https://w3id.org/tvbo/EnvironmentVariable"> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/name"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/value"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/name"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/value"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/name"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/value"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>EnvironmentVariable</rdfs:label> + <skos:definition>One environment variable assignment exported before executing the workflow task command. Use this for reproducible runtime knobs such as XLA/OMP settings in emitted workflow artefacts.</skos:definition> + <skos:exactMatch rdf:resource="https://w3id.org/tvbo/EnvironmentVariable"/> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + </owl:Class> + + + <!-- https://w3id.org/tvbo/Equation --> <owl:Class rdf:about="https://w3id.org/tvbo/Equation"> @@ -12491,6 +13203,18 @@ <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/sweep_direction"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/SweepDirection"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/sweep_seeding"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/SweepSeeding"/> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/algorithms"/> @@ -12551,6 +13275,18 @@ <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/sweep_direction"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/sweep_seeding"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/description"/> @@ -12593,6 +13329,18 @@ <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/sweep_direction"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/sweep_seeding"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/n_parallel"/> @@ -12696,6 +13444,12 @@ <owl:Class rdf:about="https://w3id.org/tvbo/ExplorationAxis"> <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/builder"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/FunctionCall"/> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/description"/> @@ -12732,6 +13486,12 @@ <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/builder"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/description"/> @@ -12768,6 +13528,12 @@ <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/builder"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/description"/> @@ -13007,11 +13773,65 @@ + <!-- https://w3id.org/tvbo/Fold --> + + <owl:Class rdf:about="https://w3id.org/tvbo/Fold"> + <owl:equivalentClass rdf:resource="https://w3id.org/tvbo/SaddleNode"/> + <owl:equivalentClass> + <owl:Class> + <owl:intersectionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="https://w3id.org/tvbo/Bifurcation"/> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasBranchGeometry"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/LimitPointGeometry"/> + </owl:Restriction> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasCodimension"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/Codimension1"/> + </owl:Restriction> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasEigenvalueSignature"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/RealEigenvalueZero"/> + </owl:Restriction> + </owl:intersectionOf> + </owl:Class> + </owl:equivalentClass> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Bifurcation"/> + <rdfs:comment xml:lang="en">Saddle-node (limit / turning point): a pair of equilibria collide and annihilate as one real eigenvalue crosses zero and the branch folds back on the parameter.</rdfs:comment> + <rdfs:label xml:lang="en">Fold</rdfs:label> + <skos:altLabel>LP</skos:altLabel> + <skos:altLabel>fold</skos:altLabel> + <skos:altLabel>limit point</skos:altLabel> + <skos:altLabel>limitpoint</skos:altLabel> + <skos:altLabel>lp</skos:altLabel> + <skos:altLabel>saddle-node</skos:altLabel> + <skos:altLabel>saddlenode</skos:altLabel> + <skos:altLabel>sn</skos:altLabel> + <skos:prefLabel xml:lang="en">Fold</skos:prefLabel> + <tvbo:canonicalCode>LP</tvbo:canonicalCode> + </owl:Class> + + + <!-- https://w3id.org/tvbo/FoldOfLimitCycles --> <owl:Class rdf:about="https://w3id.org/tvbo/FoldOfLimitCycles"> <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Bifurcation"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasCodimension"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/Codimension1"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:comment xml:lang="en">Saddle-node of periodic orbits: two limit cycles collide and annihilate as a Floquet multiplier crosses +1.</rdfs:comment> <rdfs:label xml:lang="en">Fold of limit cycles</rdfs:label> + <skos:altLabel>LPC</skos:altLabel> + <skos:altLabel>cpc</skos:altLabel> + <skos:altLabel>fold of limit cycles</skos:altLabel> + <skos:altLabel>fold-of-limit-cycles</skos:altLabel> + <skos:altLabel>lpc</skos:altLabel> + <skos:altLabel>snpo</skos:altLabel> + <tvbo:canonicalCode>LPC</tvbo:canonicalCode> </owl:Class> @@ -13739,6 +14559,28 @@ + <!-- https://w3id.org/tvbo/GeneralizedHopf --> + + <owl:Class rdf:about="https://w3id.org/tvbo/GeneralizedHopf"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Bifurcation"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasCodimension"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/Codimension2"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:comment xml:lang="en">Codim-2 point where a Hopf bifurcation switches between sub- and supercritical (first Lyapunov coefficient vanishes); a fold-of-limit-cycles curve emanates.</rdfs:comment> + <rdfs:label xml:lang="en">Generalized Hopf (Bautin)</rdfs:label> + <skos:altLabel>GH</skos:altLabel> + <skos:altLabel>bautin</skos:altLabel> + <skos:altLabel>generalised hopf</skos:altLabel> + <skos:altLabel>generalized hopf</skos:altLabel> + <skos:altLabel>gh</skos:altLabel> + <tvbo:canonicalCode>GH</tvbo:canonicalCode> + </owl:Class> + + + <!-- https://w3id.org/tvbo/GraphGenerator --> <owl:Class rdf:about="https://w3id.org/tvbo/GraphGenerator"> @@ -13921,6 +14763,30 @@ + <!-- https://w3id.org/tvbo/GraphRepresentation --> + + <owl:Class rdf:about="https://w3id.org/tvbo/GraphRepresentation"> + <owl:equivalentClass> + <owl:Class> + <owl:unionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="https://w3id.org/tvbo/GraphRepresentation#auto"/> + <rdf:Description rdf:about="https://w3id.org/tvbo/GraphRepresentation#dense"/> + <rdf:Description rdf:about="https://w3id.org/tvbo/GraphRepresentation#sparse"/> + </owl:unionOf> + </owl:Class> + </owl:equivalentClass> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>GraphRepresentation</rdfs:label> + <skos:definition>How a Network's connectivity is represented when evaluating coupling. This is a backend-independent performance contract, not a numerical one: both representations compute the same coupling, but a sparse representation sums over the existing edges (cost scales with the number of edges) while a dense representation operates on the full adjacency (cost scales with nodes-squared). A backend maps the choice onto its own primitives (edge gather / segment-sum vs matrix product). Orthogonal to whether the coupling reads *delayed* states β€” that is decided per coupling by its conduction delay β€” so the two dimensions together yield the four backend graph kinds: dense/sparse Γ— instantaneous/delayed.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/GraphRepresentation#auto"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/GraphRepresentation#dense"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/GraphRepresentation#sparse"/> + </owl:Class> + + + <!-- https://w3id.org/tvbo/Hemisphere --> <owl:Class rdf:about="https://w3id.org/tvbo/Hemisphere"> @@ -13965,11 +14831,53 @@ <!-- https://w3id.org/tvbo/Hopf --> <owl:Class rdf:about="https://w3id.org/tvbo/Hopf"> + <owl:equivalentClass> + <owl:Class> + <owl:intersectionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="https://w3id.org/tvbo/Bifurcation"/> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasCodimension"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/Codimension1"/> + </owl:Restriction> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasEigenvalueSignature"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/ConjugatePairImaginary"/> + </owl:Restriction> + </owl:intersectionOf> + </owl:Class> + </owl:equivalentClass> <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Bifurcation"/> </owl:Class> + <!-- https://w3id.org/tvbo/HopfHopf --> + + <owl:Class rdf:about="https://w3id.org/tvbo/HopfHopf"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Bifurcation"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasCodimension"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/Codimension2"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasEigenvalueSignature"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/TwoImaginaryPairs"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:comment xml:lang="en">Codim-2 point where two Hopf curves cross (two imaginary pairs simultaneously).</rdfs:comment> + <rdfs:label xml:lang="en">Hopf-Hopf (double Hopf)</rdfs:label> + <skos:altLabel>HH</skos:altLabel> + <skos:altLabel>double hopf</skos:altLabel> + <skos:altLabel>hh</skos:altLabel> + <skos:altLabel>hopf-hopf</skos:altLabel> + <tvbo:canonicalCode>HH</tvbo:canonicalCode> + </owl:Class> + + + <!-- https://w3id.org/tvbo/ImagingModality --> <owl:Class rdf:about="https://w3id.org/tvbo/ImagingModality"> @@ -14407,6 +15315,12 @@ <owl:Class rdf:about="https://w3id.org/tvbo/Integrator"> <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Solver"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/coupling_evaluation"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/CouplingStageEvaluation"/> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/description"/> @@ -14455,6 +15369,12 @@ <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/DerivedVariable"/> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/coupling_evaluation"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/description"/> @@ -14509,6 +15429,12 @@ <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/coupling_evaluation"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/description"/> @@ -15647,6 +16573,29 @@ + <!-- https://w3id.org/tvbo/NeimarkSacker --> + + <owl:Class rdf:about="https://w3id.org/tvbo/NeimarkSacker"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Bifurcation"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasCodimension"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/Codimension1"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:comment xml:lang="en">Torus (Neimark-Sacker) bifurcation of a limit cycle: a complex pair of Floquet multipliers crosses the unit circle, birthing an invariant torus.</rdfs:comment> + <rdfs:label xml:lang="en">Neimark-Sacker</rdfs:label> + <skos:altLabel>TR</skos:altLabel> + <skos:altLabel>neimark sacker</skos:altLabel> + <skos:altLabel>neimark-sacker</skos:altLabel> + <skos:altLabel>ns</skos:altLabel> + <skos:altLabel>torus</skos:altLabel> + <skos:altLabel>tr</skos:altLabel> + <tvbo:canonicalCode>TR</tvbo:canonicalCode> + </owl:Class> + + + <!-- https://w3id.org/tvbo/Network --> <owl:Class rdf:about="https://w3id.org/tvbo/Network"> @@ -15729,6 +16678,12 @@ <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/GraphGenerator"/> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/graph_representation"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/GraphRepresentation"/> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/label"/> @@ -15879,6 +16834,12 @@ <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/graph_representation"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/label"/> @@ -15975,6 +16936,12 @@ <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/graph_representation"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/label"/> @@ -16136,6 +17103,12 @@ <owl:Class rdf:about="https://w3id.org/tvbo/Node"> <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="http://uri.interlex.org/tgbugs/uris/readable/alternateName"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/description"/> @@ -16280,6 +17253,12 @@ <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#boolean"/> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="http://uri.interlex.org/tgbugs/uris/readable/alternateName"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/id"/> @@ -16325,6 +17304,28 @@ + <!-- https://w3id.org/tvbo/NodeReconciliation --> + + <owl:Class rdf:about="https://w3id.org/tvbo/NodeReconciliation"> + <owl:equivalentClass> + <owl:Class> + <owl:unionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="https://w3id.org/tvbo/NodeReconciliation#by_label"/> + <rdf:Description rdf:about="https://w3id.org/tvbo/NodeReconciliation#none"/> + </owl:unionOf> + </owl:Class> + </owl:equivalentClass> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>NodeReconciliation</rdfs:label> + <skos:definition>Strategy for aligning a dataset-sourced empirical target's nodes to the model network before comparison. Keyed alignment is the default so a differing node count or ordering (e.g. a 998-parcel empirical FC against a 1000-parcel model) cannot silently misalign the comparison.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/NodeReconciliation#by_label"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/NodeReconciliation#none"/> + </owl:Class> + + + <!-- https://w3id.org/tvbo/Noise --> <owl:Class rdf:about="https://w3id.org/tvbo/Noise"> @@ -16656,6 +17657,12 @@ <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/dynamics"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/Dynamics"/> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/environment"/> @@ -16698,6 +17705,18 @@ <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/FunctionCall"/> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/query"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/BidsEntities"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/reconcile"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/NodeReconciliation"/> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/source"/> @@ -16759,6 +17778,12 @@ <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/dynamics"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/environment"/> @@ -16801,6 +17826,18 @@ <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/query"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/reconcile"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/source"/> @@ -16843,6 +17880,12 @@ <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/dynamics"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/environment"/> @@ -16873,6 +17916,18 @@ <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/query"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/reconcile"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/time_scale"/> @@ -16885,12 +17940,46 @@ <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#float"/> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/min_coverage"/> + <owl:allValuesFrom> + <rdfs:Datatype> + <owl:intersectionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="http://www.w3.org/2001/XMLSchema#float"/> + <rdfs:Datatype> + <owl:onDatatype rdf:resource="http://www.w3.org/2001/XMLSchema#float"/> + <owl:withRestrictions rdf:parseType="Collection"> + <rdf:Description> + <xsd:minInclusive rdf:datatype="http://www.w3.org/2001/XMLSchema#float">0.0</xsd:minInclusive> + </rdf:Description> + </owl:withRestrictions> + </rdfs:Datatype> + <rdfs:Datatype> + <owl:onDatatype rdf:resource="http://www.w3.org/2001/XMLSchema#float"/> + <owl:withRestrictions rdf:parseType="Collection"> + <rdf:Description> + <xsd:maxInclusive rdf:datatype="http://www.w3.org/2001/XMLSchema#float">1.0</xsd:maxInclusive> + </rdf:Description> + </owl:withRestrictions> + </rdfs:Datatype> + </owl:intersectionOf> + </rdfs:Datatype> + </owl:allValuesFrom> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/period"/> <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#float"/> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/record"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#boolean"/> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/skip_t"/> @@ -16927,12 +18016,24 @@ <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/min_coverage"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/period"/> <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/record"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/skip_t"/> @@ -16975,12 +18076,24 @@ <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/min_coverage"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/period"/> <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/record"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/skip_t"/> @@ -18276,7 +19389,20 @@ <owl:Class rdf:about="https://w3id.org/tvbo/PeriodDoubling"> <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Bifurcation"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasCodimension"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/Codimension1"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:comment xml:lang="en">Flip bifurcation of a limit cycle: a Floquet multiplier crosses -1 and a period-doubled cycle branches off.</rdfs:comment> <rdfs:label xml:lang="en">Period doubling</rdfs:label> + <skos:altLabel>PD</skos:altLabel> + <skos:altLabel>flip</skos:altLabel> + <skos:altLabel>pd</skos:altLabel> + <skos:altLabel>period doubling</skos:altLabel> + <skos:altLabel>period-doubling</skos:altLabel> + <tvbo:canonicalCode>PD</tvbo:canonicalCode> </owl:Class> @@ -18506,8 +19632,9 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <!-- https://w3id.org/tvbo/Pitchfork --> <owl:Class rdf:about="https://w3id.org/tvbo/Pitchfork"> - <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Bifurcation"/> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/BranchPoint"/> <rdfs:label xml:lang="en">Pitchfork</rdfs:label> + <skos:altLabel>pitchfork</skos:altLabel> </owl:Class> @@ -19488,6 +20615,55 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. + <!-- https://w3id.org/tvbo/SchedulerDirective --> + + <owl:Class rdf:about="https://w3id.org/tvbo/SchedulerDirective"> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/name"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/value"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/name"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/value"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/name"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/value"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>SchedulerDirective</rdfs:label> + <skos:definition>One engine-native scheduler directive passed through verbatim by the engine's emitter (e.g. a Slurm ``#SBATCH --<name>=<value>`` line). The open extension point of WorkflowEngineConfig: it carries any directive the typed fields do not name, so a new scheduler flag needs no schema change.</skos:definition> + <skos:exactMatch rdf:resource="https://w3id.org/tvbo/SchedulerDirective"/> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + </owl:Class> + + + <!-- https://w3id.org/tvbo/SexEnum --> <owl:Class rdf:about="https://w3id.org/tvbo/SexEnum"> @@ -19659,6 +20835,12 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/Stimulus"/> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/workflow"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/WorkflowConfig"/> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/additional_equations"/> @@ -19797,6 +20979,12 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/workflow"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/connectivity"/> @@ -19881,6 +21069,12 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/workflow"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/id"/> @@ -19989,6 +21183,12 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/SimulationExperiment"/> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/workflow"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/WorkflowConfig"/> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/label"/> @@ -20013,6 +21213,12 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/workflow"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/label"/> @@ -20031,6 +21237,12 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> </owl:Restriction> </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/workflow"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> <rdfs:subClassOf> <owl:Restriction> <owl:onProperty rdf:resource="https://w3id.org/tvbo/derived_from"/> @@ -20155,6 +21367,16 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. + <!-- https://w3id.org/tvbo/SparseDelayGraph --> + + <owl:Class rdf:about="https://w3id.org/tvbo/SparseDelayGraph"> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:comment xml:lang="en">Edge-list adjacency with a delay-history buffer, used when any coupling carries a conduction delay and graph_representation resolves to sparse.</rdfs:comment> + <rdfs:label xml:lang="en">SparseDelayGraph</rdfs:label> + </owl:Class> + + + <!-- https://w3id.org/tvbo/SparseFormat --> <owl:Class rdf:about="https://w3id.org/tvbo/SparseFormat"> @@ -20178,6 +21400,16 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. + <!-- https://w3id.org/tvbo/SparseGraph --> + + <owl:Class rdf:about="https://w3id.org/tvbo/SparseGraph"> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:comment xml:lang="en">Edge-list adjacency, instantaneous coupling. Used when graph_representation resolves to sparse and no coupling carries a conduction delay.</rdfs:comment> + <rdfs:label xml:lang="en">SparseGraph</rdfs:label> + </owl:Class> + + + <!-- https://w3id.org/tvbo/SpatialDomain --> <owl:Class rdf:about="https://w3id.org/tvbo/SpatialDomain"> @@ -21216,6 +22448,7 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <owl:Class rdf:about="https://w3id.org/tvbo/SubcriticalHopf"> <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Hopf"/> <rdfs:label xml:lang="en">Subcritical Hopf</rdfs:label> + <skos:altLabel>subcritical hopf</skos:altLabel> </owl:Class> @@ -21228,6 +22461,52 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. + <!-- https://w3id.org/tvbo/SweepDirection --> + + <owl:Class rdf:about="https://w3id.org/tvbo/SweepDirection"> + <owl:equivalentClass> + <owl:Class> + <owl:unionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="https://w3id.org/tvbo/SweepDirection#bidirectional"/> + <rdf:Description rdf:about="https://w3id.org/tvbo/SweepDirection#down"/> + <rdf:Description rdf:about="https://w3id.org/tvbo/SweepDirection#up"/> + </owl:unionOf> + </owl:Class> + </owl:equivalentClass> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>SweepDirection</rdfs:label> + <skos:definition>Order in which a branch-following sweep (SweepSeeding.from_previous) traverses its axis. Ignored for independent seeding, where order is irrelevant.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/SweepDirection#bidirectional"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/SweepDirection#down"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/SweepDirection#up"/> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/SweepSeeding --> + + <owl:Class rdf:about="https://w3id.org/tvbo/SweepSeeding"> + <owl:equivalentClass> + <owl:Class> + <owl:unionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="https://w3id.org/tvbo/SweepSeeding#from_previous"/> + <rdf:Description rdf:about="https://w3id.org/tvbo/SweepSeeding#independent"/> + </owl:unionOf> + </owl:Class> + </owl:equivalentClass> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>SweepSeeding</rdfs:label> + <skos:definition>How each point of a parameter sweep (Exploration) obtains its initial state. Determines whether the sweep points are independent (and therefore parallelisable) or whether the trajectory follows a solution branch as the swept parameter is changed quasi-statically. The latter is forward-time-integration branch following β€” distinct from numerical continuation of equilibria (the Continuation class), which tracks branches with a Newton corrector rather than by simulation.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/SweepSeeding#from_previous"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/SweepSeeding#independent"/> + </owl:Class> + + + <!-- https://w3id.org/tvbo/SystemType --> <owl:Class rdf:about="https://w3id.org/tvbo/SystemType"> @@ -21906,8 +23185,9 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <!-- https://w3id.org/tvbo/Transcritical --> <owl:Class rdf:about="https://w3id.org/tvbo/Transcritical"> - <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Bifurcation"/> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/BranchPoint"/> <rdfs:label xml:lang="en">Transcritical</rdfs:label> + <skos:altLabel>transcritical</skos:altLabel> </owl:Class> @@ -22063,11 +23343,13 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <rdf:Description rdf:about="http://qudt.org/vocab/unit/H-PER-M"/> <rdf:Description rdf:about="http://qudt.org/vocab/unit/HZ"/> <rdf:Description rdf:about="http://qudt.org/vocab/unit/KiloGM"/> + <rdf:Description rdf:about="http://qudt.org/vocab/unit/KiloGM-M2"/> <rdf:Description rdf:about="http://qudt.org/vocab/unit/KiloHZ"/> <rdf:Description rdf:about="http://qudt.org/vocab/unit/M"/> <rdf:Description rdf:about="http://qudt.org/vocab/unit/M-PER-SEC"/> <rdf:Description rdf:about="http://qudt.org/vocab/unit/M-PER-SEC2"/> <rdf:Description rdf:about="http://qudt.org/vocab/unit/MOL-PER-M3"/> + <rdf:Description rdf:about="http://qudt.org/vocab/unit/MegaW"/> <rdf:Description rdf:about="http://qudt.org/vocab/unit/MicroM3"/> <rdf:Description rdf:about="http://qudt.org/vocab/unit/MicroS"/> <rdf:Description rdf:about="http://qudt.org/vocab/unit/MicroSEC"/> @@ -22099,6 +23381,7 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <rdf:Description rdf:about="http://qudt.org/vocab/unit/SEC2"/> <rdf:Description rdf:about="http://qudt.org/vocab/unit/UNITLESS"/> <rdf:Description rdf:about="http://qudt.org/vocab/unit/V"/> + <rdf:Description rdf:about="http://qudt.org/vocab/unit/W"/> <rdf:Description rdf:about="https://w3id.org/tvbo/UnitEnum#Hz_per_nA"/> <rdf:Description rdf:about="https://w3id.org/tvbo/UnitEnum#Mohm"/> <rdf:Description rdf:about="https://w3id.org/tvbo/UnitEnum#S_per_cm2"/> @@ -22128,11 +23411,13 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/H-PER-M"/> <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/HZ"/> <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/KiloGM"/> + <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/KiloGM-M2"/> <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/KiloHZ"/> <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/M"/> <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/M-PER-SEC"/> <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/M-PER-SEC2"/> <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/MOL-PER-M3"/> + <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/MegaW"/> <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/MicroM3"/> <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/MicroS"/> <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/MicroSEC"/> @@ -22164,6 +23449,7 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/SEC2"/> <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/UNITLESS"/> <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/V"/> + <linkml:permissible_values rdf:resource="http://qudt.org/vocab/unit/W"/> <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/UnitEnum#Hz_per_nA"/> <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/UnitEnum#Mohm"/> <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/UnitEnum#S_per_cm2"/> @@ -22316,6 +23602,628 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. + <!-- https://w3id.org/tvbo/WorkflowConfig --> + + <owl:Class rdf:about="https://w3id.org/tvbo/WorkflowConfig"> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/container"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/distribute"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/DistributionConfig"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/nextflow"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/WorkflowEngineConfig"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/out_dir"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/requirements"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/software/SoftwareRequirement"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/rng"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/slurm"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/WorkflowEngineConfig"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/snakemake"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/WorkflowEngineConfig"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/distribute"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/nextflow"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/provenance"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/requirements"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/slurm"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/snakemake"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/distribute"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/nextflow"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/provenance"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/slurm"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/snakemake"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/chunk"/> + <owl:allValuesFrom> + <rdfs:Datatype> + <owl:intersectionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="http://www.w3.org/2001/XMLSchema#integer"/> + <rdfs:Datatype> + <owl:onDatatype rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/> + <owl:withRestrictions rdf:parseType="Collection"> + <rdf:Description> + <xsd:minInclusive rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</xsd:minInclusive> + </rdf:Description> + </owl:withRestrictions> + </rdfs:Datatype> + </owl:intersectionOf> + </rdfs:Datatype> + </owl:allValuesFrom> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/provenance"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#boolean"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/retries"/> + <owl:allValuesFrom> + <rdfs:Datatype> + <owl:intersectionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="http://www.w3.org/2001/XMLSchema#integer"/> + <rdfs:Datatype> + <owl:onDatatype rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/> + <owl:withRestrictions rdf:parseType="Collection"> + <rdf:Description> + <xsd:minInclusive rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">0</xsd:minInclusive> + </rdf:Description> + </owl:withRestrictions> + </rdfs:Datatype> + </owl:intersectionOf> + </rdfs:Datatype> + </owl:allValuesFrom> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/chunk"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/container"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/out_dir"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/retries"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/rng"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/chunk"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/container"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/out_dir"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/retries"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/rng"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>WorkflowConfig</rdfs:label> + <skos:definition>Declarative orchestration for rendering a parameter sweep into a distributed, reproducible workflow (Slurm array, Snakemake, Nextflow). Backend- and engine-independent: it names *what* to distribute, *where* results go, and the per-engine resources, while each engine emitter renders the concrete artefact. Declared on a study as ``workflow`` and refined per experiment via ``workflow_overrides``; unset fields fall back to the emitter's defaults so an override sets only what it names.</skos:definition> + <skos:exactMatch rdf:resource="https://w3id.org/tvbo/WorkflowConfig"/> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/WorkflowDistributeBy --> + + <owl:Class rdf:about="https://w3id.org/tvbo/WorkflowDistributeBy"> + <owl:equivalentClass> + <owl:Class> + <owl:unionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="https://w3id.org/tvbo/WorkflowDistributeBy#auto"/> + <rdf:Description rdf:about="https://w3id.org/tvbo/WorkflowDistributeBy#vectorize"/> + <rdf:Description rdf:about="https://w3id.org/tvbo/WorkflowDistributeBy#workflow"/> + </owl:unionOf> + </owl:Class> + </owl:equivalentClass> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>WorkflowDistributeBy</rdfs:label> + <skos:definition>Default tier a sweep axis is placed on when it is not named explicitly in a DistributionConfig. Vectorized axes are packed into one batched backend call; workflow axes are fanned out into independent scheduler tasks.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/WorkflowDistributeBy#auto"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/WorkflowDistributeBy#vectorize"/> + <linkml:permissible_values rdf:resource="https://w3id.org/tvbo/WorkflowDistributeBy#workflow"/> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/WorkflowEngineConfig --> + + <owl:Class rdf:about="https://w3id.org/tvbo/WorkflowEngineConfig"> + <rdfs:subClassOf rdf:resource="http://www.w3.org/2002/07/owl#Thing"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/account"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/env"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/EnvironmentVariable"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/executor"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/gres"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/mail_type"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/mail_user"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/mem"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/modules"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/options"/> + <owl:allValuesFrom rdf:resource="https://w3id.org/tvbo/SchedulerDirective"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/partition"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/queue"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/setup"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/time"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/venv"/> + <owl:allValuesFrom rdf:resource="http://www.w3.org/2001/XMLSchema#string"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/env"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/options"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/time"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/time"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/array_chunk"/> + <owl:allValuesFrom> + <rdfs:Datatype> + <owl:intersectionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="http://www.w3.org/2001/XMLSchema#integer"/> + <rdfs:Datatype> + <owl:onDatatype rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/> + <owl:withRestrictions rdf:parseType="Collection"> + <rdf:Description> + <xsd:minInclusive rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</xsd:minInclusive> + </rdf:Description> + </owl:withRestrictions> + </rdfs:Datatype> + </owl:intersectionOf> + </rdfs:Datatype> + </owl:allValuesFrom> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/cores"/> + <owl:allValuesFrom> + <rdfs:Datatype> + <owl:intersectionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="http://www.w3.org/2001/XMLSchema#integer"/> + <rdfs:Datatype> + <owl:onDatatype rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/> + <owl:withRestrictions rdf:parseType="Collection"> + <rdf:Description> + <xsd:minInclusive rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</xsd:minInclusive> + </rdf:Description> + </owl:withRestrictions> + </rdfs:Datatype> + </owl:intersectionOf> + </rdfs:Datatype> + </owl:allValuesFrom> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/cpus_per_task"/> + <owl:allValuesFrom> + <rdfs:Datatype> + <owl:intersectionOf rdf:parseType="Collection"> + <rdf:Description rdf:about="http://www.w3.org/2001/XMLSchema#integer"/> + <rdfs:Datatype> + <owl:onDatatype rdf:resource="http://www.w3.org/2001/XMLSchema#integer"/> + <owl:withRestrictions rdf:parseType="Collection"> + <rdf:Description> + <xsd:minInclusive rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">1</xsd:minInclusive> + </rdf:Description> + </owl:withRestrictions> + </rdfs:Datatype> + </owl:intersectionOf> + </rdfs:Datatype> + </owl:allValuesFrom> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/account"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/array_chunk"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/cores"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/cpus_per_task"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/executor"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/gres"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/mail_type"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/mail_user"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/mem"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/modules"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/partition"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/queue"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/setup"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/venv"/> + <owl:minCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">0</owl:minCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/account"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/array_chunk"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/cores"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/cpus_per_task"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/executor"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/gres"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/mail_type"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/mail_user"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/mem"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/partition"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/queue"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/venv"/> + <owl:maxCardinality rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1</owl:maxCardinality> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>WorkflowEngineConfig</rdfs:label> + <skos:definition>Execution directives for a workflow engine. Every field is optional and each engine's emitter consumes the subset it supports, so one block may carry directives for more than one target. The generic resource fields (cpus_per_task, mem, time) map across engines; the remaining fields are named for the engine that reads them (Slurm: partition/account/gres/ mail_*/array_chunk; Snakemake: cores; Nextflow: executor/queue). Any directive not named here is passed through ``options`` verbatim, so the block stays extensible without a schema change.</skos:definition> + <skos:exactMatch rdf:resource="https://w3id.org/tvbo/WorkflowEngineConfig"/> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/ZeroHopf --> + + <owl:Class rdf:about="https://w3id.org/tvbo/ZeroHopf"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/Bifurcation"/> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasCodimension"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/Codimension2"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:subClassOf> + <owl:Restriction> + <owl:onProperty rdf:resource="https://w3id.org/tvbo/hasEigenvalueSignature"/> + <owl:hasValue rdf:resource="https://w3id.org/tvbo/RealZeroAndImaginaryPair"/> + </owl:Restriction> + </rdfs:subClassOf> + <rdfs:comment xml:lang="en">Codim-2 point with a real zero eigenvalue and an imaginary pair simultaneously; a fold curve meets a Hopf curve.</rdfs:comment> + <rdfs:label xml:lang="en">Zero-Hopf (fold-Hopf)</rdfs:label> + <skos:altLabel>ZH</skos:altLabel> + <skos:altLabel>fold-hopf</skos:altLabel> + <skos:altLabel>gavrilov-guckenheimer</skos:altLabel> + <skos:altLabel>zero-hopf</skos:altLabel> + <skos:altLabel>zh</skos:altLabel> + <tvbo:canonicalCode>ZH</tvbo:canonicalCode> + </owl:Class> + + + <!-- https://w3id.org/tvbo/AggregationType#first --> <owl:Class rdf:about="https://w3id.org/tvbo/AggregationType#first"> @@ -22364,6 +24272,30 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. + <!-- https://w3id.org/tvbo/AggregationType#std --> + + <owl:Class rdf:about="https://w3id.org/tvbo/AggregationType#std"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/AggregationType"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>std (AggregationType)</rdfs:label> + <skos:definition>Standard deviation over time (per node)</skos:definition> + <skos:notation>std</skos:notation> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/AggregationType#variance --> + + <owl:Class rdf:about="https://w3id.org/tvbo/AggregationType#variance"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/AggregationType"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>variance (AggregationType)</rdfs:label> + <skos:definition>Variance over time (per node)</skos:definition> + <skos:notation>variance</skos:notation> + </owl:Class> + + + <!-- https://w3id.org/tvbo/AggregationType#window --> <owl:Class rdf:about="https://w3id.org/tvbo/AggregationType#window"> @@ -22480,6 +24412,30 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. + <!-- https://w3id.org/tvbo/CouplingStageEvaluation#per_stage --> + + <owl:Class rdf:about="https://w3id.org/tvbo/CouplingStageEvaluation#per_stage"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/CouplingStageEvaluation"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>per_stage (CouplingStageEvaluation)</rdfs:label> + <skos:definition>Re-evaluate the coupling at every integrator stage β€” the coupling is a full part of the vector field (standard ODE integration). Accurate; required to reproduce reference integrators for stiff / chaotic / multistable systems. (tvboptim maps this to recompute_coupling_per_stage=True; diffrax already recomputes the whole RHS per stage.)</skos:definition> + <skos:notation>per_stage</skos:notation> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/CouplingStageEvaluation#per_step --> + + <owl:Class rdf:about="https://w3id.org/tvbo/CouplingStageEvaluation#per_step"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/CouplingStageEvaluation"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>per_step (CouplingStageEvaluation)</rdfs:label> + <skos:definition>Evaluate the coupling once per integration step and hold it constant across the stages β€” a TVB-style efficiency shortcut (the coupling reduction runs once per step). Faster but lower- order in the coupling; can change the trajectory for sensitive systems. (tvboptim: recompute_coupling_per_stage=False, the current backend default.)</skos:definition> + <skos:notation>per_step</skos:notation> + </owl:Class> + + + <!-- https://w3id.org/tvbo/DevelopmentStatus#active --> <owl:Class rdf:about="https://w3id.org/tvbo/DevelopmentStatus#active"> @@ -22931,6 +24887,42 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. + <!-- https://w3id.org/tvbo/GraphRepresentation#auto --> + + <owl:Class rdf:about="https://w3id.org/tvbo/GraphRepresentation#auto"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/GraphRepresentation"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>auto (GraphRepresentation)</rdfs:label> + <skos:definition>Select by connection density: use the sparse representation when the adjacency is sparse enough that edge-wise evaluation is cheaper than the dense product, dense otherwise. Default. Lets the backend apply its own crossover without the recipe hard-coding a data structure.</skos:definition> + <skos:notation>auto</skos:notation> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/GraphRepresentation#dense --> + + <owl:Class rdf:about="https://w3id.org/tvbo/GraphRepresentation#dense"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/GraphRepresentation"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>dense (GraphRepresentation)</rdfs:label> + <skos:definition>Force the dense-adjacency representation. Preferred for densely connected or small networks, where dense linear algebra's constant-factor efficiency outweighs its nodes-squared scaling.</skos:definition> + <skos:notation>dense</skos:notation> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/GraphRepresentation#sparse --> + + <owl:Class rdf:about="https://w3id.org/tvbo/GraphRepresentation#sparse"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/GraphRepresentation"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>sparse (GraphRepresentation)</rdfs:label> + <skos:definition>Force the edge-list (sparse) representation. Preferred for large, sparsely connected networks (structural connectomes, power grids) where coupling cost then scales with the number of edges rather than nodes-squared.</skos:definition> + <skos:notation>sparse</skos:notation> + </owl:Class> + + + <!-- https://w3id.org/tvbo/Hemisphere#both --> <owl:Class rdf:about="https://w3id.org/tvbo/Hemisphere#both"> @@ -23199,6 +25191,30 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. + <!-- https://w3id.org/tvbo/NodeReconciliation#by_label --> + + <owl:Class rdf:about="https://w3id.org/tvbo/NodeReconciliation#by_label"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/NodeReconciliation"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>by_label (NodeReconciliation)</rdfs:label> + <skos:definition>Restrict both sides to their shared node labels by name (keyed ``.sel``), preserving the model network's order. Never positional.</skos:definition> + <skos:notation>by_label</skos:notation> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/NodeReconciliation#none --> + + <owl:Class rdf:about="https://w3id.org/tvbo/NodeReconciliation#none"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/NodeReconciliation"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>none (NodeReconciliation)</rdfs:label> + <skos:definition>No reconciliation; the node sets are assumed identical.</skos:definition> + <skos:notation>none</skos:notation> + </owl:Class> + + + <!-- https://w3id.org/tvbo/NoiseType#brown --> <owl:Class rdf:about="https://w3id.org/tvbo/NoiseType#brown"> @@ -23365,7 +25381,7 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/ParallelMode"/> <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> <rdfs:label>pmap (ParallelMode)</rdfs:label> - <skos:definition>Cross-device parallel execution (jax.pmap). For multi-GPU/TPU.</skos:definition> + <skos:definition>Parallel execution across the local devices of a single node (jax.pmap over the several GPUs/TPUs visible to that task). Intra-task only β€” it never spans nodes; inter-node parallelism is scheduler fan-out (DistributionConfig.chunk), not pmap. On a one-GPU (or CPU) task this degenerates to vmap.</skos:definition> <skos:notation>pmap</skos:notation> </owl:Class> @@ -23931,6 +25947,66 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. + <!-- https://w3id.org/tvbo/SweepDirection#bidirectional --> + + <owl:Class rdf:about="https://w3id.org/tvbo/SweepDirection#bidirectional"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/SweepDirection"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>bidirectional (SweepDirection)</rdfs:label> + <skos:definition>Increase then decrease over the same values, recording both branches. Where the two branches differ, the sweep traces a hysteresis loop that exposes coexisting stable states (bistability / multistability). The multivalued generalisation of Continuation.bothside.</skos:definition> + <skos:notation>bidirectional</skos:notation> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/SweepDirection#down --> + + <owl:Class rdf:about="https://w3id.org/tvbo/SweepDirection#down"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/SweepDirection"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>down (SweepDirection)</rdfs:label> + <skos:definition>Decrease the parameter monotonically (high to low), once.</skos:definition> + <skos:notation>down</skos:notation> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/SweepDirection#up --> + + <owl:Class rdf:about="https://w3id.org/tvbo/SweepDirection#up"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/SweepDirection"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>up (SweepDirection)</rdfs:label> + <skos:definition>Increase the parameter monotonically (low to high), once.</skos:definition> + <skos:notation>up</skos:notation> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/SweepSeeding#from_previous --> + + <owl:Class rdf:about="https://w3id.org/tvbo/SweepSeeding#from_previous"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/SweepSeeding"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>from_previous (SweepSeeding)</rdfs:label> + <skos:definition>Each point is seeded from the final state of the preceding point, so the trajectory follows the solution branch as the swept parameter changes quasi-statically. Forces sequential, order-dependent execution (emitted as a scan, not a vmap). Used to reach a working point by slowly ramping a parameter (e.g. global coupling) and, with sweep_direction, to expose hysteresis / multistability. Sweep-granularity analogue of InitialStateMethod.from_branch.</skos:definition> + <skos:notation>from_previous</skos:notation> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/SweepSeeding#independent --> + + <owl:Class rdf:about="https://w3id.org/tvbo/SweepSeeding#independent"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/SweepSeeding"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>independent (SweepSeeding)</rdfs:label> + <skos:definition>Each point is initialised independently from the model's initial values (a cold start), so points are order-independent and may be evaluated in parallel (see parallel_mode). Default; today's behaviour.</skos:definition> + <skos:notation>independent</skos:notation> + </owl:Class> + + + <!-- https://w3id.org/tvbo/SystemType#continuous --> <owl:Class rdf:about="https://w3id.org/tvbo/SystemType#continuous"> @@ -24159,6 +26235,42 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. + <!-- https://w3id.org/tvbo/WorkflowDistributeBy#auto --> + + <owl:Class rdf:about="https://w3id.org/tvbo/WorkflowDistributeBy#auto"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/WorkflowDistributeBy"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>auto (WorkflowDistributeBy)</rdfs:label> + <skos:definition>Vectorize every axis the backend can batch; fan out the rest.</skos:definition> + <skos:notation>auto</skos:notation> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/WorkflowDistributeBy#vectorize --> + + <owl:Class rdf:about="https://w3id.org/tvbo/WorkflowDistributeBy#vectorize"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/WorkflowDistributeBy"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>vectorize (WorkflowDistributeBy)</rdfs:label> + <skos:definition>Place all otherwise-unassigned axes on the vectorized tier.</skos:definition> + <skos:notation>vectorize</skos:notation> + </owl:Class> + + + + <!-- https://w3id.org/tvbo/WorkflowDistributeBy#workflow --> + + <owl:Class rdf:about="https://w3id.org/tvbo/WorkflowDistributeBy#workflow"> + <rdfs:subClassOf rdf:resource="https://w3id.org/tvbo/WorkflowDistributeBy"/> + <rdfs:isDefinedBy rdf:resource="https://w3id.org/tvbo/struct"/> + <rdfs:label>workflow (WorkflowDistributeBy)</rdfs:label> + <skos:definition>Fan out all otherwise-unassigned axes as scheduler tasks.</skos:definition> + <skos:notation>workflow</skos:notation> + </owl:Class> + + + <!-- https://w3id.org/tvbo/clinical/ClinicalApplicationStudy --> <owl:Class rdf:about="https://w3id.org/tvbo/clinical/ClinicalApplicationStudy"> @@ -26811,6 +28923,15 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. + <!-- https://w3id.org/tvbo/BranchCrossingGeometry --> + + <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/BranchCrossingGeometry"> + <rdf:type rdf:resource="https://w3id.org/tvbo/BranchGeometry"/> + <rdfs:label xml:lang="en">branch crossing (transversal intersection of solution branches)</rdfs:label> + </owl:NamedIndividual> + + + <!-- https://w3id.org/tvbo/BuiltinModelLibrary --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/BuiltinModelLibrary"> @@ -26830,7 +28951,7 @@ Aligns with the BIDS phenotype standard (https://bids-specification.readthedocs. <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/CakanObermayer"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2852"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3102"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bistable"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Quiescent"/> @@ -26877,7 +28998,7 @@ Defaults are taken verbatim from ``neurolib/models/aln/loadDefaultParams.py``. N <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/CakanObermayer/state_variables/mu_si"/> <tvbo:model_type>neural_mass</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2852"> + <rdf:Description rdf:nodeID="genid3102"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> @@ -26900,6 +29021,24 @@ Defaults are taken verbatim from ``neurolib/models/aln/loadDefaultParams.py``. N + <!-- https://w3id.org/tvbo/Codimension1 --> + + <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/Codimension1"> + <rdf:type rdf:resource="https://w3id.org/tvbo/Codimension"/> + <rdfs:label xml:lang="en">codimension 1</rdfs:label> + </owl:NamedIndividual> + + + + <!-- https://w3id.org/tvbo/Codimension2 --> + + <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/Codimension2"> + <rdf:type rdf:resource="https://w3id.org/tvbo/Codimension"/> + <rdfs:label xml:lang="en">codimension 2</rdfs:label> + </owl:NamedIndividual> + + + <!-- https://w3id.org/tvbo/ConductionSpeedInference --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/ConductionSpeedInference"> @@ -26912,6 +29051,15 @@ Defaults are taken verbatim from ``neurolib/models/aln/loadDefaultParams.py``. N + <!-- https://w3id.org/tvbo/ConjugatePairImaginary --> + + <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/ConjugatePairImaginary"> + <rdf:type rdf:resource="https://w3id.org/tvbo/EigenvalueSignature"/> + <rdfs:label xml:lang="en">a complex-conjugate pair crosses the imaginary axis</rdfs:label> + </owl:NamedIndividual> + + + <!-- https://w3id.org/tvbo/ContinuationSolver --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/ContinuationSolver"> @@ -26925,7 +29073,7 @@ Defaults are taken verbatim from ``neurolib/models/aln/loadDefaultParams.py``. N <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/CoombesByrne"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2853"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3103"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Quiescent"/> <tvbo:hasAttractor rdf:resource="https://w3id.org/tvbo/FixedPoint"/> @@ -26953,7 +29101,7 @@ $Z$. Using the conformal transformation $Z=(1-W^\star)/(1+W^\star)$ and $W= \pi <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/CoombesByrne/state_variables/r"/> <tvbo:model_type>mean_field</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2853"> + <rdf:Description rdf:nodeID="genid3103"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> @@ -26964,7 +29112,7 @@ $Z$. Using the conformal transformation $Z=(1-W^\star)/(1+W^\star)$ and $W= \pi <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/CoombesByrne2D"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2854"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3104"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Quiescent"/> <tvbo:hasAttractor rdf:resource="https://w3id.org/tvbo/FixedPoint"/> @@ -26983,7 +29131,7 @@ $Z$. Using the conformal transformation $Z=(1-W^\star)/(1+W^\star)$ and $W= \pi <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/CoombesByrne2D/state_variables/r"/> <tvbo:model_type>mean_field</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2854"> + <rdf:Description rdf:nodeID="genid3104"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> @@ -27059,6 +29207,17 @@ $Z$. Using the conformal transformation $Z=(1-W^\star)/(1+W^\star)$ and $W= \pi + <!-- https://w3id.org/tvbo/DenseCoupling --> + + <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/DenseCoupling"> + <rdf:type rdf:resource="https://w3id.org/tvbo/BackendCapability"/> + <rdfs:comment xml:lang="en">Evaluate network coupling as a product over the full nodes-by-nodes adjacency. Preferred for densely-connected or small networks, where dense linear algebra's constant-factor efficiency outweighs its nodes-squared scaling.</rdfs:comment> + <rdfs:label xml:lang="en">Dense (full-adjacency) coupling evaluation</rdfs:label> + <tvbo:enabledByGraphParameter>graph_representation</tvbo:enabledByGraphParameter> + </owl:NamedIndividual> + + + <!-- https://w3id.org/tvbo/Deterministic --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/Deterministic"/> @@ -27074,11 +29233,20 @@ $Z$. Using the conformal transformation $Z=(1-W^\star)/(1+W^\star)$ and $W= \pi + <!-- https://w3id.org/tvbo/DoubleZeroEigenvalue --> + + <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/DoubleZeroEigenvalue"> + <rdf:type rdf:resource="https://w3id.org/tvbo/EigenvalueSignature"/> + <rdfs:label xml:lang="en">a double-zero (nilpotent) eigenvalue</rdfs:label> + </owl:NamedIndividual> + + + <!-- https://w3id.org/tvbo/DumontGutkin --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/DumontGutkin"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2855"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3105"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bistable"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:hasAttractor rdf:resource="https://w3id.org/tvbo/FixedPoint"/> @@ -27114,7 +29282,7 @@ $Z$. Using the conformal transformation $Z=(1-W^\star)/(1+W^\star)$ and $W= \pi <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/DumontGutkin/state_variables/s_ii"/> <tvbo:model_type>mean_field</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2855"> + <rdf:Description rdf:nodeID="genid3105"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> @@ -27137,8 +29305,8 @@ $Z$. Using the conformal transformation $Z=(1-W^\star)/(1+W^\star)$ and $W= \pi <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/Epileptor"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2856"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2857"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3106"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3107"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bistable"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bursting"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> @@ -27184,13 +29352,13 @@ $Z$. Using the conformal transformation $Z=(1-W^\star)/(1+W^\star)$ and $W= \pi <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/Epileptor/state_variables/z"/> <tvbo:model_type>neural_mass</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2856"> + <rdf:Description rdf:nodeID="genid3106"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> - <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/SaddleNode"/> + <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/HomoclinicBifurcation"/> </rdf:Description> - <rdf:Description rdf:nodeID="genid2857"> + <rdf:Description rdf:nodeID="genid3107"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> - <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/HomoclinicBifurcation"/> + <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/SaddleNode"/> </rdf:Description> @@ -27199,7 +29367,7 @@ $Z$. Using the conformal transformation $Z=(1-W^\star)/(1+W^\star)$ and $W= \pi <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/Epileptor2D"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2858"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3108"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bistable"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:hasAttractor rdf:resource="https://w3id.org/tvbo/FixedPoint"/> @@ -27237,7 +29405,7 @@ Note: <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/Epileptor2D/state_variables/z"/> <tvbo:model_type>phenomenological</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2858"> + <rdf:Description rdf:nodeID="genid3108"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/SaddleNode"/> </rdf:Description> @@ -27275,7 +29443,7 @@ Note: <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/Epileptor5D"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2859"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3109"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bistable"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bursting"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> @@ -27334,7 +29502,7 @@ Note: <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/Epileptor5D/state_variables/z"/> <tvbo:model_type>phenomenological</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2859"> + <rdf:Description rdf:nodeID="genid3109"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/SaddleNode"/> </rdf:Description> @@ -27445,7 +29613,7 @@ Note: <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/EpileptorRestingState"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2860"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3110"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bistable"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bursting"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> @@ -27508,7 +29676,7 @@ This model, its motivation and derivation can be found in the published article <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/EpileptorRestingState/state_variables/z"/> <tvbo:model_type>phenomenological</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2860"> + <rdf:Description rdf:nodeID="genid3110"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/SaddleNode"/> </rdf:Description> @@ -27578,6 +29746,17 @@ This model, its motivation and derivation can be found in the published article + <!-- https://w3id.org/tvbo/FiniteDifferenceAnalysis --> + + <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/FiniteDifferenceAnalysis"> + <rdf:type rdf:resource="https://w3id.org/tvbo/AnalysisObservable"/> + <rdfs:comment xml:lang="en">Seed-averaged central finite-difference sensitivity of a target with respect to a parameter; the mean is the gradient estimate, the sem its standard error. Parameters: delta, seeds, seed_base, stat. Binds via target + wrt.</rdfs:comment> + <rdfs:label xml:lang="en">Finite-difference analysis</rdfs:label> + <tvbo:realisedByBackend>tvboptim</tvbo:realisedByBackend> + </owl:NamedIndividual> + + + <!-- https://w3id.org/tvbo/FixedPoint --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/FixedPoint"/> @@ -27597,7 +29776,7 @@ This model, its motivation and derivation can be found in the published article <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/GastSchmidtKnosche_SD"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2861"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3111"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Quiescent"/> <tvbo:hasAttractor rdf:resource="https://w3id.org/tvbo/FixedPoint"/> @@ -27641,7 +29820,7 @@ This model, its motivation and derivation can be found in the published article <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/GastSchmidtKnosche_SD/state_variables/r"/> <tvbo:model_type>neural_mass</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2861"> + <rdf:Description rdf:nodeID="genid3111"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> @@ -27652,7 +29831,7 @@ This model, its motivation and derivation can be found in the published article <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/GastSchmidtKnosche_SF"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2862"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3112"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Quiescent"/> <tvbo:hasAttractor rdf:resource="https://w3id.org/tvbo/FixedPoint"/> @@ -27679,7 +29858,7 @@ This model, its motivation and derivation can be found in the published article <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/GastSchmidtKnosche_SF/state_variables/r"/> <tvbo:model_type>neural_mass</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2862"> + <rdf:Description rdf:nodeID="genid3112"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> @@ -27690,8 +29869,8 @@ This model, its motivation and derivation can be found in the published article <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/Generic2dOscillator"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2863"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2864"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3113"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3114"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bistable"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Excitable"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> @@ -27721,13 +29900,13 @@ This model, its motivation and derivation can be found in the published article <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/Generic2dOscillator/state_variables/W"/> <tvbo:model_type>generic</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2863"> + <rdf:Description rdf:nodeID="genid3113"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> - <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> + <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/SaddleNode"/> </rdf:Description> - <rdf:Description rdf:nodeID="genid2864"> + <rdf:Description rdf:nodeID="genid3114"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> - <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/SaddleNode"/> + <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> @@ -27752,6 +29931,17 @@ This model, its motivation and derivation can be found in the published article + <!-- https://w3id.org/tvbo/GradientAnalysis --> + + <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/GradientAnalysis"> + <rdf:type rdf:resource="https://w3id.org/tvbo/AnalysisObservable"/> + <rdfs:comment xml:lang="en">Autodiff (forward/reverse) gradient of a target observable or loss with respect to named parameters β€” the untruncated sensitivity of the full solve. Parameters: mode. Binds via target + wrt.</rdfs:comment> + <rdfs:label xml:lang="en">Gradient analysis</rdfs:label> + <tvbo:realisedByBackend>tvboptim</tvbo:realisedByBackend> + </owl:NamedIndividual> + + + <!-- https://w3id.org/tvbo/GradientBasedOptimization --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/GradientBasedOptimization"> @@ -27889,7 +30079,7 @@ Note: <!-- https://w3id.org/tvbo/Jansen1995 --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/Jansen1995"> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2865"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3115"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Quiescent"/> <tvbo:hasAttractor rdf:resource="https://w3id.org/tvbo/FixedPoint"/> @@ -27906,7 +30096,7 @@ Note: <rdfs:label xml:lang="en">Jansen 1995</rdfs:label> <skos:prefLabel xml:lang="en">Jansen 1995</skos:prefLabel> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2865"> + <rdf:Description rdf:nodeID="genid3115"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> @@ -27917,7 +30107,7 @@ Note: <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/JansenRit"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2866"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3116"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Quiescent"/> <tvbo:hasAttractor rdf:resource="https://w3id.org/tvbo/FixedPoint"/> @@ -27961,7 +30151,7 @@ Note: <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/JansenRit/state_variables/y5"/> <tvbo:model_type>neural_mass</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2866"> + <rdf:Description rdf:nodeID="genid3116"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> @@ -27972,7 +30162,7 @@ Note: <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/JansenRit1995"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2867"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3117"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Quiescent"/> <tvbo:hasAttractor rdf:resource="https://w3id.org/tvbo/FixedPoint"/> @@ -28002,7 +30192,7 @@ Note: <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/JansenRit1995/state_variables/y5"/> <tvbo:model_type>neural_mass</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2867"> + <rdf:Description rdf:nodeID="genid3117"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> @@ -28022,7 +30212,7 @@ Note: <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/KIonEx"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2868"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3118"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bistable"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bursting"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> @@ -28110,7 +30300,7 @@ The model is derived as the mathematical limit of an infinite number of all-to-a <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/KIonEx/state_variables/x"/> <tvbo:model_type>mean_field</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2868"> + <rdf:Description rdf:nodeID="genid3118"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/SaddleNode"/> </rdf:Description> @@ -28176,7 +30366,7 @@ The model is derived as the mathematical limit of an infinite number of all-to-a <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/LarterBreakspear"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2869"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3119"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bistable"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Chaotic"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> @@ -28252,7 +30442,7 @@ Note: <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/LarterBreakspear/state_variables/Z"/> <tvbo:model_type>neural_mass</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2869"> + <rdf:Description rdf:nodeID="genid3119"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> @@ -28265,6 +30455,15 @@ Note: + <!-- https://w3id.org/tvbo/LimitPointGeometry --> + + <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/LimitPointGeometry"> + <rdf:type rdf:resource="https://w3id.org/tvbo/BranchGeometry"/> + <rdfs:label xml:lang="en">limit point (turning point; branch tangent to the parameter axis)</rdfs:label> + </owl:NamedIndividual> + + + <!-- https://w3id.org/tvbo/Linear --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/Linear"> @@ -28277,6 +30476,17 @@ Note: + <!-- https://w3id.org/tvbo/LyapunovAnalysis --> + + <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/LyapunovAnalysis"> + <rdf:type rdf:resource="https://w3id.org/tvbo/AnalysisObservable"/> + <rdfs:comment xml:lang="en">Benettin QR estimate of the tangent-dynamics Lyapunov spectrum: the leading exponents lambda_i (rate of trajectory divergence, chaos when lambda_1 > 0) and, for the leading direction, the per-node Lyapunov vector xi_i (which nodes drive the instability). Parameters: n_exponents, n_steps (rescaling segments), segment_time, mode (tangent-space jvp / two-trajectory sim). Independent per operating point, so it fans out across a parameter axis.</rdfs:comment> + <rdfs:label xml:lang="en">Lyapunov analysis</rdfs:label> + <tvbo:realisedByBackend>tvboptim</tvbo:realisedByBackend> + </owl:NamedIndividual> + + + <!-- https://w3id.org/tvbo/ModelJansen1995 --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/ModelJansen1995"> @@ -28308,8 +30518,8 @@ Note: <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/MontbrioPazoRoxin"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2870"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2871"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3120"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3121"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bistable"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Quiescent"/> @@ -28332,13 +30542,13 @@ Note: <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/MontbrioPazoRoxin/state_variables/r"/> <tvbo:model_type>mean_field</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2870"> + <rdf:Description rdf:nodeID="genid3120"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> - <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> + <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/SaddleNode"/> </rdf:Description> - <rdf:Description rdf:nodeID="genid2871"> + <rdf:Description rdf:nodeID="genid3121"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> - <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/SaddleNode"/> + <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> @@ -28451,6 +30661,24 @@ Note: + <!-- https://w3id.org/tvbo/RealEigenvalueZero --> + + <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/RealEigenvalueZero"> + <rdf:type rdf:resource="https://w3id.org/tvbo/EigenvalueSignature"/> + <rdfs:label xml:lang="en">one real eigenvalue crosses zero</rdfs:label> + </owl:NamedIndividual> + + + + <!-- https://w3id.org/tvbo/RealZeroAndImaginaryPair --> + + <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/RealZeroAndImaginaryPair"> + <rdf:type rdf:resource="https://w3id.org/tvbo/EigenvalueSignature"/> + <rdfs:label xml:lang="en">a real zero eigenvalue together with an imaginary pair</rdfs:label> + </owl:NamedIndividual> + + + <!-- https://w3id.org/tvbo/ReducedSetFitzHughNagumo --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/ReducedSetFitzHughNagumo"> @@ -28694,6 +30922,18 @@ The total synaptic input x combines local excitatory recurrence (w), external in + <!-- https://w3id.org/tvbo/SparseCoupling --> + + <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/SparseCoupling"> + <rdf:type rdf:resource="https://w3id.org/tvbo/BackendCapability"/> + <rdfs:comment xml:lang="en">Evaluate network coupling by summing over the existing edges only (cost scales with the number of edges) rather than over the full dense adjacency (cost scales with nodes-squared). Numerically identical to the dense evaluation; a pure performance optimisation for sparsely-connected networks.</rdfs:comment> + <rdfs:label xml:lang="en">Sparse (edge-list) coupling evaluation</rdfs:label> + <tvbo:boundConstraint>edges << nodes^2 (connection density below the backend's sparse/dense crossover)</tvbo:boundConstraint> + <tvbo:enabledByGraphParameter>graph_representation</tvbo:enabledByGraphParameter> + </owl:NamedIndividual> + + + <!-- https://w3id.org/tvbo/StaticDelayBuffer --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/StaticDelayBuffer"> @@ -28830,7 +31070,7 @@ The total synaptic input x combines local excitatory recurrence (w), external in <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/SupHopf"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2872"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3122"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Quiescent"/> <tvbo:hasAttractor rdf:resource="https://w3id.org/tvbo/FixedPoint"/> @@ -28850,7 +31090,7 @@ This normal form has a supercritical bifurcation at 'a=0' with 'a <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/SupHopf/state_variables/y"/> <tvbo:model_type>generic</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2872"> + <rdf:Description rdf:nodeID="genid3122"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/SupercriticalHopf"/> </rdf:Description> @@ -28931,6 +31171,15 @@ This normal form has a supercritical bifurcation at 'a=0' with 'a + <!-- https://w3id.org/tvbo/TwoImaginaryPairs --> + + <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/TwoImaginaryPairs"> + <rdf:type rdf:resource="https://w3id.org/tvbo/EigenvalueSignature"/> + <rdfs:label xml:lang="en">two distinct imaginary pairs</rdfs:label> + </owl:NamedIndividual> + + + <!-- https://w3id.org/tvbo/VectorizedRNG --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/VectorizedRNG"> @@ -28944,8 +31193,8 @@ This normal form has a supercritical bifurcation at 'a=0' with 'a <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/WilsonCowan"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2873"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2874"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3123"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3124"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Bistable"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Quiescent"/> @@ -29011,11 +31260,11 @@ Note: <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/WilsonCowan/state_variables/I"/> <tvbo:model_type>neural_mass</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2873"> + <rdf:Description rdf:nodeID="genid3123"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> - <rdf:Description rdf:nodeID="genid2874"> + <rdf:Description rdf:nodeID="genid3124"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/SaddleNode"/> </rdf:Description> @@ -29026,7 +31275,7 @@ Note: <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/ZerlautAdaptationFirstOrder"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2875"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3125"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Quiescent"/> <tvbo:hasAttractor rdf:resource="https://w3id.org/tvbo/FixedPoint"/> @@ -29145,7 +31394,7 @@ Note: <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/ZerlautAdaptationFirstOrder/state_variables/ou_drift"/> <tvbo:model_type>mean_field</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2875"> + <rdf:Description rdf:nodeID="genid3125"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> @@ -29246,7 +31495,7 @@ Note: <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/ZetterbergJansen"> <rdf:type rdf:resource="https://w3id.org/tvbo/Dynamics"/> - <tvbo:exhibitsBifurcation rdf:nodeID="genid2876"/> + <tvbo:exhibitsBifurcation rdf:nodeID="genid3126"/> <tvbo:exhibitsRegime rdf:resource="https://w3id.org/tvbo/Oscillatory"/> <tvbo:hasAttractor rdf:resource="https://w3id.org/tvbo/FixedPoint"/> <tvbo:hasAttractor rdf:resource="https://w3id.org/tvbo/LimitCycle"/> @@ -29293,7 +31542,7 @@ Note: <tvbo:hasStateVariable rdf:resource="https://w3id.org/tvbo/ZetterbergJansen/state_variables/y5"/> <tvbo:model_type>neural_mass</tvbo:model_type> </owl:NamedIndividual> - <rdf:Description rdf:nodeID="genid2876"> + <rdf:Description rdf:nodeID="genid3126"> <rdf:type rdf:resource="https://w3id.org/tvbo/BifurcationEvent"/> <tvbo:bifurcationType rdf:resource="https://w3id.org/tvbo/Hopf"/> </rdf:Description> @@ -46700,15 +48949,6 @@ to a task-appropriate range (e.g. omega in Hz). - <!-- https://w3id.org/tvbo/studies/Arnold1968a --> - - <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Arnold1968a"> - <rdf:type rdf:resource="http://schema.org/ScholarlyArticle"/> - <rdfs:label>Arnold1968a</rdfs:label> - </owl:NamedIndividual> - - - <!-- https://w3id.org/tvbo/studies/Bandyopadhyay2021 --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Bandyopadhyay2021"> @@ -47314,15 +49554,6 @@ to a task-appropriate range (e.g. omega in Hz). - <!-- https://w3id.org/tvbo/studies/GuckenheimerHolmes1983Alias --> - - <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/GuckenheimerHolmes1983Alias"> - <rdf:type rdf:resource="http://schema.org/ScholarlyArticle"/> - <rdfs:label>GuckenheimerHolmes1983Alias</rdfs:label> - </owl:NamedIndividual> - - - <!-- https://w3id.org/tvbo/studies/Halvorsen2000 --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Halvorsen2000"> @@ -47356,16 +49587,6 @@ to a task-appropriate range (e.g. omega in Hz). - <!-- https://w3id.org/tvbo/studies/Henon1964 --> - - <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Henon1964"> - <rdf:type rdf:resource="http://schema.org/ScholarlyArticle"/> - <schema:identifier>10.1086/109234</schema:identifier> - <rdfs:label>Henon1964</rdfs:label> - </owl:NamedIndividual> - - - <!-- https://w3id.org/tvbo/studies/Henon1976 --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Henon1976"> @@ -47399,15 +49620,6 @@ to a task-appropriate range (e.g. omega in Hz). - <!-- https://w3id.org/tvbo/studies/Hindmarsh1984 --> - - <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Hindmarsh1984"> - <rdf:type rdf:resource="http://schema.org/ScholarlyArticle"/> - <rdfs:label>Hindmarsh1984</rdfs:label> - </owl:NamedIndividual> - - - <!-- https://w3id.org/tvbo/studies/HindmarshRose1984 --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/HindmarshRose1984"> @@ -47424,16 +49636,6 @@ to a task-appropriate range (e.g. omega in Hz). - <!-- https://w3id.org/tvbo/studies/Hodgkin1952 --> - - <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Hodgkin1952"> - <rdf:type rdf:resource="http://schema.org/ScholarlyArticle"/> - <schema:identifier>10.1113/jphysiol.1952.sp004764</schema:identifier> - <rdfs:label>Hodgkin1952</rdfs:label> - </owl:NamedIndividual> - - - <!-- https://w3id.org/tvbo/studies/HodgkinHuxley1952 --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/HodgkinHuxley1952"> @@ -47824,15 +50026,6 @@ to a task-appropriate range (e.g. omega in Hz). - <!-- https://w3id.org/tvbo/studies/Micluta-Campeanu2018 --> - - <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Micluta-Campeanu2018"> - <rdf:type rdf:resource="http://schema.org/ScholarlyArticle"/> - <rdfs:label>Micluta-Campeanu2018</rdfs:label> - </owl:NamedIndividual> - - - <!-- https://w3id.org/tvbo/studies/MiclutaCampeanu2018 --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/MiclutaCampeanu2018"> @@ -47850,16 +50043,6 @@ to a task-appropriate range (e.g. omega in Hz). - <!-- https://w3id.org/tvbo/studies/Mirshra2018 --> - - <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Mirshra2018"> - <rdf:type rdf:resource="http://schema.org/ScholarlyArticle"/> - <schema:identifier>10.1103/PhysRevE.97.062311</schema:identifier> - <rdfs:label>Mirshra2018</rdfs:label> - </owl:NamedIndividual> - - - <!-- https://w3id.org/tvbo/studies/Mishra2018 --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Mishra2018"> @@ -47882,16 +50065,6 @@ to a task-appropriate range (e.g. omega in Hz). - <!-- https://w3id.org/tvbo/studies/Mishra2018a --> - - <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Mishra2018a"> - <rdf:type rdf:resource="http://schema.org/ScholarlyArticle"/> - <schema:identifier>10.1103/PhysRevE.97.062311</schema:identifier> - <rdfs:label>Mishra2018a</rdfs:label> - </owl:NamedIndividual> - - - <!-- https://w3id.org/tvbo/studies/Montbrio2015 --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Montbrio2015"> @@ -47955,15 +50128,6 @@ to a task-appropriate range (e.g. omega in Hz). - <!-- https://w3id.org/tvbo/studies/Ott2010 --> - - <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Ott2010"> - <rdf:type rdf:resource="http://schema.org/ScholarlyArticle"/> - <rdfs:label>Ott2010</rdfs:label> - </owl:NamedIndividual> - - - <!-- https://w3id.org/tvbo/studies/OttRiddled2014 --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/OttRiddled2014"> @@ -48093,34 +50257,6 @@ to a task-appropriate range (e.g. omega in Hz). - <!-- https://w3id.org/tvbo/studies/Roessler1979Alias --> - - <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Roessler1979Alias"> - <rdf:type rdf:resource="http://schema.org/ScholarlyArticle"/> - <rdfs:label>Roessler1979Alias</rdfs:label> - </owl:NamedIndividual> - - - - <!-- https://w3id.org/tvbo/studies/Rossler1976 --> - - <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Rossler1976"> - <rdf:type rdf:resource="http://schema.org/ScholarlyArticle"/> - <schema:identifier>10.1016/0375-9601(76)90101-8</schema:identifier> - <rdfs:label>Rossler1976</rdfs:label> - </owl:NamedIndividual> - - - - <!-- https://w3id.org/tvbo/studies/Rossler1979 --> - - <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Rossler1979"> - <rdf:type rdf:resource="http://schema.org/ScholarlyArticle"/> - <rdfs:label>Rossler1979</rdfs:label> - </owl:NamedIndividual> - - - <!-- https://w3id.org/tvbo/studies/Ruelle1980 --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Ruelle1980"> @@ -48449,15 +50585,6 @@ to a task-appropriate range (e.g. omega in Hz). - <!-- https://w3id.org/tvbo/studies/Volo2019a --> - - <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Volo2019a"> - <rdf:type rdf:resource="http://schema.org/ScholarlyArticle"/> - <rdfs:label>Volo2019a</rdfs:label> - </owl:NamedIndividual> - - - <!-- https://w3id.org/tvbo/studies/Wang2008 --> <owl:NamedIndividual rdf:about="https://w3id.org/tvbo/studies/Wang2008"> @@ -48758,10 +50885,21 @@ to a task-appropriate range (e.g. omega in Hz). <rdfs:label xml:lang="en">Fixed point</rdfs:label> </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/HomoclinicBifurcation"> + <rdfs:comment xml:lang="en">Global bifurcation where a limit cycle collides with a saddle equilibrium, forming a homoclinic orbit of infinite period.</rdfs:comment> <rdfs:label xml:lang="en">Homoclinic</rdfs:label> + <skos:altLabel>hom</skos:altLabel> + <skos:altLabel>homoclinic</skos:altLabel> </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/Hopf"> + <rdfs:comment xml:lang="en">Andronov-Hopf: an equilibrium loses stability as a complex-conjugate eigenvalue pair crosses the imaginary axis, giving birth to a limit cycle.</rdfs:comment> <rdfs:label xml:lang="en">Hopf</rdfs:label> + <skos:altLabel>HB</skos:altLabel> + <skos:altLabel>andronov hopf</skos:altLabel> + <skos:altLabel>andronov-hopf</skos:altLabel> + <skos:altLabel>hb</skos:altLabel> + <skos:altLabel>hopf</skos:altLabel> + <skos:prefLabel xml:lang="en">Hopf</skos:prefLabel> + <tvbo:canonicalCode>HB</tvbo:canonicalCode> </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/LimitCycle"> <rdfs:label xml:lang="en">Limit cycle</rdfs:label> @@ -48776,13 +50914,15 @@ to a task-appropriate range (e.g. omega in Hz). <rdfs:label xml:lang="en">Quiescent</rdfs:label> </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/SaddleNode"> - <rdfs:label xml:lang="en">Saddle-node</rdfs:label> + <skos:altLabel>saddle-node</skos:altLabel> + <skos:altLabel>sn</skos:altLabel> </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/StrangeAttractor"> <rdfs:label xml:lang="en">Strange attractor</rdfs:label> </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/SupercriticalHopf"> <rdfs:label xml:lang="en">Supercritical Hopf</rdfs:label> + <skos:altLabel>supercritical hopf</skos:altLabel> </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/Torus"> <rdfs:label xml:lang="en">Torus</rdfs:label> @@ -48793,6 +50933,12 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>accelerator</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/account"> + <rdfs:label>account (slot)</rdfs:label> + <skos:definition>Accounting allocation to charge the tasks against (Slurm).</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>account</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/acronym"> <rdfs:label>acronym (slot)</rdfs:label> <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> @@ -48875,6 +51021,12 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>connectivity_ref</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/container"> + <rdfs:label>container (slot)</rdfs:label> + <skos:definition>Container image wrapping each task (Apptainer/Singularity/Docker reference); tasks run as ``<runtime> exec <image> …``.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>container</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/curvature"> <rdfs:label>curvature (slot)</rdfs:label> <skos:definition>Optional path to per-vertex curvature (N,) float. Default convention: ``mesh/curvature``.</skos:definition> @@ -48920,6 +51072,12 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>derived_from</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/desc"> + <rdfs:label>desc (slot)</rdfs:label> + <skos:definition>BIDS desc- entity (e.g., FCavg, SC), for disambiguating derived data variants</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>desc</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/description"> <rdfs:label>description (slot)</rdfs:label> <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> @@ -48954,6 +51112,12 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>equation_type</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/executor"> + <rdfs:label>executor (slot)</rdfs:label> + <skos:definition>Executor to run the pipeline through (Nextflow process.executor).</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>executor</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/experiment_yaml_hash"> <rdfs:label>experiment_yaml_hash (slot)</rdfs:label> <skos:definition>SHA-256 hex digest of the normalised experiment YAML that produced this artifact. Used by the cross-experiment cache (see :class:`SimulationStudy.from_file`) to detect when a cached upstream result has gone stale because the experiment's spec was edited. Computed as ``hashlib.sha256(yaml.safe_dump(normalized_yaml).encode()).hexdigest()`` over the fully resolved (post-``!include``) experiment block.</skos:definition> @@ -48977,6 +51141,12 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>geometry</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/gres"> + <rdfs:label>gres (slot)</rdfs:label> + <skos:definition>Generic scheduler resources, e.g. 'gpu:1' (Slurm --gres).</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>gres</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/groups"> <rdfs:label>groups (slot)</rdfs:label> <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> @@ -49051,6 +51221,18 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>license</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/mail_type"> + <rdfs:label>mail_type (slot)</rdfs:label> + <skos:definition>Scheduler notification trigger (e.g. 'END,FAIL').</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>mail_type</skos:notation> + </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/mail_user"> + <rdfs:label>mail_user (slot)</rdfs:label> + <skos:definition>Notification email address.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>mail_user</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/measure"> <rdfs:label>measure (slot)</rdfs:label> <skos:definition>Selector into the source. When `source` points at a Network with per-node parameters (or a dscalar with multiple maps), picks which named measure to load. Aligns with names listed in Network.structural_measures / Network.observational_measures. Ignored when the source resolves to a scalar/array dataset.</skos:definition> @@ -49069,6 +51251,12 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>measures</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/mem"> + <rdfs:label>mem (slot)</rdfs:label> + <skos:definition>Memory per task in scheduler syntax (e.g. '16G').</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>mem</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/mesh_file"> <rdfs:label>mesh_file (slot)</rdfs:label> <skos:definition>Path to external mesh file (GIFTI, VTK, MSH, FreeSurfer, etc.).</skos:definition> @@ -49098,6 +51286,12 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>module</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/modules"> + <rdfs:label>modules (slot)</rdfs:label> + <skos:definition>Environment modules to load before running (module load …).</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>modules</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/name"> <rdfs:label>name (slot)</rdfs:label> <skos:definition>Globally unique identifier for the entity.</skos:definition> @@ -49139,6 +51333,12 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>on_region</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/out_dir"> + <rdfs:label>out_dir (slot)</rdfs:label> + <skos:definition>Output directory template. ``{study}`` and ``{experiment}`` are substituted with the study and experiment keys at emit time. Unset means ``out/{study}/{experiment}``.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>out_dir</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/outsym"> <rdfs:label>outsym (slot)</rdfs:label> <skos:definition>Output symbol names for the edge model. E.g. ['P'] for a scalar power flow, ['Fx', 'Fy'] for 2D forces. Maps directly to outsym in ND.jl EdgeModel. If not specified, derived from coupling variables of the connected vertex dynamics.</skos:definition> @@ -49157,6 +51357,12 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>parent_network</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/partition"> + <rdfs:label>partition (slot)</rdfs:label> + <skos:definition>Scheduler partition to submit to (Slurm).</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>partition</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/precision"> <rdfs:label>precision (slot)</rdfs:label> <skos:definition>Floating point precision: 'float32' or 'float64'</skos:definition> @@ -49186,6 +51392,12 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>quantity_kind</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/queue"> + <rdfs:label>queue (slot)</rdfs:label> + <skos:definition>Scheduler queue for the executor (Nextflow process.queue).</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>queue</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/reconstruction"> <rdfs:label>reconstruction (slot)</rdfs:label> <skos:definition>BIDS rec- entity (e.g., dTOR)</skos:definition> @@ -49195,7 +51407,7 @@ to a task-appropriate range (e.g. omega in Hz). <rdf:Description rdf:about="https://w3id.org/tvbo/record"> <rdfs:label>record (slot)</rdfs:label> <skos:definition>Names of observations to compute and record at EACH grid point, stacked over the sweep into one array per name. Entries may be derived observations (e.g. `loss`) or `analysis` diagnostics (e.g. `ad_gradient`, `fd_gradient`, `lyapunov`) β€” this is how a sweep of the diagnostics themselves is declared, replacing any per-point Python driver. Complementary to `observable` (a single scalar reduction); when both are absent the full observation Bunch is recorded.</skos:definition> - <skos:definition>Whether to include this element in simulation output files. Applicable to state variables (default true), derived variables (default false), and network nodes (default true). Set false to suppress recording.</skos:definition> + <skos:definition>Whether to include this element in simulation output files. Applicable to state variables (default true), derived variables (default false), and network nodes (default true). On an observation it forces (true) or suppresses (false) persistence in the result; left unset, a terminal observation (one not consumed by another observation or a loss) is recorded and an intermediate one is not. Set false to suppress recording.</skos:definition> <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>record</skos:notation> </rdf:Description> @@ -49216,6 +51428,12 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>rhs</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/rng"> + <rdfs:label>rng (slot)</rdfs:label> + <skos:definition>Random-seed policy across shards. ``deterministic`` (the default when unset) derives each task's seed from its shard index so the fan-out is reproducible.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>rng</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/sampler"> <rdfs:label>sampler (slot)</rdfs:label> <skos:definition>MCMC sampler ('nuts'). Each backend maps its own way.</skos:definition> @@ -49246,6 +51464,12 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>session_id</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/setup"> + <rdfs:label>setup (slot)</rdfs:label> + <skos:definition>Shell lines run verbatim before the task command, after ``set -euo pipefail`` and any module/venv activation. The general hook for environment setup the typed fields do not cover, e.g. activating a conda env (``conda activate <name>``), sourcing a profile, or exporting a computed path. Ordered; each line is emitted as-is.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>setup</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/source"> <rdfs:label>source (slot)</rdfs:label> <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> @@ -49293,6 +51517,12 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>subjects</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/suffix"> + <rdfs:label>suffix (slot)</rdfs:label> + <skos:definition>BIDS suffix (e.g., relmat), the trailing name component before the extension</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>suffix</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/symbol"> <rdfs:label>symbol (slot)</rdfs:label> <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> @@ -49381,6 +51611,18 @@ to a task-appropriate range (e.g. omega in Hz). <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> <skos:notation>value</skos:notation> </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/vectorize"> + <rdfs:label>vectorize (slot)</rdfs:label> + <skos:definition>Axis names or parameters to pack into a single vectorized backend call. It is an error to name an axis the backend cannot batch.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>vectorize</skos:notation> + </rdf:Description> + <rdf:Description rdf:about="https://w3id.org/tvbo/venv"> + <rdfs:label>venv (slot)</rdfs:label> + <skos:definition>Path to a virtual environment to activate before running.</skos:definition> + <skos:inScheme rdf:resource="https://w3id.org/tvbo"/> + <skos:notation>venv</skos:notation> + </rdf:Description> <rdf:Description rdf:about="https://w3id.org/tvbo/vertices_field"> <rdfs:label>vertices_field (slot)</rdfs:label> <skos:definition>When the mesh is inlined on a Network, the dotted path inside the parent's h5 to vertex coordinates. Default: ``nodes/coordinates``.</skos:definition> diff --git a/tvbo/data/param_io.py b/tvbo/data/param_io.py new file mode 100644 index 000000000..b3bcc544b --- /dev/null +++ b/tvbo/data/param_io.py @@ -0,0 +1,496 @@ +"""Resolve a :class:`Parameter`'s value from its declared provenance. + +A parameter says where its value comes from in exactly one of three ways, and the +choice is by provenance, never by size: + +``value:`` + A YAML literal. Returned as-is; codegen inlines it. + +``source:`` (+ ``measure:``) + WHERE existing bytes live β€” a curated entity's IRI, or a path resolved against + the declaring spec's directory. ``measure`` selects one array out of a source + holding several; its address space is the source's own (an HDF5/Zarr dataset + key, a Network's per-node measure name). + +``producer:`` + HOW derived bytes are made β€” a :class:`FunctionCall` naming the callable, its + arguments, and (via ``output``) which entry to take from a callable returning + several named arrays. + +Sourced and produced values are **never materialised into ``Parameter.value``**, so +loading a spec stays cheap no matter how large the array is, and a dumper never sees +bytes it would try to serialise back into YAML. Resolution happens here, on demand, +and the result is cached in this module β€” the ``Parameter`` object is never mutated. + +That is deliberate: ``Parameter`` appears at 16 nesting sites in the schema, and +LinkML always constructs the *declared range* class, so a tvbo subclass carrying lazy +behaviour would need a hand-written re-wrap at every one of them (and would diverge +between the dataclass and pydantic flavours). Keeping resolution outside the class +means the generated datamodel is untouched and both flavours behave identically. +""" + +from __future__ import annotations + +from pathlib import Path +from typing import Any, Optional + +import numpy as np + +# Resolved arrays, keyed by a content-addressed key (see `_source_key` / +# `_producer_key`) rather than by object identity: two Parameter objects naming the +# same array share one entry, and a rebuilt spec hits the cache rather than re-reading +# or recomputing. Never keyed by id() β€” CPython reuses ids of collected objects, which +# would silently serve one parameter's array for another's. +_CACHE: dict[tuple, Any] = {} + +def _default_cache_dir() -> Path: + """On-disk home for materialised produced constants, alongside the network cache + (``~/.tvbo/networks``). Resolved per call, not at import, so a harness that sets + ``HOME`` after importing tvbo still writes where it expects.""" + return Path.home() / ".tvbo" / "constants" + + +def clear_cache() -> None: + """Drop every resolved array. Mainly for tests and long-lived processes.""" + _CACHE.clear() + + +# --------------------------------------------------------------------------- helpers + +def _slot(obj: Any, name: str, default: Any = None) -> Any: + return getattr(obj, name, default) if obj is not None else default + + +def _resolve_path(source: str, source_dir: Optional[Path]) -> Optional[Path]: + """A path source, resolved against the declaring spec's directory when relative. + + Mirrors how ``Network.bids_dir`` / ``Network.data_file`` resolve, so a spec means + the same thing wherever it is loaded from and a kit that carries its companion + alongside the spec keeps working after it is moved. + """ + p = Path(str(source)) + if not p.is_absolute() and source_dir is not None: + p = (Path(source_dir) / p).resolve() + return p if p.exists() else None + + +def _fingerprint(path: Path) -> tuple: + """Cheap staleness key for a file (the mtime+size half of ReferenceFingerprint).""" + st = path.stat() + return (str(path), st.st_mtime_ns, st.st_size) + + +def _source_key(path: Path, measure: Optional[str]) -> tuple: + return ("source", _fingerprint(path), measure) + + +def _readonly(value: Any) -> Any: + """A read-only view of a resolved array (recursing into a bundle dict). + + One buffer is shared by every parameter naming the same array, so an in-place write + by one consumer would silently corrupt the others β€” action at a distance that would + surface in an unrelated run. A resolved constant is conceptually immutable (it IS the + declared value), so a read-only view turns an accidental write into a ValueError at + the offending line. + + Crucially this returns a *view* and does not freeze the input in place: a producer + may hand back an array the recipe still owns (a module-level cache, or an echoed + argument), and setting ``write=False`` on that object would break the recipe's own + later use of it from a line that never asked for a constant. + """ + if isinstance(value, np.ndarray): + view = value.view() + view.setflags(write=False) + return view + if isinstance(value, dict): + return {k: _readonly(v) for k, v in value.items()} + return value + + +# ------------------------------------------------------------------------ references + +# Only a fully-qualified `network.*` value is a reference; anything else is a literal +# (a bare `weight` is a state variable, not the connectome) β€” the same rule the pipeline +# argument path uses, so a producer and a pipeline step read arguments identically. +_REF_PREFIX = "network." + + +def _mesh_array(net: Any, field: str) -> np.ndarray: + """A mesh array off the Network's lazy runtime caches (set by the h5 load path).""" + attr = {"vertices": "_mesh_vertices", "elements": "_mesh_elements", + "faces": "_mesh_elements", "normals": "_mesh_normals"}.get(field) + if attr is None: + raise ValueError( + f"network.mesh.{field}: unknown mesh array; expected one of " + f"vertices, elements/faces, normals." + ) + try: + return np.asarray(object.__getattribute__(net, attr)) + except AttributeError: + raise ValueError( + f"network.mesh.{field}: the network carries no mesh (nothing loaded into " + f"{attr}); does its companion have a mesh/ group?" + ) from None + + +def is_reference(value: Any) -> bool: + """True when an argument value points at an entity rather than being a literal.""" + return isinstance(value, str) and value.startswith(_REF_PREFIX) + + +def _resolve_ref(ref: str, context: Any, where: str) -> Any: + """Resolve a dotted ``network.*`` reference against the owning experiment.""" + if context is None: + raise ValueError( + f"{where}: {ref!r} references an entity but no context was given; pass the " + f"owning experiment as `context=` so the reference can be resolved." + ) + # The context is the owning experiment, or a network directly (handy for tests and + # for a caller that already has one). Discriminate on the slot, not on whether nodes + # happen to be populated β€” an empty network is still a network. + net = context.network if hasattr(context, "network") else context + if net is None: + raise ValueError(f"{where}: {ref!r} needs a network but the context has none.") + + rest = ref[len(_REF_PREFIX):] + if rest == "nodes.position": + if not hasattr(net, "node_positions"): + raise ValueError(f"{where}: {ref!r} needs a Network, got {type(net).__name__}.") + return net.node_positions() + if rest.startswith("mesh."): + return _mesh_array(net, rest.split(".", 1)[1]) + if rest.startswith("edges."): + label = rest.split(".", 1)[1] + mat = net.matrix(label) if hasattr(net, "matrix") else None + if mat is None: + raise ValueError(f"{where}: the network has no {label!r} matrix.") + return np.asarray(mat, dtype=float) + raise ValueError( + f"{where}: unsupported reference {ref!r}; supported are network.nodes.position, " + f"network.mesh.<vertices|elements|normals>, network.edges.<label>." + ) + + +def _hashable(value: Any) -> Any: + """A stable, hashable rendering of an argument value (lists/dicts included).""" + if isinstance(value, dict): + return tuple(sorted((k, _hashable(v)) for k, v in value.items())) + if isinstance(value, (list, tuple)): + return tuple(_hashable(v) for v in value) + if isinstance(value, np.ndarray): + return value.tobytes() + return value + + +def _producer_key(module: str, name: str, kwargs: dict) -> tuple: + """Keyed on the CALL, deliberately not on ``output``. + + One producer typically returns a bundle of named arrays (a precompute emitting every + mesh operator at once). Keying per-output would re-run that call once per parameter + reading it β€” the expensive thing the cache exists to avoid. + """ + return ("producer", module, name, _hashable(kwargs)) + + +# --------------------------------------------------------------------------- sources + +def _read_source(path: Path, measure: Optional[str]) -> Any: + """Read ``measure`` out of a binary store, or the whole array when it holds one.""" + from tvbo.data.matrix_io import LazyArrayStore + + store = LazyArrayStore(path, {}) + if measure: + return store.read_dataset(measure) + arrays = store.arrays + if len(arrays) == 1: + return next(iter(arrays.values())) + raise ValueError( + f"{path} holds {len(arrays)} arrays {sorted(arrays)}; the parameter must name " + f"one with `measure:`." + ) + + +# ------------------------------------------------------------------------- producers + +def _argument_values(producer: Any, context: Any, where: str) -> dict: + """The producer's arguments as plain kwargs, entity references resolved. + + A `network.*` value is resolved against the context; everything else is a literal. + Same rule as a pipeline step's arguments, so a producer reads no differently. + """ + args = _slot(producer, "arguments", None) or {} + items = args.items() if hasattr(args, "items") else [(_slot(a, "name"), a) for a in args] + out = {} + for k, a in items: + value = _slot(a, "value", a) + out[str(k)] = _resolve_ref(value, context, where) if is_reference(value) else value + return out + + +def _producer_spec(producer: Any, param_name: str, context: Any) -> tuple: + """The producer's ``(module, name, kwargs)`` β€” its identity and its inputs.""" + call = _slot(producer, "callable", None) + if call is None: + raise ValueError( + f"Parameter {param_name!r} declares a producer with no `callable:`." + ) + module, name = str(_slot(call, "module", "")), str(_slot(call, "name", "")) + if not module or not name: + raise ValueError( + f"Parameter {param_name!r}: producer callable needs both `module` and `name` " + f"(got module={module!r}, name={name!r})." + ) + kwargs = _argument_values(producer, context, f"Parameter {param_name!r} producer") + return module, name, kwargs + + +def _producer_bundle( + producer: Any, param_name: str, context: Any, spec: Optional[tuple] = None +) -> Any: + """Everything the producer returns, cached on the CALL β€” no output selection. + + Kept separate from selection so a caller that needs the whole result (writing the + cache artifact) gets every named array, not just the one entry some parameter asked + for; writing only that entry would make each sibling output a fresh re-run. + + ``spec`` is an already-resolved ``_producer_spec``; pass it when the caller has one, + since resolving arguments again would rebuild every referenced array (a whole node + position matrix) only to discard the copy. + + The callable resolves by bare module name against the recipe's ``code_source`` + (already on ``sys.path`` once the study is loaded), so a study's own code produces + its own derived constants without that code living in core tvbo. + """ + import importlib + + module, name, kwargs = spec or _producer_spec(producer, param_name, context) + key = _producer_key(module, name, kwargs) + if key in _CACHE: + return _CACHE[key] + try: + fn = getattr(importlib.import_module(module), name) + except (ImportError, AttributeError) as exc: + raise ValueError( + f"Parameter {param_name!r}: cannot import producer {module}.{name} β€” is the " + f"study's `code_source` registered? ({exc})" + ) from exc + produced = _readonly(fn(**kwargs)) + _CACHE[key] = produced + return produced + + +def _call_producer(producer: Any, param_name: str, context: Any) -> Any: + """The producer's result, narrowed to this parameter's ``output`` entry.""" + spec = _producer_spec(producer, param_name, context) + module, name, _ = spec + produced = _producer_bundle(producer, param_name, context, spec) + output = _slot(producer, "output", None) + + if output: + # A callable returning several named arrays (e.g. a bundle of mesh operators) + # is selected by `output`, so one precompute serves many parameters and runs once. + try: + produced = produced[str(output)] + except (TypeError, KeyError, IndexError) as exc: + keys = sorted(produced) if hasattr(produced, "keys") else type(produced).__name__ + raise ValueError( + f"Parameter {param_name!r}: producer {module}.{name} has no output " + f"{output!r} (it returned {keys})." + ) from exc + elif isinstance(produced, dict): + # Hand back a shallow copy of the bundle: its arrays are read-only, but the dict + # itself is the cache entry, and rebinding a key in it would poison every other + # parameter reading this producer. + return dict(produced) + return produced + + +# ------------------------------------------------------------------------------- API + +def _provenance(param: Any) -> Optional[str]: + """Which of ``value``/``source``/``producer`` this parameter declares. + + The schema states the three are mutually exclusive; enforce it here rather than let + each entry point pick its own precedence. Two that disagreed (``resolve`` preferring + the producer while ``materialise`` preferred the source) would hand the host and the + generated code different values for one parameter, silently. + """ + declared = [n for n in ("value", "source", "producer") if _slot(param, n) is not None] + if len(declared) > 1: + raise ValueError( + f"Parameter {str(_slot(param, 'name', '<unnamed>'))!r} declares " + f"{declared}; value/source/producer are mutually exclusive β€” a literal, " + f"bytes to read, and a recipe to compute are three different claims about " + f"where the value comes from." + ) + return declared[0] if declared else None + + +def is_lazy(param: Any) -> bool: + """True when this parameter's value is resolved rather than inlined. + + The one rule codegen branches on: a literal is materialised and inlined; anything + obtained (``source``) or derived (``producer``) is read at run time and must never + be embedded in generated source. + """ + return _provenance(param) in ("source", "producer") + + +def _source_file(param: Any, source_dir: Optional[Path], name: str) -> Path: + """The existing file a ``source:`` parameter names, resolved against the spec dir.""" + source = _slot(param, "source") + path = _resolve_path(str(source), source_dir) + if path is None: + raise ValueError( + f"Parameter {name!r}: source {source!r} does not resolve to an existing " + f"file (source_dir={source_dir})." + ) + return path + + +def materialise( + param: Any, + source_dir: Optional[Path] = None, + context: Any = None, + cache_dir: Optional[Path] = None, +) -> tuple: + """The ``(file, key)`` a backend reads this parameter's array from. + + Codegen emits this pair rather than the bytes, so a large constant never enters the + spec or the generated source and is read at run time instead. Generated modules are + ``exec``'d in memory as often as they are written to disk, so the path is absolute + (resolved against the declaring spec's directory) β€” the same way ``bids_dir`` is + emitted. A kit stays correct without rewriting code: its emitter rewrites the *spec* + to point at the companion it staged and re-renders, exactly as it already does for + ``network.h5``. + + A ``source:`` parameter already lives in a file, so nothing is written. A + ``producer:`` parameter is computed once and cached content-addressed under + ``~/.tvbo/constants``, keyed by the producing call β€” so it survives across runs and + every parameter naming that producer shares the one artifact. + + Raises for a literal (there is nothing to read; it inlines) or for a parameter with + no declared value. + """ + name = str(_slot(param, "name", "<unnamed>")) + kind = _provenance(param) + if kind not in ("source", "producer"): + raise ValueError( + f"Parameter {name!r} declares no `source`/`producer`; it has no file to read " + f"(a literal `value:` is inlined instead)." + ) + + if kind == "source": + path = _source_file(param, source_dir, name) + measure = _slot(param, "measure") + if not measure: + raise ValueError( + f"Parameter {name!r}: a sourced constant must name its array with " + f"`measure:` for a backend to read it back." + ) + return path, _checked_key(path, str(measure), name) + + # Produced: materialise once, content-addressed on the producing call so an edited + # argument (a different k_ring) is a different artifact rather than a stale hit. + import hashlib + + producer = _slot(param, "producer") + module, fname, kwargs = _producer_spec(producer, name, context) + digest = hashlib.sha256( + repr(_producer_key(module, fname, kwargs)).encode() + ).hexdigest()[:16] + + root = Path(cache_dir).expanduser() if cache_dir else _default_cache_dir() + root.mkdir(parents=True, exist_ok=True) + path = root / f"{module}.{fname}.{digest}.h5" + + if not path.exists(): + _write_bundle(path, _producer_bundle(producer, name, context, (module, fname, kwargs))) + return path, _checked_key(path, _slot(producer, "output", None), name) + + +def _checked_key(path: Path, key: Optional[str], name: str) -> str: + """The dataset ``key`` names in ``path``, verified to exist. + + Checked here rather than left to run time: codegen bakes this key into the generated + module, so an unverified one turns a typo into a failure inside a simulation, far + from the declaration that caused it. A cache hit skips the write entirely, so this is + the only place the key is ever seen against the artifact. + """ + import h5py + + with h5py.File(path, "r") as f: + keys = sorted(f) + if key is None: + # No `output`/`measure`: unambiguous only when the artifact holds one array. + if len(keys) == 1: + return keys[0] + raise ValueError( + f"Parameter {name!r}: {path.name} holds {len(keys)} arrays {keys}; name " + f"the one to read with `output:` (produced) or `measure:` (sourced)." + ) + if str(key) not in f: + raise ValueError( + f"Parameter {name!r}: {path.name} has no array {str(key)!r} " + f"(it holds {keys})." + ) + return str(key) + + +def _write_bundle(path: Path, produced: Any) -> None: + """Write a producer's result to its cache artifact. + + The whole bundle is written, not just one entry: a precompute typically emits every + operator at once, so writing them together makes the next parameter naming a sibling + output a cache hit rather than a re-run. + """ + import os + + import h5py + + arrays = produced if isinstance(produced, dict) else {"value": produced} + # A temp path unique to this process: several cluster shards materialise the same + # artifact concurrently, and a shared temp would let one truncate another's file + # mid-write and then both rename, publishing a corrupt artifact that every later + # shard reads as a valid cache hit. The rename itself is atomic, so readers only + # ever see a complete file. + tmp = path.with_name(f"{path.name}.{os.getpid()}.tmp") + try: + with h5py.File(tmp, "w") as f: + for k, v in arrays.items(): + f.create_dataset(str(k), data=np.asarray(v)) + tmp.replace(path) + finally: + # A failed write must not strand a temp file in the cache dir. + if tmp.exists(): + tmp.unlink() + + +def resolve(param: Any, source_dir: Optional[Path] = None, context: Any = None) -> Any: + """This parameter's value, resolving ``source``/``producer`` on demand. + + Returns the literal ``value`` untouched when there is one, so a scalar costs + nothing. Returns ``None`` for a parameter that declares no value at all (a free + parameter, say) rather than raising β€” the caller decides whether that is an error. + + ``context`` is the owning experiment (or a network); a producer argument naming an + entity β€” ``positions: network.nodes.position`` β€” resolves against it. Resolved + arrays are cached and returned **read-only**: they are shared, and a resolved + constant is not the caller's to modify. + """ + kind = _provenance(param) + if kind == "value": + return _slot(param, "value") + if kind is None: + return None + + name = str(_slot(param, "name", "<unnamed>")) + if kind == "producer": + return _call_producer(_slot(param, "producer"), name, context) + + path = _source_file(param, source_dir, name) + measure = _slot(param, "measure") + key = _source_key(path, measure) + if key not in _CACHE: + _CACHE[key] = _readonly(_read_source(path, measure)) + return _CACHE[key] diff --git a/tvbo/data/tvbo_data/__init__.py b/tvbo/data/tvbo_data/__init__.py index 8febf2095..3abeeea9d 100644 --- a/tvbo/data/tvbo_data/__init__.py +++ b/tvbo/data/tvbo_data/__init__.py @@ -11,7 +11,12 @@ from os.path import basename, dirname, isfile, join ROOT = dirname(__file__) -ATLAS_DIR = join(ROOT, "atlas") +# Atlases are consolidated under tvbo/database/atlases (the single source shared with +# networks, models, coordinate_spaces, …). ROOT is tvbo/data/tvbo_data, so the +# package root tvbo/ is two levels up. The legacy tvbo/data/tvbo_data/atlas copy is +# deprecated. +_PACKAGE_ROOT = dirname(dirname(ROOT)) +ATLAS_DIR = join(_PACKAGE_ROOT, "database", "atlases") ASSIGNMENTS_DIR = join(ROOT, "assignments") # Modules moved to tvbo.classes.network, tvbo.classes.atlas, tvbo.data.bids_utils diff --git a/tvbo/data/tvbo_data/atlas/__init__.py b/tvbo/data/tvbo_data/atlas/__init__.py deleted file mode 100644 index 6890d932e..000000000 --- a/tvbo/data/tvbo_data/atlas/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ -"""Bundle the brain atlas parcellation data shipped with TVBO. - -This package directory holds the packaged atlas segmentation lookup tables -(`*_dseg.yaml`) and region-center coordinate files (`*_centers.txt`) for the -parcellations TVBO ships β€” including Schaefer2018, Yeo17, HCP-MMP1, -Desikan-Killiany, and Destrieux. It contains no importable code; the empty -`__init__` marks the directory as a Python package so these assets can be -located as package data (see [`tvbo.data.tvbo_data`](../__init__.py) and its -`ATLAS_DIR` path). -""" diff --git a/tvbo/data/tvbo_data/atlas/space-MNI152_atlas-Yeo17_res-1_dseg.yaml b/tvbo/data/tvbo_data/atlas/space-MNI152_atlas-Yeo17_res-1_dseg.yaml deleted file mode 100644 index 61f685cac..000000000 --- a/tvbo/data/tvbo_data/atlas/space-MNI152_atlas-Yeo17_res-1_dseg.yaml +++ /dev/null @@ -1,123 +0,0 @@ -name: Yeo17 -terminology: - label: empty - entities: - '1': - name: '1' - lookupLabel: 1 - center: - x: -28.181400306441944 - y: -82.26100859369795 - z: -1.8011458263939772 - '2': - name: '2' - lookupLabel: 2 - center: - x: -11.78429015128745 - y: -70.45616671676184 - z: 10.608756637611464 - '3': - name: '3' - lookupLabel: 3 - center: - x: -21.50858353938537 - y: -25.41709643235606 - z: 61.02889438361004 - '4': - name: '4' - lookupLabel: 4 - center: - x: -50.97226941747573 - y: -15.506067961165058 - z: 15.825910194174753 - '5': - name: '5' - lookupLabel: 5 - center: - x: -35.92773495404684 - y: -64.07211680996146 - z: 15.391639490068187 - '6': - name: '6' - lookupLabel: 6 - center: - x: -34.984013658233735 - y: -41.06177246624243 - z: 52.93977960577371 - '7': - name: '7' - lookupLabel: 7 - center: - x: -42.42906670364721 - y: 1.4167244487588277 - z: 1.6972680626820136 - '8': - name: '8' - lookupLabel: 8 - center: - x: -31.619359756097566 - y: 43.27957317073171 - z: 27.26844512195123 - '9': - name: '9' - lookupLabel: 9 - center: - x: -36.009864511528406 - y: -4.2134537675302965 - z: -33.69639885904445 - '10': - name: '10' - lookupLabel: 10 - center: - x: -13.582722292456808 - y: 39.020143278550364 - z: -17.834555415086385 - '11': - name: '11' - lookupLabel: 11 - center: - x: -6.584389140271497 - y: -61.74411764705883 - z: 44.31199095022623 - '12': - name: '12' - lookupLabel: 12 - center: - x: -42.98959011060508 - y: 21.75027109086966 - z: 22.45760138798525 - '13': - name: '13' - lookupLabel: 13 - center: - x: -33.810977762089664 - y: 53.95375926579598 - z: -2.483762795623008 - '14': - name: '14' - lookupLabel: 14 - center: - x: -56.7354421279655 - y: -30.953510663791036 - z: 4.366762520968123 - '15': - name: '15' - lookupLabel: 15 - center: - x: -25.94797441364605 - y: -31.475479744136464 - z: -18.882729211087423 - '16': - name: '16' - lookupLabel: 16 - center: - x: -8.333911269760321 - y: 50.513717491075994 - z: 6.430698623151457 - '17': - name: '17' - lookupLabel: 17 - center: - x: -56.03174496644296 - y: -12.536979865771798 - z: -18.77852348993288 diff --git a/tvbo/data/tvbo_data/atlas/tpl-MNI152NLin2009b_atlas-hcpmmp1_desc-ordered_dseg.yaml b/tvbo/data/tvbo_data/atlas/tpl-MNI152NLin2009b_atlas-hcpmmp1_desc-ordered_dseg.yaml deleted file mode 100644 index f7e2d6a69..000000000 --- a/tvbo/data/tvbo_data/atlas/tpl-MNI152NLin2009b_atlas-hcpmmp1_desc-ordered_dseg.yaml +++ /dev/null @@ -1,2657 +0,0 @@ -name: hcpmmp1 -terminology: - label: Glasser2016-MRTrix - entities: - L_V1: - name: L_V1 - lookupLabel: 1 - center: - x: -10.363954536003888 - y: -84.10040543350198 - z: 1.6224097304040441 - L_MST: - name: L_MST - lookupLabel: 2 - center: - x: -43.78398058252427 - y: -66.80582524271844 - z: 11.951456310679617 - L_V6: - name: L_V6 - lookupLabel: 3 - center: - x: -14.882160804020103 - y: -80.57311557788944 - z: 32.21532663316583 - L_V2: - name: L_V2 - lookupLabel: 4 - center: - x: -10.568908096106568 - y: -82.33163508048528 - z: 4.062901435254929 - L_V3: - name: L_V3 - lookupLabel: 5 - center: - x: -15.975991009399266 - y: -86.19554556599918 - z: 7.9722108704536225 - L_V4: - name: L_V4 - lookupLabel: 6 - center: - x: -28.375145857642934 - y: -86.97578763127188 - z: -0.006126021003495907 - L_V8: - name: L_V8 - lookupLabel: 7 - center: - x: -30.34229098805646 - y: -76.89657980456026 - z: -12.875407166123779 - L_4: - name: L_4 - lookupLabel: 8 - center: - x: -28.428445042111974 - y: -20.36759501734022 - z: 54.63718239082738 - L_3b: - name: L_3b - lookupLabel: 9 - center: - x: -39.39708467623792 - y: -22.295268092587165 - z: 52.810357456782896 - L_FEF: - name: L_FEF - lookupLabel: 10 - center: - x: -41.82425742574257 - y: -6.82508250825083 - z: 51.54785478547855 - L_PEF: - name: L_PEF - lookupLabel: 11 - center: - x: -49.009512937595126 - y: -0.45167427701673546 - z: 40.59170471841705 - L_55b: - name: L_55b - lookupLabel: 12 - center: - x: -48.98161361141602 - y: -1.5128979143798063 - z: 50.190724478594944 - L_V3A: - name: L_V3A - lookupLabel: 13 - center: - x: -15.015406162464984 - y: -91.6078431372549 - z: 28.244397759103634 - L_RSC: - name: L_RSC - lookupLabel: 14 - center: - x: -4.884923664122141 - y: -36.57099236641221 - z: 21.112213740458017 - L_POS2: - name: L_POS2 - lookupLabel: 15 - center: - x: -9.494167287168025 - y: -72.25235790518738 - z: 36.790208488458674 - L_V7: - name: L_V7 - lookupLabel: 16 - center: - x: -24.09813753581662 - y: -87.07378223495702 - z: 29.61676217765043 - L_IPS1: - name: L_IPS1 - lookupLabel: 17 - center: - x: -24.30388127853881 - y: -75.26963470319635 - z: 37.459589041095896 - L_FFC: - name: L_FFC - lookupLabel: 18 - center: - x: -42.021202412363365 - y: -61.422446287222016 - z: -17.290708631737658 - L_V3B: - name: L_V3B - lookupLabel: 19 - center: - x: -26.29415011037527 - y: -83.02814569536423 - z: 17.652869757174386 - L_LO1: - name: L_LO1 - lookupLabel: 20 - center: - x: -39.78090332805071 - y: -83.91164817749603 - z: 8.24445324881141 - L_LO2: - name: L_LO2 - lookupLabel: 21 - center: - x: -45.77868391451069 - y: -85.16957255343081 - z: 0.7286276715410622 - L_PIT: - name: L_PIT - lookupLabel: 22 - center: - x: -43.705652173913045 - y: -83.2108695652174 - z: -11.014347826086954 - L_MT: - name: L_MT - lookupLabel: 23 - center: - x: -42.772167487684726 - y: -69.95935960591133 - z: 14.451970443349751 - L_A1: - name: L_A1 - lookupLabel: 24 - center: - x: -43.17227979274612 - y: -25.35794473229707 - z: 12.323402417962 - L_PSL: - name: L_PSL - lookupLabel: 25 - center: - x: -58.58393501805054 - y: -47.228339350180505 - z: 25.431107099879668 - L_SFL: - name: L_SFL - lookupLabel: 26 - center: - x: -8.609526235354053 - y: 17.51371200543386 - z: 63.92931737137036 - L_PCV: - name: L_PCV - lookupLabel: 27 - center: - x: -6.298026315789471 - y: -51.15789473684211 - z: 49.208552631578954 - L_STV: - name: L_STV - lookupLabel: 28 - center: - x: -61.08898305084746 - y: -50.95208604954368 - z: 18.23239895697523 - L_7Pm: - name: L_7Pm - lookupLabel: 29 - center: - x: -4.206202651515156 - y: -70.42140151515152 - z: 50.34043560606061 - L_7m: - name: L_7m - lookupLabel: 30 - center: - x: -4.284500339904824 - y: -63.87848402447315 - z: 35.18405846363018 - L_POS1: - name: L_POS1 - lookupLabel: 31 - center: - x: -12.60349383440986 - y: -59.00190839694656 - z: 15.042425132119789 - L_23d: - name: L_23d - lookupLabel: 32 - center: - x: -2.8880784708249507 - y: -20.67806841046277 - z: 39.35865191146881 - L_v23ab: - name: L_v23ab - lookupLabel: 33 - center: - x: -3.3635817307692264 - y: -58.24699519230769 - z: 18.21334134615384 - L_d23ab: - name: L_d23ab - lookupLabel: 34 - center: - x: -3.0437872535534183 - y: -42.68076570380559 - z: 31.2974552957359 - L_31pv: - name: L_31pv - lookupLabel: 35 - center: - x: -9.407347204161255 - y: -46.760403120936274 - z: 32.54193758127438 - L_5m: - name: L_5m - lookupLabel: 36 - center: - x: -6.284216046145772 - y: -41.917278447823804 - z: 63.399711588883065 - L_5mv: - name: L_5mv - lookupLabel: 37 - center: - x: -13.701790633608809 - y: -37.139348025711655 - z: 50.381772268135904 - L_23c: - name: L_23c - lookupLabel: 38 - center: - x: -11.448782961460452 - y: -30.526876267748477 - z: 43.00828262339418 - L_5L: - name: L_5L - lookupLabel: 39 - center: - x: -14.777593818984542 - y: -48.60651214128035 - z: 72.59326710816777 - L_24dd: - name: L_24dd - lookupLabel: 40 - center: - x: -5.885481852315394 - y: -16.012578222778473 - z: 50.5897997496871 - L_24dv: - name: L_24dv - lookupLabel: 41 - center: - x: -8.302213393870602 - y: -0.3765607264472237 - z: 44.810158910329164 - L_7AL: - name: L_7AL - lookupLabel: 42 - center: - x: -20.40274803711634 - y: -51.99125624553891 - z: 65.6771948608137 - L_SCEF: - name: L_SCEF - lookupLabel: 43 - center: - x: -5.931673905780158 - y: 4.134229869695957 - z: 59.60315736719011 - L_6ma: - name: L_6ma - lookupLabel: 44 - center: - x: -20.098363393453567 - y: 3.969438877755522 - z: 67.89028056112224 - L_7Am: - name: L_7Am - lookupLabel: 45 - center: - x: -6.9458244617932365 - y: -60.317305417553825 - z: 61.458067187130354 - L_7PL: - name: L_7PL - lookupLabel: 46 - center: - x: -14.81601941747573 - y: -73.71116504854369 - z: 56.00825242718446 - L_7PC: - name: L_7PC - lookupLabel: 47 - center: - x: -37.4515145140934 - y: -46.7108750525873 - z: 60.62757677745057 - L_LIPv: - name: L_LIPv - lookupLabel: 48 - center: - x: -30.85463618802318 - y: -58.40292981326465 - z: 55.232292337411465 - L_VIP: - name: L_VIP - lookupLabel: 49 - center: - x: -22.821780653111517 - y: -63.50477510782501 - z: 64.474584103512 - L_MIP: - name: L_MIP - lookupLabel: 50 - center: - x: -24.856965174129357 - y: -67.12810945273633 - z: 47.10074626865672 - L_1: - name: L_1 - lookupLabel: 51 - center: - x: -47.029623477297896 - y: -26.318106312292358 - z: 56.384772978959035 - L_2: - name: L_2 - lookupLabel: 52 - center: - x: -38.86826484018265 - y: -32.92016742770167 - z: 51.957001522070016 - L_3a: - name: L_3a - lookupLabel: 53 - center: - x: -35.28051493960585 - y: -20.509694850603935 - z: 42.83391608391608 - L_6d: - name: L_6d - lookupLabel: 54 - center: - x: -33.79434121621621 - y: -14.21621621621621 - z: 67.734375 - L_6mp: - name: L_6mp - lookupLabel: 55 - center: - x: -10.733435381587583 - y: -15.008692324513447 - z: 71.02618631095561 - L_6v: - name: L_6v - lookupLabel: 56 - center: - x: -59.50335215243472 - y: 3.787050105857446 - z: 31.906669019054334 - L_p24pr: - name: L_p24pr - lookupLabel: 57 - center: - x: -3.961538461538467 - y: -2.244123931623932 - z: 40.376068376068375 - L_33pr: - name: L_33pr - lookupLabel: 58 - center: - x: -2.3982504604051513 - y: 11.25920810313076 - z: 28.721454880294658 - L_a24pr: - name: L_a24pr - lookupLabel: 59 - center: - x: -5.386851015801355 - y: 18.300225733634306 - z: 30.981376975169297 - L_p32pr: - name: L_p32pr - lookupLabel: 60 - center: - x: -7.929197994987462 - y: 15.395363408521291 - z: 38.79594820384294 - L_a24: - name: L_a24 - lookupLabel: 61 - center: - x: -6.136344359626804 - y: 41.96501272264632 - z: -4.496819338422398 - L_d32: - name: L_d32 - lookupLabel: 62 - center: - x: -8.040343074968234 - y: 42.475540025412954 - z: 24.959656925031766 - L_8BM: - name: L_8BM - lookupLabel: 63 - center: - x: -4.759222919937201 - y: 32.56828885400313 - z: 45.16620879120879 - L_p32: - name: L_p32 - lookupLabel: 64 - center: - x: -11.275899280575544 - y: 50.39244604316548 - z: -2.33920863309352 - L_10r: - name: L_10r - lookupLabel: 65 - center: - x: -6.034112149532717 - y: 51.64065420560749 - z: -10.644392523364488 - L_47m: - name: L_47m - lookupLabel: 66 - center: - x: -37.49242424242424 - y: 31.53484848484848 - z: -13.922727272727272 - L_8Av: - name: L_8Av - lookupLabel: 67 - center: - x: -38.33117890382627 - y: 16.588934850051714 - z: 52.27921406411582 - L_8Ad: - name: L_8Ad - lookupLabel: 68 - center: - x: -23.35066850176956 - y: 28.99596932756586 - z: 43.34653952025167 - L_9m: - name: L_9m - lookupLabel: 69 - center: - x: -6.037457296242067 - y: 55.14775500244022 - z: 24.263665202537823 - L_8BL: - name: L_8BL - lookupLabel: 70 - center: - x: -11.6218459495352 - y: 37.147299690128364 - z: 53.800464807436924 - L_9p: - name: L_9p - lookupLabel: 71 - center: - x: -19.89443462897526 - y: 47.305653710247356 - z: 38.47924028268551 - L_10d: - name: L_10d - lookupLabel: 72 - center: - x: -11.1631633356306 - y: 66.29583046175051 - z: 8.404376292212262 - L_8C: - name: L_8C - lookupLabel: 73 - center: - x: -43.70362268113406 - y: 11.811778088904447 - z: 37.70974798739937 - L_44: - name: L_44 - lookupLabel: 74 - center: - x: -53.8786231884058 - y: 14.841183574879238 - z: 14.009661835748787 - L_45: - name: L_45 - lookupLabel: 75 - center: - x: -50.60904463586531 - y: 25.568715740015648 - z: 3.2206342991386094 - L_47l: - name: L_47l - lookupLabel: 76 - center: - x: -46.77078085642317 - y: 30.10012594458439 - z: -9.95780856423174 - L_a47r: - name: L_a47r - lookupLabel: 77 - center: - x: -41.356263633530695 - y: 48.56380492365224 - z: -11.907214085384858 - L_6r: - name: L_6r - lookupLabel: 78 - center: - x: -52.490793201133144 - y: 6.664069877242696 - z: 17.774079320113316 - L_IFJa: - name: L_IFJa - lookupLabel: 79 - center: - x: -41.00675675675676 - y: 10.852602602602616 - z: 26.385635635635637 - L_IFJp: - name: L_IFJp - lookupLabel: 80 - center: - x: -41.36342894393742 - y: 2.2956323337679407 - z: 30.064211212516298 - L_IFSp: - name: L_IFSp - lookupLabel: 81 - center: - x: -48.801580698835274 - y: 20.908901830282872 - z: 22.851497504159738 - L_IFSa: - name: L_IFSa - lookupLabel: 82 - center: - x: -48.10146804835924 - y: 32.12161773172136 - z: 10.653281519861835 - L_p9-46v: - name: L_p9-46v - lookupLabel: 83 - center: - x: -47.190255459414914 - y: 28.89194478780388 - z: 25.991450350226614 - L_46: - name: L_46 - lookupLabel: 84 - center: - x: -38.40568557618926 - y: 37.85264563724243 - z: 32.920694479776145 - L_a9-46v: - name: L_a9-46v - lookupLabel: 85 - center: - x: -40.00723412251033 - y: 51.63970311912814 - z: 9.1727733934611 - L_9-46d: - name: L_9-46d - lookupLabel: 86 - center: - x: -29.44874715261959 - y: 45.85791571753987 - z: 23.46355353075171 - L_9a: - name: L_9a - lookupLabel: 87 - center: - x: -21.72691334598356 - y: 57.56277672359266 - z: 24.152593295382673 - L_10v: - name: L_10v - lookupLabel: 88 - center: - x: -4.007095158597664 - y: 52.91193656093489 - z: -17.83430717863105 - L_a10p: - name: L_a10p - lookupLabel: 89 - center: - x: -26.478136882129277 - y: 59.74201520912547 - z: -6.898669201520917 - L_10pp: - name: L_10pp - lookupLabel: 90 - center: - x: -12.772091310751108 - y: 62.28313696612665 - z: -16.248527245949923 - L_11l: - name: L_11l - lookupLabel: 91 - center: - x: -25.936197404640183 - y: 49.47611089264649 - z: -15.47139205662603 - L_13l: - name: L_13l - lookupLabel: 92 - center: - x: -23.304250320375914 - y: 30.078278513455786 - z: -19.88648013669372 - L_OFC: - name: L_OFC - lookupLabel: 93 - center: - x: -10.828698655034529 - y: 33.53898582333696 - z: -24.50517993456925 - L_47s: - name: L_47s - lookupLabel: 94 - center: - x: -34.5232782369146 - y: 22.11336088154269 - z: -19.154683195592284 - L_LIPd: - name: L_LIPd - lookupLabel: 95 - center: - x: -30.07446043165467 - y: -55.44352517985611 - z: 42.899640287769785 - L_6a: - name: L_6a - lookupLabel: 96 - center: - x: -25.360372340425528 - y: -4.931848404255305 - z: 55.56183510638297 - L_i6-8: - name: L_i6-8 - lookupLabel: 97 - center: - x: -29.576462765957444 - y: 5.227393617021278 - z: 56.748005319148945 - L_s6-8: - name: L_s6-8 - lookupLabel: 98 - center: - x: -22.3087219343696 - y: 24.151554404145088 - z: 56.29663212435233 - L_43: - name: L_43 - lookupLabel: 99 - center: - x: -56.383133133133136 - y: -0.33658658658657714 - z: 9.476726726726724 - L_OP4: - name: L_OP4 - lookupLabel: 100 - center: - x: -59.22332421340629 - y: -13.484610123119012 - z: 15.314979480164155 - L_OP1: - name: L_OP1 - lookupLabel: 101 - center: - x: -46.949643493761144 - y: -22.380124777183596 - z: 19.142156862745097 - L_OP2-3: - name: L_OP2-3 - lookupLabel: 102 - center: - x: -40.460134128166914 - y: -17.24329359165425 - z: 19.021236959761552 - L_52: - name: L_52 - lookupLabel: 103 - center: - x: -38.001619870410366 - y: -22.361231101511876 - z: 1.9379049676025915 - L_RI: - name: L_RI - lookupLabel: 104 - center: - x: -40.184648581997536 - y: -35.52188655980271 - z: 20.243218249075213 - L_PFcm: - name: L_PFcm - lookupLabel: 105 - center: - x: -50.40590405904059 - y: -32.3090405904059 - z: 21.746309963099634 - L_PoI2: - name: L_PoI2 - lookupLabel: 106 - center: - x: -40.4908400357462 - y: -2.9287310098302157 - z: -0.0029043789097471517 - L_TA2: - name: L_TA2 - lookupLabel: 107 - center: - x: -50.36752577319588 - y: -0.17371134020618229 - z: -5.478865979381439 - L_FOP4: - name: L_FOP4 - lookupLabel: 108 - center: - x: -41.49167171411266 - y: 12.777559055118104 - z: 5.6918534221683785 - L_MI: - name: L_MI - lookupLabel: 109 - center: - x: -36.28790271636134 - y: 11.19630448515477 - z: 3.326121288692363 - L_Pir: - name: L_Pir - lookupLabel: 110 - center: - x: -32.0389502762431 - y: 6.381491712707174 - z: -17.67983425414365 - L_AVI: - name: L_AVI - lookupLabel: 111 - center: - x: -30.860792192881746 - y: 25.40269804822043 - z: -2.488805970149258 - L_AAIC: - name: L_AAIC - lookupLabel: 112 - center: - x: -35.42083946980854 - y: 14.344992636229762 - z: -10.438512518409425 - L_FOP1: - name: L_FOP1 - lookupLabel: 113 - center: - x: -49.8875 - y: 1.6589285714285609 - z: 4.569642857142853 - L_FOP3: - name: L_FOP3 - lookupLabel: 114 - center: - x: -35.99497991967871 - y: 2.1375502008032186 - z: 13.442771084337352 - L_FOP2: - name: L_FOP2 - lookupLabel: 115 - center: - x: -42.412835249042146 - y: -4.953065134099603 - z: 14.79980842911877 - L_PFt: - name: L_PFt - lookupLabel: 116 - center: - x: -56.39276729559749 - y: -25.75377358490566 - z: 36.533018867924525 - L_AIP: - name: L_AIP - lookupLabel: 117 - center: - x: -39.7851617440225 - y: -39.01371308016877 - z: 42.27672292545711 - L_EC: - name: L_EC - lookupLabel: 118 - center: - x: -22.93984812150279 - y: -13.646083133493207 - z: -31.66806554756195 - L_PreS: - name: L_PreS - lookupLabel: 119 - center: - x: -16.928135405105436 - y: -34.299389567147614 - z: -13.86043285238624 - L_H: - name: L_H - lookupLabel: 120 - center: - x: -11.916666666666671 - y: -39.75 - z: -2.9166666666666714 - L_ProS: - name: L_ProS - lookupLabel: 121 - center: - x: -22.06854838709677 - y: -57.01075268817205 - z: 4.69086021505376 - L_PeEc: - name: L_PeEc - lookupLabel: 122 - center: - x: -31.135586449344842 - y: -9.588926174496649 - z: -33.602828379674015 - L_STGa: - name: L_STGa - lookupLabel: 123 - center: - x: -50.85345821325648 - y: 12.921469740633995 - z: -16.669596541786746 - L_PBelt: - name: L_PBelt - lookupLabel: 124 - center: - x: -52.70952197378566 - y: -26.003662297609864 - z: 9.005975327679266 - L_A5: - name: L_A5 - lookupLabel: 125 - center: - x: -62.983247422680414 - y: -15.211769759450178 - z: -1.1005154639175316 - L_PHA1: - name: L_PHA1 - lookupLabel: 126 - center: - x: -23.349369085173507 - y: -37.71924290220821 - z: -14.638012618296528 - L_PHA3: - name: L_PHA3 - lookupLabel: 127 - center: - x: -31.839830508474577 - y: -37.931016949152536 - z: -17.730677966101695 - L_STSda: - name: L_STSda - lookupLabel: 128 - center: - x: -54.80822550831793 - y: -4.146796056685162 - z: -11.595656192236596 - L_STSdp: - name: L_STSdp - lookupLabel: 129 - center: - x: -52.7883502170767 - y: -32.63856729377713 - z: 1.1349493487698936 - L_STSvp: - name: L_STSvp - lookupLabel: 130 - center: - x: -54.889782016348775 - y: -34.85517711171663 - z: -3.435831062670303 - L_TGd: - name: L_TGd - lookupLabel: 131 - center: - x: -38.19212869283691 - y: 12.305038445973281 - z: -34.47271684877917 - L_TE1a: - name: L_TE1a - lookupLabel: 132 - center: - x: -59.77543720190779 - y: -5.224562798092222 - z: -23.115129835718072 - L_TE1p: - name: L_TE1p - lookupLabel: 133 - center: - x: -61.772608695652174 - y: -48.213478260869564 - z: -8.696304347826086 - L_TE2a: - name: L_TE2a - lookupLabel: 134 - center: - x: -57.275185518326964 - y: -24.38323588936362 - z: -27.70086575219249 - L_TF: - name: L_TF - lookupLabel: 135 - center: - x: -42.3942250149611 - y: -22.009724715739083 - z: -30.005236385397964 - L_TE2p: - name: L_TE2p - lookupLabel: 136 - center: - x: -49.39131607335491 - y: -43.42349874145991 - z: -20.50566343042071 - L_PHT: - name: L_PHT - lookupLabel: 137 - center: - x: -58.391753572808035 - y: -60.646098879876405 - z: 3.228949401313244 - L_PH: - name: L_PH - lookupLabel: 138 - center: - x: -45.984491315136474 - y: -65.14660876757651 - z: -5.342224979321756 - L_TPOJ1: - name: L_TPOJ1 - lookupLabel: 139 - center: - x: -54.167647058823526 - y: -46.32024221453287 - z: 10.260034602076118 - L_TPOJ2: - name: L_TPOJ2 - lookupLabel: 140 - center: - x: -51.993362831858406 - y: -62.363032984714394 - z: 15.783789219629924 - L_TPOJ3: - name: L_TPOJ3 - lookupLabel: 141 - center: - x: -45.97455902306648 - y: -72.67401628222524 - z: 20.70115332428766 - L_DVT: - name: L_DVT - lookupLabel: 142 - center: - x: -17.637888707037646 - y: -74.29009819967267 - z: 36.31055646481178 - L_PGp: - name: L_PGp - lookupLabel: 143 - center: - x: -38.69778987828315 - y: -85.43289557975658 - z: 23.08888532991672 - L_IP2: - name: L_IP2 - lookupLabel: 144 - center: - x: -40.949077359829666 - y: -48.80039034776438 - z: 43.375266146202975 - L_IP1: - name: L_IP1 - lookupLabel: 145 - center: - x: -30.258007117437728 - y: -70.63256227758006 - z: 39.10231316725978 - L_IP0: - name: L_IP0 - lookupLabel: 146 - center: - x: -30.844692400482515 - y: -79.07569360675512 - z: 24.272316043425818 - L_PFop: - name: L_PFop - lookupLabel: 147 - center: - x: -62.96147540983606 - y: -23.73606557377049 - z: 24.032786885245898 - L_PF: - name: L_PF - lookupLabel: 148 - center: - x: -60.30597512216792 - y: -37.278209684584624 - z: 37.90526432696579 - L_PFm: - name: L_PFm - lookupLabel: 149 - center: - x: -49.51604231703087 - y: -58.048300381546994 - z: 44.89516129032258 - L_PGi: - name: L_PGi - lookupLabel: 150 - center: - x: -46.54554531490015 - y: -64.01082949308756 - z: 27.54201228878648 - L_PGs: - name: L_PGs - lookupLabel: 151 - center: - x: -39.190649867374006 - y: -78.0709549071618 - z: 38.99038461538461 - L_V6A: - name: L_V6A - lookupLabel: 152 - center: - x: -21.78363914373088 - y: -86.1888379204893 - z: 42.722477064220186 - L_VMV1: - name: L_VMV1 - lookupLabel: 153 - center: - x: -18.661894273127757 - y: -55.941629955947135 - z: -5.522026431718061 - L_VMV3: - name: L_VMV3 - lookupLabel: 154 - center: - x: -27.721874999999997 - y: -62.696875000000006 - z: -11.214062499999997 - L_PHA2: - name: L_PHA2 - lookupLabel: 155 - center: - x: -31.92342342342343 - y: -37.4481981981982 - z: -11.781531531531535 - L_V4t: - name: L_V4t - lookupLabel: 156 - center: - x: -49.261019283746556 - y: -77.11776859504133 - z: 7.835399449035819 - L_FST: - name: L_FST - lookupLabel: 157 - center: - x: -45.82532751091703 - y: -68.69213973799127 - z: 5.620087336244538 - L_V3CD: - name: L_V3CD - lookupLabel: 158 - center: - x: -35.65 - y: -88.84571428571428 - z: 11.272857142857148 - L_LO3: - name: L_LO3 - lookupLabel: 159 - center: - x: -41.209493670886076 - y: -77.17278481012659 - z: 15.155063291139243 - L_VMV2: - name: L_VMV2 - lookupLabel: 160 - center: - x: -27.337475149105373 - y: -54.82355864811133 - z: -6.411033797216703 - L_31pd: - name: L_31pd - lookupLabel: 161 - center: - x: -8.700000000000003 - y: -53.43229166666667 - z: 34.646874999999994 - L_31a: - name: L_31a - lookupLabel: 162 - center: - x: -4.678950307091014 - y: -37.74553322166388 - z: 43.55792853154662 - L_VVC: - name: L_VVC - lookupLabel: 163 - center: - x: -31.03338762214983 - y: -53.23588490770901 - z: -17.340662323561347 - L_25: - name: L_25 - lookupLabel: 164 - center: - x: -4.275012444001987 - y: 23.93790443006472 - z: -14.756222000995521 - L_s32: - name: L_s32 - lookupLabel: 165 - center: - x: -7.536610878661094 - y: 35.66213389121339 - z: -15.06589958158996 - L_pOFC: - name: L_pOFC - lookupLabel: 166 - center: - x: -14.397169811320751 - y: 14.35641509433961 - z: -20.889245283018866 - L_PoI1: - name: L_PoI1 - lookupLabel: 167 - center: - x: -39.19017094017094 - y: -12.182789432789434 - z: -2.267094017094024 - L_Ig: - name: L_Ig - lookupLabel: 168 - center: - x: -35.59035087719298 - y: -16.179824561403507 - z: 15.986842105263165 - L_FOP5: - name: L_FOP5 - lookupLabel: 169 - center: - x: -35.410526315789475 - y: 26.75 - z: 5.168421052631572 - L_p10p: - name: L_p10p - lookupLabel: 170 - center: - x: -24.070744081172492 - y: 62.92023675310034 - z: 2.393179255918824 - L_p47r: - name: L_p47r - lookupLabel: 171 - center: - x: -45.63447971781305 - y: 43.07951205173427 - z: 0.9857436801881221 - L_TGv: - name: L_TGv - lookupLabel: 172 - center: - x: -37.30673758865248 - y: -1.312217923920059 - z: -44.45825274016764 - L_MBelt: - name: L_MBelt - lookupLabel: 173 - center: - x: -44.38879781420765 - y: -17.70628415300547 - z: 4.348907103825141 - L_LBelt: - name: L_LBelt - lookupLabel: 174 - center: - x: -45.298706240487064 - y: -27.43493150684931 - z: 9.052891933028917 - L_A4: - name: L_A4 - lookupLabel: 175 - center: - x: -63.31973947895791 - y: -23.574048096192385 - z: 9.17004008016032 - L_STSva: - name: L_STSva - lookupLabel: 176 - center: - x: -51.63795003673769 - y: -7.799228508449673 - z: -16.96565025716385 - L_TE1m: - name: L_TE1m - lookupLabel: 177 - center: - x: -64.13602654176424 - y: -26.129391100702577 - z: -14.955308352849336 - L_PI: - name: L_PI - lookupLabel: 178 - center: - x: -43.94744318181818 - y: -4.144886363636374 - z: -13.57244318181818 - L_a32pr: - name: L_a32pr - lookupLabel: 179 - center: - x: -7.680207587687903 - y: 30.63224767358625 - z: 28.654795991410168 - L_p24: - name: L_p24 - lookupLabel: 180 - center: - x: -5.170354826402132 - y: 38.859309423884014 - z: 13.873998473864944 - R_V1: - name: R_V1 - lookupLabel: 181 - center: - x: 12.44857482185273 - y: -80.39251781472684 - z: 4.057244655581954 - R_MST: - name: R_MST - lookupLabel: 182 - center: - x: 48.033760683760676 - y: -64.23717948717949 - z: 7.262820512820511 - R_V6: - name: R_V6 - lookupLabel: 183 - center: - x: 17.9109098567818 - y: -76.95134793597305 - z: 31.02969671440607 - R_V2: - name: R_V2 - lookupLabel: 184 - center: - x: 12.265188897455673 - y: -79.28616037008481 - z: 6.877987663839633 - R_V3: - name: R_V3 - lookupLabel: 185 - center: - x: 17.421965588180285 - y: -85.24111651393304 - z: 8.912521039835426 - R_V4: - name: R_V4 - lookupLabel: 186 - center: - x: 30.753990688393742 - y: -84.88335550382442 - z: -1.1632025274359847 - R_V8: - name: R_V8 - lookupLabel: 187 - center: - x: 30.43438914027149 - y: -75.26131221719457 - z: -11.8789592760181 - R_4: - name: R_4 - lookupLabel: 188 - center: - x: 29.77963938745266 - y: -17.152931006092544 - z: 55.20726988308908 - R_3b: - name: R_3b - lookupLabel: 189 - center: - x: 40.143928571428575 - y: -19.370000000000005 - z: 51.0025 - R_FEF: - name: R_FEF - lookupLabel: 190 - center: - x: 44.802502050861364 - y: -2.431706316652992 - z: 51.70159967186218 - R_PEF: - name: R_PEF - lookupLabel: 191 - center: - x: 47.4892703862661 - y: 2.6072961373390626 - z: 37.136266094420606 - R_55b: - name: R_55b - lookupLabel: 192 - center: - x: 50.35502838605029 - y: 1.9929034874290323 - z: 47.079278183292786 - R_V3A: - name: R_V3A - lookupLabel: 193 - center: - x: 16.760077059869587 - y: -89.18212803793716 - z: 30.947391819798455 - R_RSC: - name: R_RSC - lookupLabel: 194 - center: - x: 5.562176165803109 - y: -36.43782383419689 - z: 21.563471502590673 - R_POS2: - name: R_POS2 - lookupLabel: 195 - center: - x: 12.009044216167936 - y: -70.26585529254132 - z: 38.215386333184455 - R_V7: - name: R_V7 - lookupLabel: 196 - center: - x: 28.28285543608125 - y: -84.39516129032259 - z: 31.162186379928315 - R_IPS1: - name: R_IPS1 - lookupLabel: 197 - center: - x: 27.329166666666666 - y: -72.735 - z: 39.84 - R_FFC: - name: R_FFC - lookupLabel: 198 - center: - x: 40.82234314980795 - y: -53.460307298335465 - z: -19.196222791293216 - R_V3B: - name: R_V3B - lookupLabel: 199 - center: - x: 29.712376237623758 - y: -77.21336633663367 - z: 20.854950495049508 - R_LO1: - name: R_LO1 - lookupLabel: 200 - center: - x: 39.69767441860466 - y: -80.23255813953489 - z: 4.844961240310084 - R_LO2: - name: R_LO2 - lookupLabel: 201 - center: - x: 44.594444444444434 - y: -83.4508547008547 - z: -0.8363247863247807 - R_PIT: - name: R_PIT - lookupLabel: 202 - center: - x: 42.783807829181484 - y: -80.54537366548043 - z: -11.879003558718864 - R_MT: - name: R_MT - lookupLabel: 203 - center: - x: 51.98973727422003 - y: -69.6252052545156 - z: 10.795977011494259 - R_A1: - name: R_A1 - lookupLabel: 204 - center: - x: 42.71813725490196 - y: -21.674019607843135 - z: 11.399509803921575 - R_PSL: - name: R_PSL - lookupLabel: 205 - center: - x: 63.962610734757675 - y: -35.718733715476816 - z: 27.437858259510165 - R_SFL: - name: R_SFL - lookupLabel: 206 - center: - x: 8.827118214104516 - y: 17.007483510908173 - z: 65.40499746321663 - R_PCV: - name: R_PCV - lookupLabel: 207 - center: - x: 5.5034996956786415 - y: -52.247261107729756 - z: 51.21804625684723 - R_STV: - name: R_STV - lookupLabel: 208 - center: - x: 60.03563626433643 - y: -44.02525942108137 - z: 20.40592572364828 - R_7Pm: - name: R_7Pm - lookupLabel: 209 - center: - x: 5.241646778042963 - y: -68.45525059665871 - z: 50.84427207637232 - R_7m: - name: R_7m - lookupLabel: 210 - center: - x: 4.522998014559889 - y: -62.51042356055592 - z: 34.464758438120455 - R_POS1: - name: R_POS1 - lookupLabel: 211 - center: - x: 13.983739837398375 - y: -57.0650406504065 - z: 17.40548780487805 - R_23d: - name: R_23d - lookupLabel: 212 - center: - x: 3.4703718048024825 - y: -21.133423702556158 - z: 39.42467079783114 - R_v23ab: - name: R_v23ab - lookupLabel: 213 - center: - x: 4.364253393665152 - y: -55.01470588235294 - z: 18.838235294117652 - R_d23ab: - name: R_d23ab - lookupLabel: 214 - center: - x: 3.4886990077177558 - y: -40.71141124586549 - z: 33.10832414553472 - R_31pv: - name: R_31pv - lookupLabel: 215 - center: - x: 9.127336448598129 - y: -42.98014018691589 - z: 34.75700934579439 - R_5m: - name: R_5m - lookupLabel: 216 - center: - x: 5.431855840927923 - y: -39.23632974316487 - z: 65.87841756420877 - R_5mv: - name: R_5mv - lookupLabel: 217 - center: - x: 12.077225130890056 - y: -40.258507853403145 - z: 55.00785340314137 - R_23c: - name: R_23c - lookupLabel: 218 - center: - x: 11.25159948816379 - y: -33.034069097888676 - z: 44.11532309660909 - R_5L: - name: R_5L - lookupLabel: 219 - center: - x: 14.053824362606235 - y: -47.55099150141643 - z: 74.55099150141643 - R_24dd: - name: R_24dd - lookupLabel: 220 - center: - x: 6.350089365504914 - y: -16.25044682752457 - z: 53.144548704200176 - R_24dv: - name: R_24dv - lookupLabel: 221 - center: - x: 9.12715321849501 - y: -2.558703535811418 - z: 46.757252946509524 - R_7AL: - name: R_7AL - lookupLabel: 222 - center: - x: 23.9706466250709 - y: -51.699517867271695 - z: 68.66832104367555 - R_SCEF: - name: R_SCEF - lookupLabel: 223 - center: - x: 6.105520127540856 - y: 4.079812674372249 - z: 61.31237544838581 - R_6ma: - name: R_6ma - lookupLabel: 224 - center: - x: 21.02052176802924 - y: 5.251661681621812 - z: 67.20696244599534 - R_7Am: - name: R_7Am - lookupLabel: 225 - center: - x: 9.016784452296818 - y: -60.45082449941107 - z: 62.13221436984688 - R_7PL: - name: R_7PL - lookupLabel: 226 - center: - x: 12.421378091872796 - y: -73.09746760895172 - z: 56.92432273262662 - R_7PC: - name: R_7PC - lookupLabel: 227 - center: - x: 36.42088607594937 - y: -47.30082470272343 - z: 61.418200997314926 - R_LIPv: - name: R_LIPv - lookupLabel: 228 - center: - x: 28.34354226020892 - y: -57.36918328584996 - z: 53.83736942070276 - R_VIP: - name: R_VIP - lookupLabel: 229 - center: - x: 21.826388888888886 - y: -63.62586805555556 - z: 63.31336805555554 - R_MIP: - name: R_MIP - lookupLabel: 230 - center: - x: 25.66491985203453 - y: -68.12916152897657 - z: 50.8733045622688 - R_1: - name: R_1 - lookupLabel: 231 - center: - x: 48.99934005279579 - y: -21.15100791936645 - z: 54.73632109431246 - R_2: - name: R_2 - lookupLabel: 232 - center: - x: 38.498777838131446 - y: -30.237235198261814 - z: 52.333107007061386 - R_3a: - name: R_3a - lookupLabel: 233 - center: - x: 32.625481386392806 - y: -19.941912708600768 - z: 46.98555840821567 - R_6d: - name: R_6d - lookupLabel: 234 - center: - x: 38.00440414507773 - y: -11.32046632124353 - z: 64.74740932642487 - R_6mp: - name: R_6mp - lookupLabel: 235 - center: - x: 17.389145216124334 - y: -11.763113161728995 - z: 69.37360369111218 - R_6v: - name: R_6v - lookupLabel: 236 - center: - x: 59.51385421867198 - y: 6.688841737393915 - z: 30.60971043434847 - R_p24pr: - name: R_p24pr - lookupLabel: 237 - center: - x: 4.364678899082563 - y: -2.1376146788990695 - z: 40.56116207951071 - R_33pr: - name: R_33pr - lookupLabel: 238 - center: - x: 3.3874829001368028 - y: 14.953146374829004 - z: 26.86080711354309 - R_a24pr: - name: R_a24pr - lookupLabel: 239 - center: - x: 4.366634799235186 - y: 19.49091778202677 - z: 32.13814531548758 - R_p32pr: - name: R_p32pr - lookupLabel: 240 - center: - x: 9.031569965870304 - y: 14.621160409556325 - z: 40.19112627986348 - R_a24: - name: R_a24 - lookupLabel: 241 - center: - x: -0.5 - y: 33.25 - z: -6.575000000000003 - R_d32: - name: R_d32 - lookupLabel: 242 - center: - x: 7.21994219653179 - y: 39.42861271676301 - z: 26.991040462427748 - R_8BM: - name: R_8BM - lookupLabel: 243 - center: - x: 4.865793079821856 - y: 30.65184994861255 - z: 47.43653648509763 - R_p32: - name: R_p32 - lookupLabel: 244 - center: - x: -0.5 - y: 43.25 - z: -12.75 - R_10r: - name: R_10r - lookupLabel: 245 - center: - x: -0.5 - y: 45.25 - z: -11.75 - R_47m: - name: R_47m - lookupLabel: 246 - center: - x: 33.735732814526585 - y: 32.57166018158236 - z: -15.882944228274965 - R_8Av: - name: R_8Av - lookupLabel: 247 - center: - x: 39.82491364421415 - y: 18.82016407599309 - z: 49.09974093264249 - R_8Ad: - name: R_8Ad - lookupLabel: 248 - center: - x: 23.983657243816253 - y: 30.605123674911653 - z: 42.313604240282686 - R_9m: - name: R_9m - lookupLabel: 249 - center: - x: 6.743400791904975 - y: 55.090079190497136 - z: 20.946876374835014 - R_8BL: - name: R_8BL - lookupLabel: 250 - center: - x: 13.209679537693717 - y: 41.907473075912804 - z: 49.511754662463886 - R_9p: - name: R_9p - lookupLabel: 251 - center: - x: 20.632601797990475 - y: 50.93588048651506 - z: 34.19315177154944 - R_10d: - name: R_10d - lookupLabel: 252 - center: - x: 9.5 - y: 67.84716981132075 - z: 5.073113207547166 - R_8C: - name: R_8C - lookupLabel: 253 - center: - x: 39.56847133757961 - y: 18.153093721565057 - z: 36.71496815286625 - R_44: - name: R_44 - lookupLabel: 254 - center: - x: 53.43095712861415 - y: 18.97781655034896 - z: 12.59097706879362 - R_45: - name: R_45 - lookupLabel: 255 - center: - x: 50.38198118753675 - y: 26.57921810699588 - z: 3.371399176954739 - R_47l: - name: R_47l - lookupLabel: 256 - center: - x: 45.23400000000001 - y: 33.28200000000001 - z: -13.70133333333333 - R_a47r: - name: R_a47r - lookupLabel: 257 - center: - x: 39.27214285714285 - y: 51.76821428571429 - z: -8.549999999999997 - R_6r: - name: R_6r - lookupLabel: 258 - center: - x: 52.19514925373133 - y: 10.025373134328362 - z: 13.33097014925373 - R_IFJa: - name: R_IFJa - lookupLabel: 259 - center: - x: 44.36234567901235 - y: 16.601851851851848 - z: 25.558641975308646 - R_IFJp: - name: R_IFJp - lookupLabel: 260 - center: - x: 38.60614849187934 - y: 7.4912993039443165 - z: 27.174593967517396 - R_IFSp: - name: R_IFSp - lookupLabel: 261 - center: - x: 47.722403776325336 - y: 28.692992011619452 - z: 18.92864923747277 - R_IFSa: - name: R_IFSa - lookupLabel: 262 - center: - x: 49.99172335600906 - y: 36.13299319727892 - z: 3.710997732426307 - R_p9-46v: - name: R_p9-46v - lookupLabel: 263 - center: - x: 47.47749099639856 - y: 30.948979591836746 - z: 27.212484993997606 - R_46: - name: R_46 - lookupLabel: 264 - center: - x: 36.77531259530343 - y: 39.89897834705704 - z: 30.743595608417195 - R_a9-46v: - name: R_a9-46v - lookupLabel: 265 - center: - x: 39.722477064220186 - y: 52.66371778069026 - z: 10.134884228920924 - R_9-46d: - name: R_9-46d - lookupLabel: 266 - center: - x: 29.25714077528417 - y: 49.34180996793938 - z: 23.474278635966186 - R_9a: - name: R_9a - lookupLabel: 267 - center: - x: 19.27009345794393 - y: 62.32710280373831 - z: 19.861682242990653 - R_10v: - name: R_10v - lookupLabel: 268 - center: - x: -0.5 - y: 27.25 - z: -24.375 - R_a10p: - name: R_a10p - lookupLabel: 269 - center: - x: 25.09744027303755 - y: 62.27457337883959 - z: -8.503924914675771 - R_10pp: - name: R_10pp - lookupLabel: 270 - center: - x: 12.489285714285714 - y: 63.23214285714286 - z: -16.408163265306122 - R_11l: - name: R_11l - lookupLabel: 271 - center: - x: 25.70719844357977 - y: 48.191309987029825 - z: -16.244487678339816 - R_13l: - name: R_13l - lookupLabel: 272 - center: - x: 20.14066339066339 - y: 28.982186732186733 - z: -20.260647010647013 - R_OFC: - name: R_OFC - lookupLabel: 273 - center: - x: -0.5 - y: 23.178571428571416 - z: -23.964285714285715 - R_47s: - name: R_47s - lookupLabel: 274 - center: - x: 31.287923614846704 - y: 22.431818181818187 - z: -19.62224314147391 - R_LIPd: - name: R_LIPd - lookupLabel: 275 - center: - x: 31.199820788530474 - y: -54.465053763440864 - z: 45.138888888888886 - R_6a: - name: R_6a - lookupLabel: 276 - center: - x: 26.937934186471665 - y: -2.1452468007312575 - z: 53.461882998171845 - R_i6-8: - name: R_i6-8 - lookupLabel: 277 - center: - x: 32.98572639909554 - y: 8.112068965517238 - z: 58.07108535895986 - R_s6-8: - name: R_s6-8 - lookupLabel: 278 - center: - x: 20.472158438576344 - y: 22.041044776119406 - z: 59.11796785304247 - R_43: - name: R_43 - lookupLabel: 279 - center: - x: 55.701399116347574 - y: 0.7986008836524263 - z: 9.749263622974965 - R_OP4: - name: R_OP4 - lookupLabel: 280 - center: - x: 56.67201559688061 - y: -11.195110977804433 - z: 14.169916016796634 - R_OP1: - name: R_OP1 - lookupLabel: 281 - center: - x: 41.9844013490725 - y: -19.719645868465435 - z: 19.186762225969645 - R_OP2-3: - name: R_OP2-3 - lookupLabel: 282 - center: - x: 38.684426229508205 - y: -13.571721311475414 - z: 18.45286885245902 - R_52: - name: R_52 - lookupLabel: 283 - center: - x: 38.23726114649682 - y: -20.593949044585983 - z: 2.6576433121019107 - R_RI: - name: R_RI - lookupLabel: 284 - center: - x: 41.18804034582132 - y: -30.816282420749275 - z: 19.757204610951007 - R_PFcm: - name: R_PFcm - lookupLabel: 285 - center: - x: 47.02060270602706 - y: -27.75615006150062 - z: 22.838560885608857 - R_PoI2: - name: R_PoI2 - lookupLabel: 286 - center: - x: 41.040063424947135 - y: -1.3233615221987236 - z: -0.3265327695560245 - R_TA2: - name: R_TA2 - lookupLabel: 287 - center: - x: 50.64983164983164 - y: 1.1111111111111143 - z: -5.57744107744108 - R_FOP4: - name: R_FOP4 - lookupLabel: 288 - center: - x: 38.70143706640238 - y: 15.140981169474713 - z: 7.443756194251733 - R_MI: - name: R_MI - lookupLabel: 289 - center: - x: 36.89003164556962 - y: 12.321202531645582 - z: 3.016613924050631 - R_Pir: - name: R_Pir - lookupLabel: 290 - center: - x: 33.20903954802259 - y: 8.545197740112997 - z: -18.355932203389834 - R_AVI: - name: R_AVI - lookupLabel: 291 - center: - x: 32.67650103519668 - y: 26.25 - z: -3.3400621118012452 - R_AAIC: - name: R_AAIC - lookupLabel: 292 - center: - x: 35.071173104434905 - y: 16.767167381974247 - z: -10.488912732474965 - R_FOP1: - name: R_FOP1 - lookupLabel: 293 - center: - x: 46.17549923195085 - y: 4.638632872503848 - z: 5.743855606758828 - R_FOP3: - name: R_FOP3 - lookupLabel: 294 - center: - x: 34.70601173020529 - y: 8.012463343108493 - z: 12.093108504398828 - R_FOP2: - name: R_FOP2 - lookupLabel: 295 - center: - x: 40.45631067961165 - y: -1.9126213592232943 - z: 15.550970873786412 - R_PFt: - name: R_PFt - lookupLabel: 296 - center: - x: 56.22141896435778 - y: -20.324310692669812 - z: 37.27790854068594 - R_AIP: - name: R_AIP - lookupLabel: 297 - center: - x: 38.6782267792521 - y: -38.670989143546436 - z: 44.44601930036188 - R_EC: - name: R_EC - lookupLabel: 298 - center: - x: 21.96528525296017 - y: -16.307588805166844 - z: -29.791442411194836 - R_PreS: - name: R_PreS - lookupLabel: 299 - center: - x: 16.533306581059392 - y: -34.39205457463885 - z: -10.778089887640448 - R_H: - name: R_H - lookupLabel: 300 - center: - x: 13.211538461538467 - y: -39.13461538461539 - z: -2.0192307692307736 - R_ProS: - name: R_ProS - lookupLabel: 301 - center: - x: 22.010387811634345 - y: -50.286011080332415 - z: 3.03393351800554 - R_PeEc: - name: R_PeEc - lookupLabel: 302 - center: - x: 30.155775638652358 - y: -9.921047760088854 - z: -34.3296001480933 - R_STGa: - name: R_STGa - lookupLabel: 303 - center: - x: 50.162170639899614 - y: 15.200439146800505 - z: -19.031681304893347 - R_PBelt: - name: R_PBelt - lookupLabel: 304 - center: - x: 55.791558441558436 - y: -18.91969696969697 - z: 8.968181818181819 - R_A5: - name: R_A5 - lookupLabel: 305 - center: - x: 62.39120290356033 - y: -14.145782924300036 - z: -1.887054960248875 - R_PHA1: - name: R_PHA1 - lookupLabel: 306 - center: - x: 22.32861060329067 - y: -35.80667276051189 - z: -15.326782449725776 - R_PHA3: - name: R_PHA3 - lookupLabel: 307 - center: - x: 33.473338485316845 - y: -37.29250386398763 - z: -14.900695517774345 - R_STSda: - name: R_STSda - lookupLabel: 308 - center: - x: 53.12557959814529 - y: -0.6531427099433245 - z: -14.851751674394642 - R_STSdp: - name: R_STSdp - lookupLabel: 309 - center: - x: 49.2487113402062 - y: -27.936211340206185 - z: -1.1140463917525807 - R_STSvp: - name: R_STSvp - lookupLabel: 310 - center: - x: 57.357777777777784 - y: -29.70555555555555 - z: -4.142777777777781 - R_TGd: - name: R_TGd - lookupLabel: 311 - center: - x: 35.96915444348576 - y: 14.269844693701458 - z: -35.73274374460742 - R_TE1a: - name: R_TE1a - lookupLabel: 312 - center: - x: 58.87770772712577 - y: -0.5747655997413403 - z: -26.16820239249919 - R_TE1p: - name: R_TE1p - lookupLabel: 313 - center: - x: 61.76427568453079 - y: -42.81108120758249 - z: -12.132284109524925 - R_TE2a: - name: R_TE2a - lookupLabel: 314 - center: - x: 55.18058443058442 - y: -18.107588357588355 - z: -30.1529799029799 - R_TF: - name: R_TF - lookupLabel: 315 - center: - x: 41.39750957854406 - y: -20.072723253757744 - z: -30.013925729442974 - R_TE2p: - name: R_TE2p - lookupLabel: 316 - center: - x: 48.30426176059618 - y: -37.408593386120174 - z: -21.533185840707965 - R_PHT: - name: R_PHT - lookupLabel: 317 - center: - x: 60.32077435470441 - y: -52.89029975020816 - z: -4.6230224812656076 - R_PH: - name: R_PH - lookupLabel: 318 - center: - x: 47.912915851272004 - y: -62.63160469667319 - z: -9.515166340508806 - R_TPOJ1: - name: R_TPOJ1 - lookupLabel: 319 - center: - x: 54.49825174825176 - y: -43.996153846153845 - z: 12.318531468531475 - R_TPOJ2: - name: R_TPOJ2 - lookupLabel: 320 - center: - x: 54.06372549019608 - y: -55.99667931688805 - z: 8.48561037318153 - R_TPOJ3: - name: R_TPOJ3 - lookupLabel: 321 - center: - x: 46.51398210290827 - y: -62.06096196868009 - z: 18.236577181208048 - R_DVT: - name: R_DVT - lookupLabel: 322 - center: - x: 20.227640959170444 - y: -71.13431626701231 - z: 36.50178224238496 - R_PGp: - name: R_PGp - lookupLabel: 323 - center: - x: 44.585319609967485 - y: -77.68752257132539 - z: 25.48167208378476 - R_IP2: - name: R_IP2 - lookupLabel: 324 - center: - x: 43.21243617797228 - y: -41.783552151714076 - z: 46.256929248723566 - R_IP1: - name: R_IP1 - lookupLabel: 325 - center: - x: 34.10836734693876 - y: -67.14591836734694 - z: 41.90020408163265 - R_IP0: - name: R_IP0 - lookupLabel: 326 - center: - x: 34.13036117381489 - y: -74.70033860045146 - z: 27.493792325056432 - R_PFop: - name: R_PFop - lookupLabel: 327 - center: - x: 61.990983606557364 - y: -19.14754098360656 - z: 23.404098360655738 - R_PF: - name: R_PF - lookupLabel: 328 - center: - x: 60.76220657276994 - y: -28.570344287949922 - z: 37.12527386541471 - R_PFm: - name: R_PFm - lookupLabel: 329 - center: - x: 52.62481638648603 - y: -48.011955279908605 - z: 46.548596376693325 - R_PGi: - name: R_PGi - lookupLabel: 330 - center: - x: 51.173493975903625 - y: -59.60451807228915 - z: 28.7867469879518 - R_PGs: - name: R_PGs - lookupLabel: 331 - center: - x: 44.58025969138126 - y: -68.62692886714339 - z: 42.13991343620624 - R_V6A: - name: R_V6A - lookupLabel: 332 - center: - x: 24.236885245901632 - y: -84.3860655737705 - z: 43.51229508196721 - R_VMV1: - name: R_VMV1 - lookupLabel: 333 - center: - x: 18.165533980582524 - y: -54.592718446601936 - z: -6.3762135922330145 - R_VMV3: - name: R_VMV3 - lookupLabel: 334 - center: - x: 27.495945945945948 - y: -61.11756756756756 - z: -9.42972972972973 - R_PHA2: - name: R_PHA2 - lookupLabel: 335 - center: - x: 31.138127853881286 - y: -35.28196347031964 - z: -12.871004566210047 - R_V4t: - name: R_V4t - lookupLabel: 336 - center: - x: 50.17153493699885 - y: -74.18069873997709 - z: -0.2362542955326461 - R_FST: - name: R_FST - lookupLabel: 337 - center: - x: 50.02332242225859 - y: -63.07815057283142 - z: 1.4210310965630129 - R_V3CD: - name: R_V3CD - lookupLabel: 338 - center: - x: 37.86700844390833 - y: -83.50030156815441 - z: 12.1034378769602 - R_LO3: - name: R_LO3 - lookupLabel: 339 - center: - x: 43.52718120805369 - y: -74.29362416107382 - z: 13.249328859060398 - R_VMV2: - name: R_VMV2 - lookupLabel: 340 - center: - x: 27.185257410296416 - y: -54.02145085803433 - z: -6.6275351014040496 - R_31pd: - name: R_31pd - lookupLabel: 341 - center: - x: 11.04812606473594 - y: -52.36328790459966 - z: 35.753407155025556 - R_31a: - name: R_31a - lookupLabel: 342 - center: - x: 6.678571428571431 - y: -41.39160401002506 - z: 42.74624060150376 - R_VVC: - name: R_VVC - lookupLabel: 343 - center: - x: 28.975396825396828 - y: -48.27380952380952 - z: -17.603439153439155 - R_25: - name: R_25 - lookupLabel: 344 - center: - x: -0.5 - y: 23.184782608695656 - z: -18.532608695652172 - R_s32: - name: R_s32 - lookupLabel: 345 - center: - x: -0.5 - y: 37.89516129032259 - z: -16.088709677419352 - R_pOFC: - name: R_pOFC - lookupLabel: 346 - center: - x: 13.150634920634914 - y: 15.451904761904757 - z: -19.916666666666664 - R_PoI1: - name: R_PoI1 - lookupLabel: 347 - center: - x: 39.27380952380952 - y: -9.349999999999994 - z: -4.627489177489181 - R_Ig: - name: R_Ig - lookupLabel: 348 - center: - x: 36.55669144981414 - y: -12.947026022304826 - z: 14.114312267657994 - R_FOP5: - name: R_FOP5 - lookupLabel: 349 - center: - x: 36.99032042723633 - y: 27.550400534045394 - z: 4.831441922563414 - R_p10p: - name: R_p10p - lookupLabel: 350 - center: - x: 24.291880341880344 - y: 60.99643874643874 - z: 3.7517094017094053 - R_p47r: - name: R_p47r - lookupLabel: 351 - center: - x: 46.39924346629985 - y: 44.291265474552944 - z: -4.291265474552958 - R_TGv: - name: R_TGv - lookupLabel: 352 - center: - x: 35.20703006377164 - y: -1.2091557849984724 - z: -45.193516550258124 - R_MBelt: - name: R_MBelt - lookupLabel: 353 - center: - x: 45.40606936416185 - y: -16.026011560693647 - z: 4.697976878612721 - R_LBelt: - name: R_LBelt - lookupLabel: 354 - center: - x: 46.75763358778627 - y: -25.133206106870233 - z: 10.743893129770996 - R_A4: - name: R_A4 - lookupLabel: 355 - center: - x: 64.40990504963315 - y: -15.49104445403539 - z: 6.570025895554593 - R_STSva: - name: R_STSva - lookupLabel: 356 - center: - x: 54.14915966386553 - y: -8.57352941176471 - z: -16.90966386554622 - R_TE1m: - name: R_TE1m - lookupLabel: 357 - center: - x: 64.4446177847114 - y: -22.457878315132604 - z: -16.45748829953198 - R_PI: - name: R_PI - lookupLabel: 358 - center: - x: 44.23837209302326 - y: -3.3354993160054676 - z: -12.723324213406293 - R_a32pr: - name: R_a32pr - lookupLabel: 359 - center: - x: 9.49804905239688 - y: 28.60785953177256 - z: 30.501393534002233 - R_p24: - name: R_p24 - lookupLabel: 360 - center: - x: 4.540288529204787 - y: 37.96006333567911 - z: 15.406579873328639 - L_Cerebellum: - name: L_Cerebellum - lookupLabel: 361 - center: - x: -24.48406697634512 - y: -62.91741405082212 - z: -36.83932078532312 - L_Thalamus: - name: L_Thalamus - lookupLabel: 362 - center: - x: -11.496794431469525 - y: -19.229690433667628 - z: 6.6696318175573595 - L_Caudate: - name: L_Caudate - lookupLabel: 363 - center: - x: -12.935904089682381 - y: 9.588800083039246 - z: 9.577901183309109 - L_Putamen: - name: L_Putamen - lookupLabel: 364 - center: - x: -26.351774609434244 - y: 0.004133171545589676 - z: 0.17590626421961986 - L_Pallidum: - name: L_Pallidum - lookupLabel: 365 - center: - x: -20.573129251700678 - y: -5.126039304610742 - z: -1.1611866969009839 - L_Hippocampus: - name: L_Hippocampus - lookupLabel: 366 - center: - x: -25.404492905938 - y: -22.463785251357507 - z: -14.297994394815206 - L_Amygdala: - name: L_Amygdala - lookupLabel: 367 - center: - x: -22.99617737003058 - y: -5.069571865443436 - z: -19.665392456676862 - L_Accumbens: - name: L_Accumbens - lookupLabel: 368 - center: - x: -8.521477663230243 - y: 9.993986254295521 - z: -8.447594501718214 - L_VentralDC: - name: L_VentralDC - lookupLabel: 369 - center: - x: -10.531068871462665 - y: -15.487811114899415 - z: -10.567337197408797 - R_Cerebellum: - name: R_Cerebellum - lookupLabel: 370 - center: - x: -0.5 - y: -55.72687861271676 - z: -48.02456647398844 - R_Thalamus: - name: R_Thalamus - lookupLabel: 371 - center: - x: 11.250937530839835 - y: -17.52795322214547 - z: 6.882241192144477 - R_Caudate: - name: R_Caudate - lookupLabel: 372 - center: - x: 13.048647242455772 - y: 11.009209157127998 - z: 9.626170655567122 - R_Putamen: - name: R_Putamen - lookupLabel: 373 - center: - x: 26.342504106316255 - y: 2.011385695087341 - z: -0.2747872181573854 - R_Pallidum: - name: R_Pallidum - lookupLabel: 374 - center: - x: 21.01383138878434 - y: -3.7857546104629307 - z: -1.0324614226571356 - R_Hippocampus: - name: R_Hippocampus - lookupLabel: 375 - center: - x: 26.09407680438882 - y: -21.39443682496143 - z: -14.08730498885651 - R_Amygdala: - name: R_Amygdala - lookupLabel: 376 - center: - x: 23.239999999999995 - y: -3.7350000000000136 - z: -19.836363636363636 - R_Accumbens: - name: R_Accumbens - lookupLabel: 377 - center: - x: 7.9292828685259025 - y: 11.381474103585646 - z: -7.499667994687911 - R_VentralDC: - name: R_VentralDC - lookupLabel: 378 - center: - x: 10.552531234788248 - y: -14.65524095408081 - z: -10.15475417815999 - Brain-Stem: - name: Brain-Stem - lookupLabel: 379 - center: - x: -6.083886808450501 - y: -30.95130007772204 - z: -33.07643255846817 diff --git a/tvbo/data/tvbo_data/atlas/tpl-MNI152NLin2009c_atlas-DesikanKilliany_desc-ranked_dseg.yaml b/tvbo/data/tvbo_data/atlas/tpl-MNI152NLin2009c_atlas-DesikanKilliany_desc-ranked_dseg.yaml deleted file mode 100644 index aa4cf0329..000000000 --- a/tvbo/data/tvbo_data/atlas/tpl-MNI152NLin2009c_atlas-DesikanKilliany_desc-ranked_dseg.yaml +++ /dev/null @@ -1,870 +0,0 @@ -name: DesikanKilliany -coordinateSpace: - name: MNI-ICBM152-Nonlinear-2009c - abbreviation: MNI152NLin2009c -terminology: - entities: - left-cerebellum-cortex: - name: left-cerebellum-cortex - lookupLabel: 1 - originalLookupLabel: 8 - center: - x: -24.40642428142428 - y: -61.91204150579151 - z: -36.62557646932647 - alternateName: - - L.CER - left-thalamus: - name: left-thalamus - lookupLabel: 2 - originalLookupLabel: 10 - center: - x: -11.500183217295714 - y: -18.458226456577506 - z: 7.141168926346651 - alternateName: - - L.TH - left-caudate: - name: left-caudate - lookupLabel: 3 - originalLookupLabel: 11 - center: - x: -12.735150095805835 - y: 10.40195869704067 - z: 9.836491377474985 - alternateName: - - L.CA - left-putamen: - name: left-putamen - lookupLabel: 4 - originalLookupLabel: 12 - center: - x: -25.96036489462095 - y: 1.3513683548285655 - z: 0.1748977665932614 - alternateName: - - L.PU - left-pallidum: - name: left-pallidum - lookupLabel: 5 - originalLookupLabel: 13 - center: - x: -20.477836213373408 - y: -4.457926371149512 - z: -0.817430503380919 - alternateName: - - L.PA - brain-stem: - name: brain-stem - lookupLabel: 6 - originalLookupLabel: 16 - center: - x: -6.0589560918871825 - y: -30.443442861296887 - z: -33.16363768537366 - left-hippocampus: - name: left-hippocampus - lookupLabel: 7 - originalLookupLabel: 17 - center: - x: -25.205718041406513 - y: -21.822543542556687 - z: -13.643608281301354 - alternateName: - - L.HI - left-amygdala: - name: left-amygdala - lookupLabel: 8 - originalLookupLabel: 18 - center: - x: -22.85378973105135 - y: -4.4596577017114925 - z: -19.27041564792176 - alternateName: - - L.AM - left-accumbens-area: - name: left-accumbens-area - lookupLabel: 9 - originalLookupLabel: 26 - center: - x: -8.33931240657698 - y: 11.461883408071742 - z: -7.768310911808669 - alternateName: - - L.AC - left-ventraldc: - name: left-ventraldc - lookupLabel: 10 - originalLookupLabel: 28 - center: - x: -10.237206308336013 - y: -14.780978435790146 - z: -10.105889925973614 - right-cerebellum-cortex: - name: right-cerebellum-cortex - lookupLabel: 11 - originalLookupLabel: 47 - center: - x: 24.792715621526185 - y: -61.53569607009743 - z: -36.70357679984306 - alternateName: - - R.CER - right-thalamus: - name: right-thalamus - lookupLabel: 12 - originalLookupLabel: 49 - center: - x: 11.61273313153012 - y: -16.875695732838594 - z: 7.132701884581579 - alternateName: - - R.TH - right-caudate: - name: right-caudate - lookupLabel: 13 - originalLookupLabel: 50 - center: - x: 13.286608260325409 - y: 11.799958281184814 - z: 9.694201084689198 - alternateName: - - R.CA - right-putamen: - name: right-putamen - lookupLabel: 14 - originalLookupLabel: 51 - center: - x: 26.567430416730744 - y: 3.172689527910194 - z: -0.39351068737505557 - alternateName: - - R.PU - right-pallidum: - name: right-pallidum - lookupLabel: 15 - originalLookupLabel: 52 - center: - x: 21.271406127258444 - y: -2.800471327572666 - z: -0.939905734485464 - alternateName: - - R.PA - right-hippocampus: - name: right-hippocampus - lookupLabel: 16 - originalLookupLabel: 53 - center: - x: 26.533618477331046 - y: -20.720273738237807 - z: -13.792130025662956 - alternateName: - - R.HI - right-amygdala: - name: right-amygdala - lookupLabel: 17 - originalLookupLabel: 54 - center: - x: 23.278780068728523 - y: -3.0472508591065264 - z: -19.627147766323027 - alternateName: - - R.AM - right-accumbens-area: - name: right-accumbens-area - lookupLabel: 18 - originalLookupLabel: 58 - center: - x: 8.52184769038702 - y: 12.62921348314606 - z: -7.15106117353308 - alternateName: - - R.AC - right-ventraldc: - name: right-ventraldc - lookupLabel: 19 - originalLookupLabel: 60 - center: - x: 10.595841864860603 - y: -14.210899354229014 - z: -10.174988187116085 - ctx-lh-bankssts: - name: ctx-lh-bankssts - lookupLabel: 20 - originalLookupLabel: 1001 - center: - x: -53.39756532066508 - y: -45.79423990498812 - z: 8.515142517814724 - alternateName: - - L.BSTS - ctx-lh-caudalanteriorcingulate: - name: ctx-lh-caudalanteriorcingulate - lookupLabel: 21 - originalLookupLabel: 1002 - center: - x: -4.973120728929388 - y: 21.2359908883827 - z: 27.031890660592254 - alternateName: - - L.CACG - ctx-lh-caudalmiddlefrontal: - name: ctx-lh-caudalmiddlefrontal - lookupLabel: 22 - originalLookupLabel: 1003 - center: - x: -36.74404027949034 - y: 11.222975750102762 - z: 49.34001233045623 - alternateName: - - L.CMFG - ctx-lh-cuneus: - name: ctx-lh-cuneus - lookupLabel: 23 - originalLookupLabel: 1005 - center: - x: -6.846679081315955 - y: -78.28739913097455 - z: 21.713842333954062 - alternateName: - - L.CU - ctx-lh-entorhinal: - name: ctx-lh-entorhinal - lookupLabel: 24 - originalLookupLabel: 1006 - center: - x: -24.201298701298697 - y: -4.779220779220779 - z: -32.824675324675326 - alternateName: - - L.EC - ctx-lh-fusiform: - name: ctx-lh-fusiform - lookupLabel: 25 - originalLookupLabel: 1007 - center: - x: -34.905548705302095 - y: -44.133497739416356 - z: -20.642005754212903 - alternateName: - - L.FG - ctx-lh-inferiorparietal: - name: ctx-lh-inferiorparietal - lookupLabel: 26 - originalLookupLabel: 1008 - center: - x: -40.60552268244576 - y: -70.56233421750663 - z: 33.03631911854724 - alternateName: - - L.IPG - ctx-lh-inferiortemporal: - name: ctx-lh-inferiortemporal - lookupLabel: 27 - originalLookupLabel: 1009 - center: - x: -50.56490037085926 - y: -31.539128795021682 - z: -24.869193538248787 - alternateName: - - L.ITG - ctx-lh-isthmuscingulate: - name: ctx-lh-isthmuscingulate - lookupLabel: 28 - originalLookupLabel: 1010 - center: - x: -6.529188558085224 - y: -45.38412142440164 - z: 19.773204903677765 - alternateName: - - L.ICG - ctx-lh-lateraloccipital: - name: ctx-lh-lateraloccipital - lookupLabel: 29 - originalLookupLabel: 1011 - center: - x: -30.96147730557965 - y: -88.63045677941602 - z: 1.6724486845909183 - alternateName: - - L.LOG - ctx-lh-lateralorbitofrontal: - name: ctx-lh-lateralorbitofrontal - lookupLabel: 30 - originalLookupLabel: 1012 - center: - x: -24.359540971168443 - y: 31.971452959028824 - z: -18.02959028831563 - alternateName: - - L.LOFG - ctx-lh-lingual: - name: ctx-lh-lingual - lookupLabel: 31 - originalLookupLabel: 1013 - center: - x: -14.154186134612956 - y: -67.35004419749968 - z: -4.748453087511052 - alternateName: - - L.LG - ctx-lh-medialorbitofrontal: - name: ctx-lh-medialorbitofrontal - lookupLabel: 32 - originalLookupLabel: 1014 - center: - x: -5.935648896068926 - y: 34.539310716208945 - z: -17.127355950457726 - alternateName: - - L.MOFG - ctx-lh-middletemporal: - name: ctx-lh-middletemporal - lookupLabel: 33 - originalLookupLabel: 1015 - center: - x: -57.95826158826365 - y: -21.837385494868798 - z: -14.932295612645497 - alternateName: - - L.MTG - ctx-lh-parahippocampal: - name: ctx-lh-parahippocampal - lookupLabel: 34 - originalLookupLabel: 1016 - center: - x: -23.94569839712136 - y: -30.401701014066077 - z: -18.63591756624141 - alternateName: - - L.PHIG - ctx-lh-paracentral: - name: ctx-lh-paracentral - lookupLabel: 35 - originalLookupLabel: 1017 - center: - x: -6.365271728839232 - y: -28.35845483809885 - z: 58.75932588524901 - alternateName: - - L.PaCG - ctx-lh-parsopercularis: - name: ctx-lh-parsopercularis - lookupLabel: 36 - originalLookupLabel: 1018 - center: - x: -47.72817428060478 - y: 15.508372622337845 - z: 14.426597301251832 - alternateName: - - L.POP - ctx-lh-parsorbitalis: - name: ctx-lh-parsorbitalis - lookupLabel: 37 - originalLookupLabel: 1019 - center: - x: -43.20521541950114 - y: 41.39909297052154 - z: -12.979875283446717 - alternateName: - - L.POR - ctx-lh-parstriangularis: - name: ctx-lh-parstriangularis - lookupLabel: 38 - originalLookupLabel: 1020 - center: - x: -47.245463049579044 - y: 31.71487371375116 - z: 3.1206735266604255 - alternateName: - - L.PTR - ctx-lh-pericalcarine: - name: ctx-lh-pericalcarine - lookupLabel: 39 - originalLookupLabel: 1021 - center: - x: -12.091287878787881 - y: -80.11666666666667 - z: 6.467045454545456 - alternateName: - - L.PCAL - ctx-lh-postcentral: - name: ctx-lh-postcentral - lookupLabel: 40 - originalLookupLabel: 1022 - center: - x: -46.6283493218657 - y: -22.266953357591802 - z: 44.24892490903076 - alternateName: - - L.PoCG - ctx-lh-posteriorcingulate: - name: ctx-lh-posteriorcingulate - lookupLabel: 41 - originalLookupLabel: 1023 - center: - x: -5.396387832699617 - y: -18.092205323193923 - z: 39.02614068441065 - alternateName: - - L.PCG - ctx-lh-precentral: - name: ctx-lh-precentral - lookupLabel: 42 - originalLookupLabel: 1024 - center: - x: -43.05403462529204 - y: -6.9650751812136775 - z: 42.54927215000299 - alternateName: - - L.PrCG - ctx-lh-precuneus: - name: ctx-lh-precuneus - lookupLabel: 43 - originalLookupLabel: 1025 - center: - x: -8.467257583861851 - y: -59.011920226178646 - z: 38.991289065484835 - alternateName: - - L.PCU - ctx-lh-rostralanteriorcingulate: - name: ctx-lh-rostralanteriorcingulate - lookupLabel: 44 - originalLookupLabel: 1026 - center: - x: -4.612650433809122 - y: 36.28575426812202 - z: -0.7903722362160579 - alternateName: - - L.RACG - ctx-lh-rostralmiddlefrontal: - name: ctx-lh-rostralmiddlefrontal - lookupLabel: 45 - originalLookupLabel: 1027 - center: - x: -33.5027973031129 - y: 46.39257877875005 - z: 17.839477836752266 - alternateName: - - L.RMFG - ctx-lh-superiorfrontal: - name: ctx-lh-superiorfrontal - lookupLabel: 46 - originalLookupLabel: 1028 - center: - x: -11.28868552412645 - y: 30.465201675368633 - z: 43.95478799701647 - alternateName: - - L.SFG - ctx-lh-superiorparietal: - name: ctx-lh-superiorparietal - lookupLabel: 47 - originalLookupLabel: 1029 - center: - x: -23.471579751254637 - y: -64.13031856862317 - z: 51.99874536329915 - alternateName: - - L.SPG - ctx-lh-superiortemporal: - name: ctx-lh-superiortemporal - lookupLabel: 48 - originalLookupLabel: 1030 - center: - x: -53.72980147099486 - y: -11.545484709395566 - z: -3.700215672178288 - alternateName: - - L.STG - ctx-lh-supramarginal: - name: ctx-lh-supramarginal - lookupLabel: 49 - originalLookupLabel: 1031 - center: - x: -55.0221420142986 - y: -39.35781217463733 - z: 35.114735892274595 - alternateName: - - L.SMG - ctx-lh-frontalpole: - name: ctx-lh-frontalpole - lookupLabel: 50 - originalLookupLabel: 1032 - center: - x: -7.600335852225015 - y: 67.47607052896726 - z: -10.203190596137702 - alternateName: - - L.FP - ctx-lh-temporalpole: - name: ctx-lh-temporalpole - lookupLabel: 51 - originalLookupLabel: 1033 - center: - x: -28.46723182262798 - y: 13.661232474731008 - z: -37.038800130420604 - alternateName: - - L.TP - ctx-lh-transversetemporal: - name: ctx-lh-transversetemporal - lookupLabel: 52 - originalLookupLabel: 1034 - center: - x: -44.806090739589806 - y: -21.555003107520193 - z: 9.389061528899944 - alternateName: - - L.TTG - ctx-lh-insula: - name: ctx-lh-insula - lookupLabel: 53 - originalLookupLabel: 1035 - center: - x: -36.0443006470881 - y: 0.8967645594823352 - z: -0.4175211548033815 - alternateName: - - L.IN - ctx-rh-bankssts: - name: ctx-rh-bankssts - lookupLabel: 54 - originalLookupLabel: 2001 - center: - x: 54.35591814159292 - y: -40.31692477876106 - z: 9.907356194690266 - alternateName: - - R.BSTS - ctx-rh-caudalanteriorcingulate: - name: ctx-rh-caudalanteriorcingulate - lookupLabel: 55 - originalLookupLabel: 2002 - center: - x: 5.119630812921542 - y: 22.472843450479246 - z: 27.414625488107916 - alternateName: - - R.CACG - ctx-rh-caudalmiddlefrontal: - name: ctx-rh-caudalmiddlefrontal - lookupLabel: 56 - originalLookupLabel: 2003 - center: - x: 36.84884792626727 - y: 14.019662058371722 - z: 49.388940092165896 - alternateName: - - R.CMFG - ctx-rh-cuneus: - name: ctx-rh-cuneus - lookupLabel: 57 - originalLookupLabel: 2005 - center: - x: 8.293982544786402 - y: -78.26917776757006 - z: 22.761828203950387 - alternateName: - - R.CU - ctx-rh-entorhinal: - name: ctx-rh-entorhinal - lookupLabel: 58 - originalLookupLabel: 2006 - center: - x: 23.822523881347408 - y: -4.82352941176471 - z: -33.72800402212167 - alternateName: - - R.EC - ctx-rh-fusiform: - name: ctx-rh-fusiform - lookupLabel: 59 - originalLookupLabel: 2007 - center: - x: 33.99211931192272 - y: -37.66155410558427 - z: -22.865604609778835 - alternateName: - - R.FG - ctx-rh-inferiorparietal: - name: ctx-rh-inferiorparietal - lookupLabel: 60 - originalLookupLabel: 2008 - center: - x: 46.338160087341265 - y: -63.07378038269263 - z: 32.69166235706487 - alternateName: - - R.IPG - ctx-rh-inferiortemporal: - name: ctx-rh-inferiortemporal - lookupLabel: 61 - originalLookupLabel: 2009 - center: - x: 50.51963177348489 - y: -27.11786038077969 - z: -27.183834298068206 - alternateName: - - R.ITG - ctx-rh-isthmuscingulate: - name: ctx-rh-isthmuscingulate - lookupLabel: 62 - originalLookupLabel: 2010 - center: - x: 7.688529244747301 - y: -43.68313458262351 - z: 20.111300397501424 - alternateName: - - R.ICG - ctx-rh-lateraloccipital: - name: ctx-rh-lateraloccipital - lookupLabel: 63 - originalLookupLabel: 2011 - center: - x: 35.092215077301944 - y: -83.91161581611712 - z: 0.8458065398823322 - alternateName: - - R.LOG - ctx-rh-lateralorbitofrontal: - name: ctx-rh-lateralorbitofrontal - lookupLabel: 64 - originalLookupLabel: 2012 - center: - x: 23.58775710088149 - y: 32.155827619980414 - z: -18.290401567091088 - alternateName: - - R.LOFG - ctx-rh-lingual: - name: ctx-rh-lingual - lookupLabel: 65 - originalLookupLabel: 2013 - center: - x: 14.48061104582844 - y: -65.48108108108109 - z: -3.4635722679200995 - alternateName: - - R.LG - ctx-rh-medialorbitofrontal: - name: ctx-rh-medialorbitofrontal - lookupLabel: 66 - originalLookupLabel: 2014 - center: - x: -1.0 - y: 27.0 - z: -17.0 - alternateName: - - R.MOFG - ctx-rh-middletemporal: - name: ctx-rh-middletemporal - lookupLabel: 67 - originalLookupLabel: 2015 - center: - x: 57.996066433566426 - y: -19.82498751248751 - z: -15.695179820179817 - alternateName: - - R.MTG - ctx-rh-parahippocampal: - name: ctx-rh-parahippocampal - lookupLabel: 68 - originalLookupLabel: 2016 - center: - x: 25.07764198418404 - y: -28.98562185478073 - z: -18.8842559309849 - alternateName: - - R.PHIG - ctx-rh-paracentral: - name: ctx-rh-paracentral - lookupLabel: 69 - originalLookupLabel: 2017 - center: - x: 7.240244969378821 - y: -26.09606299212598 - z: 58.74033245844271 - alternateName: - - R.PaCG - ctx-rh-parsopercularis: - name: ctx-rh-parsopercularis - lookupLabel: 70 - originalLookupLabel: 2018 - center: - x: 48.45660237388725 - y: 16.0600890207715 - z: 13.343842729970333 - alternateName: - - R.POP - ctx-rh-parsorbitalis: - name: ctx-rh-parsorbitalis - lookupLabel: 71 - originalLookupLabel: 2019 - center: - x: 43.11352447147408 - y: 42.51752099623516 - z: -13.376773819866784 - alternateName: - - R.POR - ctx-rh-parstriangularis: - name: ctx-rh-parstriangularis - lookupLabel: 72 - originalLookupLabel: 2020 - center: - x: 49.07252506265664 - y: 32.37045739348372 - z: 4.812030075187977 - alternateName: - - R.PTR - ctx-rh-pericalcarine: - name: ctx-rh-pericalcarine - lookupLabel: 73 - originalLookupLabel: 2021 - center: - x: 13.270567375886529 - y: -78.05602836879433 - z: 8.123404255319144 - alternateName: - - R.PCAL - ctx-rh-postcentral: - name: ctx-rh-postcentral - lookupLabel: 74 - originalLookupLabel: 2022 - center: - x: 47.432493177074974 - y: -18.782469096163112 - z: 43.82693851340504 - alternateName: - - R.PoCG - ctx-rh-posteriorcingulate: - name: ctx-rh-posteriorcingulate - lookupLabel: 75 - originalLookupLabel: 2023 - center: - x: 5.84615384615384 - y: -16.45428156748912 - z: 39.15135807588638 - alternateName: - - R.PCG - ctx-rh-precentral: - name: ctx-rh-precentral - lookupLabel: 76 - originalLookupLabel: 2024 - center: - x: 44.28920433776045 - y: -4.543986840502015 - z: 42.76501766784452 - alternateName: - - R.PrCG - ctx-rh-precuneus: - name: ctx-rh-precuneus - lookupLabel: 77 - originalLookupLabel: 2025 - center: - x: 10.294996842326853 - y: -57.70963441162024 - z: 38.6811451827942 - alternateName: - - R.PCU - ctx-rh-rostralanteriorcingulate: - name: ctx-rh-rostralanteriorcingulate - lookupLabel: 78 - originalLookupLabel: 2026 - center: - x: 4.951359084406292 - y: 37.200286123032896 - z: 1.9409871244635184 - alternateName: - - R.RACG - ctx-rh-rostralmiddlefrontal: - name: ctx-rh-rostralmiddlefrontal - lookupLabel: 79 - originalLookupLabel: 2027 - center: - x: 34.467899190581306 - y: 47.87601177336276 - z: 16.53233075791023 - alternateName: - - R.RMFG - ctx-rh-superiorfrontal: - name: ctx-rh-superiorfrontal - lookupLabel: 80 - originalLookupLabel: 2028 - center: - x: 11.909999999999997 - y: 31.74030487804879 - z: 43.47411585365853 - alternateName: - - R.SFG - ctx-rh-superiorparietal: - name: ctx-rh-superiorparietal - lookupLabel: 81 - originalLookupLabel: 2029 - center: - x: 25.160497364198946 - y: -63.0392505157002 - z: 53.294407517763005 - alternateName: - - R.SPG - ctx-rh-superiortemporal: - name: ctx-rh-superiortemporal - lookupLabel: 82 - originalLookupLabel: 2030 - center: - x: 54.669730604694195 - y: -6.946583420048555 - z: -5.236963810845182 - alternateName: - - R.STG - ctx-rh-supramarginal: - name: ctx-rh-supramarginal - lookupLabel: 83 - originalLookupLabel: 2031 - center: - x: 55.918280691299174 - y: -30.966775923718714 - z: 35.97683253873659 - alternateName: - - R.SMG - ctx-rh-frontalpole: - name: ctx-rh-frontalpole - lookupLabel: 84 - originalLookupLabel: 2032 - center: - x: 8.367959034381855 - y: 67.15727871250914 - z: -13.155084125822967 - alternateName: - - R.FP - ctx-rh-temporalpole: - name: ctx-rh-temporalpole - lookupLabel: 85 - originalLookupLabel: 2033 - center: - x: 28.28962962962963 - y: 15.050000000000011 - z: -35.056666666666665 - alternateName: - - R.TP - ctx-rh-transversetemporal: - name: ctx-rh-transversetemporal - lookupLabel: 86 - originalLookupLabel: 2034 - center: - x: 45.68185516680228 - y: -17.853539462978034 - z: 8.748576078112293 - alternateName: - - R.TTG - ctx-rh-insula: - name: ctx-rh-insula - lookupLabel: 87 - originalLookupLabel: 2035 - center: - x: 34.85538959185615 - y: 3.414898677575877 - z: -2.5362953096755803 - alternateName: - - R.IN diff --git a/tvbo/data/tvbo_data/atlas/tpl-MNI152Nlin2009c_atlas-Destrieux_desc-ranked_dseg.yaml b/tvbo/data/tvbo_data/atlas/tpl-MNI152Nlin2009c_atlas-Destrieux_desc-ranked_dseg.yaml deleted file mode 100644 index de0db0b6f..000000000 --- a/tvbo/data/tvbo_data/atlas/tpl-MNI152Nlin2009c_atlas-Destrieux_desc-ranked_dseg.yaml +++ /dev/null @@ -1,506 +0,0 @@ -name: Destrieux -coordinateSpace: - abbreviation: MNI152Nlin2009c -terminology: - entities: - - name: left-cerebellum-cortex - lookupLabel: 1 - originalLookupLabel: 8 - - name: left-thalamus - lookupLabel: 2 - originalLookupLabel: 10 - - name: left-caudate - lookupLabel: 3 - originalLookupLabel: 11 - - name: left-putamen - lookupLabel: 4 - originalLookupLabel: 12 - - name: left-pallidum - lookupLabel: 5 - originalLookupLabel: 13 - - name: brain-stem - lookupLabel: 6 - originalLookupLabel: 16 - - name: left-hippocampus - lookupLabel: 7 - originalLookupLabel: 17 - - name: left-amygdala - lookupLabel: 8 - originalLookupLabel: 18 - - name: left-accumbens-area - lookupLabel: 9 - originalLookupLabel: 26 - - name: left-ventraldc - lookupLabel: 10 - originalLookupLabel: 28 - - name: right-cerebellum-cortex - lookupLabel: 11 - originalLookupLabel: 47 - - name: right-thalamus - lookupLabel: 12 - originalLookupLabel: 49 - - name: right-caudate - lookupLabel: 13 - originalLookupLabel: 50 - - name: right-putamen - lookupLabel: 14 - originalLookupLabel: 51 - - name: right-pallidum - lookupLabel: 15 - originalLookupLabel: 52 - - name: right-hippocampus - lookupLabel: 16 - originalLookupLabel: 53 - - name: right-amygdala - lookupLabel: 17 - originalLookupLabel: 54 - - name: right-accumbens-area - lookupLabel: 18 - originalLookupLabel: 58 - - name: right-ventraldc - lookupLabel: 19 - originalLookupLabel: 60 - - name: ctx_lh_g_and_s_frontomargin - lookupLabel: 20 - originalLookupLabel: 11101 - - name: ctx_lh_g_and_s_occipital_inf - lookupLabel: 21 - originalLookupLabel: 11102 - - name: ctx_lh_g_and_s_paracentral - lookupLabel: 22 - originalLookupLabel: 11103 - - name: ctx_lh_g_and_s_subcentral - lookupLabel: 23 - originalLookupLabel: 11104 - - name: ctx_lh_g_and_s_transv_frontopol - lookupLabel: 24 - originalLookupLabel: 11105 - - name: ctx_lh_g_and_s_cingul-ant - lookupLabel: 25 - originalLookupLabel: 11106 - - name: ctx_lh_g_and_s_cingul-mid-ant - lookupLabel: 26 - originalLookupLabel: 11107 - - name: ctx_lh_g_and_s_cingul-mid-post - lookupLabel: 27 - originalLookupLabel: 11108 - - name: ctx_lh_g_cingul-post-dorsal - lookupLabel: 28 - originalLookupLabel: 11109 - - name: ctx_lh_g_cingul-post-ventral - lookupLabel: 29 - originalLookupLabel: 11110 - - name: ctx_lh_g_cuneus - lookupLabel: 30 - originalLookupLabel: 11111 - - name: ctx_lh_g_front_inf-opercular - lookupLabel: 31 - originalLookupLabel: 11112 - - name: ctx_lh_g_front_inf-orbital - lookupLabel: 32 - originalLookupLabel: 11113 - - name: ctx_lh_g_front_inf-triangul - lookupLabel: 33 - originalLookupLabel: 11114 - - name: ctx_lh_g_front_middle - lookupLabel: 34 - originalLookupLabel: 11115 - - name: ctx_lh_g_front_sup - lookupLabel: 35 - originalLookupLabel: 11116 - - name: ctx_lh_g_ins_lg_and_s_cent_ins - lookupLabel: 36 - originalLookupLabel: 11117 - - name: ctx_lh_g_insular_short - lookupLabel: 37 - originalLookupLabel: 11118 - - name: ctx_lh_g_occipital_middle - lookupLabel: 38 - originalLookupLabel: 11119 - - name: ctx_lh_g_occipital_sup - lookupLabel: 39 - originalLookupLabel: 11120 - - name: ctx_lh_g_oc-temp_lat-fusifor - lookupLabel: 40 - originalLookupLabel: 11121 - - name: ctx_lh_g_oc-temp_med-lingual - lookupLabel: 41 - originalLookupLabel: 11122 - - name: ctx_lh_g_oc-temp_med-parahip - lookupLabel: 42 - originalLookupLabel: 11123 - - name: ctx_lh_g_orbital - lookupLabel: 43 - originalLookupLabel: 11124 - - name: ctx_lh_g_pariet_inf-angular - lookupLabel: 44 - originalLookupLabel: 11125 - - name: ctx_lh_g_pariet_inf-supramar - lookupLabel: 45 - originalLookupLabel: 11126 - - name: ctx_lh_g_parietal_sup - lookupLabel: 46 - originalLookupLabel: 11127 - - name: ctx_lh_g_postcentral - lookupLabel: 47 - originalLookupLabel: 11128 - - name: ctx_lh_g_precentral - lookupLabel: 48 - originalLookupLabel: 11129 - - name: ctx_lh_g_precuneus - lookupLabel: 49 - originalLookupLabel: 11130 - - name: ctx_lh_g_rectus - lookupLabel: 50 - originalLookupLabel: 11131 - - name: ctx_lh_g_subcallosal - lookupLabel: 51 - originalLookupLabel: 11132 - - name: ctx_lh_g_temp_sup-g_t_transv - lookupLabel: 52 - originalLookupLabel: 11133 - - name: ctx_lh_g_temp_sup-lateral - lookupLabel: 53 - originalLookupLabel: 11134 - - name: ctx_lh_g_temp_sup-plan_polar - lookupLabel: 54 - originalLookupLabel: 11135 - - name: ctx_lh_g_temp_sup-plan_tempo - lookupLabel: 55 - originalLookupLabel: 11136 - - name: ctx_lh_g_temporal_inf - lookupLabel: 56 - originalLookupLabel: 11137 - - name: ctx_lh_g_temporal_middle - lookupLabel: 57 - originalLookupLabel: 11138 - - name: ctx_lh_lat_fis-ant-horizont - lookupLabel: 58 - originalLookupLabel: 11139 - - name: ctx_lh_lat_fis-ant-vertical - lookupLabel: 59 - originalLookupLabel: 11140 - - name: ctx_lh_lat_fis-post - lookupLabel: 60 - originalLookupLabel: 11141 - - name: ctx_lh_pole_occipital - lookupLabel: 61 - originalLookupLabel: 11143 - - name: ctx_lh_pole_temporal - lookupLabel: 62 - originalLookupLabel: 11144 - - name: ctx_lh_s_calcarine - lookupLabel: 63 - originalLookupLabel: 11145 - - name: ctx_lh_s_central - lookupLabel: 64 - originalLookupLabel: 11146 - - name: ctx_lh_s_cingul-marginalis - lookupLabel: 65 - originalLookupLabel: 11147 - - name: ctx_lh_s_circular_insula_ant - lookupLabel: 66 - originalLookupLabel: 11148 - - name: ctx_lh_s_circular_insula_inf - lookupLabel: 67 - originalLookupLabel: 11149 - - name: ctx_lh_s_circular_insula_sup - lookupLabel: 68 - originalLookupLabel: 11150 - - name: ctx_lh_s_collat_transv_ant - lookupLabel: 69 - originalLookupLabel: 11151 - - name: ctx_lh_s_collat_transv_post - lookupLabel: 70 - originalLookupLabel: 11152 - - name: ctx_lh_s_front_inf - lookupLabel: 71 - originalLookupLabel: 11153 - - name: ctx_lh_s_front_middle - lookupLabel: 72 - originalLookupLabel: 11154 - - name: ctx_lh_s_front_sup - lookupLabel: 73 - originalLookupLabel: 11155 - - name: ctx_lh_s_interm_prim-jensen - lookupLabel: 74 - originalLookupLabel: 11156 - - name: ctx_lh_s_intrapariet_and_p_trans - lookupLabel: 75 - originalLookupLabel: 11157 - - name: ctx_lh_s_oc_middle_and_lunatus - lookupLabel: 76 - originalLookupLabel: 11158 - - name: ctx_lh_s_oc_sup_and_transversal - lookupLabel: 77 - originalLookupLabel: 11159 - - name: ctx_lh_s_occipital_ant - lookupLabel: 78 - originalLookupLabel: 11160 - - name: ctx_lh_s_oc-temp_lat - lookupLabel: 79 - originalLookupLabel: 11161 - - name: ctx_lh_s_oc-temp_med_and_lingual - lookupLabel: 80 - originalLookupLabel: 11162 - - name: ctx_lh_s_orbital_lateral - lookupLabel: 81 - originalLookupLabel: 11163 - - name: ctx_lh_s_orbital_med-olfact - lookupLabel: 82 - originalLookupLabel: 11164 - - name: ctx_lh_s_orbital-h_shaped - lookupLabel: 83 - originalLookupLabel: 11165 - - name: ctx_lh_s_parieto_occipital - lookupLabel: 84 - originalLookupLabel: 11166 - - name: ctx_lh_s_pericallosal - lookupLabel: 85 - originalLookupLabel: 11167 - - name: ctx_lh_s_postcentral - lookupLabel: 86 - originalLookupLabel: 11168 - - name: ctx_lh_s_precentral-inf-part - lookupLabel: 87 - originalLookupLabel: 11169 - - name: ctx_lh_s_precentral-sup-part - lookupLabel: 88 - originalLookupLabel: 11170 - - name: ctx_lh_s_suborbital - lookupLabel: 89 - originalLookupLabel: 11171 - - name: ctx_lh_s_subparietal - lookupLabel: 90 - originalLookupLabel: 11172 - - name: ctx_lh_s_temporal_inf - lookupLabel: 91 - originalLookupLabel: 11173 - - name: ctx_lh_s_temporal_sup - lookupLabel: 92 - originalLookupLabel: 11174 - - name: ctx_lh_s_temporal_transverse - lookupLabel: 93 - originalLookupLabel: 11175 - - name: ctx_rh_g_and_s_frontomargin - lookupLabel: 94 - originalLookupLabel: 12101 - - name: ctx_rh_g_and_s_occipital_inf - lookupLabel: 95 - originalLookupLabel: 12102 - - name: ctx_rh_g_and_s_paracentral - lookupLabel: 96 - originalLookupLabel: 12103 - - name: ctx_rh_g_and_s_subcentral - lookupLabel: 97 - originalLookupLabel: 12104 - - name: ctx_rh_g_and_s_transv_frontopol - lookupLabel: 98 - originalLookupLabel: 12105 - - name: ctx_rh_g_and_s_cingul-ant - lookupLabel: 99 - originalLookupLabel: 12106 - - name: ctx_rh_g_and_s_cingul-mid-ant - lookupLabel: 100 - originalLookupLabel: 12107 - - name: ctx_rh_g_and_s_cingul-mid-post - lookupLabel: 101 - originalLookupLabel: 12108 - - name: ctx_rh_g_cingul-post-dorsal - lookupLabel: 102 - originalLookupLabel: 12109 - - name: ctx_rh_g_cingul-post-ventral - lookupLabel: 103 - originalLookupLabel: 12110 - - name: ctx_rh_g_cuneus - lookupLabel: 104 - originalLookupLabel: 12111 - - name: ctx_rh_g_front_inf-opercular - lookupLabel: 105 - originalLookupLabel: 12112 - - name: ctx_rh_g_front_inf-orbital - lookupLabel: 106 - originalLookupLabel: 12113 - - name: ctx_rh_g_front_inf-triangul - lookupLabel: 107 - originalLookupLabel: 12114 - - name: ctx_rh_g_front_middle - lookupLabel: 108 - originalLookupLabel: 12115 - - name: ctx_rh_g_front_sup - lookupLabel: 109 - originalLookupLabel: 12116 - - name: ctx_rh_g_ins_lg_and_s_cent_ins - lookupLabel: 110 - originalLookupLabel: 12117 - - name: ctx_rh_g_insular_short - lookupLabel: 111 - originalLookupLabel: 12118 - - name: ctx_rh_g_occipital_middle - lookupLabel: 112 - originalLookupLabel: 12119 - - name: ctx_rh_g_occipital_sup - lookupLabel: 113 - originalLookupLabel: 12120 - - name: ctx_rh_g_oc-temp_lat-fusifor - lookupLabel: 114 - originalLookupLabel: 12121 - - name: ctx_rh_g_oc-temp_med-lingual - lookupLabel: 115 - originalLookupLabel: 12122 - - name: ctx_rh_g_oc-temp_med-parahip - lookupLabel: 116 - originalLookupLabel: 12123 - - name: ctx_rh_g_orbital - lookupLabel: 117 - originalLookupLabel: 12124 - - name: ctx_rh_g_pariet_inf-angular - lookupLabel: 118 - originalLookupLabel: 12125 - - name: ctx_rh_g_pariet_inf-supramar - lookupLabel: 119 - originalLookupLabel: 12126 - - name: ctx_rh_g_parietal_sup - lookupLabel: 120 - originalLookupLabel: 12127 - - name: ctx_rh_g_postcentral - lookupLabel: 121 - originalLookupLabel: 12128 - - name: ctx_rh_g_precentral - lookupLabel: 122 - originalLookupLabel: 12129 - - name: ctx_rh_g_precuneus - lookupLabel: 123 - originalLookupLabel: 12130 - - name: ctx_rh_g_rectus - lookupLabel: 124 - originalLookupLabel: 12131 - - name: ctx_rh_g_subcallosal - lookupLabel: 125 - originalLookupLabel: 12132 - - name: ctx_rh_g_temp_sup-g_t_transv - lookupLabel: 126 - originalLookupLabel: 12133 - - name: ctx_rh_g_temp_sup-lateral - lookupLabel: 127 - originalLookupLabel: 12134 - - name: ctx_rh_g_temp_sup-plan_polar - lookupLabel: 128 - originalLookupLabel: 12135 - - name: ctx_rh_g_temp_sup-plan_tempo - lookupLabel: 129 - originalLookupLabel: 12136 - - name: ctx_rh_g_temporal_inf - lookupLabel: 130 - originalLookupLabel: 12137 - - name: ctx_rh_g_temporal_middle - lookupLabel: 131 - originalLookupLabel: 12138 - - name: ctx_rh_lat_fis-ant-horizont - lookupLabel: 132 - originalLookupLabel: 12139 - - name: ctx_rh_lat_fis-ant-vertical - lookupLabel: 133 - originalLookupLabel: 12140 - - name: ctx_rh_lat_fis-post - lookupLabel: 134 - originalLookupLabel: 12141 - - name: ctx_rh_pole_occipital - lookupLabel: 135 - originalLookupLabel: 12143 - - name: ctx_rh_pole_temporal - lookupLabel: 136 - originalLookupLabel: 12144 - - name: ctx_rh_s_calcarine - lookupLabel: 137 - originalLookupLabel: 12145 - - name: ctx_rh_s_central - lookupLabel: 138 - originalLookupLabel: 12146 - - name: ctx_rh_s_cingul-marginalis - lookupLabel: 139 - originalLookupLabel: 12147 - - name: ctx_rh_s_circular_insula_ant - lookupLabel: 140 - originalLookupLabel: 12148 - - name: ctx_rh_s_circular_insula_inf - lookupLabel: 141 - originalLookupLabel: 12149 - - name: ctx_rh_s_circular_insula_sup - lookupLabel: 142 - originalLookupLabel: 12150 - - name: ctx_rh_s_collat_transv_ant - lookupLabel: 143 - originalLookupLabel: 12151 - - name: ctx_rh_s_collat_transv_post - lookupLabel: 144 - originalLookupLabel: 12152 - - name: ctx_rh_s_front_inf - lookupLabel: 145 - originalLookupLabel: 12153 - - name: ctx_rh_s_front_middle - lookupLabel: 146 - originalLookupLabel: 12154 - - name: ctx_rh_s_front_sup - lookupLabel: 147 - originalLookupLabel: 12155 - - name: ctx_rh_s_interm_prim-jensen - lookupLabel: 148 - originalLookupLabel: 12156 - - name: ctx_rh_s_intrapariet_and_p_trans - lookupLabel: 149 - originalLookupLabel: 12157 - - name: ctx_rh_s_oc_middle_and_lunatus - lookupLabel: 150 - originalLookupLabel: 12158 - - name: ctx_rh_s_oc_sup_and_transversal - lookupLabel: 151 - originalLookupLabel: 12159 - - name: ctx_rh_s_occipital_ant - lookupLabel: 152 - originalLookupLabel: 12160 - - name: ctx_rh_s_oc-temp_lat - lookupLabel: 153 - originalLookupLabel: 12161 - - name: ctx_rh_s_oc-temp_med_and_lingual - lookupLabel: 154 - originalLookupLabel: 12162 - - name: ctx_rh_s_orbital_lateral - lookupLabel: 155 - originalLookupLabel: 12163 - - name: ctx_rh_s_orbital_med-olfact - lookupLabel: 156 - originalLookupLabel: 12164 - - name: ctx_rh_s_orbital-h_shaped - lookupLabel: 157 - originalLookupLabel: 12165 - - name: ctx_rh_s_parieto_occipital - lookupLabel: 158 - originalLookupLabel: 12166 - - name: ctx_rh_s_pericallosal - lookupLabel: 159 - originalLookupLabel: 12167 - - name: ctx_rh_s_postcentral - lookupLabel: 160 - originalLookupLabel: 12168 - - name: ctx_rh_s_precentral-inf-part - lookupLabel: 161 - originalLookupLabel: 12169 - - name: ctx_rh_s_precentral-sup-part - lookupLabel: 162 - originalLookupLabel: 12170 - - name: ctx_rh_s_suborbital - lookupLabel: 163 - originalLookupLabel: 12171 - - name: ctx_rh_s_subparietal - lookupLabel: 164 - originalLookupLabel: 12172 - - name: ctx_rh_s_temporal_inf - lookupLabel: 165 - originalLookupLabel: 12173 - - name: ctx_rh_s_temporal_sup - lookupLabel: 166 - originalLookupLabel: 12174 - - name: ctx_rh_s_temporal_transverse - lookupLabel: 167 - originalLookupLabel: 12175 diff --git a/tvbo/data/types.py b/tvbo/data/types.py index b57621a4e..17ae5161d 100644 --- a/tvbo/data/types.py +++ b/tvbo/data/types.py @@ -6,6 +6,7 @@ stimulus, and monitor settings) handed to the integration backends. """ +import logging from copy import deepcopy import matplotlib.pyplot as plt @@ -25,6 +26,8 @@ from jax.tree_util import register_pytree_node_class import jax.numpy as jnp +logger = logging.getLogger(__name__) + def _to_dataarray(raw_data, raw_time=None, state_names=None, nodes=None): """Convert raw ndarray + metadata to xr.DataArray. @@ -291,6 +294,77 @@ def reassemble_shards(source, pattern="*__results.nc", to_grid=False, point_dim= return combined.set_index({point_dim: coord_names}).unstack(point_dim) +def reassemble_experiment_results(shards_root, out_dir, pattern="**/*_result.h5", + point_dim="point", stem="result", sidecar=None, + compress: bool = True): + """Gather an HPC run's shard outputs into one keyed ``ExperimentResult`` artifact. + + Follows the same on-disk shape as a :class:`~tvbo.classes.network.Network`: + one HDF5 file (``<stem>.h5``) holding the data, plus a YAML sidecar + (``<stem>.yaml``) carrying the frozen, fully-overridden experiment spec β€” so + the result is self-describing, provenance-complete and reproducible without + any extra flags, and identical to what a local run writes. + + Each array task wrote a shard as the same ``<prefix>_result.h5`` Dataset with + a flat, self-describing ``point`` dimension (see :meth:`ExperimentResult.save`). + This concatenates them along ``point`` and pivots by parameter value into the + full rectangular grid, giving one standard xarray ``Dataset`` that opens with a + plain ``xarray.open_dataset("<stem>.h5")`` β€” no TVBO-specific reader. + + Args: + shards_root: directory scanned recursively for the shard ``.h5`` files. + out_dir: where the ``<stem>.h5`` (+ ``<stem>.yaml``) is written. + pattern: glob for shard files. + point_dim: the flat cell dimension the shards wrote. + stem: basename of the result artifact (default ``result``). + sidecar: path to the frozen spec YAML to copy as ``<stem>.yaml`` + (typically the kit's ``spec/<name>.yaml``). Omit to skip the sidecar. + + Returns: + List of written paths (``<stem>.h5`` first, then ``<stem>.yaml``). + """ + import glob + import os + import shutil + + src = os.fspath(shards_root) + paths = sorted(glob.glob(os.path.join(src, pattern), recursive=True)) + if not paths: + raise FileNotFoundError(f"no shard files matched {pattern!r} under {src!r}") + + combined = xr.concat([xr.open_dataset(p, engine="h5netcdf") for p in paths], dim=point_dim) + coord_names = [c for c in combined.coords + if point_dim in combined[c].dims and c != point_dim] + if len(coord_names) >= 2: + # Multi-parameter sweep: pivot the flat point dim into one dim per parameter, + # addressing the full rectangular grid by value (order-independent). + grid = combined.set_index({point_dim: coord_names}).unstack(point_dim) + elif len(coord_names) == 1: + # A single ordering coordinate (a one-parameter sweep, or a branch-restart's + # ``branch_point`` index) is a flat, ordered sequence β€” not a grid to pivot. + # Sort by it so shard order is irrelevant, then make it the dimension. (unstack + # needs a multi-index, so it cannot handle the single-coordinate case at all.) + grid = combined.sortby(coord_names[0]).swap_dims({point_dim: coord_names[0]}) + else: + grid = combined + grid.attrs["tvbo_class"] = "tvbo:ExperimentResult" + if sidecar is not None: + grid.attrs["sidecar_file"] = f"{stem}.yaml" + + os.makedirs(out_dir, exist_ok=True) + h5_path = os.path.join(out_dir, f"{stem}.h5") + encoding = ({name: {"zlib": True, "complevel": 4} for name in grid.data_vars} + if compress else None) + grid.to_netcdf(h5_path, engine="h5netcdf", encoding=encoding) + written = [h5_path] + + if sidecar is not None and os.path.exists(os.fspath(sidecar)): + yaml_path = os.path.join(out_dir, f"{stem}.yaml") + shutil.copyfile(os.fspath(sidecar), yaml_path) + written.append(yaml_path) + return written + + # ============================================================================= # Result Classes for Simulation Experiments # ============================================================================= @@ -1107,7 +1181,23 @@ def __init__( self.cell_coords = cell_coords # Per-grid-point observations as {name: xr.DataArray} with grid axes # prepended to each observation's intrinsic dims (time/variable/node/mode). - self.observations = observations or {} + # Grid codegen already hands over labelled DataArrays; the warm-start / + # adiabatic path hands over plain arrays, so label those here (against the + # swept axes) β€” the class honours its own contract regardless of producer, + # and every consumer (plotting, save, reassembly) sees DataArrays. + self.observations = { + k: (_stacked_to_dataarray(v, self.axes, name=k, cell_coords=self.cell_coords) + if v is not None and not hasattr(v, "dims") else v) + for k, v in (observations or {}).items() + } + + # Collapse any axis marked ``ExplorationAxis.reduce`` by its statistic. An + # ensemble axis (e.g. an ``execution.random_seed`` trial ensemble) is reduced + # in place across every observation carrying its named grid dim, so the reduced + # observation (mean/sem/…) becomes first-class and the collapsed dim β€” and its + # axis metadata β€” drop out. Keyed by dim name (never positional); observations + # without the dim are untouched. No reduce axes β‡’ a no-op (behaviour unchanged). + self._apply_axis_reductions() # Compute expected grid shape from axes self._grid_shape = tuple( @@ -1157,6 +1247,61 @@ def _axis_values(ax): """Swept coordinate values for one axis (``Bunch`` or plain dict).""" return ax.get("explored_values") if isinstance(ax, dict) else getattr(ax, "explored_values", None) + @staticmethod + def _axis_reduce(ax): + """Reduction statistic for one axis (``ExplorationAxis.reduce.statistic``), or ``None``.""" + return ax.get("reduce") if isinstance(ax, dict) else getattr(ax, "reduce", None) + + @staticmethod + def _reduce_dataarray(da, dim, stat): + """Collapse ``da`` along the named ``dim`` by ``stat`` (keyed by dim name). + + Supports ``mean``, ``sum``, ``std``, ``median`` and ``sem`` (the standard + error of the mean, ``std`` along the dim divided by ``sqrt(n)``). + """ + stat = str(stat).lower() + if stat == "mean": + return da.mean(dim=dim) + if stat == "sum": + return da.sum(dim=dim) + if stat == "std": + return da.std(dim=dim) + if stat == "median": + return da.median(dim=dim) + if stat == "sem": + return da.std(dim=dim) / np.sqrt(da.sizes[dim]) + raise ValueError( + f"unknown ExplorationAxis.reduce statistic {stat!r}; " + "expected one of: mean, sum, std, sem, median" + ) + + def _apply_axis_reductions(self): + """Collapse every axis marked ``reduce`` across the observations it labels. + + For each axis whose ``reduce`` statistic is set, the matching named grid + dimension is reduced across every observation ``DataArray`` that carries it + (keyed by dim name), the reduced observations keep their names, and the axis + is dropped from ``self.axes`` so the shape metadata stays consistent. + Observations without the dim are left untouched. A no-op when no axis sets + ``reduce`` (result is byte-identical to a run without the feature). + """ + if not any(self._axis_reduce(ax) for ax in self.axes): + return + for ax in self.axes: + stat = self._axis_reduce(ax) + if not stat: + continue + dim = self._axis_name(ax) + if not dim: + continue + for k, da in list(self.observations.items()): + if da is None or not hasattr(da, "dims") or dim not in da.dims: + continue # skip observations that don't carry this dim + self.observations[k] = self._reduce_dataarray(da, dim, stat) + # Drop the collapsed axes from the axis metadata so downstream shape + # computation (``_grid_shape``) and labelling exclude them. + self.axes = [ax for ax in self.axes if not self._axis_reduce(ax)] + def as_grid(self): """Reshape the flat results into a grid **labeled by parameter name**. @@ -1464,6 +1609,47 @@ def time(self): return getattr(self, "ts", None) +def _free_param_names(source) -> set: + """Names of the model's free (tunable) parameters β€” dynamics + coupling. + + These are the parameters an algorithm tunes (e.g. wLRE / wFFI / J_i for EIB); their + fitted values are the operating point a ``from_experiment`` warm-start reloads as a + prior location (persisted as ``estimate__<param>`` in :meth:`ExperimentResult.save`). + State variables are never parameters, so filtering to these can never collide with + the settled ``<sv>_final`` state observations. Empty set when *source* is absent. + """ + names: set = set() + if source is None: + return names + + def _vals(coll): + if coll is None: + return [] + return list(coll.values()) if hasattr(coll, "values") else list(coll) + + def _add_free(params): + for p in _vals(params): + if getattr(p, "free", False) and getattr(p, "name", None): + names.add(p.name) + + def _couplings(obj): + # network.coupling is a name->Coupling dict; experiment.coupling is a single + # Coupling. Accept dict / list / single object so either shape resolves. + if obj is None: + return [] + if hasattr(obj, "values"): + return list(obj.values()) + if isinstance(obj, (list, tuple)): + return list(obj) + return [obj] + + _add_free(getattr(getattr(source, "dynamics", None), "parameters", None)) + net = getattr(source, "network", None) + for c in _couplings(getattr(net, "coupling", None)) + _couplings(getattr(source, "coupling", None)): + _add_free(getattr(c, "parameters", None)) + return names + + class ExperimentResult: """Result from a complete experiment run. @@ -1609,65 +1795,307 @@ def __contains__(self, key): return val is not None and val != {} return key in self._extras - def save(self, out_dir): - """Persist the run's observation arrays to *out_dir* as netCDF. + def _recorded_observation_names(self) -> set: + """Observation names to persist: leaves plus anything flagged ``record``. - Writes one file per observation ``DataArray`` on the explorations (the - two-stage HPC simulation output) and on the primary integration result. - A sharded run writes only its own slice; each file carries the swept - parameter value per cell as a coordinate, so shard files concatenate by - value into the full grid in the analysis pass. Returns written paths. - Falls back to ``.npz`` when a DataArray cannot be encoded as netCDF. + An observation is recorded when it is either explicitly ``record: true`` + or *terminal* β€” not consumed as a ``source`` by another observation or by + an optimization loss. ``record: false`` always drops it. This keeps final + results (a fitted FC, an effective-frequency map) while omitting + intermediates (a raw BOLD feeding an FC, an FC feeding a loss), which are + recomputable from the recipe in the sidecar. Falls back to keeping every + observation when the experiment carries no observation definitions. + """ + exp = self.source + obs_defs = getattr(exp, "observations", None) or {} + present = set(getattr(self, "observations", None) or {}) + if not obs_defs: + return present + consumed: set = set() + + def _mark(ref): + s = str(getattr(ref, "name", ref)) + if s in obs_defs: # bare observation name + consumed.add(s) + elif s.startswith("observations."): # observations.<name>[.data] + base = s.split(".")[1] + if base in obs_defs: + consumed.add(base) + + for o in obs_defs.values(): + for src in (getattr(o, "source", None) or []): + _mark(src) + for opt in (getattr(exp, "optimizations", None) or {}).values(): + loss = getattr(opt, "loss", None) + for arg in (getattr(loss, "arguments", None) or {}).values(): + if getattr(arg, "value", None) is not None: + _mark(arg.value) + + keep = set() + for name, o in obs_defs.items(): + rec = getattr(o, "record", None) + if rec is True: + keep.add(name) + elif rec is False: + continue + elif name not in consumed: + keep.add(name) + return keep & present if present else keep + + def save(self, out_dir, compress: bool = True, record_only: bool = True): + """Persist the run as one keyed HDF5 result plus a YAML provenance sidecar. + + Writes ``<prefix>_result.h5`` β€” a single xarray ``Dataset`` where every + output is a data-variable and the sweep parameters are shared coordinates + (a full run is gridded; a sharded run keeps the flat, self-describing + ``point`` dim that reassembles by value) β€” and ``<prefix>_result.yaml``, + the frozen experiment spec. ``<prefix>`` is the experiment's BIDS-style + key-value name (``ses-<id>_desc-<label>``). The **same** artifact is + produced by a local run and by the HPC gather pass, so they are + interchangeable. Returns the written paths. """ import os os.makedirs(out_dir, exist_ok=True) - written = [] def _san(s): return "".join(c if (c.isalnum() or c in "._-") else "_" for c in str(s)) - def _dump(da, stem): - named = da if getattr(da, "name", None) is not None else da.rename(stem) - path = os.path.join(out_dir, stem + ".nc") - try: - named.to_netcdf(path) - return path - except Exception: - npz = os.path.join(out_dir, stem + ".npz") - np.savez( - npz, - data=np.asarray(da.values), - **{f"coord__{_san(k)}": np.asarray(v) for k, v in da.coords.items()}, - ) - return npz - + # ── collect every output as a data-variable ────────────────────────── + by_output: dict[tuple, "xr.DataArray"] = {} for expl_name, expl in (self.explorations or {}).items(): + # ExplorationResult labels every observation as a DataArray at + # construction (grid and warm-start alike), so this stays uniform. for obs_name, da in (getattr(expl, "observations", None) or {}).items(): - if da is not None: - written.append(_dump(da, f"exploration__{_san(expl_name)}__{_san(obs_name)}")) - # Raw sweep results (the no-observations two-stage sim output): dump the - # labelled array (grid for a full run, flat 'point' for a shard). + if da is not None and hasattr(da, "dims"): + by_output[(_san(expl_name), _san(obs_name))] = da if getattr(expl, "results", None) is not None: try: g = expl.as_grid() except Exception: g = None - if g is not None and hasattr(g, "to_netcdf"): - written.append(_dump(g, f"exploration__{_san(expl_name)}__results")) - elif g is not None: - npz = os.path.join(out_dir, f"exploration__{_san(expl_name)}__results.npz") - np.savez(npz, results=np.asarray(g)) - written.append(npz) - - integ = self.integration - integ_obs = getattr(integ, "observations", None) if integ is not None else None + if g is not None and hasattr(g, "dims"): + by_output[(_san(expl_name), "results")] = g + outputs = [o for _, o in by_output] + data_vars = {(o if outputs.count(o) == 1 else f"{e}__{o}"): da + for (e, o), da in by_output.items()} + integ_obs = getattr(self.integration, "observations", None) if self.integration is not None else None if integ_obs and hasattr(integ_obs, "items"): for obs_name, obs in integ_obs.items(): da = getattr(obs, "data", obs) - if hasattr(da, "to_netcdf"): - written.append(_dump(da, f"integration__{_san(obs_name)}")) + if hasattr(da, "dims"): + data_vars[f"integration__{_san(obs_name)}"] = da + + # Experiments that produce observations/optimizations without an exploration + # sweep (e.g. a per-subject FC fit) still carry data to persist: the derived + # observations (simulated + reconciled empirical FC) and the fit outcome + # (fitted parameters, final loss, loss trajectory). Coerce to float and skip + # anything non-numeric so the HDF5 write never trips on Python objects. + def _numeric_da(name, arr): + if arr is None: + return None + try: + a = np.asarray(getattr(arr, "values", arr), dtype=float) + except (ValueError, TypeError): + try: # jax/0-d scalar wrapped as object + a = np.asarray(float(arr), dtype=float) + except (ValueError, TypeError): + return None + if a.dtype == object or a.size == 0: + return None + if a.ndim == 0: + return xr.DataArray(a) + return xr.DataArray(a, dims=[f"{name}_d{i}" for i in range(a.ndim)]) + + def _numeric_leaves(prefix, obj): + """Yield (var_name, DataArray) for the numeric leaves of a nested pytree.""" + leaf = _numeric_da(prefix.rsplit("__", 1)[-1], obj) + if leaf is not None: + yield prefix, leaf + return + if isinstance(obj, dict): + for k, v in obj.items(): + yield from _numeric_leaves(f"{prefix}__{_san(k)}", v) + elif isinstance(obj, (list, tuple)): + for i, v in enumerate(obj): + yield from _numeric_leaves(f"{prefix}__{i}", v) + + keep_obs = self._recorded_observation_names() if record_only else set(getattr(self, "observations", None) or {}) + for obs_name, obs in (getattr(self, "observations", None) or {}).items(): + if obs_name not in keep_obs: + continue + key = f"observation__{_san(obs_name)}" + da = _numeric_da(key, getattr(obs, "data", obs)) + if da is not None and key not in data_vars: + data_vars[key] = da + for opt_name, opt in (self.optimizations or {}).items(): + for field in ("final_loss", "loss_trajectory"): + da = _numeric_da(field, getattr(opt, field, None)) + if da is not None: + data_vars[f"optimization__{_san(opt_name)}__{field}"] = da + fitted = getattr(opt, "fitted_params", None) + if fitted is not None: + for name, da in _numeric_leaves(f"optimization__{_san(opt_name)}__fitted", fitted): + data_vars[name] = da + + # Persist each tuned FREE parameter's fitted value as ``estimate__<param>`` so a + # from_experiment warm-start can reload it as a prior location (point prior). Kept + # on LABELLED node axes (``node`` for vectors, ``node_i``+``node_j`` for per-edge + # matrices) β€” the same convention FC matrices use β€” so the consumer reconciles by + # label with the existing `.sel` path, no bespoke reindex. Container-layer only + # (values already live in AlgorithmResult.state) β†’ no codegen change; free params + # only, so it can't shadow a ``<sv>_final`` key; first-writer-wins per param. + free_names = _free_param_names(self.source) if self.algorithms else set() + if free_names: # nothing tunable β†’ skip the flatten entirely + # Use the RESOLVED node labels (hydrates `bids:` placeholders like region_<i>) + # so the estimate coords match what the consumer's _resolve_model_node_labels + # produces β€” else the warm-start `.sel` reconcile can't align. Fall back to the + # raw labels when the source can't resolve (e.g. an inline-network source). + _get = getattr(self.source, "_resolve_model_node_labels", None) + src_labels = (_get() if callable(_get) else None) \ + or getattr(getattr(self.source, "network", None), "node_labels", None) + src_labels = [str(l) for l in src_labels] if src_labels else None + nn = len(src_labels) if src_labels else None + for algo in self.algorithms.values(): + for dotted, arr in OptimizationResult._flatten_params(getattr(algo, "state", None)).items(): + param = dotted.rsplit(".", 1)[-1] + key = f"estimate__{_san(param)}" + if param not in free_names or key in data_vars: + continue + a = np.asarray(getattr(arr, "values", arr)) + if a.dtype == object or a.size == 0: + continue + # Label per-node vectors / per-edge matrices so the consumer reconciles + # by label with `.sel`; anything else (scalar) stays unlabelled. + label_dims = {1: ["node"], 2: ["node_i", "node_j"]}.get(a.ndim) + if nn and label_dims and all(s == nn for s in a.shape): + da = xr.DataArray(a, dims=label_dims, coords={d: src_labels for d in label_dims}) + else: + da = _numeric_da(key, a) + if da is not None: + data_vars[key] = da + + # Continuation branches (bifurcation results) persist through the SAME native + # Dataset β€” no per-figure array dump. Each branch keeps its own ``step`` + # dimension (renamed unique) so multiple branches and the sweep grid coexist; + # the continuation parameter and observables become data variables. + for cont_name, bifres in (self.continuations or {}).items(): + to_ds = getattr(bifres, "to_dataset", None) + if not callable(to_ds): + continue + cds = to_ds() + if "step" not in getattr(cds, "sizes", {}): + continue + dim = f"continuation__{_san(cont_name)}__step" + cds = cds.rename({"step": dim}).reset_coords() # ICS coord (e.g. G) β†’ data var + for vname, da in cds.data_vars.items(): + if da.dtype != object: # skip special-point label strings (HDF5 object dtype) + data_vars[f"continuation__{_san(cont_name)}__{_san(vname)}"] = da + + stem = "result" + if self.source is not None and hasattr(self.source, "get_result_stem"): + try: + stem = self.source.get_result_stem() # BIDS pybids-generated, filename-safe + except Exception: + stem = "result" + + # A sharded run's cell coordinates mark it as one slice of the sweep; its + # provenance sidecar is written once by the gather pass, not per task. + is_shard = any(getattr(e, "cell_coords", None) is not None + for e in (self.explorations or {}).values()) + written = [] + if data_vars: + ds = xr.Dataset(data_vars, attrs={"tvbo_class": "tvbo:ExperimentResult", + "sidecar_file": f"{stem}.yaml"}) + h5 = os.path.join(out_dir, f"{stem}.h5") + # Grids of trajectories/observations compress well (repeated structure, + # smooth fields), so gzip-deflate by default; `compress=False` opts out + # for max write speed. complevel 4 is the deflate speed/size sweet spot. + encoding = ({name: {"zlib": True, "complevel": 4} for name in ds.data_vars} + if compress else None) + try: + ds.to_netcdf(h5, engine="h5netcdf", encoding=encoding) + written.append(h5) + except Exception: + npz = os.path.join(out_dir, f"{stem}.npz") + np.savez(npz, **{k: np.asarray(v.values) for k, v in data_vars.items()}) + written.append(npz) + + if (not is_shard and written and written[0].endswith(".h5") + and self.source is not None and hasattr(self.source, "freeze_yaml")): + try: + # Self-contained provenance: spec + connectome companion + # (<stem>_network.h5), reproducible on reload without data sources. + yaml_text = self.source.freeze_yaml(out_dir, network_stem=f"{stem}_network") + yaml_path = os.path.join(out_dir, f"{stem}.yaml") + with open(yaml_path, "w", encoding="utf-8") as fh: + fh.write(yaml_text) + written.append(yaml_path) + except Exception: + pass + # BEP034 alignment: a JSON metadata sidecar (BIDS tooling reads JSON) + # beside the richer YAML re-run recipe, and a dataset_description.json + # marking out_dir as a BIDS-derivatives dataset. + try: + written += self._write_bep034_sidecars(out_dir, stem) + except Exception: + pass + return written + + def _write_bep034_sidecars(self, out_dir, stem) -> list: + """Write a BEP034 JSON metadata sidecar + a derivatives dataset_description.json. + + Complements the YAML re-run recipe with BIDS-standard JSON so the result is + discoverable by pybids/BIDS tooling. The gridded HDF5 itself supersedes + emitting one BEP034 ``ts/`` file per sweep cell (a 15,600-cell grid would be + 15,600 files); the sidecar records the model, integrator, and swept space so + the mapping back to per-cell simulations is explicit. + """ + import datetime as _dt + import json as _json + import os + + from tvbo.adapters.bids import DatasetDescription, SimulationProvenance + + exp = self.source + integ = getattr(exp, "integration", None) + dyn = getattr(exp, "dynamics", None) + now = _dt.datetime.now().isoformat(timespec="seconds") + prov = SimulationProvenance( + Model=getattr(dyn, "name", None) or getattr(dyn, "label", None), + Integrator=getattr(integ, "method", None), + Duration=getattr(integ, "duration", None), + StepSize=getattr(integ, "step_size", None), + GeneratedAt=now, + Software="tvbo", + ) + # Swept parameter space (the grid axes) β€” the metadata a per-cell BEP034 + # ``ts/`` file would carry, aggregated for the whole grid. + space = {} + for expl in (getattr(exp, "explorations", None) or {}).values(): + for ax in (getattr(expl, "space", None) or []): + pname = getattr(ax, "parameter", None) + if pname: + space[str(pname)] = getattr(ax, "explored_values", None) or None + sidecar = {**prov.to_dict(), "ModelingRecipe": f"{stem}.yaml"} + if space: + sidecar["SweptParameters"] = space + json_path = os.path.join(out_dir, f"{stem}.json") + with open(json_path, "w", encoding="utf-8") as fh: + _json.dump(sidecar, fh, indent=2, default=str) + + written = [json_path] + dd = os.path.join(out_dir, "dataset_description.json") + if not os.path.exists(dd): + desc = DatasetDescription( + Name=str(getattr(exp, "label", None) or getattr(exp, "id", None) or "tvbo results"), + DatasetType="derivative", + GeneratedBy=[{"Name": "tvbo", "Description": "TVB-Ontology simulation result"}], + ) + with open(dd, "w", encoding="utf-8") as fh: + fh.write(desc.to_json()) + written.append(dd) return written def plot(self, **kwargs): @@ -2574,7 +3002,7 @@ def plot(self, ax=None, axis_labels=False, legend=True, title=None, **kwargs): n_svar = self.data.shape[1] if len(self.data.shape) > 1 else 1 uses_modes = len(self.data.shape) > 3 and self.data.shape[3] > 1 if uses_modes: - print("Plotting only first mode by default") + logger.info("Plotting only first mode by default") # n_regions = self.data.shape[2] if "labels" in kwargs.keys(): @@ -3032,7 +3460,7 @@ def compute_dt(self): dt = np.diff(self.time) mean_dt = np.mean(dt) if self.sample_period != mean_dt: - print("Warning: Sample period does not match mean dt. Setting sample period to mean dt.") + logger.warning("Sample period does not match mean dt; setting sample period to mean dt.") self.sample_period = mean_dt def plot_power_spectrum( diff --git a/tvbo/data/tvbo_data/atlas/dataset_description.json b/tvbo/database/atlases/dataset_description.json similarity index 100% rename from tvbo/data/tvbo_data/atlas/dataset_description.json rename to tvbo/database/atlases/dataset_description.json diff --git a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-1000_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-1000_dseg.yaml deleted file mode 100644 index e46e44142..000000000 --- a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-1000_dseg.yaml +++ /dev/null @@ -1,12281 +0,0 @@ -name: Schaefer2018 -abbreviation: Schaefer2018 -versionIdentifier: '2018' -coordinateSpace: MNI152NLin6Asym -terminology: - label: Schaefer2018_1000Parcels_17Networks_order - entities: - LH_VisCent: - name: LH_VisCent - lookupLabel: -1 - hemisphere: left - center: - x: -26.4 - y: -86.0 - z: 0.0 - LH_VisPeri: - name: LH_VisPeri - lookupLabel: -2 - hemisphere: left - center: - x: -10.8 - y: -71.6 - z: 9.2 - LH_SomMotA: - name: LH_SomMotA - lookupLabel: -3 - hemisphere: left - center: - x: -20.8 - y: -25.4 - z: 62.4 - LH_SomMotB: - name: LH_SomMotB - lookupLabel: -4 - hemisphere: left - center: - x: -50.7 - y: -16.0 - z: 17.3 - LH_DorsAttnA: - name: LH_DorsAttnA - lookupLabel: -5 - hemisphere: left - center: - x: -32.6 - y: -65.3 - z: 26.6 - LH_DorsAttnB: - name: LH_DorsAttnB - lookupLabel: -6 - hemisphere: left - center: - x: -36.0 - y: -30.6 - z: 50.5 - LH_SalVentAttnA: - name: LH_SalVentAttnA - lookupLabel: -7 - hemisphere: left - center: - x: -32.5 - y: -10.5 - z: 24.9 - LH_SalVentAttnB: - name: LH_SalVentAttnB - lookupLabel: -8 - hemisphere: left - center: - x: -29.9 - y: 20.1 - z: 20.8 - LH_LimbicB: - name: LH_LimbicB - lookupLabel: -9 - hemisphere: left - center: - x: -13.0 - y: 33.9 - z: -17.4 - LH_LimbicA: - name: LH_LimbicA - lookupLabel: -10 - hemisphere: left - center: - x: -36.4 - y: -6.5 - z: -31.2 - LH_ContA: - name: LH_ContA - lookupLabel: -11 - hemisphere: left - center: - x: -39.3 - y: -12.3 - z: 29.5 - LH_ContB: - name: LH_ContB - lookupLabel: -12 - hemisphere: left - center: - x: -39.8 - y: -7.4 - z: 28.6 - LH_ContC: - name: LH_ContC - lookupLabel: -13 - hemisphere: left - center: - x: -6.0 - y: -51.9 - z: 38.9 - LH_DefaultA: - name: LH_DefaultA - lookupLabel: -14 - hemisphere: left - center: - x: -13.3 - y: -19.3 - z: 26.5 - LH_DefaultB: - name: LH_DefaultB - lookupLabel: -15 - hemisphere: left - center: - x: -39.6 - y: 0.7 - z: 14.1 - LH_DefaultC: - name: LH_DefaultC - lookupLabel: -16 - hemisphere: left - center: - x: -21.9 - y: -51.0 - z: 4.2 - LH_TempPar: - name: LH_TempPar - lookupLabel: -17 - hemisphere: left - center: - x: -56.8 - y: -36.0 - z: 6.0 - RH_VisCent: - name: RH_VisCent - lookupLabel: -18 - hemisphere: right - center: - x: 27.3 - y: -82.9 - z: -0.7 - RH_VisPeri: - name: RH_VisPeri - lookupLabel: -19 - hemisphere: right - center: - x: 13.9 - y: -65.9 - z: 9.4 - RH_SomMotA: - name: RH_SomMotA - lookupLabel: -20 - hemisphere: right - center: - x: 24.6 - y: -25.4 - z: 62.6 - RH_SomMotB: - name: RH_SomMotB - lookupLabel: -21 - hemisphere: right - center: - x: 50.8 - y: -11.7 - z: 16.7 - RH_DorsAttnA: - name: RH_DorsAttnA - lookupLabel: -22 - hemisphere: right - center: - x: 35.0 - y: -63.2 - z: 28.4 - RH_DorsAttnB: - name: RH_DorsAttnB - lookupLabel: -23 - hemisphere: right - center: - x: 37.1 - y: -28.2 - z: 50.8 - RH_SalVentAttnA: - name: RH_SalVentAttnA - lookupLabel: -24 - hemisphere: right - center: - x: 32.8 - y: -10.5 - z: 28.7 - RH_SalVentAttnB: - name: RH_SalVentAttnB - lookupLabel: -25 - hemisphere: right - center: - x: 34.4 - y: 20.4 - z: 18.3 - RH_LimbicB: - name: RH_LimbicB - lookupLabel: -26 - hemisphere: right - center: - x: 14.0 - y: 36.8 - z: -18.6 - RH_LimbicA: - name: RH_LimbicA - lookupLabel: -27 - hemisphere: right - center: - x: 37.0 - y: -4.1 - z: -31.7 - RH_ContA: - name: RH_ContA - lookupLabel: -28 - hemisphere: right - center: - x: 42.1 - y: -16.1 - z: 33.5 - RH_ContB: - name: RH_ContB - lookupLabel: -29 - hemisphere: right - center: - x: 41.3 - y: -1.9 - z: 27.8 - RH_ContC: - name: RH_ContC - lookupLabel: -30 - hemisphere: right - center: - x: 8.1 - y: -50.7 - z: 38.9 - RH_DefaultA: - name: RH_DefaultA - lookupLabel: -31 - hemisphere: right - center: - x: 22.0 - y: -10.2 - z: 22.0 - RH_DefaultB: - name: RH_DefaultB - lookupLabel: -32 - hemisphere: right - center: - x: 36.0 - y: 21.2 - z: 8.0 - RH_DefaultC: - name: RH_DefaultC - lookupLabel: -33 - hemisphere: right - center: - x: 25.2 - y: -44.9 - z: 1.6 - RH_TempPar: - name: RH_TempPar - lookupLabel: -34 - hemisphere: right - center: - x: 55.0 - y: -28.3 - z: 1.6 - 17Networks_LH_VisCent_Striate_1: - name: 17Networks_LH_VisCent_Striate_1 - lookupLabel: 1 - originalLookupLabel: 1 - center: - x: -4.0 - y: -90.0 - z: -12.0 - color: '#781287' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_Striate_2: - name: 17Networks_LH_VisCent_Striate_2 - lookupLabel: 2 - originalLookupLabel: 2 - center: - x: -10.0 - y: -98.0 - z: -12.0 - color: '#781288' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_Striate_3: - name: 17Networks_LH_VisCent_Striate_3 - lookupLabel: 3 - originalLookupLabel: 3 - center: - x: -9.0 - y: -95.0 - z: -2.0 - color: '#781289' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_Striate_4: - name: 17Networks_LH_VisCent_Striate_4 - lookupLabel: 4 - originalLookupLabel: 4 - center: - x: -6.0 - y: -103.0 - z: -1.0 - color: '#78128a' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_1: - name: 17Networks_LH_VisCent_ExStr_1 - lookupLabel: 5 - originalLookupLabel: 5 - center: - x: -34.0 - y: -51.0 - z: -19.0 - color: '#781182' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_2: - name: 17Networks_LH_VisCent_ExStr_2 - lookupLabel: 6 - originalLookupLabel: 6 - center: - x: -28.0 - y: -63.0 - z: -13.0 - color: '#781183' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_3: - name: 17Networks_LH_VisCent_ExStr_3 - lookupLabel: 7 - originalLookupLabel: 7 - center: - x: -34.0 - y: -69.0 - z: -16.0 - color: '#781184' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_4: - name: 17Networks_LH_VisCent_ExStr_4 - lookupLabel: 8 - originalLookupLabel: 8 - center: - x: -36.0 - y: -80.0 - z: -15.0 - color: '#781185' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_5: - name: 17Networks_LH_VisCent_ExStr_5 - lookupLabel: 9 - originalLookupLabel: 9 - center: - x: -26.0 - y: -80.0 - z: -13.0 - color: '#781186' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_6: - name: 17Networks_LH_VisCent_ExStr_6 - lookupLabel: 10 - originalLookupLabel: 10 - center: - x: -21.0 - y: -74.0 - z: -9.0 - color: '#781187' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_7: - name: 17Networks_LH_VisCent_ExStr_7 - lookupLabel: 11 - originalLookupLabel: 11 - center: - x: -45.0 - y: -72.0 - z: -11.0 - color: '#781280' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_8: - name: 17Networks_LH_VisCent_ExStr_8 - lookupLabel: 12 - originalLookupLabel: 12 - center: - x: -20.0 - y: -88.0 - z: -16.0 - color: '#781281' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_9: - name: 17Networks_LH_VisCent_ExStr_9 - lookupLabel: 13 - originalLookupLabel: 13 - center: - x: -42.0 - y: -84.0 - z: -14.0 - color: '#781282' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_10: - name: 17Networks_LH_VisCent_ExStr_10 - lookupLabel: 14 - originalLookupLabel: 14 - center: - x: -13.0 - y: -83.0 - z: -14.0 - color: '#781283' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_11: - name: 17Networks_LH_VisCent_ExStr_11 - lookupLabel: 15 - originalLookupLabel: 15 - center: - x: -31.0 - y: -91.0 - z: -18.0 - color: '#781284' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_12: - name: 17Networks_LH_VisCent_ExStr_12 - lookupLabel: 16 - originalLookupLabel: 16 - center: - x: -34.0 - y: -92.0 - z: -9.0 - color: '#781285' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_13: - name: 17Networks_LH_VisCent_ExStr_13 - lookupLabel: 17 - originalLookupLabel: 17 - center: - x: -21.0 - y: -99.0 - z: -12.0 - color: '#781286' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_14: - name: 17Networks_LH_VisCent_ExStr_14 - lookupLabel: 18 - originalLookupLabel: 18 - center: - x: -45.0 - y: -82.0 - z: -1.0 - color: '#78128b' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_15: - name: 17Networks_LH_VisCent_ExStr_15 - lookupLabel: 19 - originalLookupLabel: 19 - center: - x: -30.0 - y: -96.0 - z: -2.0 - color: '#78128c' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_16: - name: 17Networks_LH_VisCent_ExStr_16 - lookupLabel: 20 - originalLookupLabel: 20 - center: - x: -36.0 - y: -89.0 - z: 1.0 - color: '#78128d' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_17: - name: 17Networks_LH_VisCent_ExStr_17 - lookupLabel: 21 - originalLookupLabel: 21 - center: - x: -44.0 - y: -71.0 - z: 7.0 - color: '#78128e' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_18: - name: 17Networks_LH_VisCent_ExStr_18 - lookupLabel: 22 - originalLookupLabel: 22 - center: - x: -48.0 - y: -78.0 - z: 9.0 - color: '#781387' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_19: - name: 17Networks_LH_VisCent_ExStr_19 - lookupLabel: 23 - originalLookupLabel: 23 - center: - x: -17.0 - y: -102.0 - z: 2.0 - color: '#781388' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_20: - name: 17Networks_LH_VisCent_ExStr_20 - lookupLabel: 24 - originalLookupLabel: 24 - center: - x: -43.0 - y: -85.0 - z: 10.0 - color: '#781389' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_21: - name: 17Networks_LH_VisCent_ExStr_21 - lookupLabel: 25 - originalLookupLabel: 25 - center: - x: -25.0 - y: -95.0 - z: 8.0 - color: '#78138a' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_22: - name: 17Networks_LH_VisCent_ExStr_22 - lookupLabel: 26 - originalLookupLabel: 26 - center: - x: -32.0 - y: -87.0 - z: 10.0 - color: '#78138b' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_23: - name: 17Networks_LH_VisCent_ExStr_23 - lookupLabel: 27 - originalLookupLabel: 27 - center: - x: -9.0 - y: -100.0 - z: 11.0 - color: '#78138c' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_24: - name: 17Networks_LH_VisCent_ExStr_24 - lookupLabel: 28 - originalLookupLabel: 28 - center: - x: -18.0 - y: -98.0 - z: 17.0 - color: '#78138d' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_25: - name: 17Networks_LH_VisCent_ExStr_25 - lookupLabel: 29 - originalLookupLabel: 29 - center: - x: -25.0 - y: -91.0 - z: 20.0 - color: '#78138e' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_26: - name: 17Networks_LH_VisCent_ExStr_26 - lookupLabel: 30 - originalLookupLabel: 30 - center: - x: -34.0 - y: -90.0 - z: 19.0 - color: '#781487' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_27: - name: 17Networks_LH_VisCent_ExStr_27 - lookupLabel: 31 - originalLookupLabel: 31 - center: - x: -10.0 - y: -95.0 - z: 25.0 - color: '#781488' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_28: - name: 17Networks_LH_VisCent_ExStr_28 - lookupLabel: 32 - originalLookupLabel: 32 - center: - x: -17.0 - y: -90.0 - z: 23.0 - color: '#781489' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_29: - name: 17Networks_LH_VisCent_ExStr_29 - lookupLabel: 33 - originalLookupLabel: 33 - center: - x: -27.0 - y: -81.0 - z: 19.0 - color: '#78148a' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_30: - name: 17Networks_LH_VisCent_ExStr_30 - lookupLabel: 34 - originalLookupLabel: 34 - center: - x: -24.0 - y: -81.0 - z: 29.0 - color: '#78148b' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisPeri_StriCal_1: - name: 17Networks_LH_VisPeri_StriCal_1 - lookupLabel: 35 - originalLookupLabel: 35 - center: - x: -7.0 - y: -61.0 - z: 3.0 - color: '#ff0001' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_2: - name: 17Networks_LH_VisPeri_StriCal_2 - lookupLabel: 36 - originalLookupLabel: 36 - center: - x: -4.0 - y: -79.0 - z: 2.0 - color: '#ff0002' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_3: - name: 17Networks_LH_VisPeri_StriCal_3 - lookupLabel: 37 - originalLookupLabel: 37 - center: - x: -5.0 - y: -68.0 - z: 6.0 - color: '#ff0003' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_4: - name: 17Networks_LH_VisPeri_StriCal_4 - lookupLabel: 38 - originalLookupLabel: 38 - center: - x: -6.0 - y: -88.0 - z: 2.0 - color: '#ff0004' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_5: - name: 17Networks_LH_VisPeri_StriCal_5 - lookupLabel: 39 - originalLookupLabel: 39 - center: - x: -17.0 - y: -68.0 - z: 4.0 - color: '#ff0005' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_6: - name: 17Networks_LH_VisPeri_StriCal_6 - lookupLabel: 40 - originalLookupLabel: 40 - center: - x: -12.0 - y: -75.0 - z: 9.0 - color: '#ff0006' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_7: - name: 17Networks_LH_VisPeri_StriCal_7 - lookupLabel: 41 - originalLookupLabel: 41 - center: - x: -7.0 - y: -81.0 - z: 10.0 - color: '#ff0007' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_8: - name: 17Networks_LH_VisPeri_StriCal_8 - lookupLabel: 42 - originalLookupLabel: 42 - center: - x: -2.0 - y: -94.0 - z: 5.0 - color: '#ff0100' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_9: - name: 17Networks_LH_VisPeri_StriCal_9 - lookupLabel: 43 - originalLookupLabel: 43 - center: - x: -8.0 - y: -70.0 - z: 12.0 - color: '#ff0101' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_10: - name: 17Networks_LH_VisPeri_StriCal_10 - lookupLabel: 44 - originalLookupLabel: 44 - center: - x: -1.0 - y: -80.0 - z: 12.0 - color: '#ff0102' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_1: - name: 17Networks_LH_VisPeri_ExStrInf_1 - lookupLabel: 45 - originalLookupLabel: 45 - center: - x: -24.0 - y: -58.0 - z: -9.0 - color: '#ff0000' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_2: - name: 17Networks_LH_VisPeri_ExStrInf_2 - lookupLabel: 46 - originalLookupLabel: 46 - center: - x: -21.0 - y: -49.0 - z: -6.0 - color: '#ff0008' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_3: - name: 17Networks_LH_VisPeri_ExStrInf_3 - lookupLabel: 47 - originalLookupLabel: 47 - center: - x: -14.0 - y: -71.0 - z: -10.0 - color: '#ff0103' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_4: - name: 17Networks_LH_VisPeri_ExStrInf_4 - lookupLabel: 48 - originalLookupLabel: 48 - center: - x: -15.0 - y: -64.0 - z: -5.0 - color: '#ff0104' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_5: - name: 17Networks_LH_VisPeri_ExStrInf_5 - lookupLabel: 49 - originalLookupLabel: 49 - center: - x: -13.0 - y: -50.0 - z: -7.0 - color: '#ff0105' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_6: - name: 17Networks_LH_VisPeri_ExStrInf_6 - lookupLabel: 50 - originalLookupLabel: 50 - center: - x: -6.0 - y: -78.0 - z: -7.0 - color: '#ff0106' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_7: - name: 17Networks_LH_VisPeri_ExStrInf_7 - lookupLabel: 51 - originalLookupLabel: 51 - center: - x: -10.0 - y: -61.0 - z: -3.0 - color: '#ff0107' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_8: - name: 17Networks_LH_VisPeri_ExStrInf_8 - lookupLabel: 52 - originalLookupLabel: 52 - center: - x: -6.0 - y: -71.0 - z: -2.0 - color: '#ff0108' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_9: - name: 17Networks_LH_VisPeri_ExStrInf_9 - lookupLabel: 53 - originalLookupLabel: 53 - center: - x: -14.0 - y: -42.0 - z: -4.0 - color: '#ff0201' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_10: - name: 17Networks_LH_VisPeri_ExStrInf_10 - lookupLabel: 54 - originalLookupLabel: 54 - center: - x: -17.0 - y: -55.0 - z: 1.0 - color: '#ff0202' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_1: - name: 17Networks_LH_VisPeri_ExStrSup_1 - lookupLabel: 55 - originalLookupLabel: 55 - center: - x: -23.0 - y: -58.0 - z: 5.0 - color: '#ff0200' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_2: - name: 17Networks_LH_VisPeri_ExStrSup_2 - lookupLabel: 56 - originalLookupLabel: 56 - center: - x: -18.0 - y: -65.0 - z: 9.0 - color: '#ff0203' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_3: - name: 17Networks_LH_VisPeri_ExStrSup_3 - lookupLabel: 57 - originalLookupLabel: 57 - center: - x: -4.0 - y: -92.0 - z: 16.0 - color: '#ff0204' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_4: - name: 17Networks_LH_VisPeri_ExStrSup_4 - lookupLabel: 58 - originalLookupLabel: 58 - center: - x: -7.0 - y: -69.0 - z: 17.0 - color: '#ff0205' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_5: - name: 17Networks_LH_VisPeri_ExStrSup_5 - lookupLabel: 59 - originalLookupLabel: 59 - center: - x: -2.0 - y: -82.0 - z: 21.0 - color: '#ff0206' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_6: - name: 17Networks_LH_VisPeri_ExStrSup_6 - lookupLabel: 60 - originalLookupLabel: 60 - center: - x: -16.0 - y: -67.0 - z: 17.0 - color: '#ff0207' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_7: - name: 17Networks_LH_VisPeri_ExStrSup_7 - lookupLabel: 61 - originalLookupLabel: 61 - center: - x: -4.0 - y: -77.0 - z: 27.0 - color: '#ff0300' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_8: - name: 17Networks_LH_VisPeri_ExStrSup_8 - lookupLabel: 62 - originalLookupLabel: 62 - center: - x: -5.0 - y: -88.0 - z: 32.0 - color: '#ff0301' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_9: - name: 17Networks_LH_VisPeri_ExStrSup_9 - lookupLabel: 63 - originalLookupLabel: 63 - center: - x: -14.0 - y: -75.0 - z: 25.0 - color: '#ff0302' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_10: - name: 17Networks_LH_VisPeri_ExStrSup_10 - lookupLabel: 64 - originalLookupLabel: 64 - center: - x: -17.0 - y: -89.0 - z: 34.0 - color: '#ff0303' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_11: - name: 17Networks_LH_VisPeri_ExStrSup_11 - lookupLabel: 65 - originalLookupLabel: 65 - center: - x: -12.0 - y: -81.0 - z: 35.0 - color: '#ff0304' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_12: - name: 17Networks_LH_VisPeri_ExStrSup_12 - lookupLabel: 66 - originalLookupLabel: 66 - center: - x: -14.0 - y: -86.0 - z: 42.0 - color: '#ff0305' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_SomMotA_1: - name: 17Networks_LH_SomMotA_1 - lookupLabel: 67 - originalLookupLabel: 67 - center: - x: -8.0 - y: -7.0 - z: 42.0 - color: '#4680b1' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_2: - name: 17Networks_LH_SomMotA_2 - lookupLabel: 68 - originalLookupLabel: 68 - center: - x: -57.0 - y: -17.0 - z: 51.0 - color: '#4680b2' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_3: - name: 17Networks_LH_SomMotA_3 - lookupLabel: 69 - originalLookupLabel: 69 - center: - x: -8.0 - y: -9.0 - z: 48.0 - color: '#4680b3' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_4: - name: 17Networks_LH_SomMotA_4 - lookupLabel: 70 - originalLookupLabel: 70 - center: - x: -51.0 - y: -26.0 - z: 55.0 - color: '#4680b4' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_5: - name: 17Networks_LH_SomMotA_5 - lookupLabel: 71 - originalLookupLabel: 71 - center: - x: -43.0 - y: -12.0 - z: 50.0 - color: '#4681ad' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_6: - name: 17Networks_LH_SomMotA_6 - lookupLabel: 72 - originalLookupLabel: 72 - center: - x: -47.0 - y: -17.0 - z: 54.0 - color: '#4681ae' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_7: - name: 17Networks_LH_SomMotA_7 - lookupLabel: 73 - originalLookupLabel: 73 - center: - x: -8.0 - y: -19.0 - z: 47.0 - color: '#4681af' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_8: - name: 17Networks_LH_SomMotA_8 - lookupLabel: 74 - originalLookupLabel: 74 - center: - x: -35.0 - y: -20.0 - z: 45.0 - color: '#4681b0' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_9: - name: 17Networks_LH_SomMotA_9 - lookupLabel: 75 - originalLookupLabel: 75 - center: - x: -6.0 - y: -28.0 - z: 50.0 - color: '#4681b1' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_10: - name: 17Networks_LH_SomMotA_10 - lookupLabel: 76 - originalLookupLabel: 76 - center: - x: -4.0 - y: -12.0 - z: 55.0 - color: '#4681b2' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_11: - name: 17Networks_LH_SomMotA_11 - lookupLabel: 77 - originalLookupLabel: 77 - center: - x: -40.0 - y: -16.0 - z: 58.0 - color: '#4681b3' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_12: - name: 17Networks_LH_SomMotA_12 - lookupLabel: 78 - originalLookupLabel: 78 - center: - x: -44.0 - y: -33.0 - z: 63.0 - color: '#4681b4' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_13: - name: 17Networks_LH_SomMotA_13 - lookupLabel: 79 - originalLookupLabel: 79 - center: - x: -39.0 - y: -26.0 - z: 54.0 - color: '#4682ad' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_14: - name: 17Networks_LH_SomMotA_14 - lookupLabel: 80 - originalLookupLabel: 80 - center: - x: -5.0 - y: -23.0 - z: 57.0 - color: '#4682ae' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_15: - name: 17Networks_LH_SomMotA_15 - lookupLabel: 81 - originalLookupLabel: 81 - center: - x: -34.0 - y: -38.0 - z: 62.0 - color: '#4682af' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_16: - name: 17Networks_LH_SomMotA_16 - lookupLabel: 82 - originalLookupLabel: 82 - center: - x: -9.0 - y: -41.0 - z: 58.0 - color: '#4682b0' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_17: - name: 17Networks_LH_SomMotA_17 - lookupLabel: 83 - originalLookupLabel: 83 - center: - x: -35.0 - y: -17.0 - z: 68.0 - color: '#4682b1' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_18: - name: 17Networks_LH_SomMotA_18 - lookupLabel: 84 - originalLookupLabel: 84 - center: - x: -5.0 - y: -12.0 - z: 63.0 - color: '#4682b2' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_19: - name: 17Networks_LH_SomMotA_19 - lookupLabel: 85 - originalLookupLabel: 85 - center: - x: -31.0 - y: -29.0 - z: 63.0 - color: '#4682b3' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_20: - name: 17Networks_LH_SomMotA_20 - lookupLabel: 86 - originalLookupLabel: 86 - center: - x: -30.0 - y: -25.0 - z: 61.0 - color: '#4682b5' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_21: - name: 17Networks_LH_SomMotA_21 - lookupLabel: 87 - originalLookupLabel: 87 - center: - x: -3.0 - y: -33.0 - z: 59.0 - color: '#4682b6' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_22: - name: 17Networks_LH_SomMotA_22 - lookupLabel: 88 - originalLookupLabel: 88 - center: - x: -26.0 - y: -40.0 - z: 62.0 - color: '#4682b7' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_23: - name: 17Networks_LH_SomMotA_23 - lookupLabel: 89 - originalLookupLabel: 89 - center: - x: -24.0 - y: -47.0 - z: 64.0 - color: '#4682b8' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_24: - name: 17Networks_LH_SomMotA_24 - lookupLabel: 90 - originalLookupLabel: 90 - center: - x: -24.0 - y: -12.0 - z: 71.0 - color: '#4682b9' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_25: - name: 17Networks_LH_SomMotA_25 - lookupLabel: 91 - originalLookupLabel: 91 - center: - x: -29.0 - y: -33.0 - z: 72.0 - color: '#4682ba' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_26: - name: 17Networks_LH_SomMotA_26 - lookupLabel: 92 - originalLookupLabel: 92 - center: - x: -4.0 - y: -22.0 - z: 65.0 - color: '#4682bb' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_27: - name: 17Networks_LH_SomMotA_27 - lookupLabel: 93 - originalLookupLabel: 93 - center: - x: -22.0 - y: -29.0 - z: 56.0 - color: '#4683b4' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_28: - name: 17Networks_LH_SomMotA_28 - lookupLabel: 94 - originalLookupLabel: 94 - center: - x: -16.0 - y: -10.0 - z: 66.0 - color: '#4683b5' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_29: - name: 17Networks_LH_SomMotA_29 - lookupLabel: 95 - originalLookupLabel: 95 - center: - x: -11.0 - y: -45.0 - z: 70.0 - color: '#4683b6' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_30: - name: 17Networks_LH_SomMotA_30 - lookupLabel: 96 - originalLookupLabel: 96 - center: - x: -23.0 - y: -21.0 - z: 72.0 - color: '#4683b7' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_31: - name: 17Networks_LH_SomMotA_31 - lookupLabel: 97 - originalLookupLabel: 97 - center: - x: -5.0 - y: -43.0 - z: 66.0 - color: '#4683b8' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_32: - name: 17Networks_LH_SomMotA_32 - lookupLabel: 98 - originalLookupLabel: 98 - center: - x: -18.0 - y: -26.0 - z: 64.0 - color: '#4683b9' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_33: - name: 17Networks_LH_SomMotA_33 - lookupLabel: 99 - originalLookupLabel: 99 - center: - x: -23.0 - y: -38.0 - z: 71.0 - color: '#4683ba' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_34: - name: 17Networks_LH_SomMotA_34 - lookupLabel: 100 - originalLookupLabel: 100 - center: - x: -12.0 - y: -8.0 - z: 71.0 - color: '#4683bb' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_35: - name: 17Networks_LH_SomMotA_35 - lookupLabel: 101 - originalLookupLabel: 101 - center: - x: -20.0 - y: -31.0 - z: 68.0 - color: '#4684b4' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_36: - name: 17Networks_LH_SomMotA_36 - lookupLabel: 102 - originalLookupLabel: 102 - center: - x: -16.0 - y: -15.0 - z: 75.0 - color: '#4684b5' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_37: - name: 17Networks_LH_SomMotA_37 - lookupLabel: 103 - originalLookupLabel: 103 - center: - x: -7.0 - y: -16.0 - z: 75.0 - color: '#4684b6' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_38: - name: 17Networks_LH_SomMotA_38 - lookupLabel: 104 - originalLookupLabel: 104 - center: - x: -3.0 - y: -30.0 - z: 71.0 - color: '#4684b7' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_39: - name: 17Networks_LH_SomMotA_39 - lookupLabel: 105 - originalLookupLabel: 105 - center: - x: -8.0 - y: -40.0 - z: 76.0 - color: '#4684b8' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_40: - name: 17Networks_LH_SomMotA_40 - lookupLabel: 106 - originalLookupLabel: 106 - center: - x: -17.0 - y: -39.0 - z: 75.0 - color: '#4684b9' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_41: - name: 17Networks_LH_SomMotA_41 - lookupLabel: 107 - originalLookupLabel: 107 - center: - x: -12.0 - y: -26.0 - z: 74.0 - color: '#4684ba' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_42: - name: 17Networks_LH_SomMotA_42 - lookupLabel: 108 - originalLookupLabel: 108 - center: - x: -10.0 - y: -35.0 - z: 72.0 - color: '#4684bb' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotB_Cent_1: - name: 17Networks_LH_SomMotB_Cent_1 - lookupLabel: 109 - originalLookupLabel: 109 - center: - x: -60.0 - y: 2.0 - z: 22.0 - color: '#2acca0' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_2: - name: 17Networks_LH_SomMotB_Cent_2 - lookupLabel: 110 - originalLookupLabel: 110 - center: - x: -60.0 - y: -6.0 - z: 19.0 - color: '#2acca1' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_3: - name: 17Networks_LH_SomMotB_Cent_3 - lookupLabel: 111 - originalLookupLabel: 111 - center: - x: -64.0 - y: -10.0 - z: 28.0 - color: '#2acca2' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_4: - name: 17Networks_LH_SomMotB_Cent_4 - lookupLabel: 112 - originalLookupLabel: 112 - center: - x: -57.0 - y: -2.0 - z: 29.0 - color: '#2acca3' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_5: - name: 17Networks_LH_SomMotB_Cent_5 - lookupLabel: 113 - originalLookupLabel: 113 - center: - x: -54.0 - y: -10.0 - z: 31.0 - color: '#2acca5' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_6: - name: 17Networks_LH_SomMotB_Cent_6 - lookupLabel: 114 - originalLookupLabel: 114 - center: - x: -61.0 - y: -11.0 - z: 39.0 - color: '#2acca6' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_7: - name: 17Networks_LH_SomMotB_Cent_7 - lookupLabel: 115 - originalLookupLabel: 115 - center: - x: -54.0 - y: -5.0 - z: 37.0 - color: '#2acca7' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_8: - name: 17Networks_LH_SomMotB_Cent_8 - lookupLabel: 116 - originalLookupLabel: 116 - center: - x: -50.0 - y: -16.0 - z: 41.0 - color: '#2acca8' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_9: - name: 17Networks_LH_SomMotB_Cent_9 - lookupLabel: 117 - originalLookupLabel: 117 - center: - x: -44.0 - y: -13.0 - z: 37.0 - color: '#2acca9' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_10: - name: 17Networks_LH_SomMotB_Cent_10 - lookupLabel: 118 - originalLookupLabel: 118 - center: - x: -52.0 - y: -4.0 - z: 47.0 - color: '#2accaa' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_11: - name: 17Networks_LH_SomMotB_Cent_11 - lookupLabel: 119 - originalLookupLabel: 119 - center: - x: -39.0 - y: -19.0 - z: 40.0 - color: '#2accab' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_1: - name: 17Networks_LH_SomMotB_S2_1 - lookupLabel: 120 - originalLookupLabel: 120 - center: - x: -36.0 - y: -14.0 - z: 14.0 - color: '#2acca4' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_2: - name: 17Networks_LH_SomMotB_S2_2 - lookupLabel: 121 - originalLookupLabel: 121 - center: - x: -34.0 - y: -23.0 - z: 19.0 - color: '#2accac' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_3: - name: 17Networks_LH_SomMotB_S2_3 - lookupLabel: 122 - originalLookupLabel: 122 - center: - x: -40.0 - y: -13.0 - z: 18.0 - color: '#2acda5' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_4: - name: 17Networks_LH_SomMotB_S2_4 - lookupLabel: 123 - originalLookupLabel: 123 - center: - x: -48.0 - y: -13.0 - z: 14.0 - color: '#2acda6' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_5: - name: 17Networks_LH_SomMotB_S2_5 - lookupLabel: 124 - originalLookupLabel: 124 - center: - x: -55.0 - y: -7.0 - z: 9.0 - color: '#2acda7' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_6: - name: 17Networks_LH_SomMotB_S2_6 - lookupLabel: 125 - originalLookupLabel: 125 - center: - x: -39.0 - y: -26.0 - z: 20.0 - color: '#2acda8' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_7: - name: 17Networks_LH_SomMotB_S2_7 - lookupLabel: 126 - originalLookupLabel: 126 - center: - x: -40.0 - y: -37.0 - z: 17.0 - color: '#2acda9' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_8: - name: 17Networks_LH_SomMotB_S2_8 - lookupLabel: 127 - originalLookupLabel: 127 - center: - x: -57.0 - y: -15.0 - z: 15.0 - color: '#2acdaa' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_9: - name: 17Networks_LH_SomMotB_S2_9 - lookupLabel: 128 - originalLookupLabel: 128 - center: - x: -60.0 - y: -3.0 - z: 12.0 - color: '#2acdab' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_10: - name: 17Networks_LH_SomMotB_S2_10 - lookupLabel: 129 - originalLookupLabel: 129 - center: - x: -49.0 - y: -22.0 - z: 18.0 - color: '#2acdac' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_11: - name: 17Networks_LH_SomMotB_S2_11 - lookupLabel: 130 - originalLookupLabel: 130 - center: - x: -65.0 - y: -11.0 - z: 16.0 - color: '#2acea5' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_12: - name: 17Networks_LH_SomMotB_S2_12 - lookupLabel: 131 - originalLookupLabel: 131 - center: - x: -48.0 - y: -30.0 - z: 18.0 - color: '#2acea6' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_13: - name: 17Networks_LH_SomMotB_S2_13 - lookupLabel: 132 - originalLookupLabel: 132 - center: - x: -62.0 - y: -18.0 - z: 21.0 - color: '#2acea7' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Ins_1: - name: 17Networks_LH_SomMotB_Ins_1 - lookupLabel: 133 - originalLookupLabel: 133 - center: - x: -34.0 - y: -24.0 - z: 10.0 - color: '#2acea8' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_1: - name: 17Networks_LH_SomMotB_Aud_1 - lookupLabel: 134 - originalLookupLabel: 134 - center: - x: -50.0 - y: 6.0 - z: -8.0 - color: '#2bcc9f' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_2: - name: 17Networks_LH_SomMotB_Aud_2 - lookupLabel: 135 - originalLookupLabel: 135 - center: - x: -56.0 - y: -3.0 - z: -1.0 - color: '#2bcca0' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_3: - name: 17Networks_LH_SomMotB_Aud_3 - lookupLabel: 136 - originalLookupLabel: 136 - center: - x: -46.0 - y: -12.0 - z: -4.0 - color: '#2bcca1' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_4: - name: 17Networks_LH_SomMotB_Aud_4 - lookupLabel: 137 - originalLookupLabel: 137 - center: - x: -63.0 - y: -12.0 - z: 3.0 - color: '#2bcca2' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_5: - name: 17Networks_LH_SomMotB_Aud_5 - lookupLabel: 138 - originalLookupLabel: 138 - center: - x: -66.0 - y: -19.0 - z: 6.0 - color: '#2bcca3' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_6: - name: 17Networks_LH_SomMotB_Aud_6 - lookupLabel: 139 - originalLookupLabel: 139 - center: - x: -52.0 - y: -14.0 - z: 6.0 - color: '#2bcca5' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_7: - name: 17Networks_LH_SomMotB_Aud_7 - lookupLabel: 140 - originalLookupLabel: 140 - center: - x: -43.0 - y: -19.0 - z: 3.0 - color: '#2bcca6' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_8: - name: 17Networks_LH_SomMotB_Aud_8 - lookupLabel: 141 - originalLookupLabel: 141 - center: - x: -53.0 - y: -20.0 - z: 6.0 - color: '#2bcca7' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_9: - name: 17Networks_LH_SomMotB_Aud_9 - lookupLabel: 142 - originalLookupLabel: 142 - center: - x: -60.0 - y: -26.0 - z: 10.0 - color: '#2bcca8' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_10: - name: 17Networks_LH_SomMotB_Aud_10 - lookupLabel: 143 - originalLookupLabel: 143 - center: - x: -41.0 - y: -24.0 - z: 11.0 - color: '#2bcca9' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_11: - name: 17Networks_LH_SomMotB_Aud_11 - lookupLabel: 144 - originalLookupLabel: 144 - center: - x: -43.0 - y: -30.0 - z: 9.0 - color: '#2bccaa' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_12: - name: 17Networks_LH_SomMotB_Aud_12 - lookupLabel: 145 - originalLookupLabel: 145 - center: - x: -34.0 - y: -31.0 - z: 16.0 - color: '#2bccab' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_13: - name: 17Networks_LH_SomMotB_Aud_13 - lookupLabel: 146 - originalLookupLabel: 146 - center: - x: -48.0 - y: -34.0 - z: 11.0 - color: '#2bcda4' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_14: - name: 17Networks_LH_SomMotB_Aud_14 - lookupLabel: 147 - originalLookupLabel: 147 - center: - x: -59.0 - y: -37.0 - z: 16.0 - color: '#2bcda5' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_DorsAttnA_TempOcc_1: - name: 17Networks_LH_DorsAttnA_TempOcc_1 - lookupLabel: 148 - originalLookupLabel: 148 - center: - x: -35.0 - y: -36.0 - z: -24.0 - color: '#4a9b39' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_2: - name: 17Networks_LH_DorsAttnA_TempOcc_2 - lookupLabel: 149 - originalLookupLabel: 149 - center: - x: -45.0 - y: -41.0 - z: -22.0 - color: '#4a9b3a' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_3: - name: 17Networks_LH_DorsAttnA_TempOcc_3 - lookupLabel: 150 - originalLookupLabel: 150 - center: - x: -43.0 - y: -54.0 - z: -17.0 - color: '#4a9b3b' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_4: - name: 17Networks_LH_DorsAttnA_TempOcc_4 - lookupLabel: 151 - originalLookupLabel: 151 - center: - x: -25.0 - y: -45.0 - z: -14.0 - color: '#4a9b3d' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_5: - name: 17Networks_LH_DorsAttnA_TempOcc_5 - lookupLabel: 152 - originalLookupLabel: 152 - center: - x: -45.0 - y: -67.0 - z: -18.0 - color: '#4a9b3e' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_6: - name: 17Networks_LH_DorsAttnA_TempOcc_6 - lookupLabel: 153 - originalLookupLabel: 153 - center: - x: -45.0 - y: -58.0 - z: -10.0 - color: '#4a9b3f' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_7: - name: 17Networks_LH_DorsAttnA_TempOcc_7 - lookupLabel: 154 - originalLookupLabel: 154 - center: - x: -47.0 - y: -62.0 - z: -5.0 - color: '#4a9b40' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_8: - name: 17Networks_LH_DorsAttnA_TempOcc_8 - lookupLabel: 155 - originalLookupLabel: 155 - center: - x: -46.0 - y: -72.0 - z: -3.0 - color: '#4a9b41' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_9: - name: 17Networks_LH_DorsAttnA_TempOcc_9 - lookupLabel: 156 - originalLookupLabel: 156 - center: - x: -48.0 - y: -65.0 - z: 2.0 - color: '#4a9b42' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_10: - name: 17Networks_LH_DorsAttnA_TempOcc_10 - lookupLabel: 157 - originalLookupLabel: 157 - center: - x: -49.0 - y: -62.0 - z: 10.0 - color: '#4a9b43' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_1: - name: 17Networks_LH_DorsAttnA_ParOcc_1 - lookupLabel: 158 - originalLookupLabel: 158 - center: - x: -48.0 - y: -69.0 - z: 16.0 - color: '#4a9b3c' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_2: - name: 17Networks_LH_DorsAttnA_ParOcc_2 - lookupLabel: 159 - originalLookupLabel: 159 - center: - x: -49.0 - y: -75.0 - z: 20.0 - color: '#4a9b44' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_3: - name: 17Networks_LH_DorsAttnA_ParOcc_3 - lookupLabel: 160 - originalLookupLabel: 160 - center: - x: -41.0 - y: -80.0 - z: 16.0 - color: '#4a9c3d' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_4: - name: 17Networks_LH_DorsAttnA_ParOcc_4 - lookupLabel: 161 - originalLookupLabel: 161 - center: - x: -45.0 - y: -62.0 - z: 16.0 - color: '#4a9c3e' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_5: - name: 17Networks_LH_DorsAttnA_ParOcc_5 - lookupLabel: 162 - originalLookupLabel: 162 - center: - x: -39.0 - y: -87.0 - z: 24.0 - color: '#4a9c3f' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_6: - name: 17Networks_LH_DorsAttnA_ParOcc_6 - lookupLabel: 163 - originalLookupLabel: 163 - center: - x: -31.0 - y: -85.0 - z: 26.0 - color: '#4a9c40' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_7: - name: 17Networks_LH_DorsAttnA_ParOcc_7 - lookupLabel: 164 - originalLookupLabel: 164 - center: - x: -30.0 - y: -77.0 - z: 30.0 - color: '#4a9c41' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_1: - name: 17Networks_LH_DorsAttnA_SPL_1 - lookupLabel: 165 - originalLookupLabel: 165 - center: - x: -27.0 - y: -70.0 - z: 27.0 - color: '#4a9c35' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_2: - name: 17Networks_LH_DorsAttnA_SPL_2 - lookupLabel: 166 - originalLookupLabel: 166 - center: - x: -23.0 - y: -82.0 - z: 42.0 - color: '#4a9c36' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_3: - name: 17Networks_LH_DorsAttnA_SPL_3 - lookupLabel: 167 - originalLookupLabel: 167 - center: - x: -23.0 - y: -73.0 - z: 36.0 - color: '#4a9c37' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_4: - name: 17Networks_LH_DorsAttnA_SPL_4 - lookupLabel: 168 - originalLookupLabel: 168 - center: - x: -27.0 - y: -67.0 - z: 37.0 - color: '#4a9c38' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_5: - name: 17Networks_LH_DorsAttnA_SPL_5 - lookupLabel: 169 - originalLookupLabel: 169 - center: - x: -24.0 - y: -64.0 - z: 47.0 - color: '#4a9c39' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_6: - name: 17Networks_LH_DorsAttnA_SPL_6 - lookupLabel: 170 - originalLookupLabel: 170 - center: - x: -18.0 - y: -77.0 - z: 50.0 - color: '#4a9c3a' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_7: - name: 17Networks_LH_DorsAttnA_SPL_7 - lookupLabel: 171 - originalLookupLabel: 171 - center: - x: -19.0 - y: -69.0 - z: 46.0 - color: '#4a9c3b' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_8: - name: 17Networks_LH_DorsAttnA_SPL_8 - lookupLabel: 172 - originalLookupLabel: 172 - center: - x: -29.0 - y: -59.0 - z: 51.0 - color: '#4a9c42' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_9: - name: 17Networks_LH_DorsAttnA_SPL_9 - lookupLabel: 173 - originalLookupLabel: 173 - center: - x: -28.0 - y: -54.0 - z: 49.0 - color: '#4a9c43' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_10: - name: 17Networks_LH_DorsAttnA_SPL_10 - lookupLabel: 174 - originalLookupLabel: 174 - center: - x: -26.0 - y: -65.0 - z: 57.0 - color: '#4a9d3c' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_11: - name: 17Networks_LH_DorsAttnA_SPL_11 - lookupLabel: 175 - originalLookupLabel: 175 - center: - x: -29.0 - y: -57.0 - z: 57.0 - color: '#4a9d3d' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_12: - name: 17Networks_LH_DorsAttnA_SPL_12 - lookupLabel: 176 - originalLookupLabel: 176 - center: - x: -15.0 - y: -72.0 - z: 55.0 - color: '#4a9d3e' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_13: - name: 17Networks_LH_DorsAttnA_SPL_13 - lookupLabel: 177 - originalLookupLabel: 177 - center: - x: -37.0 - y: -52.0 - z: 57.0 - color: '#4a9d3f' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_14: - name: 17Networks_LH_DorsAttnA_SPL_14 - lookupLabel: 178 - originalLookupLabel: 178 - center: - x: -8.0 - y: -70.0 - z: 60.0 - color: '#4a9d40' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_15: - name: 17Networks_LH_DorsAttnA_SPL_15 - lookupLabel: 179 - originalLookupLabel: 179 - center: - x: -21.0 - y: -68.0 - z: 62.0 - color: '#4a9d41' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_16: - name: 17Networks_LH_DorsAttnA_SPL_16 - lookupLabel: 180 - originalLookupLabel: 180 - center: - x: -29.0 - y: -61.0 - z: 63.0 - color: '#4a9d42' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_17: - name: 17Networks_LH_DorsAttnA_SPL_17 - lookupLabel: 181 - originalLookupLabel: 181 - center: - x: -15.0 - y: -64.0 - z: 61.0 - color: '#4a9d43' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnB_TempOcc_1: - name: 17Networks_LH_DorsAttnB_TempOcc_1 - lookupLabel: 182 - originalLookupLabel: 182 - center: - x: -54.0 - y: -68.0 - z: 6.0 - color: '#00760f' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_TempOcc_2: - name: 17Networks_LH_DorsAttnB_TempOcc_2 - lookupLabel: 183 - originalLookupLabel: 183 - center: - x: -58.0 - y: -60.0 - z: 6.0 - color: '#007610' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_1: - name: 17Networks_LH_DorsAttnB_PostC_1 - lookupLabel: 184 - originalLookupLabel: 184 - center: - x: -58.0 - y: -23.0 - z: 39.0 - color: '#007608' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_2: - name: 17Networks_LH_DorsAttnB_PostC_2 - lookupLabel: 185 - originalLookupLabel: 185 - center: - x: -59.0 - y: -30.0 - z: 45.0 - color: '#007609' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_3: - name: 17Networks_LH_DorsAttnB_PostC_3 - lookupLabel: 186 - originalLookupLabel: 186 - center: - x: -55.0 - y: -19.0 - z: 42.0 - color: '#00760a' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_4: - name: 17Networks_LH_DorsAttnB_PostC_4 - lookupLabel: 187 - originalLookupLabel: 187 - center: - x: -52.0 - y: -27.0 - z: 41.0 - color: '#00760b' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_5: - name: 17Networks_LH_DorsAttnB_PostC_5 - lookupLabel: 188 - originalLookupLabel: 188 - center: - x: -51.0 - y: -34.0 - z: 45.0 - color: '#00760c' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_6: - name: 17Networks_LH_DorsAttnB_PostC_6 - lookupLabel: 189 - originalLookupLabel: 189 - center: - x: -42.0 - y: -33.0 - z: 42.0 - color: '#00760d' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_7: - name: 17Networks_LH_DorsAttnB_PostC_7 - lookupLabel: 190 - originalLookupLabel: 190 - center: - x: -47.0 - y: -27.0 - z: 45.0 - color: '#00760e' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_8: - name: 17Networks_LH_DorsAttnB_PostC_8 - lookupLabel: 191 - originalLookupLabel: 191 - center: - x: -32.0 - y: -39.0 - z: 42.0 - color: '#007611' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_9: - name: 17Networks_LH_DorsAttnB_PostC_9 - lookupLabel: 192 - originalLookupLabel: 192 - center: - x: -41.0 - y: -35.0 - z: 51.0 - color: '#007612' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_10: - name: 17Networks_LH_DorsAttnB_PostC_10 - lookupLabel: 193 - originalLookupLabel: 193 - center: - x: -38.0 - y: -42.0 - z: 57.0 - color: '#007613' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_11: - name: 17Networks_LH_DorsAttnB_PostC_11 - lookupLabel: 194 - originalLookupLabel: 194 - center: - x: -33.0 - y: -45.0 - z: 62.0 - color: '#007614' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_12: - name: 17Networks_LH_DorsAttnB_PostC_12 - lookupLabel: 195 - originalLookupLabel: 195 - center: - x: -7.0 - y: -61.0 - z: 60.0 - color: '#007615' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_13: - name: 17Networks_LH_DorsAttnB_PostC_13 - lookupLabel: 196 - originalLookupLabel: 196 - center: - x: -32.0 - y: -52.0 - z: 67.0 - color: '#007616' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_14: - name: 17Networks_LH_DorsAttnB_PostC_14 - lookupLabel: 197 - originalLookupLabel: 197 - center: - x: -22.0 - y: -58.0 - z: 65.0 - color: '#00770f' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_15: - name: 17Networks_LH_DorsAttnB_PostC_15 - lookupLabel: 198 - originalLookupLabel: 198 - center: - x: -7.0 - y: -54.0 - z: 67.0 - color: '#007710' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_16: - name: 17Networks_LH_DorsAttnB_PostC_16 - lookupLabel: 199 - originalLookupLabel: 199 - center: - x: -14.0 - y: -59.0 - z: 67.0 - color: '#007711' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_17: - name: 17Networks_LH_DorsAttnB_PostC_17 - lookupLabel: 200 - originalLookupLabel: 200 - center: - x: -20.0 - y: -50.0 - z: 68.0 - color: '#007712' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_18: - name: 17Networks_LH_DorsAttnB_PostC_18 - lookupLabel: 201 - originalLookupLabel: 201 - center: - x: -14.0 - y: -49.0 - z: 73.0 - color: '#007713' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_1: - name: 17Networks_LH_DorsAttnB_FEF_1 - lookupLabel: 202 - originalLookupLabel: 202 - center: - x: -42.0 - y: -2.0 - z: 50.0 - color: '#00770c' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_2: - name: 17Networks_LH_DorsAttnB_FEF_2 - lookupLabel: 203 - originalLookupLabel: 203 - center: - x: -33.0 - y: -3.0 - z: 51.0 - color: '#00770d' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_3: - name: 17Networks_LH_DorsAttnB_FEF_3 - lookupLabel: 204 - originalLookupLabel: 204 - center: - x: -39.0 - y: -5.0 - z: 58.0 - color: '#007714' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_4: - name: 17Networks_LH_DorsAttnB_FEF_4 - lookupLabel: 205 - originalLookupLabel: 205 - center: - x: -24.0 - y: -5.0 - z: 52.0 - color: '#007715' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_5: - name: 17Networks_LH_DorsAttnB_FEF_5 - lookupLabel: 206 - originalLookupLabel: 206 - center: - x: -28.0 - y: -11.0 - z: 61.0 - color: '#00780e' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_6: - name: 17Networks_LH_DorsAttnB_FEF_6 - lookupLabel: 207 - originalLookupLabel: 207 - center: - x: -20.0 - y: -6.0 - z: 60.0 - color: '#00780f' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_7: - name: 17Networks_LH_DorsAttnB_FEF_7 - lookupLabel: 208 - originalLookupLabel: 208 - center: - x: -19.0 - y: 0.0 - z: 69.0 - color: '#007810' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PrCv_1: - name: 17Networks_LH_DorsAttnB_PrCv_1 - lookupLabel: 209 - originalLookupLabel: 209 - center: - x: -55.0 - y: 7.0 - z: 35.0 - color: '#007716' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PrCv_2: - name: 17Networks_LH_DorsAttnB_PrCv_2 - lookupLabel: 210 - originalLookupLabel: 210 - center: - x: -49.0 - y: 2.0 - z: 39.0 - color: '#007811' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_SalVentAttnA_ParOper_1: - name: 17Networks_LH_SalVentAttnA_ParOper_1 - lookupLabel: 211 - originalLookupLabel: 211 - center: - x: -47.0 - y: -39.0 - z: 24.0 - color: '#c43af8' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_2: - name: 17Networks_LH_SalVentAttnA_ParOper_2 - lookupLabel: 212 - originalLookupLabel: 212 - center: - x: -60.0 - y: -25.0 - z: 20.0 - color: '#c43af9' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_3: - name: 17Networks_LH_SalVentAttnA_ParOper_3 - lookupLabel: 213 - originalLookupLabel: 213 - center: - x: -53.0 - y: -41.0 - z: 30.0 - color: '#c43afb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_4: - name: 17Networks_LH_SalVentAttnA_ParOper_4 - lookupLabel: 214 - originalLookupLabel: 214 - center: - x: -58.0 - y: -32.0 - z: 23.0 - color: '#c43afc' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_5: - name: 17Networks_LH_SalVentAttnA_ParOper_5 - lookupLabel: 215 - originalLookupLabel: 215 - center: - x: -59.0 - y: -19.0 - z: 31.0 - color: '#c43afd' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_6: - name: 17Networks_LH_SalVentAttnA_ParOper_6 - lookupLabel: 216 - originalLookupLabel: 216 - center: - x: -61.0 - y: -36.0 - z: 34.0 - color: '#c43afe' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_7: - name: 17Networks_LH_SalVentAttnA_ParOper_7 - lookupLabel: 217 - originalLookupLabel: 217 - center: - x: -64.0 - y: -27.0 - z: 35.0 - color: '#c43aff' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_1: - name: 17Networks_LH_SalVentAttnA_FrOper_1 - lookupLabel: 218 - originalLookupLabel: 218 - center: - x: -38.0 - y: 6.0 - z: 10.0 - color: '#c43afa' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_2: - name: 17Networks_LH_SalVentAttnA_FrOper_2 - lookupLabel: 219 - originalLookupLabel: 219 - center: - x: -38.0 - y: -4.0 - z: 16.0 - color: '#c133f9' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_3: - name: 17Networks_LH_SalVentAttnA_FrOper_3 - lookupLabel: 220 - originalLookupLabel: 220 - center: - x: -44.0 - y: -2.0 - z: 12.0 - color: '#c133fa' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_4: - name: 17Networks_LH_SalVentAttnA_FrOper_4 - lookupLabel: 221 - originalLookupLabel: 221 - center: - x: -46.0 - y: 7.0 - z: 1.0 - color: '#c133fb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_5: - name: 17Networks_LH_SalVentAttnA_FrOper_5 - lookupLabel: 222 - originalLookupLabel: 222 - center: - x: -48.0 - y: -3.0 - z: 6.0 - color: '#c134f4' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_6: - name: 17Networks_LH_SalVentAttnA_FrOper_6 - lookupLabel: 223 - originalLookupLabel: 223 - center: - x: -54.0 - y: 6.0 - z: 2.0 - color: '#c134f5' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_7: - name: 17Networks_LH_SalVentAttnA_FrOper_7 - lookupLabel: 224 - originalLookupLabel: 224 - center: - x: -58.0 - y: 2.0 - z: 8.0 - color: '#c134f6' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_8: - name: 17Networks_LH_SalVentAttnA_FrOper_8 - lookupLabel: 225 - originalLookupLabel: 225 - center: - x: -55.0 - y: 8.0 - z: 12.0 - color: '#c134f7' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_9: - name: 17Networks_LH_SalVentAttnA_FrOper_9 - lookupLabel: 226 - originalLookupLabel: 226 - center: - x: -59.0 - y: 6.0 - z: 17.0 - color: '#c134f8' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_1: - name: 17Networks_LH_SalVentAttnA_Ins_1 - lookupLabel: 227 - originalLookupLabel: 227 - center: - x: -36.0 - y: 5.0 - z: -15.0 - color: '#c43bf7' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_2: - name: 17Networks_LH_SalVentAttnA_Ins_2 - lookupLabel: 228 - originalLookupLabel: 228 - center: - x: -39.0 - y: 1.0 - z: -9.0 - color: '#c43bf8' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_3: - name: 17Networks_LH_SalVentAttnA_Ins_3 - lookupLabel: 229 - originalLookupLabel: 229 - center: - x: -37.0 - y: 10.0 - z: -1.0 - color: '#c43bf9' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_4: - name: 17Networks_LH_SalVentAttnA_Ins_4 - lookupLabel: 230 - originalLookupLabel: 230 - center: - x: -41.0 - y: -10.0 - z: -10.0 - color: '#c43bfb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_5: - name: 17Networks_LH_SalVentAttnA_Ins_5 - lookupLabel: 231 - originalLookupLabel: 231 - center: - x: -39.0 - y: -3.0 - z: 2.0 - color: '#c43bfc' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_6: - name: 17Networks_LH_SalVentAttnA_Ins_6 - lookupLabel: 232 - originalLookupLabel: 232 - center: - x: -39.0 - y: -16.0 - z: 2.0 - color: '#c43bfd' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_7: - name: 17Networks_LH_SalVentAttnA_Ins_7 - lookupLabel: 233 - originalLookupLabel: 233 - center: - x: -32.0 - y: 26.0 - z: 7.0 - color: '#c43bfe' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_8: - name: 17Networks_LH_SalVentAttnA_Ins_8 - lookupLabel: 234 - originalLookupLabel: 234 - center: - x: -32.0 - y: 13.0 - z: 10.0 - color: '#c43bff' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_9: - name: 17Networks_LH_SalVentAttnA_Ins_9 - lookupLabel: 235 - originalLookupLabel: 235 - center: - x: -36.0 - y: -3.0 - z: 10.0 - color: '#c134fa' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_1: - name: 17Networks_LH_SalVentAttnA_ParMed_1 - lookupLabel: 236 - originalLookupLabel: 236 - center: - x: -7.0 - y: -20.0 - z: 39.0 - color: '#c43bfa' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_2: - name: 17Networks_LH_SalVentAttnA_ParMed_2 - lookupLabel: 237 - originalLookupLabel: 237 - center: - x: -11.0 - y: -31.0 - z: 39.0 - color: '#c134f9' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_3: - name: 17Networks_LH_SalVentAttnA_ParMed_3 - lookupLabel: 238 - originalLookupLabel: 238 - center: - x: -12.0 - y: -20.0 - z: 40.0 - color: '#c134fb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_4: - name: 17Networks_LH_SalVentAttnA_ParMed_4 - lookupLabel: 239 - originalLookupLabel: 239 - center: - x: -14.0 - y: -41.0 - z: 45.0 - color: '#c135f4' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_5: - name: 17Networks_LH_SalVentAttnA_ParMed_5 - lookupLabel: 240 - originalLookupLabel: 240 - center: - x: -13.0 - y: -29.0 - z: 44.0 - color: '#c135f5' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_6: - name: 17Networks_LH_SalVentAttnA_ParMed_6 - lookupLabel: 241 - originalLookupLabel: 241 - center: - x: -11.0 - y: -46.0 - z: 52.0 - color: '#c135f6' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_7: - name: 17Networks_LH_SalVentAttnA_ParMed_7 - lookupLabel: 242 - originalLookupLabel: 242 - center: - x: -12.0 - y: -37.0 - z: 50.0 - color: '#c135f7' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_8: - name: 17Networks_LH_SalVentAttnA_ParMed_8 - lookupLabel: 243 - originalLookupLabel: 243 - center: - x: -9.0 - y: -48.0 - z: 60.0 - color: '#c135f8' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_1: - name: 17Networks_LH_SalVentAttnA_FrMed_1 - lookupLabel: 244 - originalLookupLabel: 244 - center: - x: -5.0 - y: 16.0 - z: 31.0 - color: '#c53af8' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_2: - name: 17Networks_LH_SalVentAttnA_FrMed_2 - lookupLabel: 245 - originalLookupLabel: 245 - center: - x: -2.0 - y: 0.0 - z: 36.0 - color: '#c53af9' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_3: - name: 17Networks_LH_SalVentAttnA_FrMed_3 - lookupLabel: 246 - originalLookupLabel: 246 - center: - x: -8.0 - y: 5.0 - z: 39.0 - color: '#c53afb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_4: - name: 17Networks_LH_SalVentAttnA_FrMed_4 - lookupLabel: 247 - originalLookupLabel: 247 - center: - x: -6.0 - y: 3.0 - z: 50.0 - color: '#c53afc' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_5: - name: 17Networks_LH_SalVentAttnA_FrMed_5 - lookupLabel: 248 - originalLookupLabel: 248 - center: - x: -5.0 - y: 3.0 - z: 58.0 - color: '#c53afd' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_6: - name: 17Networks_LH_SalVentAttnA_FrMed_6 - lookupLabel: 249 - originalLookupLabel: 249 - center: - x: -3.0 - y: -2.0 - z: 64.0 - color: '#c53afe' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_7: - name: 17Networks_LH_SalVentAttnA_FrMed_7 - lookupLabel: 250 - originalLookupLabel: 250 - center: - x: -8.0 - y: -3.0 - z: 71.0 - color: '#c53aff' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnB_IPL_1: - name: 17Networks_LH_SalVentAttnB_IPL_1 - lookupLabel: 251 - originalLookupLabel: 251 - center: - x: -62.0 - y: -44.0 - z: 31.0 - color: '#ff98d6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_IPL_2: - name: 17Networks_LH_SalVentAttnB_IPL_2 - lookupLabel: 252 - originalLookupLabel: 252 - center: - x: -59.0 - y: -41.0 - z: 44.0 - color: '#ff98d7' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCd_1: - name: 17Networks_LH_SalVentAttnB_PFCd_1 - lookupLabel: 253 - originalLookupLabel: 253 - center: - x: -13.0 - y: 6.0 - z: 68.0 - color: '#ff98d8' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_1: - name: 17Networks_LH_SalVentAttnB_PFCl_1 - lookupLabel: 254 - originalLookupLabel: 254 - center: - x: -38.0 - y: 46.0 - z: 19.0 - color: '#ff99d4' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_2: - name: 17Networks_LH_SalVentAttnB_PFCl_2 - lookupLabel: 255 - originalLookupLabel: 255 - center: - x: -29.0 - y: 50.0 - z: 22.0 - color: '#ff99d6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_3: - name: 17Networks_LH_SalVentAttnB_PFCl_3 - lookupLabel: 256 - originalLookupLabel: 256 - center: - x: -30.0 - y: 42.0 - z: 31.0 - color: '#ff99d7' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_4: - name: 17Networks_LH_SalVentAttnB_PFCl_4 - lookupLabel: 257 - originalLookupLabel: 257 - center: - x: -21.0 - y: 49.0 - z: 31.0 - color: '#ff99d8' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_5: - name: 17Networks_LH_SalVentAttnB_PFCl_5 - lookupLabel: 258 - originalLookupLabel: 258 - center: - x: -35.0 - y: 32.0 - z: 38.0 - color: '#ff99d9' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_6: - name: 17Networks_LH_SalVentAttnB_PFCl_6 - lookupLabel: 259 - originalLookupLabel: 259 - center: - x: -26.0 - y: 37.0 - z: 39.0 - color: '#ff99da' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_1: - name: 17Networks_LH_SalVentAttnB_Ins_1 - lookupLabel: 260 - originalLookupLabel: 260 - center: - x: -33.0 - y: 12.0 - z: -12.0 - color: '#ff99d5' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_2: - name: 17Networks_LH_SalVentAttnB_Ins_2 - lookupLabel: 261 - originalLookupLabel: 261 - center: - x: -35.0 - y: 16.0 - z: -7.0 - color: '#ff99db' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_3: - name: 17Networks_LH_SalVentAttnB_Ins_3 - lookupLabel: 262 - originalLookupLabel: 262 - center: - x: -31.0 - y: 24.0 - z: -3.0 - color: '#ff99dc' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_4: - name: 17Networks_LH_SalVentAttnB_Ins_4 - lookupLabel: 263 - originalLookupLabel: 263 - center: - x: -35.0 - y: 30.0 - z: -1.0 - color: '#ff99dd' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_5: - name: 17Networks_LH_SalVentAttnB_Ins_5 - lookupLabel: 264 - originalLookupLabel: 264 - center: - x: -32.0 - y: 20.0 - z: 3.0 - color: '#ff9ad6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_6: - name: 17Networks_LH_SalVentAttnB_Ins_6 - lookupLabel: 265 - originalLookupLabel: 265 - center: - x: -37.0 - y: 18.0 - z: 8.0 - color: '#ff9ad7' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_7: - name: 17Networks_LH_SalVentAttnB_Ins_7 - lookupLabel: 266 - originalLookupLabel: 266 - center: - x: -43.0 - y: 13.0 - z: 2.0 - color: '#ff9ad8' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_8: - name: 17Networks_LH_SalVentAttnB_Ins_8 - lookupLabel: 267 - originalLookupLabel: 267 - center: - x: -49.0 - y: 11.0 - z: 13.0 - color: '#ff9ad9' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_OFC_1: - name: 17Networks_LH_SalVentAttnB_OFC_1 - lookupLabel: 268 - originalLookupLabel: 268 - center: - x: -27.0 - y: 47.0 - z: -13.0 - color: '#ff98d5' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCmp_1: - name: 17Networks_LH_SalVentAttnB_PFCmp_1 - lookupLabel: 269 - originalLookupLabel: 269 - center: - x: -3.0 - y: 18.0 - z: 23.0 - color: '#ff97d6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCmp_2: - name: 17Networks_LH_SalVentAttnB_PFCmp_2 - lookupLabel: 270 - originalLookupLabel: 270 - center: - x: -7.0 - y: 27.0 - z: 28.0 - color: '#ff97d7' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCmp_3: - name: 17Networks_LH_SalVentAttnB_PFCmp_3 - lookupLabel: 271 - originalLookupLabel: 271 - center: - x: -6.0 - y: 16.0 - z: 41.0 - color: '#ff97d8' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCmp_4: - name: 17Networks_LH_SalVentAttnB_PFCmp_4 - lookupLabel: 272 - originalLookupLabel: 272 - center: - x: -6.0 - y: 14.0 - z: 53.0 - color: '#ff97d9' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_LimbicB_OFC_1: - name: 17Networks_LH_LimbicB_OFC_1 - lookupLabel: 273 - originalLookupLabel: 273 - center: - x: -19.0 - y: 13.0 - z: -22.0 - color: '#7a872c' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_2: - name: 17Networks_LH_LimbicB_OFC_2 - lookupLabel: 274 - originalLookupLabel: 274 - center: - x: -13.0 - y: 21.0 - z: -17.0 - color: '#7a872d' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_3: - name: 17Networks_LH_LimbicB_OFC_3 - lookupLabel: 275 - originalLookupLabel: 275 - center: - x: -14.0 - y: 24.0 - z: -24.0 - color: '#7a872e' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_4: - name: 17Networks_LH_LimbicB_OFC_4 - lookupLabel: 276 - originalLookupLabel: 276 - center: - x: -10.0 - y: 34.0 - z: -22.0 - color: '#7a872f' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_5: - name: 17Networks_LH_LimbicB_OFC_5 - lookupLabel: 277 - originalLookupLabel: 277 - center: - x: -27.0 - y: 15.0 - z: -23.0 - color: '#7a8730' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_6: - name: 17Networks_LH_LimbicB_OFC_6 - lookupLabel: 278 - originalLookupLabel: 278 - center: - x: -7.0 - y: 19.0 - z: -22.0 - color: '#7a8731' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_7: - name: 17Networks_LH_LimbicB_OFC_7 - lookupLabel: 279 - originalLookupLabel: 279 - center: - x: -25.0 - y: 28.0 - z: -17.0 - color: '#7a8733' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_8: - name: 17Networks_LH_LimbicB_OFC_8 - lookupLabel: 280 - originalLookupLabel: 280 - center: - x: -19.0 - y: 41.0 - z: -19.0 - color: '#7a8734' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_9: - name: 17Networks_LH_LimbicB_OFC_9 - lookupLabel: 281 - originalLookupLabel: 281 - center: - x: -3.0 - y: 38.0 - z: -22.0 - color: '#7a8735' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_10: - name: 17Networks_LH_LimbicB_OFC_10 - lookupLabel: 282 - originalLookupLabel: 282 - center: - x: -9.0 - y: 51.0 - z: -23.0 - color: '#7a8736' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_11: - name: 17Networks_LH_LimbicB_OFC_11 - lookupLabel: 283 - originalLookupLabel: 283 - center: - x: -3.0 - y: 20.0 - z: -17.0 - color: '#7a8737' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_12: - name: 17Networks_LH_LimbicB_OFC_12 - lookupLabel: 284 - originalLookupLabel: 284 - center: - x: -4.0 - y: 17.0 - z: -10.0 - color: '#7a8738' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_13: - name: 17Networks_LH_LimbicB_OFC_13 - lookupLabel: 285 - originalLookupLabel: 285 - center: - x: -10.0 - y: 63.0 - z: -15.0 - color: '#7a8739' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_14: - name: 17Networks_LH_LimbicB_OFC_14 - lookupLabel: 286 - originalLookupLabel: 286 - center: - x: -6.0 - y: 32.0 - z: -11.0 - color: '#7a8832' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_15: - name: 17Networks_LH_LimbicB_OFC_15 - lookupLabel: 287 - originalLookupLabel: 287 - center: - x: -22.0 - y: 62.0 - z: -11.0 - color: '#7a8833' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_16: - name: 17Networks_LH_LimbicB_OFC_16 - lookupLabel: 288 - originalLookupLabel: 288 - center: - x: -17.0 - y: 65.0 - z: -3.0 - color: '#7a8834' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicA_TempPole_1: - name: 17Networks_LH_LimbicA_TempPole_1 - lookupLabel: 289 - originalLookupLabel: 289 - center: - x: -29.0 - y: 1.0 - z: -43.0 - color: '#dcf89f' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_2: - name: 17Networks_LH_LimbicA_TempPole_2 - lookupLabel: 290 - originalLookupLabel: 290 - center: - x: -43.0 - y: -2.0 - z: -43.0 - color: '#dcf8a0' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_3: - name: 17Networks_LH_LimbicA_TempPole_3 - lookupLabel: 291 - originalLookupLabel: 291 - center: - x: -38.0 - y: -11.0 - z: -37.0 - color: '#dcf8a1' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_4: - name: 17Networks_LH_LimbicA_TempPole_4 - lookupLabel: 292 - originalLookupLabel: 292 - center: - x: -28.0 - y: -8.0 - z: -34.0 - color: '#dcf8a2' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_5: - name: 17Networks_LH_LimbicA_TempPole_5 - lookupLabel: 293 - originalLookupLabel: 293 - center: - x: -51.0 - y: -14.0 - z: -37.0 - color: '#dcf8a3' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_6: - name: 17Networks_LH_LimbicA_TempPole_6 - lookupLabel: 294 - originalLookupLabel: 294 - center: - x: -19.0 - y: -2.0 - z: -31.0 - color: '#dcf8a5' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_7: - name: 17Networks_LH_LimbicA_TempPole_7 - lookupLabel: 295 - originalLookupLabel: 295 - center: - x: -39.0 - y: -18.0 - z: -29.0 - color: '#dcf8a6' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_8: - name: 17Networks_LH_LimbicA_TempPole_8 - lookupLabel: 296 - originalLookupLabel: 296 - center: - x: -37.0 - y: 17.0 - z: -34.0 - color: '#dcf8a7' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_9: - name: 17Networks_LH_LimbicA_TempPole_9 - lookupLabel: 297 - originalLookupLabel: 297 - center: - x: -27.0 - y: 7.0 - z: -29.0 - color: '#dcf8a8' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_10: - name: 17Networks_LH_LimbicA_TempPole_10 - lookupLabel: 298 - originalLookupLabel: 298 - center: - x: -44.0 - y: -30.0 - z: -22.0 - color: '#dcf8a9' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_11: - name: 17Networks_LH_LimbicA_TempPole_11 - lookupLabel: 299 - originalLookupLabel: 299 - center: - x: -53.0 - y: -31.0 - z: -27.0 - color: '#dcf8aa' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_12: - name: 17Networks_LH_LimbicA_TempPole_12 - lookupLabel: 300 - originalLookupLabel: 300 - center: - x: -20.0 - y: -15.0 - z: -29.0 - color: '#dcf8ab' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_13: - name: 17Networks_LH_LimbicA_TempPole_13 - lookupLabel: 301 - originalLookupLabel: 301 - center: - x: -38.0 - y: 9.0 - z: -25.0 - color: '#dcf9a4' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_14: - name: 17Networks_LH_LimbicA_TempPole_14 - lookupLabel: 302 - originalLookupLabel: 302 - center: - x: -44.0 - y: 6.0 - z: -17.0 - color: '#dcf9a5' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_ContA_Temp_1: - name: 17Networks_LH_ContA_Temp_1 - lookupLabel: 303 - originalLookupLabel: 303 - center: - x: -51.0 - y: -49.0 - z: -21.0 - color: '#e69423' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_Temp_2: - name: 17Networks_LH_ContA_Temp_2 - lookupLabel: 304 - originalLookupLabel: 304 - center: - x: -55.0 - y: -57.0 - z: -17.0 - color: '#e69424' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_Temp_3: - name: 17Networks_LH_ContA_Temp_3 - lookupLabel: 305 - originalLookupLabel: 305 - center: - x: -57.0 - y: -59.0 - z: -5.0 - color: '#e69425' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_1: - name: 17Networks_LH_ContA_IPS_1 - lookupLabel: 306 - originalLookupLabel: 306 - center: - x: -29.0 - y: -77.0 - z: 41.0 - color: '#e69420' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_2: - name: 17Networks_LH_ContA_IPS_2 - lookupLabel: 307 - originalLookupLabel: 307 - center: - x: -55.0 - y: -39.0 - z: 50.0 - color: '#e69421' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_3: - name: 17Networks_LH_ContA_IPS_3 - lookupLabel: 308 - originalLookupLabel: 308 - center: - x: -48.0 - y: -42.0 - z: 50.0 - color: '#e69422' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_4: - name: 17Networks_LH_ContA_IPS_4 - lookupLabel: 309 - originalLookupLabel: 309 - center: - x: -44.0 - y: -47.0 - z: 48.0 - color: '#e69426' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_5: - name: 17Networks_LH_ContA_IPS_5 - lookupLabel: 310 - originalLookupLabel: 310 - center: - x: -29.0 - y: -67.0 - z: 49.0 - color: '#e69427' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_6: - name: 17Networks_LH_ContA_IPS_6 - lookupLabel: 311 - originalLookupLabel: 311 - center: - x: -41.0 - y: -39.0 - z: 42.0 - color: '#e69428' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_7: - name: 17Networks_LH_ContA_IPS_7 - lookupLabel: 312 - originalLookupLabel: 312 - center: - x: -33.0 - y: -59.0 - z: 43.0 - color: '#e69429' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_8: - name: 17Networks_LH_ContA_IPS_8 - lookupLabel: 313 - originalLookupLabel: 313 - center: - x: -36.0 - y: -46.0 - z: 39.0 - color: '#e6942a' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_9: - name: 17Networks_LH_ContA_IPS_9 - lookupLabel: 314 - originalLookupLabel: 314 - center: - x: -32.0 - y: -53.0 - z: 41.0 - color: '#e69523' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_10: - name: 17Networks_LH_ContA_IPS_10 - lookupLabel: 315 - originalLookupLabel: 315 - center: - x: -32.0 - y: -47.0 - z: 47.0 - color: '#e69524' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCd_1: - name: 17Networks_LH_ContA_PFCd_1 - lookupLabel: 316 - originalLookupLabel: 316 - center: - x: -29.0 - y: 4.0 - z: 57.0 - color: '#e69525' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCd_2: - name: 17Networks_LH_ContA_PFCd_2 - lookupLabel: 317 - originalLookupLabel: 317 - center: - x: -22.0 - y: 7.0 - z: 62.0 - color: '#e69526' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_1: - name: 17Networks_LH_ContA_PFCl_1 - lookupLabel: 318 - originalLookupLabel: 318 - center: - x: -47.0 - y: 15.0 - z: 25.0 - color: '#e69520' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_2: - name: 17Networks_LH_ContA_PFCl_2 - lookupLabel: 319 - originalLookupLabel: 319 - center: - x: -48.0 - y: 7.0 - z: 22.0 - color: '#e69521' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_3: - name: 17Networks_LH_ContA_PFCl_3 - lookupLabel: 320 - originalLookupLabel: 320 - center: - x: -52.0 - y: 6.0 - z: 27.0 - color: '#e69522' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_4: - name: 17Networks_LH_ContA_PFCl_4 - lookupLabel: 321 - originalLookupLabel: 321 - center: - x: -43.0 - y: 23.0 - z: 27.0 - color: '#e69527' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_5: - name: 17Networks_LH_ContA_PFCl_5 - lookupLabel: 322 - originalLookupLabel: 322 - center: - x: -43.0 - y: 37.0 - z: 29.0 - color: '#e69528' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_6: - name: 17Networks_LH_ContA_PFCl_6 - lookupLabel: 323 - originalLookupLabel: 323 - center: - x: -37.0 - y: 8.0 - z: 27.0 - color: '#e69529' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_7: - name: 17Networks_LH_ContA_PFCl_7 - lookupLabel: 324 - originalLookupLabel: 324 - center: - x: -41.0 - y: 2.0 - z: 31.0 - color: '#e6952a' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_8: - name: 17Networks_LH_ContA_PFCl_8 - lookupLabel: 325 - originalLookupLabel: 325 - center: - x: -39.0 - y: 10.0 - z: 33.0 - color: '#e69623' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_9: - name: 17Networks_LH_ContA_PFCl_9 - lookupLabel: 326 - originalLookupLabel: 326 - center: - x: -40.0 - y: 3.0 - z: 37.0 - color: '#e69624' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFClv_1: - name: 17Networks_LH_ContA_PFClv_1 - lookupLabel: 327 - originalLookupLabel: 327 - center: - x: -47.0 - y: 42.0 - z: 4.0 - color: '#e79421' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFClv_2: - name: 17Networks_LH_ContA_PFClv_2 - lookupLabel: 328 - originalLookupLabel: 328 - center: - x: -51.0 - y: 32.0 - z: 12.0 - color: '#e79423' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFClv_3: - name: 17Networks_LH_ContA_PFClv_3 - lookupLabel: 329 - originalLookupLabel: 329 - center: - x: -43.0 - y: 38.0 - z: 13.0 - color: '#e79424' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFClv_4: - name: 17Networks_LH_ContA_PFClv_4 - lookupLabel: 330 - originalLookupLabel: 330 - center: - x: -45.0 - y: 25.0 - z: 20.0 - color: '#e79425' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFClv_5: - name: 17Networks_LH_ContA_PFClv_5 - lookupLabel: 331 - originalLookupLabel: 331 - center: - x: -41.0 - y: 33.0 - z: 23.0 - color: '#e79426' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_Cingm_1: - name: 17Networks_LH_ContA_Cingm_1 - lookupLabel: 332 - originalLookupLabel: 332 - center: - x: -4.0 - y: 9.0 - z: 27.0 - color: '#e79427' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_Cingm_2: - name: 17Networks_LH_ContA_Cingm_2 - lookupLabel: 333 - originalLookupLabel: 333 - center: - x: -4.0 - y: -1.0 - z: 31.0 - color: '#e79428' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContB_Temp_1: - name: 17Networks_LH_ContB_Temp_1 - lookupLabel: 334 - originalLookupLabel: 334 - center: - x: -59.0 - y: -39.0 - z: -21.0 - color: '#87324b' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_Temp_2: - name: 17Networks_LH_ContB_Temp_2 - lookupLabel: 335 - originalLookupLabel: 335 - center: - x: -62.0 - y: -33.0 - z: -14.0 - color: '#87324c' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_Temp_3: - name: 17Networks_LH_ContB_Temp_3 - lookupLabel: 336 - originalLookupLabel: 336 - center: - x: -60.0 - y: -47.0 - z: -12.0 - color: '#87324d' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_Temp_4: - name: 17Networks_LH_ContB_Temp_4 - lookupLabel: 337 - originalLookupLabel: 337 - center: - x: -62.0 - y: -49.0 - z: -3.0 - color: '#87324e' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_1: - name: 17Networks_LH_ContB_IPL_1 - lookupLabel: 338 - originalLookupLabel: 338 - center: - x: -52.0 - y: -51.0 - z: 42.0 - color: '#873249' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_2: - name: 17Networks_LH_ContB_IPL_2 - lookupLabel: 339 - originalLookupLabel: 339 - center: - x: -57.0 - y: -47.0 - z: 45.0 - color: '#87324a' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_3: - name: 17Networks_LH_ContB_IPL_3 - lookupLabel: 340 - originalLookupLabel: 340 - center: - x: -43.0 - y: -65.0 - z: 52.0 - color: '#87324f' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_4: - name: 17Networks_LH_ContB_IPL_4 - lookupLabel: 341 - originalLookupLabel: 341 - center: - x: -32.0 - y: -69.0 - z: 51.0 - color: '#873250' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_5: - name: 17Networks_LH_ContB_IPL_5 - lookupLabel: 342 - originalLookupLabel: 342 - center: - x: -49.0 - y: -56.0 - z: 51.0 - color: '#873251' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_6: - name: 17Networks_LH_ContB_IPL_6 - lookupLabel: 343 - originalLookupLabel: 343 - center: - x: -51.0 - y: -48.0 - z: 54.0 - color: '#873252' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_7: - name: 17Networks_LH_ContB_IPL_7 - lookupLabel: 344 - originalLookupLabel: 344 - center: - x: -38.0 - y: -61.0 - z: 51.0 - color: '#87334b' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_8: - name: 17Networks_LH_ContB_IPL_8 - lookupLabel: 345 - originalLookupLabel: 345 - center: - x: -42.0 - y: -54.0 - z: 49.0 - color: '#87334c' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCd_1: - name: 17Networks_LH_ContB_PFCd_1 - lookupLabel: 346 - originalLookupLabel: 346 - center: - x: -29.0 - y: 17.0 - z: 56.0 - color: '#87334d' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCd_2: - name: 17Networks_LH_ContB_PFCd_2 - lookupLabel: 347 - originalLookupLabel: 347 - center: - x: -24.0 - y: 13.0 - z: 52.0 - color: '#87334e' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCd_3: - name: 17Networks_LH_ContB_PFCd_3 - lookupLabel: 348 - originalLookupLabel: 348 - center: - x: -22.0 - y: 21.0 - z: 59.0 - color: '#87334f' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCl_1: - name: 17Networks_LH_ContB_PFCl_1 - lookupLabel: 349 - originalLookupLabel: 349 - center: - x: -45.0 - y: 21.0 - z: 35.0 - color: '#873350' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCl_2: - name: 17Networks_LH_ContB_PFCl_2 - lookupLabel: 350 - originalLookupLabel: 350 - center: - x: -47.0 - y: 13.0 - z: 41.0 - color: '#873351' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCl_3: - name: 17Networks_LH_ContB_PFCl_3 - lookupLabel: 351 - originalLookupLabel: 351 - center: - x: -39.0 - y: 24.0 - z: 46.0 - color: '#873352' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_1: - name: 17Networks_LH_ContB_PFClv_1 - lookupLabel: 352 - originalLookupLabel: 352 - center: - x: -39.0 - y: 50.0 - z: -13.0 - color: '#883249' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_2: - name: 17Networks_LH_ContB_PFClv_2 - lookupLabel: 353 - originalLookupLabel: 353 - center: - x: -41.0 - y: 51.0 - z: -3.0 - color: '#88324b' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_3: - name: 17Networks_LH_ContB_PFClv_3 - lookupLabel: 354 - originalLookupLabel: 354 - center: - x: -28.0 - y: 58.0 - z: -1.0 - color: '#88324c' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_4: - name: 17Networks_LH_ContB_PFClv_4 - lookupLabel: 355 - originalLookupLabel: 355 - center: - x: -38.0 - y: 50.0 - z: 7.0 - color: '#88324d' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_5: - name: 17Networks_LH_ContB_PFClv_5 - lookupLabel: 356 - originalLookupLabel: 356 - center: - x: -29.0 - y: 56.0 - z: 10.0 - color: '#88324e' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCmp_1: - name: 17Networks_LH_ContB_PFCmp_1 - lookupLabel: 357 - originalLookupLabel: 357 - center: - x: -3.0 - y: 36.0 - z: 34.0 - color: '#88324f' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCmp_2: - name: 17Networks_LH_ContB_PFCmp_2 - lookupLabel: 358 - originalLookupLabel: 358 - center: - x: -4.0 - y: 24.0 - z: 47.0 - color: '#883250' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContC_pCun_1: - name: 17Networks_LH_ContC_pCun_1 - lookupLabel: 359 - originalLookupLabel: 359 - center: - x: -15.0 - y: -68.0 - z: 26.0 - color: '#778cab' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_2: - name: 17Networks_LH_ContC_pCun_2 - lookupLabel: 360 - originalLookupLabel: 360 - center: - x: -10.0 - y: -70.0 - z: 31.0 - color: '#778cac' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_3: - name: 17Networks_LH_ContC_pCun_3 - lookupLabel: 361 - originalLookupLabel: 361 - center: - x: -10.0 - y: -73.0 - z: 39.0 - color: '#778cad' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_4: - name: 17Networks_LH_ContC_pCun_4 - lookupLabel: 362 - originalLookupLabel: 362 - center: - x: -5.0 - y: -32.0 - z: 42.0 - color: '#778cae' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_5: - name: 17Networks_LH_ContC_pCun_5 - lookupLabel: 363 - originalLookupLabel: 363 - center: - x: -12.0 - y: -79.0 - z: 45.0 - color: '#778caf' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_6: - name: 17Networks_LH_ContC_pCun_6 - lookupLabel: 364 - originalLookupLabel: 364 - center: - x: -5.0 - y: -40.0 - z: 42.0 - color: '#778cb1' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_7: - name: 17Networks_LH_ContC_pCun_7 - lookupLabel: 365 - originalLookupLabel: 365 - center: - x: -4.0 - y: -76.0 - z: 45.0 - color: '#778cb2' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_8: - name: 17Networks_LH_ContC_pCun_8 - lookupLabel: 366 - originalLookupLabel: 366 - center: - x: -3.0 - y: -68.0 - z: 45.0 - color: '#778cb3' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_9: - name: 17Networks_LH_ContC_pCun_9 - lookupLabel: 367 - originalLookupLabel: 367 - center: - x: -6.0 - y: -77.0 - z: 52.0 - color: '#778cb4' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_10: - name: 17Networks_LH_ContC_pCun_10 - lookupLabel: 368 - originalLookupLabel: 368 - center: - x: -5.0 - y: -59.0 - z: 48.0 - color: '#778cb5' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_11: - name: 17Networks_LH_ContC_pCun_11 - lookupLabel: 369 - originalLookupLabel: 369 - center: - x: -4.0 - y: -66.0 - z: 52.0 - color: '#778cb6' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_12: - name: 17Networks_LH_ContC_pCun_12 - lookupLabel: 370 - originalLookupLabel: 370 - center: - x: -4.0 - y: -49.0 - z: 51.0 - color: '#778cb7' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_13: - name: 17Networks_LH_ContC_pCun_13 - lookupLabel: 371 - originalLookupLabel: 371 - center: - x: -3.0 - y: -53.0 - z: 58.0 - color: '#778db0' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_Cingp_1: - name: 17Networks_LH_ContC_Cingp_1 - lookupLabel: 372 - originalLookupLabel: 372 - center: - x: -6.0 - y: -44.0 - z: 21.0 - color: '#778cb0' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_Cingp_2: - name: 17Networks_LH_ContC_Cingp_2 - lookupLabel: 373 - originalLookupLabel: 373 - center: - x: -7.0 - y: -38.0 - z: 25.0 - color: '#778cb8' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_Cingp_3: - name: 17Networks_LH_ContC_Cingp_3 - lookupLabel: 374 - originalLookupLabel: 374 - center: - x: -6.0 - y: -27.0 - z: 27.0 - color: '#778db1' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_Cingp_4: - name: 17Networks_LH_ContC_Cingp_4 - lookupLabel: 375 - originalLookupLabel: 375 - center: - x: -4.0 - y: -13.0 - z: 30.0 - color: '#778db2' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_Cingp_5: - name: 17Networks_LH_ContC_Cingp_5 - lookupLabel: 376 - originalLookupLabel: 376 - center: - x: -3.0 - y: -32.0 - z: 29.0 - color: '#778db3' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_Cingp_6: - name: 17Networks_LH_ContC_Cingp_6 - lookupLabel: 377 - originalLookupLabel: 377 - center: - x: -2.0 - y: -23.0 - z: 31.0 - color: '#778db4' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_DefaultA_IPL_1: - name: 17Networks_LH_DefaultA_IPL_1 - lookupLabel: 378 - originalLookupLabel: 378 - center: - x: -45.0 - y: -65.0 - z: 23.0 - color: '#ffff01' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_IPL_2: - name: 17Networks_LH_DefaultA_IPL_2 - lookupLabel: 379 - originalLookupLabel: 379 - center: - x: -46.0 - y: -71.0 - z: 30.0 - color: '#ffff02' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_IPL_3: - name: 17Networks_LH_DefaultA_IPL_3 - lookupLabel: 380 - originalLookupLabel: 380 - center: - x: -48.0 - y: -64.0 - z: 31.0 - color: '#ffff03' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_IPL_4: - name: 17Networks_LH_DefaultA_IPL_4 - lookupLabel: 381 - originalLookupLabel: 381 - center: - x: -38.0 - y: -77.0 - z: 40.0 - color: '#ffff04' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_IPL_5: - name: 17Networks_LH_DefaultA_IPL_5 - lookupLabel: 382 - originalLookupLabel: 382 - center: - x: -47.0 - y: -69.0 - z: 39.0 - color: '#ffff05' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_IPL_6: - name: 17Networks_LH_DefaultA_IPL_6 - lookupLabel: 383 - originalLookupLabel: 383 - center: - x: -46.0 - y: -62.0 - z: 43.0 - color: '#ffff06' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_IPL_7: - name: 17Networks_LH_DefaultA_IPL_7 - lookupLabel: 384 - originalLookupLabel: 384 - center: - x: -37.0 - y: -72.0 - z: 49.0 - color: '#ffff07' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_1: - name: 17Networks_LH_DefaultA_PFCd_1 - lookupLabel: 385 - originalLookupLabel: 385 - center: - x: -20.0 - y: 43.0 - z: 42.0 - color: '#ffff08' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_2: - name: 17Networks_LH_DefaultA_PFCd_2 - lookupLabel: 386 - originalLookupLabel: 386 - center: - x: -25.0 - y: 27.0 - z: 44.0 - color: '#fcf900' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_3: - name: 17Networks_LH_DefaultA_PFCd_3 - lookupLabel: 387 - originalLookupLabel: 387 - center: - x: -19.0 - y: 34.0 - z: 50.0 - color: '#fcf901' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_4: - name: 17Networks_LH_DefaultA_PFCd_4 - lookupLabel: 388 - originalLookupLabel: 388 - center: - x: -22.0 - y: 19.0 - z: 47.0 - color: '#fcfa00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_1: - name: 17Networks_LH_DefaultA_pCunPCC_1 - lookupLabel: 389 - originalLookupLabel: 389 - center: - x: -6.0 - y: -47.0 - z: 15.0 - color: '#fffd00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_2: - name: 17Networks_LH_DefaultA_pCunPCC_2 - lookupLabel: 390 - originalLookupLabel: 390 - center: - x: -5.0 - y: -53.0 - z: 17.0 - color: '#fffe01' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_3: - name: 17Networks_LH_DefaultA_pCunPCC_3 - lookupLabel: 391 - originalLookupLabel: 391 - center: - x: -3.0 - y: -48.0 - z: 24.0 - color: '#fffe02' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_4: - name: 17Networks_LH_DefaultA_pCunPCC_4 - lookupLabel: 392 - originalLookupLabel: 392 - center: - x: -3.0 - y: -61.0 - z: 22.0 - color: '#fffe03' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_5: - name: 17Networks_LH_DefaultA_pCunPCC_5 - lookupLabel: 393 - originalLookupLabel: 393 - center: - x: -3.0 - y: -41.0 - z: 26.0 - color: '#fffe04' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_6: - name: 17Networks_LH_DefaultA_pCunPCC_6 - lookupLabel: 394 - originalLookupLabel: 394 - center: - x: -8.0 - y: -53.0 - z: 26.0 - color: '#fffe05' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_7: - name: 17Networks_LH_DefaultA_pCunPCC_7 - lookupLabel: 395 - originalLookupLabel: 395 - center: - x: -6.0 - y: -67.0 - z: 26.0 - color: '#fffe06' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_8: - name: 17Networks_LH_DefaultA_pCunPCC_8 - lookupLabel: 396 - originalLookupLabel: 396 - center: - x: -5.0 - y: -46.0 - z: 30.0 - color: '#fffe07' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_9: - name: 17Networks_LH_DefaultA_pCunPCC_9 - lookupLabel: 397 - originalLookupLabel: 397 - center: - x: -6.0 - y: -57.0 - z: 30.0 - color: '#ffff00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_10: - name: 17Networks_LH_DefaultA_pCunPCC_10 - lookupLabel: 398 - originalLookupLabel: 398 - center: - x: -3.0 - y: -39.0 - z: 31.0 - color: '#fcfb00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_11: - name: 17Networks_LH_DefaultA_pCunPCC_11 - lookupLabel: 399 - originalLookupLabel: 399 - center: - x: -12.0 - y: -49.0 - z: 31.0 - color: '#fcfc00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_12: - name: 17Networks_LH_DefaultA_pCunPCC_12 - lookupLabel: 400 - originalLookupLabel: 400 - center: - x: -3.0 - y: -64.0 - z: 33.0 - color: '#fcfd00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_13: - name: 17Networks_LH_DefaultA_pCunPCC_13 - lookupLabel: 401 - originalLookupLabel: 401 - center: - x: -4.0 - y: -34.0 - z: 35.0 - color: '#fcfe00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_14: - name: 17Networks_LH_DefaultA_pCunPCC_14 - lookupLabel: 402 - originalLookupLabel: 402 - center: - x: -9.0 - y: -41.0 - z: 35.0 - color: '#fdf700' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_15: - name: 17Networks_LH_DefaultA_pCunPCC_15 - lookupLabel: 403 - originalLookupLabel: 403 - center: - x: -2.0 - y: -15.0 - z: 37.0 - color: '#fdf800' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_16: - name: 17Networks_LH_DefaultA_pCunPCC_16 - lookupLabel: 404 - originalLookupLabel: 404 - center: - x: -3.0 - y: -27.0 - z: 37.0 - color: '#fdf900' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_17: - name: 17Networks_LH_DefaultA_pCunPCC_17 - lookupLabel: 405 - originalLookupLabel: 405 - center: - x: -8.0 - y: -55.0 - z: 35.0 - color: '#fdfa00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_18: - name: 17Networks_LH_DefaultA_pCunPCC_18 - lookupLabel: 406 - originalLookupLabel: 406 - center: - x: -2.0 - y: -70.0 - z: 36.0 - color: '#fdfb00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_19: - name: 17Networks_LH_DefaultA_pCunPCC_19 - lookupLabel: 407 - originalLookupLabel: 407 - center: - x: -12.0 - y: -48.0 - z: 37.0 - color: '#fdfc00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_20: - name: 17Networks_LH_DefaultA_pCunPCC_20 - lookupLabel: 408 - originalLookupLabel: 408 - center: - x: -5.0 - y: -62.0 - z: 39.0 - color: '#fdfd00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_21: - name: 17Networks_LH_DefaultA_pCunPCC_21 - lookupLabel: 409 - originalLookupLabel: 409 - center: - x: -7.0 - y: -54.0 - z: 42.0 - color: '#fdfe00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_22: - name: 17Networks_LH_DefaultA_pCunPCC_22 - lookupLabel: 410 - originalLookupLabel: 410 - center: - x: -7.0 - y: -47.0 - z: 44.0 - color: '#fef700' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_1: - name: 17Networks_LH_DefaultA_PFCm_1 - lookupLabel: 411 - originalLookupLabel: 411 - center: - x: -5.0 - y: 55.0 - z: -10.0 - color: '#feff01' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_2: - name: 17Networks_LH_DefaultA_PFCm_2 - lookupLabel: 412 - originalLookupLabel: 412 - center: - x: -4.0 - y: 24.0 - z: -5.0 - color: '#feff02' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_3: - name: 17Networks_LH_DefaultA_PFCm_3 - lookupLabel: 413 - originalLookupLabel: 413 - center: - x: -8.0 - y: 46.0 - z: -4.0 - color: '#feff03' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_4: - name: 17Networks_LH_DefaultA_PFCm_4 - lookupLabel: 414 - originalLookupLabel: 414 - center: - x: -4.0 - y: 35.0 - z: -3.0 - color: '#feff04' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_5: - name: 17Networks_LH_DefaultA_PFCm_5 - lookupLabel: 415 - originalLookupLabel: 415 - center: - x: -9.0 - y: 68.0 - z: 2.0 - color: '#feff05' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_6: - name: 17Networks_LH_DefaultA_PFCm_6 - lookupLabel: 416 - originalLookupLabel: 416 - center: - x: -6.0 - y: 59.0 - z: 8.0 - color: '#feff06' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_7: - name: 17Networks_LH_DefaultA_PFCm_7 - lookupLabel: 417 - originalLookupLabel: 417 - center: - x: -6.0 - y: 45.0 - z: 7.0 - color: '#feff07' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_8: - name: 17Networks_LH_DefaultA_PFCm_8 - lookupLabel: 418 - originalLookupLabel: 418 - center: - x: -20.0 - y: 65.0 - z: 9.0 - color: '#fbf900' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_9: - name: 17Networks_LH_DefaultA_PFCm_9 - lookupLabel: 419 - originalLookupLabel: 419 - center: - x: -2.0 - y: 36.0 - z: 9.0 - color: '#fbfa00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_10: - name: 17Networks_LH_DefaultA_PFCm_10 - lookupLabel: 420 - originalLookupLabel: 420 - center: - x: -9.0 - y: 67.0 - z: 15.0 - color: '#fbfb00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_11: - name: 17Networks_LH_DefaultA_PFCm_11 - lookupLabel: 421 - originalLookupLabel: 421 - center: - x: -3.0 - y: 29.0 - z: 17.0 - color: '#fbfc00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_12: - name: 17Networks_LH_DefaultA_PFCm_12 - lookupLabel: 422 - originalLookupLabel: 422 - center: - x: -8.0 - y: 36.0 - z: 21.0 - color: '#fbfd00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultB_Temp_1: - name: 17Networks_LH_DefaultB_Temp_1 - lookupLabel: 423 - originalLookupLabel: 423 - center: - x: -46.0 - y: 7.0 - z: -37.0 - color: '#cd3e49' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_2: - name: 17Networks_LH_DefaultB_Temp_2 - lookupLabel: 424 - originalLookupLabel: 424 - center: - x: -52.0 - y: -5.0 - z: -32.0 - color: '#cd3e4a' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_3: - name: 17Networks_LH_DefaultB_Temp_3 - lookupLabel: 425 - originalLookupLabel: 425 - center: - x: -59.0 - y: -22.0 - z: -26.0 - color: '#cd3e4b' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_4: - name: 17Networks_LH_DefaultB_Temp_4 - lookupLabel: 426 - originalLookupLabel: 426 - center: - x: -55.0 - y: 4.0 - z: -26.0 - color: '#cd3e4c' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_5: - name: 17Networks_LH_DefaultB_Temp_5 - lookupLabel: 427 - originalLookupLabel: 427 - center: - x: -48.0 - y: 15.0 - z: -25.0 - color: '#cd3e4d' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_6: - name: 17Networks_LH_DefaultB_Temp_6 - lookupLabel: 428 - originalLookupLabel: 428 - center: - x: -62.0 - y: -15.0 - z: -21.0 - color: '#cd3e4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_7: - name: 17Networks_LH_DefaultB_Temp_7 - lookupLabel: 429 - originalLookupLabel: 429 - center: - x: -59.0 - y: -10.0 - z: -14.0 - color: '#cd3e50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_8: - name: 17Networks_LH_DefaultB_Temp_8 - lookupLabel: 430 - originalLookupLabel: 430 - center: - x: -65.0 - y: -25.0 - z: -9.0 - color: '#cd3e51' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_9: - name: 17Networks_LH_DefaultB_Temp_9 - lookupLabel: 431 - originalLookupLabel: 431 - center: - x: -66.0 - y: -37.0 - z: -6.0 - color: '#cd3e52' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_10: - name: 17Networks_LH_DefaultB_Temp_10 - lookupLabel: 432 - originalLookupLabel: 432 - center: - x: -52.0 - y: -22.0 - z: -8.0 - color: '#cd3e53' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_11: - name: 17Networks_LH_DefaultB_Temp_11 - lookupLabel: 433 - originalLookupLabel: 433 - center: - x: -57.0 - y: -31.0 - z: -5.0 - color: '#cd3e54' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_12: - name: 17Networks_LH_DefaultB_Temp_12 - lookupLabel: 434 - originalLookupLabel: 434 - center: - x: -63.0 - y: -42.0 - z: 1.0 - color: '#cd3e55' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_13: - name: 17Networks_LH_DefaultB_Temp_13 - lookupLabel: 435 - originalLookupLabel: 435 - center: - x: -49.0 - y: -34.0 - z: -2.0 - color: '#cd3f4e' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_1: - name: 17Networks_LH_DefaultB_IPL_1 - lookupLabel: 436 - originalLookupLabel: 436 - center: - x: -47.0 - y: -58.0 - z: 18.0 - color: '#cd3e4e' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_2: - name: 17Networks_LH_DefaultB_IPL_2 - lookupLabel: 437 - originalLookupLabel: 437 - center: - x: -47.0 - y: -51.0 - z: 20.0 - color: '#cd3e56' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_3: - name: 17Networks_LH_DefaultB_IPL_3 - lookupLabel: 438 - originalLookupLabel: 438 - center: - x: -44.0 - y: -56.0 - z: 26.0 - color: '#cd3f4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_4: - name: 17Networks_LH_DefaultB_IPL_4 - lookupLabel: 439 - originalLookupLabel: 439 - center: - x: -52.0 - y: -55.0 - z: 25.0 - color: '#cd3f50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_5: - name: 17Networks_LH_DefaultB_IPL_5 - lookupLabel: 440 - originalLookupLabel: 440 - center: - x: -61.0 - y: -54.0 - z: 26.0 - color: '#cd3f51' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_6: - name: 17Networks_LH_DefaultB_IPL_6 - lookupLabel: 441 - originalLookupLabel: 441 - center: - x: -46.0 - y: -57.0 - z: 34.0 - color: '#cd3f52' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_7: - name: 17Networks_LH_DefaultB_IPL_7 - lookupLabel: 442 - originalLookupLabel: 442 - center: - x: -55.0 - y: -58.0 - z: 33.0 - color: '#cd3f53' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_8: - name: 17Networks_LH_DefaultB_IPL_8 - lookupLabel: 443 - originalLookupLabel: 443 - center: - x: -59.0 - y: -51.0 - z: 34.0 - color: '#cd3f54' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_9: - name: 17Networks_LH_DefaultB_IPL_9 - lookupLabel: 444 - originalLookupLabel: 444 - center: - x: -54.0 - y: -59.0 - z: 42.0 - color: '#cd3f55' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_1: - name: 17Networks_LH_DefaultB_PFCd_1 - lookupLabel: 445 - originalLookupLabel: 445 - center: - x: -23.0 - y: 58.0 - z: 20.0 - color: '#cd3f4a' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_2: - name: 17Networks_LH_DefaultB_PFCd_2 - lookupLabel: 446 - originalLookupLabel: 446 - center: - x: -5.0 - y: 50.0 - z: 21.0 - color: '#cd3f4b' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_3: - name: 17Networks_LH_DefaultB_PFCd_3 - lookupLabel: 447 - originalLookupLabel: 447 - center: - x: -16.0 - y: 60.0 - z: 26.0 - color: '#cd3f4c' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_4: - name: 17Networks_LH_DefaultB_PFCd_4 - lookupLabel: 448 - originalLookupLabel: 448 - center: - x: -5.0 - y: 61.0 - z: 27.0 - color: '#cd3f4d' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_5: - name: 17Networks_LH_DefaultB_PFCd_5 - lookupLabel: 449 - originalLookupLabel: 449 - center: - x: -3.0 - y: 49.0 - z: 38.0 - color: '#cd404e' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_6: - name: 17Networks_LH_DefaultB_PFCd_6 - lookupLabel: 450 - originalLookupLabel: 450 - center: - x: -12.0 - y: 51.0 - z: 41.0 - color: '#cd404f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_7: - name: 17Networks_LH_DefaultB_PFCd_7 - lookupLabel: 451 - originalLookupLabel: 451 - center: - x: -3.0 - y: 35.0 - z: 47.0 - color: '#cd4050' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_8: - name: 17Networks_LH_DefaultB_PFCd_8 - lookupLabel: 452 - originalLookupLabel: 452 - center: - x: -7.0 - y: 42.0 - z: 52.0 - color: '#cd4051' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_9: - name: 17Networks_LH_DefaultB_PFCd_9 - lookupLabel: 453 - originalLookupLabel: 453 - center: - x: -5.0 - y: 25.0 - z: 61.0 - color: '#cd4052' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_10: - name: 17Networks_LH_DefaultB_PFCd_10 - lookupLabel: 454 - originalLookupLabel: 454 - center: - x: -14.0 - y: 27.0 - z: 59.0 - color: '#cd4053' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_11: - name: 17Networks_LH_DefaultB_PFCd_11 - lookupLabel: 455 - originalLookupLabel: 455 - center: - x: -5.0 - y: 12.0 - z: 65.0 - color: '#cd4054' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_12: - name: 17Networks_LH_DefaultB_PFCd_12 - lookupLabel: 456 - originalLookupLabel: 456 - center: - x: -15.0 - y: 15.0 - z: 65.0 - color: '#cd4055' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCl_1: - name: 17Networks_LH_DefaultB_PFCl_1 - lookupLabel: 457 - originalLookupLabel: 457 - center: - x: -42.0 - y: 7.0 - z: 49.0 - color: '#cd3f56' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCl_2: - name: 17Networks_LH_DefaultB_PFCl_2 - lookupLabel: 458 - originalLookupLabel: 458 - center: - x: -38.0 - y: 13.0 - z: 56.0 - color: '#cd4056' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_1: - name: 17Networks_LH_DefaultB_PFCv_1 - lookupLabel: 459 - originalLookupLabel: 459 - center: - x: -28.0 - y: 17.0 - z: -16.0 - color: '#ce3e4b' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_2: - name: 17Networks_LH_DefaultB_PFCv_2 - lookupLabel: 460 - originalLookupLabel: 460 - center: - x: -36.0 - y: 36.0 - z: -12.0 - color: '#ce3e4c' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_3: - name: 17Networks_LH_DefaultB_PFCv_3 - lookupLabel: 461 - originalLookupLabel: 461 - center: - x: -37.0 - y: 24.0 - z: -15.0 - color: '#ce3e4d' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_4: - name: 17Networks_LH_DefaultB_PFCv_4 - lookupLabel: 462 - originalLookupLabel: 462 - center: - x: -46.0 - y: 31.0 - z: -11.0 - color: '#ce3e4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_5: - name: 17Networks_LH_DefaultB_PFCv_5 - lookupLabel: 463 - originalLookupLabel: 463 - center: - x: -49.0 - y: 40.0 - z: -7.0 - color: '#ce3e50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_6: - name: 17Networks_LH_DefaultB_PFCv_6 - lookupLabel: 464 - originalLookupLabel: 464 - center: - x: -44.0 - y: 29.0 - z: -1.0 - color: '#ce3e51' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_7: - name: 17Networks_LH_DefaultB_PFCv_7 - lookupLabel: 465 - originalLookupLabel: 465 - center: - x: -52.0 - y: 28.0 - z: 2.0 - color: '#ce3e52' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_8: - name: 17Networks_LH_DefaultB_PFCv_8 - lookupLabel: 466 - originalLookupLabel: 466 - center: - x: -45.0 - y: 20.0 - z: 6.0 - color: '#ce3e53' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_9: - name: 17Networks_LH_DefaultB_PFCv_9 - lookupLabel: 467 - originalLookupLabel: 467 - center: - x: -55.0 - y: 18.0 - z: 12.0 - color: '#ce3e54' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultC_IPL_1: - name: 17Networks_LH_DefaultC_IPL_1 - lookupLabel: 468 - originalLookupLabel: 468 - center: - x: -42.0 - y: -71.0 - z: 23.0 - color: '#000083' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_IPL_2: - name: 17Networks_LH_DefaultC_IPL_2 - lookupLabel: 469 - originalLookupLabel: 469 - center: - x: -43.0 - y: -78.0 - z: 28.0 - color: '#000084' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_IPL_3: - name: 17Networks_LH_DefaultC_IPL_3 - lookupLabel: 470 - originalLookupLabel: 470 - center: - x: -35.0 - y: -85.0 - z: 34.0 - color: '#000085' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_1: - name: 17Networks_LH_DefaultC_Rsp_1 - lookupLabel: 471 - originalLookupLabel: 471 - center: - x: -11.0 - y: -45.0 - z: 2.0 - color: '#000081' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_2: - name: 17Networks_LH_DefaultC_Rsp_2 - lookupLabel: 472 - originalLookupLabel: 472 - center: - x: -14.0 - y: -51.0 - z: 4.0 - color: '#000082' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_3: - name: 17Networks_LH_DefaultC_Rsp_3 - lookupLabel: 473 - originalLookupLabel: 473 - center: - x: -7.0 - y: -46.0 - z: 9.0 - color: '#000086' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_4: - name: 17Networks_LH_DefaultC_Rsp_4 - lookupLabel: 474 - originalLookupLabel: 474 - center: - x: -16.0 - y: -58.0 - z: 8.0 - color: '#000087' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_5: - name: 17Networks_LH_DefaultC_Rsp_5 - lookupLabel: 475 - originalLookupLabel: 475 - center: - x: -9.0 - y: -54.0 - z: 9.0 - color: '#000088' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_6: - name: 17Networks_LH_DefaultC_Rsp_6 - lookupLabel: 476 - originalLookupLabel: 476 - center: - x: -19.0 - y: -60.0 - z: 16.0 - color: '#000089' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_7: - name: 17Networks_LH_DefaultC_Rsp_7 - lookupLabel: 477 - originalLookupLabel: 477 - center: - x: -11.0 - y: -59.0 - z: 17.0 - color: '#00008a' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_8: - name: 17Networks_LH_DefaultC_Rsp_8 - lookupLabel: 478 - originalLookupLabel: 478 - center: - x: -15.0 - y: -63.0 - z: 22.0 - color: '#000183' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_1: - name: 17Networks_LH_DefaultC_PHC_1 - lookupLabel: 479 - originalLookupLabel: 479 - center: - x: -31.0 - y: -23.0 - z: -26.0 - color: '#000181' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_2: - name: 17Networks_LH_DefaultC_PHC_2 - lookupLabel: 480 - originalLookupLabel: 480 - center: - x: -31.0 - y: -32.0 - z: -18.0 - color: '#000184' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_3: - name: 17Networks_LH_DefaultC_PHC_3 - lookupLabel: 481 - originalLookupLabel: 481 - center: - x: -20.0 - y: -25.0 - z: -22.0 - color: '#000185' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_4: - name: 17Networks_LH_DefaultC_PHC_4 - lookupLabel: 482 - originalLookupLabel: 482 - center: - x: -31.0 - y: -43.0 - z: -9.0 - color: '#000186' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_5: - name: 17Networks_LH_DefaultC_PHC_5 - lookupLabel: 483 - originalLookupLabel: 483 - center: - x: -21.0 - y: -36.0 - z: -14.0 - color: '#000187' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_6: - name: 17Networks_LH_DefaultC_PHC_6 - lookupLabel: 484 - originalLookupLabel: 484 - center: - x: -16.0 - y: -38.0 - z: -11.0 - color: '#000188' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_TempPar_1: - name: 17Networks_LH_TempPar_1 - lookupLabel: 485 - originalLookupLabel: 485 - center: - x: -52.0 - y: 7.0 - z: -17.0 - color: '#0c30f9' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_2: - name: 17Networks_LH_TempPar_2 - lookupLabel: 486 - originalLookupLabel: 486 - center: - x: -53.0 - y: -4.0 - z: -11.0 - color: '#0c30fa' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_3: - name: 17Networks_LH_TempPar_3 - lookupLabel: 487 - originalLookupLabel: 487 - center: - x: -58.0 - y: -14.0 - z: -4.0 - color: '#0c30fb' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_4: - name: 17Networks_LH_TempPar_4 - lookupLabel: 488 - originalLookupLabel: 488 - center: - x: -57.0 - y: -24.0 - z: -1.0 - color: '#0c30fc' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_5: - name: 17Networks_LH_TempPar_5 - lookupLabel: 489 - originalLookupLabel: 489 - center: - x: -53.0 - y: -42.0 - z: 1.0 - color: '#0c30fd' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_6: - name: 17Networks_LH_TempPar_6 - lookupLabel: 490 - originalLookupLabel: 490 - center: - x: -60.0 - y: -51.0 - z: 6.0 - color: '#0c30fe' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_7: - name: 17Networks_LH_TempPar_7 - lookupLabel: 491 - originalLookupLabel: 491 - center: - x: -55.0 - y: -34.0 - z: 4.0 - color: '#0929f9' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_8: - name: 17Networks_LH_TempPar_8 - lookupLabel: 492 - originalLookupLabel: 492 - center: - x: -66.0 - y: -30.0 - z: 6.0 - color: '#0929fa' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_9: - name: 17Networks_LH_TempPar_9 - lookupLabel: 493 - originalLookupLabel: 493 - center: - x: -50.0 - y: -45.0 - z: 7.0 - color: '#0929fb' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_10: - name: 17Networks_LH_TempPar_10 - lookupLabel: 494 - originalLookupLabel: 494 - center: - x: -56.0 - y: -57.0 - z: 14.0 - color: '#0929fc' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_11: - name: 17Networks_LH_TempPar_11 - lookupLabel: 495 - originalLookupLabel: 495 - center: - x: -62.0 - y: -40.0 - z: 9.0 - color: '#0929fd' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_12: - name: 17Networks_LH_TempPar_12 - lookupLabel: 496 - originalLookupLabel: 496 - center: - x: -48.0 - y: -51.0 - z: 12.0 - color: '#0929fe' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_13: - name: 17Networks_LH_TempPar_13 - lookupLabel: 497 - originalLookupLabel: 497 - center: - x: -55.0 - y: -47.0 - z: 14.0 - color: '#0929ff' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_14: - name: 17Networks_LH_TempPar_14 - lookupLabel: 498 - originalLookupLabel: 498 - center: - x: -65.0 - y: -46.0 - z: 15.0 - color: '#092af8' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_15: - name: 17Networks_LH_TempPar_15 - lookupLabel: 499 - originalLookupLabel: 499 - center: - x: -60.0 - y: -53.0 - z: 19.0 - color: '#092af9' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_16: - name: 17Networks_LH_TempPar_16 - lookupLabel: 500 - originalLookupLabel: 500 - center: - x: -58.0 - y: -45.0 - z: 22.0 - color: '#092afa' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_RH_VisCent_Striate_1: - name: 17Networks_RH_VisCent_Striate_1 - lookupLabel: 501 - originalLookupLabel: 501 - center: - x: 13.0 - y: -96.0 - z: -8.0 - color: '#781387' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_Striate_2: - name: 17Networks_RH_VisCent_Striate_2 - lookupLabel: 502 - originalLookupLabel: 502 - center: - x: 9.0 - y: -91.0 - z: 0.0 - color: '#781388' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_Striate_3: - name: 17Networks_RH_VisCent_Striate_3 - lookupLabel: 503 - originalLookupLabel: 503 - center: - x: 13.0 - y: -103.0 - z: 2.0 - color: '#781389' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_Striate_4: - name: 17Networks_RH_VisCent_Striate_4 - lookupLabel: 504 - originalLookupLabel: 504 - center: - x: 11.0 - y: -97.0 - z: 5.0 - color: '#78138a' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_1: - name: 17Networks_RH_VisCent_ExStr_1 - lookupLabel: 505 - originalLookupLabel: 505 - center: - x: 36.0 - y: -51.0 - z: -18.0 - color: '#781187' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_2: - name: 17Networks_RH_VisCent_ExStr_2 - lookupLabel: 506 - originalLookupLabel: 506 - center: - x: 26.0 - y: -49.0 - z: -14.0 - color: '#781280' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_3: - name: 17Networks_RH_VisCent_ExStr_3 - lookupLabel: 507 - originalLookupLabel: 507 - center: - x: 46.0 - y: -57.0 - z: -18.0 - color: '#781281' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_4: - name: 17Networks_RH_VisCent_ExStr_4 - lookupLabel: 508 - originalLookupLabel: 508 - center: - x: 36.0 - y: -67.0 - z: -15.0 - color: '#781282' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_5: - name: 17Networks_RH_VisCent_ExStr_5 - lookupLabel: 509 - originalLookupLabel: 509 - center: - x: 27.0 - y: -72.0 - z: -10.0 - color: '#781283' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_6: - name: 17Networks_RH_VisCent_ExStr_6 - lookupLabel: 510 - originalLookupLabel: 510 - center: - x: 27.0 - y: -59.0 - z: -9.0 - color: '#781284' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_7: - name: 17Networks_RH_VisCent_ExStr_7 - lookupLabel: 511 - originalLookupLabel: 511 - center: - x: 38.0 - y: -78.0 - z: -16.0 - color: '#781285' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_8: - name: 17Networks_RH_VisCent_ExStr_8 - lookupLabel: 512 - originalLookupLabel: 512 - center: - x: 26.0 - y: -81.0 - z: -12.0 - color: '#781286' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_9: - name: 17Networks_RH_VisCent_ExStr_9 - lookupLabel: 513 - originalLookupLabel: 513 - center: - x: 19.0 - y: -71.0 - z: -9.0 - color: '#781287' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_10: - name: 17Networks_RH_VisCent_ExStr_10 - lookupLabel: 514 - originalLookupLabel: 514 - center: - x: 46.0 - y: -78.0 - z: -14.0 - color: '#781380' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_11: - name: 17Networks_RH_VisCent_ExStr_11 - lookupLabel: 515 - originalLookupLabel: 515 - center: - x: 20.0 - y: -88.0 - z: -12.0 - color: '#781381' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_12: - name: 17Networks_RH_VisCent_ExStr_12 - lookupLabel: 516 - originalLookupLabel: 516 - center: - x: 14.0 - y: -80.0 - z: -13.0 - color: '#781382' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_13: - name: 17Networks_RH_VisCent_ExStr_13 - lookupLabel: 517 - originalLookupLabel: 517 - center: - x: 34.0 - y: -89.0 - z: -16.0 - color: '#781383' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_14: - name: 17Networks_RH_VisCent_ExStr_14 - lookupLabel: 518 - originalLookupLabel: 518 - center: - x: 7.0 - y: -89.0 - z: -12.0 - color: '#781384' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_15: - name: 17Networks_RH_VisCent_ExStr_15 - lookupLabel: 519 - originalLookupLabel: 519 - center: - x: 49.0 - y: -75.0 - z: -7.0 - color: '#781385' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_16: - name: 17Networks_RH_VisCent_ExStr_16 - lookupLabel: 520 - originalLookupLabel: 520 - center: - x: 22.0 - y: -97.0 - z: -13.0 - color: '#781386' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_17: - name: 17Networks_RH_VisCent_ExStr_17 - lookupLabel: 521 - originalLookupLabel: 521 - center: - x: 4.0 - y: -82.0 - z: -5.0 - color: '#78138b' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_18: - name: 17Networks_RH_VisCent_ExStr_18 - lookupLabel: 522 - originalLookupLabel: 522 - center: - x: 33.0 - y: -93.0 - z: -7.0 - color: '#78138c' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_19: - name: 17Networks_RH_VisCent_ExStr_19 - lookupLabel: 523 - originalLookupLabel: 523 - center: - x: 46.0 - y: -66.0 - z: -1.0 - color: '#78138d' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_20: - name: 17Networks_RH_VisCent_ExStr_20 - lookupLabel: 524 - originalLookupLabel: 524 - center: - x: 42.0 - y: -86.0 - z: -4.0 - color: '#78138e' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_21: - name: 17Networks_RH_VisCent_ExStr_21 - lookupLabel: 525 - originalLookupLabel: 525 - center: - x: 22.0 - y: -100.0 - z: -5.0 - color: '#781487' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_22: - name: 17Networks_RH_VisCent_ExStr_22 - lookupLabel: 526 - originalLookupLabel: 526 - center: - x: 51.0 - y: -74.0 - z: 1.0 - color: '#781488' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_23: - name: 17Networks_RH_VisCent_ExStr_23 - lookupLabel: 527 - originalLookupLabel: 527 - center: - x: 26.0 - y: -98.0 - z: 3.0 - color: '#781489' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_24: - name: 17Networks_RH_VisCent_ExStr_24 - lookupLabel: 528 - originalLookupLabel: 528 - center: - x: 34.0 - y: -89.0 - z: 4.0 - color: '#78148a' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_25: - name: 17Networks_RH_VisCent_ExStr_25 - lookupLabel: 529 - originalLookupLabel: 529 - center: - x: 43.0 - y: -79.0 - z: 5.0 - color: '#78148b' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_26: - name: 17Networks_RH_VisCent_ExStr_26 - lookupLabel: 530 - originalLookupLabel: 530 - center: - x: 14.0 - y: -101.0 - z: 13.0 - color: '#78148c' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_27: - name: 17Networks_RH_VisCent_ExStr_27 - lookupLabel: 531 - originalLookupLabel: 531 - center: - x: 26.0 - y: -96.0 - z: 15.0 - color: '#78148d' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_28: - name: 17Networks_RH_VisCent_ExStr_28 - lookupLabel: 532 - originalLookupLabel: 532 - center: - x: 7.0 - y: -94.0 - z: 15.0 - color: '#78148e' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_29: - name: 17Networks_RH_VisCent_ExStr_29 - lookupLabel: 533 - originalLookupLabel: 533 - center: - x: 38.0 - y: -84.0 - z: 9.0 - color: '#781587' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_30: - name: 17Networks_RH_VisCent_ExStr_30 - lookupLabel: 534 - originalLookupLabel: 534 - center: - x: 15.0 - y: -94.0 - z: 19.0 - color: '#781588' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_31: - name: 17Networks_RH_VisCent_ExStr_31 - lookupLabel: 535 - originalLookupLabel: 535 - center: - x: 31.0 - y: -87.0 - z: 13.0 - color: '#781589' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_32: - name: 17Networks_RH_VisCent_ExStr_32 - lookupLabel: 536 - originalLookupLabel: 536 - center: - x: 27.0 - y: -89.0 - z: 21.0 - color: '#78158a' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_33: - name: 17Networks_RH_VisCent_ExStr_33 - lookupLabel: 537 - originalLookupLabel: 537 - center: - x: 34.0 - y: -84.0 - z: 18.0 - color: '#78158b' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_34: - name: 17Networks_RH_VisCent_ExStr_34 - lookupLabel: 538 - originalLookupLabel: 538 - center: - x: 28.0 - y: -82.0 - z: 28.0 - color: '#78158c' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_35: - name: 17Networks_RH_VisCent_ExStr_35 - lookupLabel: 539 - originalLookupLabel: 539 - center: - x: 24.0 - y: -86.0 - z: 38.0 - color: '#78158d' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisPeri_StriCal_1: - name: 17Networks_RH_VisPeri_StriCal_1 - lookupLabel: 540 - originalLookupLabel: 540 - center: - x: 4.0 - y: -72.0 - z: 5.0 - color: '#ff0100' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_2: - name: 17Networks_RH_VisPeri_StriCal_2 - lookupLabel: 541 - originalLookupLabel: 541 - center: - x: 12.0 - y: -64.0 - z: 6.0 - color: '#ff0102' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_3: - name: 17Networks_RH_VisPeri_StriCal_3 - lookupLabel: 542 - originalLookupLabel: 542 - center: - x: 9.0 - y: -82.0 - z: 5.0 - color: '#ff0103' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_4: - name: 17Networks_RH_VisPeri_StriCal_4 - lookupLabel: 543 - originalLookupLabel: 543 - center: - x: 24.0 - y: -62.0 - z: 5.0 - color: '#ff0104' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_5: - name: 17Networks_RH_VisPeri_StriCal_5 - lookupLabel: 544 - originalLookupLabel: 544 - center: - x: 12.0 - y: -71.0 - z: 11.0 - color: '#ff0105' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_6: - name: 17Networks_RH_VisPeri_StriCal_6 - lookupLabel: 545 - originalLookupLabel: 545 - center: - x: 5.0 - y: -76.0 - z: 14.0 - color: '#ff0106' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_1: - name: 17Networks_RH_VisPeri_ExStrInf_1 - lookupLabel: 546 - originalLookupLabel: 546 - center: - x: 30.0 - y: -46.0 - z: -9.0 - color: '#fe0001' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_2: - name: 17Networks_RH_VisPeri_ExStrInf_2 - lookupLabel: 547 - originalLookupLabel: 547 - center: - x: 22.0 - y: -44.0 - z: -9.0 - color: '#fe0002' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_3: - name: 17Networks_RH_VisPeri_ExStrInf_3 - lookupLabel: 548 - originalLookupLabel: 548 - center: - x: 20.0 - y: -60.0 - z: -7.0 - color: '#fe0003' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_4: - name: 17Networks_RH_VisPeri_ExStrInf_4 - lookupLabel: 549 - originalLookupLabel: 549 - center: - x: 17.0 - y: -36.0 - z: -12.0 - color: '#fe0004' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_5: - name: 17Networks_RH_VisPeri_ExStrInf_5 - lookupLabel: 550 - originalLookupLabel: 550 - center: - x: 15.0 - y: -50.0 - z: -7.0 - color: '#fe0005' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_6: - name: 17Networks_RH_VisPeri_ExStrInf_6 - lookupLabel: 551 - originalLookupLabel: 551 - center: - x: 12.0 - y: -62.0 - z: -3.0 - color: '#fe0006' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_7: - name: 17Networks_RH_VisPeri_ExStrInf_7 - lookupLabel: 552 - originalLookupLabel: 552 - center: - x: 8.0 - y: -72.0 - z: -4.0 - color: '#fe0007' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_8: - name: 17Networks_RH_VisPeri_ExStrInf_8 - lookupLabel: 553 - originalLookupLabel: 553 - center: - x: 17.0 - y: -44.0 - z: -3.0 - color: '#fe0100' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_9: - name: 17Networks_RH_VisPeri_ExStrInf_9 - lookupLabel: 554 - originalLookupLabel: 554 - center: - x: 15.0 - y: -56.0 - z: 2.0 - color: '#fe0101' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_10: - name: 17Networks_RH_VisPeri_ExStrInf_10 - lookupLabel: 555 - originalLookupLabel: 555 - center: - x: 5.0 - y: -62.0 - z: 6.0 - color: '#fe0102' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_11: - name: 17Networks_RH_VisPeri_ExStrInf_11 - lookupLabel: 556 - originalLookupLabel: 556 - center: - x: 25.0 - y: -53.0 - z: 3.0 - color: '#fe0103' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_12: - name: 17Networks_RH_VisPeri_ExStrInf_12 - lookupLabel: 557 - originalLookupLabel: 557 - center: - x: 20.0 - y: -53.0 - z: 7.0 - color: '#fe0104' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_1: - name: 17Networks_RH_VisPeri_ExStrSup_1 - lookupLabel: 558 - originalLookupLabel: 558 - center: - x: 4.0 - y: -86.0 - z: 10.0 - color: '#fe0000' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_2: - name: 17Networks_RH_VisPeri_ExStrSup_2 - lookupLabel: 559 - originalLookupLabel: 559 - center: - x: 21.0 - y: -59.0 - z: 11.0 - color: '#fe0008' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_3: - name: 17Networks_RH_VisPeri_ExStrSup_3 - lookupLabel: 560 - originalLookupLabel: 560 - center: - x: 8.0 - y: -66.0 - z: 18.0 - color: '#fe0105' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_4: - name: 17Networks_RH_VisPeri_ExStrSup_4 - lookupLabel: 561 - originalLookupLabel: 561 - center: - x: 5.0 - y: -81.0 - z: 23.0 - color: '#fe0106' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_5: - name: 17Networks_RH_VisPeri_ExStrSup_5 - lookupLabel: 562 - originalLookupLabel: 562 - center: - x: 19.0 - y: -64.0 - z: 17.0 - color: '#fe0107' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_6: - name: 17Networks_RH_VisPeri_ExStrSup_6 - lookupLabel: 563 - originalLookupLabel: 563 - center: - x: 7.0 - y: -90.0 - z: 28.0 - color: '#fe0108' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_7: - name: 17Networks_RH_VisPeri_ExStrSup_7 - lookupLabel: 564 - originalLookupLabel: 564 - center: - x: 7.0 - y: -74.0 - z: 28.0 - color: '#fe0201' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_8: - name: 17Networks_RH_VisPeri_ExStrSup_8 - lookupLabel: 565 - originalLookupLabel: 565 - center: - x: 17.0 - y: -72.0 - z: 25.0 - color: '#fe0202' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_9: - name: 17Networks_RH_VisPeri_ExStrSup_9 - lookupLabel: 566 - originalLookupLabel: 566 - center: - x: 18.0 - y: -89.0 - z: 28.0 - color: '#fe0203' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_10: - name: 17Networks_RH_VisPeri_ExStrSup_10 - lookupLabel: 567 - originalLookupLabel: 567 - center: - x: 10.0 - y: -85.0 - z: 39.0 - color: '#fe0204' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_11: - name: 17Networks_RH_VisPeri_ExStrSup_11 - lookupLabel: 568 - originalLookupLabel: 568 - center: - x: 16.0 - y: -79.0 - z: 37.0 - color: '#fe0205' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_SomMotA_1: - name: 17Networks_RH_SomMotA_1 - lookupLabel: 569 - originalLookupLabel: 569 - center: - x: 53.0 - y: -18.0 - z: 42.0 - color: '#4681af' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_2: - name: 17Networks_RH_SomMotA_2 - lookupLabel: 570 - originalLookupLabel: 570 - center: - x: 13.0 - y: -15.0 - z: 42.0 - color: '#4681b0' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_3: - name: 17Networks_RH_SomMotA_3 - lookupLabel: 571 - originalLookupLabel: 571 - center: - x: 50.0 - y: -22.0 - z: 47.0 - color: '#4681b1' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_4: - name: 17Networks_RH_SomMotA_4 - lookupLabel: 572 - originalLookupLabel: 572 - center: - x: 50.0 - y: -13.0 - z: 50.0 - color: '#4681b2' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_5: - name: 17Networks_RH_SomMotA_5 - lookupLabel: 573 - originalLookupLabel: 573 - center: - x: 54.0 - y: -17.0 - z: 54.0 - color: '#4681b3' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_6: - name: 17Networks_RH_SomMotA_6 - lookupLabel: 574 - originalLookupLabel: 574 - center: - x: 9.0 - y: -9.0 - z: 47.0 - color: '#4681b4' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_7: - name: 17Networks_RH_SomMotA_7 - lookupLabel: 575 - originalLookupLabel: 575 - center: - x: 40.0 - y: -13.0 - z: 47.0 - color: '#4681b5' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_8: - name: 17Networks_RH_SomMotA_8 - lookupLabel: 576 - originalLookupLabel: 576 - center: - x: 49.0 - y: -27.0 - z: 57.0 - color: '#4682ae' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_9: - name: 17Networks_RH_SomMotA_9 - lookupLabel: 577 - originalLookupLabel: 577 - center: - x: 41.0 - y: -19.0 - z: 49.0 - color: '#4682af' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_10: - name: 17Networks_RH_SomMotA_10 - lookupLabel: 578 - originalLookupLabel: 578 - center: - x: 47.0 - y: -20.0 - z: 60.0 - color: '#4682b0' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_11: - name: 17Networks_RH_SomMotA_11 - lookupLabel: 579 - originalLookupLabel: 579 - center: - x: 43.0 - y: -9.0 - z: 60.0 - color: '#4682b1' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_12: - name: 17Networks_RH_SomMotA_12 - lookupLabel: 580 - originalLookupLabel: 580 - center: - x: 6.0 - y: -15.0 - z: 52.0 - color: '#4682b2' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_13: - name: 17Networks_RH_SomMotA_13 - lookupLabel: 581 - originalLookupLabel: 581 - center: - x: 9.0 - y: -30.0 - z: 50.0 - color: '#4682b3' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_14: - name: 17Networks_RH_SomMotA_14 - lookupLabel: 582 - originalLookupLabel: 582 - center: - x: 41.0 - y: -17.0 - z: 56.0 - color: '#4682b4' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_15: - name: 17Networks_RH_SomMotA_15 - lookupLabel: 583 - originalLookupLabel: 583 - center: - x: 29.0 - y: -37.0 - z: 56.0 - color: '#4682b5' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_16: - name: 17Networks_RH_SomMotA_16 - lookupLabel: 584 - originalLookupLabel: 584 - center: - x: 39.0 - y: -34.0 - z: 61.0 - color: '#4683ae' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_17: - name: 17Networks_RH_SomMotA_17 - lookupLabel: 585 - originalLookupLabel: 585 - center: - x: 39.0 - y: -24.0 - z: 53.0 - color: '#4683af' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_18: - name: 17Networks_RH_SomMotA_18 - lookupLabel: 586 - originalLookupLabel: 586 - center: - x: 41.0 - y: -29.0 - z: 66.0 - color: '#4683b0' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_19: - name: 17Networks_RH_SomMotA_19 - lookupLabel: 587 - originalLookupLabel: 587 - center: - x: 6.0 - y: -37.0 - z: 56.0 - color: '#4683b1' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_20: - name: 17Networks_RH_SomMotA_20 - lookupLabel: 588 - originalLookupLabel: 588 - center: - x: 38.0 - y: -16.0 - z: 67.0 - color: '#4683b2' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_21: - name: 17Networks_RH_SomMotA_21 - lookupLabel: 589 - originalLookupLabel: 589 - center: - x: 32.0 - y: -41.0 - z: 66.0 - color: '#4683b3' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_22: - name: 17Networks_RH_SomMotA_22 - lookupLabel: 590 - originalLookupLabel: 590 - center: - x: 5.0 - y: -23.0 - z: 58.0 - color: '#4683b4' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_23: - name: 17Networks_RH_SomMotA_23 - lookupLabel: 591 - originalLookupLabel: 591 - center: - x: 33.0 - y: -28.0 - z: 61.0 - color: '#4683b6' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_24: - name: 17Networks_RH_SomMotA_24 - lookupLabel: 592 - originalLookupLabel: 592 - center: - x: 29.0 - y: -34.0 - z: 66.0 - color: '#4683b7' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_25: - name: 17Networks_RH_SomMotA_25 - lookupLabel: 593 - originalLookupLabel: 593 - center: - x: 31.0 - y: -23.0 - z: 60.0 - color: '#4683b8' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_26: - name: 17Networks_RH_SomMotA_26 - lookupLabel: 594 - originalLookupLabel: 594 - center: - x: 28.0 - y: -11.0 - z: 65.0 - color: '#4683b9' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_27: - name: 17Networks_RH_SomMotA_27 - lookupLabel: 595 - originalLookupLabel: 595 - center: - x: 8.0 - y: -40.0 - z: 63.0 - color: '#4683ba' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_28: - name: 17Networks_RH_SomMotA_28 - lookupLabel: 596 - originalLookupLabel: 596 - center: - x: 5.0 - y: -11.0 - z: 66.0 - color: '#4683bb' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_29: - name: 17Networks_RH_SomMotA_29 - lookupLabel: 597 - originalLookupLabel: 597 - center: - x: 27.0 - y: -19.0 - z: 73.0 - color: '#4683bc' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_30: - name: 17Networks_RH_SomMotA_30 - lookupLabel: 598 - originalLookupLabel: 598 - center: - x: 3.0 - y: -33.0 - z: 64.0 - color: '#4684b5' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_31: - name: 17Networks_RH_SomMotA_31 - lookupLabel: 599 - originalLookupLabel: 599 - center: - x: 24.0 - y: -28.0 - z: 67.0 - color: '#4684b6' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_32: - name: 17Networks_RH_SomMotA_32 - lookupLabel: 600 - originalLookupLabel: 600 - center: - x: 24.0 - y: -43.0 - z: 67.0 - color: '#4684b7' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_33: - name: 17Networks_RH_SomMotA_33 - lookupLabel: 601 - originalLookupLabel: 601 - center: - x: 19.0 - y: -5.0 - z: 69.0 - color: '#4684b8' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_34: - name: 17Networks_RH_SomMotA_34 - lookupLabel: 602 - originalLookupLabel: 602 - center: - x: 22.0 - y: -34.0 - z: 69.0 - color: '#4684b9' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_35: - name: 17Networks_RH_SomMotA_35 - lookupLabel: 603 - originalLookupLabel: 603 - center: - x: 14.0 - y: -41.0 - z: 69.0 - color: '#4684ba' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_36: - name: 17Networks_RH_SomMotA_36 - lookupLabel: 604 - originalLookupLabel: 604 - center: - x: 21.0 - y: -24.0 - z: 67.0 - color: '#4684bb' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_37: - name: 17Networks_RH_SomMotA_37 - lookupLabel: 605 - originalLookupLabel: 605 - center: - x: 20.0 - y: -13.0 - z: 72.0 - color: '#4684bc' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_38: - name: 17Networks_RH_SomMotA_38 - lookupLabel: 606 - originalLookupLabel: 606 - center: - x: 5.0 - y: -41.0 - z: 70.0 - color: '#4685b5' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_39: - name: 17Networks_RH_SomMotA_39 - lookupLabel: 607 - originalLookupLabel: 607 - center: - x: 15.0 - y: -45.0 - z: 77.0 - color: '#4685b6' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_40: - name: 17Networks_RH_SomMotA_40 - lookupLabel: 608 - originalLookupLabel: 608 - center: - x: 7.0 - y: -19.0 - z: 73.0 - color: '#4685b7' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_41: - name: 17Networks_RH_SomMotA_41 - lookupLabel: 609 - originalLookupLabel: 609 - center: - x: 13.0 - y: -14.0 - z: 73.0 - color: '#4685b8' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_42: - name: 17Networks_RH_SomMotA_42 - lookupLabel: 610 - originalLookupLabel: 610 - center: - x: 21.0 - y: -38.0 - z: 75.0 - color: '#4685b9' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_43: - name: 17Networks_RH_SomMotA_43 - lookupLabel: 611 - originalLookupLabel: 611 - center: - x: 17.0 - y: -30.0 - z: 70.0 - color: '#4685ba' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_44: - name: 17Networks_RH_SomMotA_44 - lookupLabel: 612 - originalLookupLabel: 612 - center: - x: 20.0 - y: -31.0 - z: 77.0 - color: '#4685bb' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_45: - name: 17Networks_RH_SomMotA_45 - lookupLabel: 613 - originalLookupLabel: 613 - center: - x: 5.0 - y: -31.0 - z: 73.0 - color: '#4685bc' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_46: - name: 17Networks_RH_SomMotA_46 - lookupLabel: 614 - originalLookupLabel: 614 - center: - x: 12.0 - y: -38.0 - z: 77.0 - color: '#4686b5' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_47: - name: 17Networks_RH_SomMotA_47 - lookupLabel: 615 - originalLookupLabel: 615 - center: - x: 14.0 - y: -26.0 - z: 73.0 - color: '#4686b6' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_48: - name: 17Networks_RH_SomMotA_48 - lookupLabel: 616 - originalLookupLabel: 616 - center: - x: 12.0 - y: -32.0 - z: 75.0 - color: '#4686b7' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotB_Cent_1: - name: 17Networks_RH_SomMotB_Cent_1 - lookupLabel: 617 - originalLookupLabel: 617 - center: - x: 62.0 - y: 3.0 - z: 22.0 - color: '#2bcca1' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_2: - name: 17Networks_RH_SomMotB_Cent_2 - lookupLabel: 618 - originalLookupLabel: 618 - center: - x: 64.0 - y: -5.0 - z: 23.0 - color: '#2bcca2' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_3: - name: 17Networks_RH_SomMotB_Cent_3 - lookupLabel: 619 - originalLookupLabel: 619 - center: - x: 56.0 - y: -4.0 - z: 24.0 - color: '#2bcca3' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_4: - name: 17Networks_RH_SomMotB_Cent_4 - lookupLabel: 620 - originalLookupLabel: 620 - center: - x: 59.0 - y: 1.0 - z: 34.0 - color: '#2bcca4' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_5: - name: 17Networks_RH_SomMotB_Cent_5 - lookupLabel: 621 - originalLookupLabel: 621 - center: - x: 63.0 - y: -9.0 - z: 38.0 - color: '#2bcca6' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_6: - name: 17Networks_RH_SomMotB_Cent_6 - lookupLabel: 622 - originalLookupLabel: 622 - center: - x: 56.0 - y: -8.0 - z: 34.0 - color: '#2bcca7' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_7: - name: 17Networks_RH_SomMotB_Cent_7 - lookupLabel: 623 - originalLookupLabel: 623 - center: - x: 50.0 - y: -6.0 - z: 31.0 - color: '#2bcca8' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_8: - name: 17Networks_RH_SomMotB_Cent_8 - lookupLabel: 624 - originalLookupLabel: 624 - center: - x: 60.0 - y: -12.0 - z: 46.0 - color: '#2bcca9' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_9: - name: 17Networks_RH_SomMotB_Cent_9 - lookupLabel: 625 - originalLookupLabel: 625 - center: - x: 55.0 - y: -4.0 - z: 43.0 - color: '#2bccaa' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_10: - name: 17Networks_RH_SomMotB_Cent_10 - lookupLabel: 626 - originalLookupLabel: 626 - center: - x: 51.0 - y: -13.0 - z: 39.0 - color: '#2bccab' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_11: - name: 17Networks_RH_SomMotB_Cent_11 - lookupLabel: 627 - originalLookupLabel: 627 - center: - x: 45.0 - y: -11.0 - z: 38.0 - color: '#2bccac' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_12: - name: 17Networks_RH_SomMotB_Cent_12 - lookupLabel: 628 - originalLookupLabel: 628 - center: - x: 39.0 - y: -17.0 - z: 41.0 - color: '#2bcda5' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_1: - name: 17Networks_RH_SomMotB_S2_1 - lookupLabel: 629 - originalLookupLabel: 629 - center: - x: 39.0 - y: -5.0 - z: 6.0 - color: '#2bcd9e' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_2: - name: 17Networks_RH_SomMotB_S2_2 - lookupLabel: 630 - originalLookupLabel: 630 - center: - x: 37.0 - y: -10.0 - z: 12.0 - color: '#2bcd9f' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_3: - name: 17Networks_RH_SomMotB_S2_3 - lookupLabel: 631 - originalLookupLabel: 631 - center: - x: 37.0 - y: -10.0 - z: 18.0 - color: '#2bcda0' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_4: - name: 17Networks_RH_SomMotB_S2_4 - lookupLabel: 632 - originalLookupLabel: 632 - center: - x: 43.0 - y: -3.0 - z: 14.0 - color: '#2bcda1' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_5: - name: 17Networks_RH_SomMotB_S2_5 - lookupLabel: 633 - originalLookupLabel: 633 - center: - x: 34.0 - y: -22.0 - z: 17.0 - color: '#2bcda2' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_6: - name: 17Networks_RH_SomMotB_S2_6 - lookupLabel: 634 - originalLookupLabel: 634 - center: - x: 42.0 - y: -13.0 - z: 18.0 - color: '#2bcda3' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_7: - name: 17Networks_RH_SomMotB_S2_7 - lookupLabel: 635 - originalLookupLabel: 635 - center: - x: 38.0 - y: -27.0 - z: 20.0 - color: '#2bcda6' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_8: - name: 17Networks_RH_SomMotB_S2_8 - lookupLabel: 636 - originalLookupLabel: 636 - center: - x: 50.0 - y: -9.0 - z: 12.0 - color: '#2bcda7' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_9: - name: 17Networks_RH_SomMotB_S2_9 - lookupLabel: 637 - originalLookupLabel: 637 - center: - x: 47.0 - y: -18.0 - z: 18.0 - color: '#2bcda8' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_10: - name: 17Networks_RH_SomMotB_S2_10 - lookupLabel: 638 - originalLookupLabel: 638 - center: - x: 59.0 - y: -1.0 - z: 11.0 - color: '#2bcda9' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_11: - name: 17Networks_RH_SomMotB_S2_11 - lookupLabel: 639 - originalLookupLabel: 639 - center: - x: 44.0 - y: -29.0 - z: 21.0 - color: '#2bcdaa' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_12: - name: 17Networks_RH_SomMotB_S2_12 - lookupLabel: 640 - originalLookupLabel: 640 - center: - x: 59.0 - y: -12.0 - z: 15.0 - color: '#2bcdab' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_13: - name: 17Networks_RH_SomMotB_S2_13 - lookupLabel: 641 - originalLookupLabel: 641 - center: - x: 52.0 - y: -21.0 - z: 18.0 - color: '#2bcea4' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_14: - name: 17Networks_RH_SomMotB_S2_14 - lookupLabel: 642 - originalLookupLabel: 642 - center: - x: 66.0 - y: -8.0 - z: 15.0 - color: '#2bcea5' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_15: - name: 17Networks_RH_SomMotB_S2_15 - lookupLabel: 643 - originalLookupLabel: 643 - center: - x: 65.0 - y: -12.0 - z: 26.0 - color: '#2bcea6' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Ins_1: - name: 17Networks_RH_SomMotB_Ins_1 - lookupLabel: 644 - originalLookupLabel: 644 - center: - x: 35.0 - y: -19.0 - z: 12.0 - color: '#2bcdac' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_1: - name: 17Networks_RH_SomMotB_Aud_1 - lookupLabel: 645 - originalLookupLabel: 645 - center: - x: 46.0 - y: 6.0 - z: -15.0 - color: '#2acc9e' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_2: - name: 17Networks_RH_SomMotB_Aud_2 - lookupLabel: 646 - originalLookupLabel: 646 - center: - x: 51.0 - y: 11.0 - z: -10.0 - color: '#2acc9f' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_3: - name: 17Networks_RH_SomMotB_Aud_3 - lookupLabel: 647 - originalLookupLabel: 647 - center: - x: 55.0 - y: 2.0 - z: -3.0 - color: '#2acca0' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_4: - name: 17Networks_RH_SomMotB_Aud_4 - lookupLabel: 648 - originalLookupLabel: 648 - center: - x: 47.0 - y: -9.0 - z: -6.0 - color: '#2acca1' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_5: - name: 17Networks_RH_SomMotB_Aud_5 - lookupLabel: 649 - originalLookupLabel: 649 - center: - x: 66.0 - y: -8.0 - z: -3.0 - color: '#2acca2' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_6: - name: 17Networks_RH_SomMotB_Aud_6 - lookupLabel: 650 - originalLookupLabel: 650 - center: - x: 48.0 - y: -11.0 - z: 0.0 - color: '#2acca4' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_7: - name: 17Networks_RH_SomMotB_Aud_7 - lookupLabel: 651 - originalLookupLabel: 651 - center: - x: 55.0 - y: -13.0 - z: 5.0 - color: '#2acca5' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_8: - name: 17Networks_RH_SomMotB_Aud_8 - lookupLabel: 652 - originalLookupLabel: 652 - center: - x: 67.0 - y: -15.0 - z: 5.0 - color: '#2acca6' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_9: - name: 17Networks_RH_SomMotB_Aud_9 - lookupLabel: 653 - originalLookupLabel: 653 - center: - x: 41.0 - y: -20.0 - z: 2.0 - color: '#2acca7' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_10: - name: 17Networks_RH_SomMotB_Aud_10 - lookupLabel: 654 - originalLookupLabel: 654 - center: - x: 39.0 - y: -22.0 - z: 10.0 - color: '#2acca8' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_11: - name: 17Networks_RH_SomMotB_Aud_11 - lookupLabel: 655 - originalLookupLabel: 655 - center: - x: 59.0 - y: -22.0 - z: 10.0 - color: '#2acca9' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_12: - name: 17Networks_RH_SomMotB_Aud_12 - lookupLabel: 656 - originalLookupLabel: 656 - center: - x: 41.0 - y: -27.0 - z: 12.0 - color: '#2accaa' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_13: - name: 17Networks_RH_SomMotB_Aud_13 - lookupLabel: 657 - originalLookupLabel: 657 - center: - x: 64.0 - y: -28.0 - z: 13.0 - color: '#2acda3' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_14: - name: 17Networks_RH_SomMotB_Aud_14 - lookupLabel: 658 - originalLookupLabel: 658 - center: - x: 47.0 - y: -32.0 - z: 16.0 - color: '#2acda4' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_DorsAttnA_TempOcc_1: - name: 17Networks_RH_DorsAttnA_TempOcc_1 - lookupLabel: 659 - originalLookupLabel: 659 - center: - x: 49.0 - y: -35.0 - z: -23.0 - color: '#4a9c3b' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_2: - name: 17Networks_RH_DorsAttnA_TempOcc_2 - lookupLabel: 660 - originalLookupLabel: 660 - center: - x: 33.0 - y: -36.0 - z: -23.0 - color: '#4a9c3c' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_3: - name: 17Networks_RH_DorsAttnA_TempOcc_3 - lookupLabel: 661 - originalLookupLabel: 661 - center: - x: 46.0 - y: -46.0 - z: -21.0 - color: '#4a9c3e' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_4: - name: 17Networks_RH_DorsAttnA_TempOcc_4 - lookupLabel: 662 - originalLookupLabel: 662 - center: - x: 51.0 - y: -45.0 - z: -19.0 - color: '#4a9c3f' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_5: - name: 17Networks_RH_DorsAttnA_TempOcc_5 - lookupLabel: 663 - originalLookupLabel: 663 - center: - x: 49.0 - y: -60.0 - z: -12.0 - color: '#4a9c40' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_6: - name: 17Networks_RH_DorsAttnA_TempOcc_6 - lookupLabel: 664 - originalLookupLabel: 664 - center: - x: 50.0 - y: -63.0 - z: -7.0 - color: '#4a9c41' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_7: - name: 17Networks_RH_DorsAttnA_TempOcc_7 - lookupLabel: 665 - originalLookupLabel: 665 - center: - x: 57.0 - y: -56.0 - z: -5.0 - color: '#4a9c42' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_8: - name: 17Networks_RH_DorsAttnA_TempOcc_8 - lookupLabel: 666 - originalLookupLabel: 666 - center: - x: 51.0 - y: -59.0 - z: 5.0 - color: '#4a9c43' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_1: - name: 17Networks_RH_DorsAttnA_ParOcc_1 - lookupLabel: 667 - originalLookupLabel: 667 - center: - x: 49.0 - y: -66.0 - z: 9.0 - color: '#4b9b39' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_2: - name: 17Networks_RH_DorsAttnA_ParOcc_2 - lookupLabel: 668 - originalLookupLabel: 668 - center: - x: 52.0 - y: -60.0 - z: 13.0 - color: '#4b9b3a' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_3: - name: 17Networks_RH_DorsAttnA_ParOcc_3 - lookupLabel: 669 - originalLookupLabel: 669 - center: - x: 49.0 - y: -73.0 - z: 12.0 - color: '#4b9b3b' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_4: - name: 17Networks_RH_DorsAttnA_ParOcc_4 - lookupLabel: 670 - originalLookupLabel: 670 - center: - x: 48.0 - y: -58.0 - z: 19.0 - color: '#4b9b3d' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_5: - name: 17Networks_RH_DorsAttnA_ParOcc_5 - lookupLabel: 671 - originalLookupLabel: 671 - center: - x: 45.0 - y: -67.0 - z: 18.0 - color: '#4b9b3e' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_6: - name: 17Networks_RH_DorsAttnA_ParOcc_6 - lookupLabel: 672 - originalLookupLabel: 672 - center: - x: 43.0 - y: -80.0 - z: 16.0 - color: '#4b9b3f' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_7: - name: 17Networks_RH_DorsAttnA_ParOcc_7 - lookupLabel: 673 - originalLookupLabel: 673 - center: - x: 39.0 - y: -84.0 - z: 26.0 - color: '#4b9b40' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_8: - name: 17Networks_RH_DorsAttnA_ParOcc_8 - lookupLabel: 674 - originalLookupLabel: 674 - center: - x: 34.0 - y: -76.0 - z: 23.0 - color: '#4b9b41' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_9: - name: 17Networks_RH_DorsAttnA_ParOcc_9 - lookupLabel: 675 - originalLookupLabel: 675 - center: - x: 38.0 - y: -77.0 - z: 31.0 - color: '#4b9b42' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_1: - name: 17Networks_RH_DorsAttnA_SPL_1 - lookupLabel: 676 - originalLookupLabel: 676 - center: - x: 31.0 - y: -66.0 - z: 33.0 - color: '#4b9b36' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_2: - name: 17Networks_RH_DorsAttnA_SPL_2 - lookupLabel: 677 - originalLookupLabel: 677 - center: - x: 29.0 - y: -77.0 - z: 40.0 - color: '#4b9b37' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_3: - name: 17Networks_RH_DorsAttnA_SPL_3 - lookupLabel: 678 - originalLookupLabel: 678 - center: - x: 23.0 - y: -81.0 - z: 48.0 - color: '#4b9b38' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_4: - name: 17Networks_RH_DorsAttnA_SPL_4 - lookupLabel: 679 - originalLookupLabel: 679 - center: - x: 24.0 - y: -75.0 - z: 52.0 - color: '#4b9b3c' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_5: - name: 17Networks_RH_DorsAttnA_SPL_5 - lookupLabel: 680 - originalLookupLabel: 680 - center: - x: 24.0 - y: -66.0 - z: 46.0 - color: '#4b9b43' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_6: - name: 17Networks_RH_DorsAttnA_SPL_6 - lookupLabel: 681 - originalLookupLabel: 681 - center: - x: 29.0 - y: -64.0 - z: 52.0 - color: '#4b9b44' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_7: - name: 17Networks_RH_DorsAttnA_SPL_7 - lookupLabel: 682 - originalLookupLabel: 682 - center: - x: 14.0 - y: -77.0 - z: 52.0 - color: '#4b9c3d' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_8: - name: 17Networks_RH_DorsAttnA_SPL_8 - lookupLabel: 683 - originalLookupLabel: 683 - center: - x: 36.0 - y: -45.0 - z: 52.0 - color: '#4b9c3e' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_9: - name: 17Networks_RH_DorsAttnA_SPL_9 - lookupLabel: 684 - originalLookupLabel: 684 - center: - x: 32.0 - y: -59.0 - z: 58.0 - color: '#4b9c3f' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_10: - name: 17Networks_RH_DorsAttnA_SPL_10 - lookupLabel: 685 - originalLookupLabel: 685 - center: - x: 30.0 - y: -51.0 - z: 52.0 - color: '#4b9c40' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_11: - name: 17Networks_RH_DorsAttnA_SPL_11 - lookupLabel: 686 - originalLookupLabel: 686 - center: - x: 17.0 - y: -69.0 - z: 54.0 - color: '#4b9c41' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_12: - name: 17Networks_RH_DorsAttnA_SPL_12 - lookupLabel: 687 - originalLookupLabel: 687 - center: - x: 24.0 - y: -65.0 - z: 57.0 - color: '#4b9c42' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_13: - name: 17Networks_RH_DorsAttnA_SPL_13 - lookupLabel: 688 - originalLookupLabel: 688 - center: - x: 10.0 - y: -71.0 - z: 54.0 - color: '#4b9c43' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_14: - name: 17Networks_RH_DorsAttnA_SPL_14 - lookupLabel: 689 - originalLookupLabel: 689 - center: - x: 30.0 - y: -53.0 - z: 62.0 - color: '#4b9c44' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_15: - name: 17Networks_RH_DorsAttnA_SPL_15 - lookupLabel: 690 - originalLookupLabel: 690 - center: - x: 24.0 - y: -59.0 - z: 62.0 - color: '#4b9d3d' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_16: - name: 17Networks_RH_DorsAttnA_SPL_16 - lookupLabel: 691 - originalLookupLabel: 691 - center: - x: 20.0 - y: -66.0 - z: 65.0 - color: '#4b9d3e' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_17: - name: 17Networks_RH_DorsAttnA_SPL_17 - lookupLabel: 692 - originalLookupLabel: 692 - center: - x: 11.0 - y: -64.0 - z: 63.0 - color: '#4b9d3f' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnB_TempOcc_1: - name: 17Networks_RH_DorsAttnB_TempOcc_1 - lookupLabel: 693 - originalLookupLabel: 693 - center: - x: 62.0 - y: -55.0 - z: 1.0 - color: '#01760f' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_1: - name: 17Networks_RH_DorsAttnB_PostC_1 - lookupLabel: 694 - originalLookupLabel: 694 - center: - x: 60.0 - y: -13.0 - z: 32.0 - color: '#01750f' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_2: - name: 17Networks_RH_DorsAttnB_PostC_2 - lookupLabel: 695 - originalLookupLabel: 695 - center: - x: 64.0 - y: -22.0 - z: 41.0 - color: '#017608' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_3: - name: 17Networks_RH_DorsAttnB_PostC_3 - lookupLabel: 696 - originalLookupLabel: 696 - center: - x: 59.0 - y: -19.0 - z: 34.0 - color: '#017609' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_4: - name: 17Networks_RH_DorsAttnB_PostC_4 - lookupLabel: 697 - originalLookupLabel: 697 - center: - x: 55.0 - y: -16.0 - z: 37.0 - color: '#01760a' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_5: - name: 17Networks_RH_DorsAttnB_PostC_5 - lookupLabel: 698 - originalLookupLabel: 698 - center: - x: 56.0 - y: -22.0 - z: 43.0 - color: '#01760b' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_6: - name: 17Networks_RH_DorsAttnB_PostC_6 - lookupLabel: 699 - originalLookupLabel: 699 - center: - x: 54.0 - y: -28.0 - z: 51.0 - color: '#01760c' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_7: - name: 17Networks_RH_DorsAttnB_PostC_7 - lookupLabel: 700 - originalLookupLabel: 700 - center: - x: 48.0 - y: -28.0 - z: 42.0 - color: '#01760d' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_8: - name: 17Networks_RH_DorsAttnB_PostC_8 - lookupLabel: 701 - originalLookupLabel: 701 - center: - x: 42.0 - y: -37.0 - z: 55.0 - color: '#01760e' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_9: - name: 17Networks_RH_DorsAttnB_PostC_9 - lookupLabel: 702 - originalLookupLabel: 702 - center: - x: 39.0 - y: -33.0 - z: 44.0 - color: '#017610' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_10: - name: 17Networks_RH_DorsAttnB_PostC_10 - lookupLabel: 703 - originalLookupLabel: 703 - center: - x: 42.0 - y: -27.0 - z: 44.0 - color: '#017611' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_11: - name: 17Networks_RH_DorsAttnB_PostC_11 - lookupLabel: 704 - originalLookupLabel: 704 - center: - x: 34.0 - y: -34.0 - z: 49.0 - color: '#017612' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_12: - name: 17Networks_RH_DorsAttnB_PostC_12 - lookupLabel: 705 - originalLookupLabel: 705 - center: - x: 37.0 - y: -40.0 - z: 58.0 - color: '#017613' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_13: - name: 17Networks_RH_DorsAttnB_PostC_13 - lookupLabel: 706 - originalLookupLabel: 706 - center: - x: 37.0 - y: -48.0 - z: 62.0 - color: '#017614' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_14: - name: 17Networks_RH_DorsAttnB_PostC_14 - lookupLabel: 707 - originalLookupLabel: 707 - center: - x: 6.0 - y: -54.0 - z: 61.0 - color: '#017615' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_15: - name: 17Networks_RH_DorsAttnB_PostC_15 - lookupLabel: 708 - originalLookupLabel: 708 - center: - x: 30.0 - y: -49.0 - z: 69.0 - color: '#017616' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_16: - name: 17Networks_RH_DorsAttnB_PostC_16 - lookupLabel: 709 - originalLookupLabel: 709 - center: - x: 11.0 - y: -46.0 - z: 64.0 - color: '#01770f' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_17: - name: 17Networks_RH_DorsAttnB_PostC_17 - lookupLabel: 710 - originalLookupLabel: 710 - center: - x: 23.0 - y: -56.0 - z: 70.0 - color: '#017710' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_18: - name: 17Networks_RH_DorsAttnB_PostC_18 - lookupLabel: 711 - originalLookupLabel: 711 - center: - x: 16.0 - y: -56.0 - z: 67.0 - color: '#017711' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_19: - name: 17Networks_RH_DorsAttnB_PostC_19 - lookupLabel: 712 - originalLookupLabel: 712 - center: - x: 9.0 - y: -51.0 - z: 70.0 - color: '#017712' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_20: - name: 17Networks_RH_DorsAttnB_PostC_20 - lookupLabel: 713 - originalLookupLabel: 713 - center: - x: 19.0 - y: -48.0 - z: 70.0 - color: '#017713' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_1: - name: 17Networks_RH_DorsAttnB_FEF_1 - lookupLabel: 714 - originalLookupLabel: 714 - center: - x: 41.0 - y: -3.0 - z: 51.0 - color: '#01770d' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_2: - name: 17Networks_RH_DorsAttnB_FEF_2 - lookupLabel: 715 - originalLookupLabel: 715 - center: - x: 31.0 - y: -1.0 - z: 51.0 - color: '#017714' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_3: - name: 17Networks_RH_DorsAttnB_FEF_3 - lookupLabel: 716 - originalLookupLabel: 716 - center: - x: 25.0 - y: 4.0 - z: 53.0 - color: '#017715' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_4: - name: 17Networks_RH_DorsAttnB_FEF_4 - lookupLabel: 717 - originalLookupLabel: 717 - center: - x: 34.0 - y: -7.0 - z: 59.0 - color: '#01780e' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_5: - name: 17Networks_RH_DorsAttnB_FEF_5 - lookupLabel: 718 - originalLookupLabel: 718 - center: - x: 26.0 - y: -7.0 - z: 52.0 - color: '#01780f' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_6: - name: 17Networks_RH_DorsAttnB_FEF_6 - lookupLabel: 719 - originalLookupLabel: 719 - center: - x: 24.0 - y: -3.0 - z: 62.0 - color: '#017810' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PrCv_1: - name: 17Networks_RH_DorsAttnB_PrCv_1 - lookupLabel: 720 - originalLookupLabel: 720 - center: - x: 55.0 - y: 9.0 - z: 30.0 - color: '#017716' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_SalVentAttnA_ParOper_1: - name: 17Networks_RH_SalVentAttnA_ParOper_1 - lookupLabel: 721 - originalLookupLabel: 721 - center: - x: 65.0 - y: -31.0 - z: 19.0 - color: '#c43af6' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_2: - name: 17Networks_RH_SalVentAttnA_ParOper_2 - lookupLabel: 722 - originalLookupLabel: 722 - center: - x: 54.0 - y: -33.0 - z: 23.0 - color: '#c43af7' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_3: - name: 17Networks_RH_SalVentAttnA_ParOper_3 - lookupLabel: 723 - originalLookupLabel: 723 - center: - x: 65.0 - y: -39.0 - z: 20.0 - color: '#c43af8' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_4: - name: 17Networks_RH_SalVentAttnA_ParOper_4 - lookupLabel: 724 - originalLookupLabel: 724 - center: - x: 51.0 - y: -27.0 - z: 25.0 - color: '#c43afa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_5: - name: 17Networks_RH_SalVentAttnA_ParOper_5 - lookupLabel: 725 - originalLookupLabel: 725 - center: - x: 64.0 - y: -31.0 - z: 29.0 - color: '#c43afb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_6: - name: 17Networks_RH_SalVentAttnA_ParOper_6 - lookupLabel: 726 - originalLookupLabel: 726 - center: - x: 61.0 - y: -20.0 - z: 19.0 - color: '#c43afc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_7: - name: 17Networks_RH_SalVentAttnA_ParOper_7 - lookupLabel: 727 - originalLookupLabel: 727 - center: - x: 55.0 - y: -31.0 - z: 33.0 - color: '#c43afd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_8: - name: 17Networks_RH_SalVentAttnA_ParOper_8 - lookupLabel: 728 - originalLookupLabel: 728 - center: - x: 61.0 - y: -25.0 - z: 28.0 - color: '#c43afe' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_9: - name: 17Networks_RH_SalVentAttnA_ParOper_9 - lookupLabel: 729 - originalLookupLabel: 729 - center: - x: 62.0 - y: -29.0 - z: 39.0 - color: '#c43aff' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_10: - name: 17Networks_RH_SalVentAttnA_ParOper_10 - lookupLabel: 730 - originalLookupLabel: 730 - center: - x: 64.0 - y: -18.0 - z: 28.0 - color: '#c43bf9' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_PrC_1: - name: 17Networks_RH_SalVentAttnA_PrC_1 - lookupLabel: 731 - originalLookupLabel: 731 - center: - x: 49.0 - y: -1.0 - z: 47.0 - color: '#c439fb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_PrC_2: - name: 17Networks_RH_SalVentAttnA_PrC_2 - lookupLabel: 732 - originalLookupLabel: 732 - center: - x: 48.0 - y: -7.0 - z: 52.0 - color: '#c439fc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_1: - name: 17Networks_RH_SalVentAttnA_FrOper_1 - lookupLabel: 733 - originalLookupLabel: 733 - center: - x: 38.0 - y: 12.0 - z: 10.0 - color: '#c439f7' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_2: - name: 17Networks_RH_SalVentAttnA_FrOper_2 - lookupLabel: 734 - originalLookupLabel: 734 - center: - x: 44.0 - y: 13.0 - z: 4.0 - color: '#c439f8' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_3: - name: 17Networks_RH_SalVentAttnA_FrOper_3 - lookupLabel: 735 - originalLookupLabel: 735 - center: - x: 40.0 - y: 2.0 - z: 14.0 - color: '#c439fa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_4: - name: 17Networks_RH_SalVentAttnA_FrOper_4 - lookupLabel: 736 - originalLookupLabel: 736 - center: - x: 49.0 - y: 9.0 - z: 0.0 - color: '#c439fd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_5: - name: 17Networks_RH_SalVentAttnA_FrOper_5 - lookupLabel: 737 - originalLookupLabel: 737 - center: - x: 47.0 - y: -1.0 - z: 7.0 - color: '#c439fe' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_6: - name: 17Networks_RH_SalVentAttnA_FrOper_6 - lookupLabel: 738 - originalLookupLabel: 738 - center: - x: 58.0 - y: 4.0 - z: 6.0 - color: '#c439ff' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_7: - name: 17Networks_RH_SalVentAttnA_FrOper_7 - lookupLabel: 739 - originalLookupLabel: 739 - center: - x: 56.0 - y: 9.0 - z: 13.0 - color: '#c43af9' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_8: - name: 17Networks_RH_SalVentAttnA_FrOper_8 - lookupLabel: 740 - originalLookupLabel: 740 - center: - x: 60.0 - y: 9.0 - z: 20.0 - color: '#c133f9' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_1: - name: 17Networks_RH_SalVentAttnA_Ins_1 - lookupLabel: 741 - originalLookupLabel: 741 - center: - x: 38.0 - y: 7.0 - z: -20.0 - color: '#c33af7' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_2: - name: 17Networks_RH_SalVentAttnA_Ins_2 - lookupLabel: 742 - originalLookupLabel: 742 - center: - x: 38.0 - y: 11.0 - z: -11.0 - color: '#c33af8' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_3: - name: 17Networks_RH_SalVentAttnA_Ins_3 - lookupLabel: 743 - originalLookupLabel: 743 - center: - x: 40.0 - y: 1.0 - z: -11.0 - color: '#c33af9' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_4: - name: 17Networks_RH_SalVentAttnA_Ins_4 - lookupLabel: 744 - originalLookupLabel: 744 - center: - x: 41.0 - y: 9.0 - z: -3.0 - color: '#c33afb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_5: - name: 17Networks_RH_SalVentAttnA_Ins_5 - lookupLabel: 745 - originalLookupLabel: 745 - center: - x: 41.0 - y: -7.0 - z: -7.0 - color: '#c33afc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_6: - name: 17Networks_RH_SalVentAttnA_Ins_6 - lookupLabel: 746 - originalLookupLabel: 746 - center: - x: 38.0 - y: 5.0 - z: 4.0 - color: '#c33afd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_7: - name: 17Networks_RH_SalVentAttnA_Ins_7 - lookupLabel: 747 - originalLookupLabel: 747 - center: - x: 39.0 - y: -14.0 - z: 2.0 - color: '#c33afe' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_8: - name: 17Networks_RH_SalVentAttnA_Ins_8 - lookupLabel: 748 - originalLookupLabel: 748 - center: - x: 34.0 - y: 20.0 - z: 10.0 - color: '#c33aff' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_9: - name: 17Networks_RH_SalVentAttnA_Ins_9 - lookupLabel: 749 - originalLookupLabel: 749 - center: - x: 34.0 - y: 5.0 - z: 11.0 - color: '#c033fa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_1: - name: 17Networks_RH_SalVentAttnA_ParMed_1 - lookupLabel: 750 - originalLookupLabel: 750 - center: - x: 9.0 - y: -25.0 - z: 40.0 - color: '#c33af5' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_2: - name: 17Networks_RH_SalVentAttnA_ParMed_2 - lookupLabel: 751 - originalLookupLabel: 751 - center: - x: 8.0 - y: -15.0 - z: 40.0 - color: '#c33af6' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_3: - name: 17Networks_RH_SalVentAttnA_ParMed_3 - lookupLabel: 752 - originalLookupLabel: 752 - center: - x: 10.0 - y: -34.0 - z: 43.0 - color: '#c33afa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_4: - name: 17Networks_RH_SalVentAttnA_ParMed_4 - lookupLabel: 753 - originalLookupLabel: 753 - center: - x: 14.0 - y: -24.0 - z: 39.0 - color: '#c033f9' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_5: - name: 17Networks_RH_SalVentAttnA_ParMed_5 - lookupLabel: 754 - originalLookupLabel: 754 - center: - x: 13.0 - y: -39.0 - z: 45.0 - color: '#c034f2' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_6: - name: 17Networks_RH_SalVentAttnA_ParMed_6 - lookupLabel: 755 - originalLookupLabel: 755 - center: - x: 15.0 - y: -31.0 - z: 43.0 - color: '#c034f3' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_7: - name: 17Networks_RH_SalVentAttnA_ParMed_7 - lookupLabel: 756 - originalLookupLabel: 756 - center: - x: 12.0 - y: -22.0 - z: 45.0 - color: '#c034f4' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_8: - name: 17Networks_RH_SalVentAttnA_ParMed_8 - lookupLabel: 757 - originalLookupLabel: 757 - center: - x: 9.0 - y: -43.0 - z: 51.0 - color: '#c034f5' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_9: - name: 17Networks_RH_SalVentAttnA_ParMed_9 - lookupLabel: 758 - originalLookupLabel: 758 - center: - x: 14.0 - y: -37.0 - z: 52.0 - color: '#c034f6' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_10: - name: 17Networks_RH_SalVentAttnA_ParMed_10 - lookupLabel: 759 - originalLookupLabel: 759 - center: - x: 6.0 - y: -47.0 - z: 57.0 - color: '#c034f7' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_11: - name: 17Networks_RH_SalVentAttnA_ParMed_11 - lookupLabel: 760 - originalLookupLabel: 760 - center: - x: 14.0 - y: -43.0 - z: 58.0 - color: '#c034f8' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_1: - name: 17Networks_RH_SalVentAttnA_FrMed_1 - lookupLabel: 761 - originalLookupLabel: 761 - center: - x: 4.0 - y: 9.0 - z: 34.0 - color: '#c339f7' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_2: - name: 17Networks_RH_SalVentAttnA_FrMed_2 - lookupLabel: 762 - originalLookupLabel: 762 - center: - x: 4.0 - y: -5.0 - z: 36.0 - color: '#c339f8' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_3: - name: 17Networks_RH_SalVentAttnA_FrMed_3 - lookupLabel: 763 - originalLookupLabel: 763 - center: - x: 9.0 - y: 13.0 - z: 40.0 - color: '#c339f9' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_4: - name: 17Networks_RH_SalVentAttnA_FrMed_4 - lookupLabel: 764 - originalLookupLabel: 764 - center: - x: 7.0 - y: -2.0 - z: 41.0 - color: '#c339fb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_5: - name: 17Networks_RH_SalVentAttnA_FrMed_5 - lookupLabel: 765 - originalLookupLabel: 765 - center: - x: 9.0 - y: 2.0 - z: 47.0 - color: '#c339fc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_6: - name: 17Networks_RH_SalVentAttnA_FrMed_6 - lookupLabel: 766 - originalLookupLabel: 766 - center: - x: 7.0 - y: 14.0 - z: 50.0 - color: '#c339fd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_7: - name: 17Networks_RH_SalVentAttnA_FrMed_7 - lookupLabel: 767 - originalLookupLabel: 767 - center: - x: 6.0 - y: -1.0 - z: 55.0 - color: '#c339fe' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_8: - name: 17Networks_RH_SalVentAttnA_FrMed_8 - lookupLabel: 768 - originalLookupLabel: 768 - center: - x: 7.0 - y: 0.0 - z: 66.0 - color: '#c339ff' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_9: - name: 17Networks_RH_SalVentAttnA_FrMed_9 - lookupLabel: 769 - originalLookupLabel: 769 - center: - x: 16.0 - y: 6.0 - z: 69.0 - color: '#c032fa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_10: - name: 17Networks_RH_SalVentAttnA_FrMed_10 - lookupLabel: 770 - originalLookupLabel: 770 - center: - x: 11.0 - y: -5.0 - z: 73.0 - color: '#c033f3' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnB_IPL_1: - name: 17Networks_RH_SalVentAttnB_IPL_1 - lookupLabel: 771 - originalLookupLabel: 771 - center: - x: 54.0 - y: -43.0 - z: 28.0 - color: '#fe98d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_IPL_2: - name: 17Networks_RH_SalVentAttnB_IPL_2 - lookupLabel: 772 - originalLookupLabel: 772 - center: - x: 64.0 - y: -40.0 - z: 28.0 - color: '#fe98d7' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_IPL_3: - name: 17Networks_RH_SalVentAttnB_IPL_3 - lookupLabel: 773 - originalLookupLabel: 773 - center: - x: 64.0 - y: -35.0 - z: 39.0 - color: '#fe98d8' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_IPL_4: - name: 17Networks_RH_SalVentAttnB_IPL_4 - lookupLabel: 774 - originalLookupLabel: 774 - center: - x: 59.0 - y: -38.0 - z: 39.0 - color: '#fe98d9' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_1: - name: 17Networks_RH_SalVentAttnB_PFCl_1 - lookupLabel: 775 - originalLookupLabel: 775 - center: - x: 42.0 - y: 48.0 - z: 18.0 - color: '#fe97d4' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_2: - name: 17Networks_RH_SalVentAttnB_PFCl_2 - lookupLabel: 776 - originalLookupLabel: 776 - center: - x: 31.0 - y: 47.0 - z: 21.0 - color: '#fe97d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_3: - name: 17Networks_RH_SalVentAttnB_PFCl_3 - lookupLabel: 777 - originalLookupLabel: 777 - center: - x: 25.0 - y: 55.0 - z: 26.0 - color: '#fe97d7' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_4: - name: 17Networks_RH_SalVentAttnB_PFCl_4 - lookupLabel: 778 - originalLookupLabel: 778 - center: - x: 38.0 - y: 41.0 - z: 29.0 - color: '#fe97d8' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_5: - name: 17Networks_RH_SalVentAttnB_PFCl_5 - lookupLabel: 779 - originalLookupLabel: 779 - center: - x: 28.0 - y: 45.0 - z: 33.0 - color: '#fe97d9' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_6: - name: 17Networks_RH_SalVentAttnB_PFCl_6 - lookupLabel: 780 - originalLookupLabel: 780 - center: - x: 35.0 - y: 36.0 - z: 40.0 - color: '#fe97da' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFClv_1: - name: 17Networks_RH_SalVentAttnB_PFClv_1 - lookupLabel: 781 - originalLookupLabel: 781 - center: - x: 50.0 - y: 40.0 - z: 4.0 - color: '#fe97d5' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFClv_2: - name: 17Networks_RH_SalVentAttnB_PFClv_2 - lookupLabel: 782 - originalLookupLabel: 782 - center: - x: 41.0 - y: 50.0 - z: 7.0 - color: '#fe97db' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_1: - name: 17Networks_RH_SalVentAttnB_Ins_1 - lookupLabel: 783 - originalLookupLabel: 783 - center: - x: 31.0 - y: 20.0 - z: -13.0 - color: '#fe98d3' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_2: - name: 17Networks_RH_SalVentAttnB_Ins_2 - lookupLabel: 784 - originalLookupLabel: 784 - center: - x: 34.0 - y: 20.0 - z: -7.0 - color: '#fe98d4' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_3: - name: 17Networks_RH_SalVentAttnB_Ins_3 - lookupLabel: 785 - originalLookupLabel: 785 - center: - x: 35.0 - y: 26.0 - z: -7.0 - color: '#fe98d5' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_4: - name: 17Networks_RH_SalVentAttnB_Ins_4 - lookupLabel: 786 - originalLookupLabel: 786 - center: - x: 42.0 - y: 26.0 - z: -5.0 - color: '#fe98da' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_5: - name: 17Networks_RH_SalVentAttnB_Ins_5 - lookupLabel: 787 - originalLookupLabel: 787 - center: - x: 33.0 - y: 24.0 - z: 2.0 - color: '#fe98db' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_6: - name: 17Networks_RH_SalVentAttnB_Ins_6 - lookupLabel: 788 - originalLookupLabel: 788 - center: - x: 38.0 - y: 30.0 - z: 2.0 - color: '#fe98dc' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_7: - name: 17Networks_RH_SalVentAttnB_Ins_7 - lookupLabel: 789 - originalLookupLabel: 789 - center: - x: 41.0 - y: 24.0 - z: 6.0 - color: '#fe98dd' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_8: - name: 17Networks_RH_SalVentAttnB_Ins_8 - lookupLabel: 790 - originalLookupLabel: 790 - center: - x: 47.0 - y: 21.0 - z: 3.0 - color: '#fe99d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_9: - name: 17Networks_RH_SalVentAttnB_Ins_9 - lookupLabel: 791 - originalLookupLabel: 791 - center: - x: 53.0 - y: 13.0 - z: 8.0 - color: '#fe99d7' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCmp_1: - name: 17Networks_RH_SalVentAttnB_PFCmp_1 - lookupLabel: 792 - originalLookupLabel: 792 - center: - x: 8.0 - y: 35.0 - z: 20.0 - color: '#fe99d4' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCmp_2: - name: 17Networks_RH_SalVentAttnB_PFCmp_2 - lookupLabel: 793 - originalLookupLabel: 793 - center: - x: 5.0 - y: 23.0 - z: 27.0 - color: '#fe99d8' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCmp_3: - name: 17Networks_RH_SalVentAttnB_PFCmp_3 - lookupLabel: 794 - originalLookupLabel: 794 - center: - x: 10.0 - y: 28.0 - z: 28.0 - color: '#fe99d9' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCmp_4: - name: 17Networks_RH_SalVentAttnB_PFCmp_4 - lookupLabel: 795 - originalLookupLabel: 795 - center: - x: 9.0 - y: 25.0 - z: 38.0 - color: '#fe99da' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCmp_5: - name: 17Networks_RH_SalVentAttnB_PFCmp_5 - lookupLabel: 796 - originalLookupLabel: 796 - center: - x: 5.0 - y: 11.0 - z: 59.0 - color: '#fe99db' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Cinga_1: - name: 17Networks_RH_SalVentAttnB_Cinga_1 - lookupLabel: 797 - originalLookupLabel: 797 - center: - x: 6.0 - y: 19.0 - z: 22.0 - color: '#ff97d5' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_LimbicB_OFC_1: - name: 17Networks_RH_LimbicB_OFC_1 - lookupLabel: 798 - originalLookupLabel: 798 - center: - x: 21.0 - y: 14.0 - z: -22.0 - color: '#7a872d' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_2: - name: 17Networks_RH_LimbicB_OFC_2 - lookupLabel: 799 - originalLookupLabel: 799 - center: - x: 14.0 - y: 16.0 - z: -17.0 - color: '#7a872e' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_3: - name: 17Networks_RH_LimbicB_OFC_3 - lookupLabel: 800 - originalLookupLabel: 800 - center: - x: 15.0 - y: 27.0 - z: -24.0 - color: '#7a872f' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_4: - name: 17Networks_RH_LimbicB_OFC_4 - lookupLabel: 801 - originalLookupLabel: 801 - center: - x: 10.0 - y: 28.0 - z: -20.0 - color: '#7a8730' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_5: - name: 17Networks_RH_LimbicB_OFC_5 - lookupLabel: 802 - originalLookupLabel: 802 - center: - x: 10.0 - y: 41.0 - z: -23.0 - color: '#7a8731' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_6: - name: 17Networks_RH_LimbicB_OFC_6 - lookupLabel: 803 - originalLookupLabel: 803 - center: - x: 23.0 - y: 28.0 - z: -19.0 - color: '#7a8732' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_7: - name: 17Networks_RH_LimbicB_OFC_7 - lookupLabel: 804 - originalLookupLabel: 804 - center: - x: 29.0 - y: 19.0 - z: -20.0 - color: '#7a8734' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_8: - name: 17Networks_RH_LimbicB_OFC_8 - lookupLabel: 805 - originalLookupLabel: 805 - center: - x: 16.0 - y: 48.0 - z: -19.0 - color: '#7a8735' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_9: - name: 17Networks_RH_LimbicB_OFC_9 - lookupLabel: 806 - originalLookupLabel: 806 - center: - x: 24.0 - y: 40.0 - z: -16.0 - color: '#7a8736' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_10: - name: 17Networks_RH_LimbicB_OFC_10 - lookupLabel: 807 - originalLookupLabel: 807 - center: - x: 5.0 - y: 20.0 - z: -20.0 - color: '#7a8737' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_11: - name: 17Networks_RH_LimbicB_OFC_11 - lookupLabel: 808 - originalLookupLabel: 808 - center: - x: 3.0 - y: 41.0 - z: -25.0 - color: '#7a8738' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_12: - name: 17Networks_RH_LimbicB_OFC_12 - lookupLabel: 809 - originalLookupLabel: 809 - center: - x: 7.0 - y: 55.0 - z: -22.0 - color: '#7a8739' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_13: - name: 17Networks_RH_LimbicB_OFC_13 - lookupLabel: 810 - originalLookupLabel: 810 - center: - x: 15.0 - y: 60.0 - z: -18.0 - color: '#7a873a' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_14: - name: 17Networks_RH_LimbicB_OFC_14 - lookupLabel: 811 - originalLookupLabel: 811 - center: - x: 4.0 - y: 26.0 - z: -12.0 - color: '#7a8833' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_15: - name: 17Networks_RH_LimbicB_OFC_15 - lookupLabel: 812 - originalLookupLabel: 812 - center: - x: 7.0 - y: 64.0 - z: -11.0 - color: '#7a8834' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_16: - name: 17Networks_RH_LimbicB_OFC_16 - lookupLabel: 813 - originalLookupLabel: 813 - center: - x: 21.0 - y: 62.0 - z: -10.0 - color: '#7a8835' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicA_TempPole_1: - name: 17Networks_RH_LimbicA_TempPole_1 - lookupLabel: 814 - originalLookupLabel: 814 - center: - x: 28.0 - y: 2.0 - z: -44.0 - color: '#dcf89f' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_2: - name: 17Networks_RH_LimbicA_TempPole_2 - lookupLabel: 815 - originalLookupLabel: 815 - center: - x: 35.0 - y: 11.0 - z: -40.0 - color: '#dcf8a0' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_3: - name: 17Networks_RH_LimbicA_TempPole_3 - lookupLabel: 816 - originalLookupLabel: 816 - center: - x: 49.0 - y: -5.0 - z: -40.0 - color: '#dcf8a1' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_4: - name: 17Networks_RH_LimbicA_TempPole_4 - lookupLabel: 817 - originalLookupLabel: 817 - center: - x: 40.0 - y: -9.0 - z: -35.0 - color: '#dcf8a2' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_5: - name: 17Networks_RH_LimbicA_TempPole_5 - lookupLabel: 818 - originalLookupLabel: 818 - center: - x: 31.0 - y: -9.0 - z: -35.0 - color: '#dcf8a3' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_6: - name: 17Networks_RH_LimbicA_TempPole_6 - lookupLabel: 819 - originalLookupLabel: 819 - center: - x: 20.0 - y: 0.0 - z: -31.0 - color: '#dcf8a4' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_7: - name: 17Networks_RH_LimbicA_TempPole_7 - lookupLabel: 820 - originalLookupLabel: 820 - center: - x: 24.0 - y: 8.0 - z: -31.0 - color: '#dcf8a6' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_8: - name: 17Networks_RH_LimbicA_TempPole_8 - lookupLabel: 821 - originalLookupLabel: 821 - center: - x: 50.0 - y: -19.0 - z: -31.0 - color: '#dcf8a7' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_9: - name: 17Networks_RH_LimbicA_TempPole_9 - lookupLabel: 822 - originalLookupLabel: 822 - center: - x: 42.0 - y: -21.0 - z: -25.0 - color: '#dcf8a8' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_10: - name: 17Networks_RH_LimbicA_TempPole_10 - lookupLabel: 823 - originalLookupLabel: 823 - center: - x: 37.0 - y: 21.0 - z: -32.0 - color: '#dcf8a9' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_11: - name: 17Networks_RH_LimbicA_TempPole_11 - lookupLabel: 824 - originalLookupLabel: 824 - center: - x: 59.0 - y: -20.0 - z: -30.0 - color: '#dcf8aa' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_12: - name: 17Networks_RH_LimbicA_TempPole_12 - lookupLabel: 825 - originalLookupLabel: 825 - center: - x: 22.0 - y: -13.0 - z: -30.0 - color: '#dcf8ab' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_13: - name: 17Networks_RH_LimbicA_TempPole_13 - lookupLabel: 826 - originalLookupLabel: 826 - center: - x: 44.0 - y: -30.0 - z: -23.0 - color: '#dcf8ac' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_14: - name: 17Networks_RH_LimbicA_TempPole_14 - lookupLabel: 827 - originalLookupLabel: 827 - center: - x: 32.0 - y: 10.0 - z: -27.0 - color: '#dcf9a5' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_15: - name: 17Networks_RH_LimbicA_TempPole_15 - lookupLabel: 828 - originalLookupLabel: 828 - center: - x: 42.0 - y: 13.0 - z: -21.0 - color: '#dcf9a6' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_ContA_Temp_1: - name: 17Networks_RH_ContA_Temp_1 - lookupLabel: 829 - originalLookupLabel: 829 - center: - x: 59.0 - y: -53.0 - z: -16.0 - color: '#e69422' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_Temp_2: - name: 17Networks_RH_ContA_Temp_2 - lookupLabel: 830 - originalLookupLabel: 830 - center: - x: 65.0 - y: -47.0 - z: -3.0 - color: '#e69423' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_1: - name: 17Networks_RH_ContA_IPS_1 - lookupLabel: 831 - originalLookupLabel: 831 - center: - x: 35.0 - y: -71.0 - z: 40.0 - color: '#e6931e' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_2: - name: 17Networks_RH_ContA_IPS_2 - lookupLabel: 832 - originalLookupLabel: 832 - center: - x: 60.0 - y: -32.0 - z: 50.0 - color: '#e6931f' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_3: - name: 17Networks_RH_ContA_IPS_3 - lookupLabel: 833 - originalLookupLabel: 833 - center: - x: 53.0 - y: -34.0 - z: 49.0 - color: '#e69320' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_4: - name: 17Networks_RH_ContA_IPS_4 - lookupLabel: 834 - originalLookupLabel: 834 - center: - x: 49.0 - y: -39.0 - z: 47.0 - color: '#e69321' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_5: - name: 17Networks_RH_ContA_IPS_5 - lookupLabel: 835 - originalLookupLabel: 835 - center: - x: 38.0 - y: -68.0 - z: 50.0 - color: '#e69323' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_6: - name: 17Networks_RH_ContA_IPS_6 - lookupLabel: 836 - originalLookupLabel: 836 - center: - x: 32.0 - y: -68.0 - z: 48.0 - color: '#e69324' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_7: - name: 17Networks_RH_ContA_IPS_7 - lookupLabel: 837 - originalLookupLabel: 837 - center: - x: 49.0 - y: -36.0 - z: 55.0 - color: '#e69325' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_8: - name: 17Networks_RH_ContA_IPS_8 - lookupLabel: 838 - originalLookupLabel: 838 - center: - x: 43.0 - y: -49.0 - z: 47.0 - color: '#e69326' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_9: - name: 17Networks_RH_ContA_IPS_9 - lookupLabel: 839 - originalLookupLabel: 839 - center: - x: 44.0 - y: -39.0 - z: 44.0 - color: '#e69327' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_10: - name: 17Networks_RH_ContA_IPS_10 - lookupLabel: 840 - originalLookupLabel: 840 - center: - x: 37.0 - y: -42.0 - z: 44.0 - color: '#e69328' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_11: - name: 17Networks_RH_ContA_IPS_11 - lookupLabel: 841 - originalLookupLabel: 841 - center: - x: 35.0 - y: -52.0 - z: 42.0 - color: '#e69329' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_12: - name: 17Networks_RH_ContA_IPS_12 - lookupLabel: 842 - originalLookupLabel: 842 - center: - x: 36.0 - y: -58.0 - z: 51.0 - color: '#e69424' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCd_1: - name: 17Networks_RH_ContA_PFCd_1 - lookupLabel: 843 - originalLookupLabel: 843 - center: - x: 24.0 - y: 9.0 - z: 63.0 - color: '#e69322' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_1: - name: 17Networks_RH_ContA_PFCl_1 - lookupLabel: 844 - originalLookupLabel: 844 - center: - x: 54.0 - y: 31.0 - z: 14.0 - color: '#e5941e' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_2: - name: 17Networks_RH_ContA_PFCl_2 - lookupLabel: 845 - originalLookupLabel: 845 - center: - x: 42.0 - y: 39.0 - z: 12.0 - color: '#e5941f' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_3: - name: 17Networks_RH_ContA_PFCl_3 - lookupLabel: 846 - originalLookupLabel: 846 - center: - x: 54.0 - y: 18.0 - z: 20.0 - color: '#e59420' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_4: - name: 17Networks_RH_ContA_PFCl_4 - lookupLabel: 847 - originalLookupLabel: 847 - center: - x: 50.0 - y: 13.0 - z: 22.0 - color: '#e59421' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_5: - name: 17Networks_RH_ContA_PFCl_5 - lookupLabel: 848 - originalLookupLabel: 848 - center: - x: 46.0 - y: 29.0 - z: 21.0 - color: '#e59423' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_6: - name: 17Networks_RH_ContA_PFCl_6 - lookupLabel: 849 - originalLookupLabel: 849 - center: - x: 44.0 - y: 18.0 - z: 24.0 - color: '#e59424' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_7: - name: 17Networks_RH_ContA_PFCl_7 - lookupLabel: 850 - originalLookupLabel: 850 - center: - x: 46.0 - y: 36.0 - z: 26.0 - color: '#e59425' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_8: - name: 17Networks_RH_ContA_PFCl_8 - lookupLabel: 851 - originalLookupLabel: 851 - center: - x: 44.0 - y: 8.0 - z: 25.0 - color: '#e59426' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_9: - name: 17Networks_RH_ContA_PFCl_9 - lookupLabel: 852 - originalLookupLabel: 852 - center: - x: 41.0 - y: 17.0 - z: 30.0 - color: '#e59427' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_10: - name: 17Networks_RH_ContA_PFCl_10 - lookupLabel: 853 - originalLookupLabel: 853 - center: - x: 37.0 - y: 9.0 - z: 35.0 - color: '#e59428' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_11: - name: 17Networks_RH_ContA_PFCl_11 - lookupLabel: 854 - originalLookupLabel: 854 - center: - x: 50.0 - y: 4.0 - z: 40.0 - color: '#e59429' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_Cingm_1: - name: 17Networks_RH_ContA_Cingm_1 - lookupLabel: 855 - originalLookupLabel: 855 - center: - x: 6.0 - y: 9.0 - z: 28.0 - color: '#e59422' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_Cingm_2: - name: 17Networks_RH_ContA_Cingm_2 - lookupLabel: 856 - originalLookupLabel: 856 - center: - x: 5.0 - y: -2.0 - z: 30.0 - color: '#e59521' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContB_Temp_1: - name: 17Networks_RH_ContB_Temp_1 - lookupLabel: 857 - originalLookupLabel: 857 - center: - x: 59.0 - y: -29.0 - z: -23.0 - color: '#88334a' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_Temp_2: - name: 17Networks_RH_ContB_Temp_2 - lookupLabel: 858 - originalLookupLabel: 858 - center: - x: 64.0 - y: -24.0 - z: -17.0 - color: '#88334c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_Temp_3: - name: 17Networks_RH_ContB_Temp_3 - lookupLabel: 859 - originalLookupLabel: 859 - center: - x: 60.0 - y: -39.0 - z: -19.0 - color: '#88334d' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_Temp_4: - name: 17Networks_RH_ContB_Temp_4 - lookupLabel: 860 - originalLookupLabel: 860 - center: - x: 67.0 - y: -30.0 - z: -13.0 - color: '#88334e' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_Temp_5: - name: 17Networks_RH_ContB_Temp_5 - lookupLabel: 861 - originalLookupLabel: 861 - center: - x: 64.0 - y: -41.0 - z: -10.0 - color: '#88334f' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_1: - name: 17Networks_RH_ContB_IPL_1 - lookupLabel: 862 - originalLookupLabel: 862 - center: - x: 53.0 - y: -46.0 - z: 33.0 - color: '#873245' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_2: - name: 17Networks_RH_ContB_IPL_2 - lookupLabel: 863 - originalLookupLabel: 863 - center: - x: 61.0 - y: -45.0 - z: 32.0 - color: '#873246' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_3: - name: 17Networks_RH_ContB_IPL_3 - lookupLabel: 864 - originalLookupLabel: 864 - center: - x: 59.0 - y: -46.0 - z: 41.0 - color: '#873247' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_4: - name: 17Networks_RH_ContB_IPL_4 - lookupLabel: 865 - originalLookupLabel: 865 - center: - x: 40.0 - y: -76.0 - z: 42.0 - color: '#873248' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_5: - name: 17Networks_RH_ContB_IPL_5 - lookupLabel: 866 - originalLookupLabel: 866 - center: - x: 53.0 - y: -58.0 - z: 44.0 - color: '#87324a' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_6: - name: 17Networks_RH_ContB_IPL_6 - lookupLabel: 867 - originalLookupLabel: 867 - center: - x: 55.0 - y: -51.0 - z: 46.0 - color: '#87324b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_7: - name: 17Networks_RH_ContB_IPL_7 - lookupLabel: 868 - originalLookupLabel: 868 - center: - x: 55.0 - y: -41.0 - z: 48.0 - color: '#87324c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_8: - name: 17Networks_RH_ContB_IPL_8 - lookupLabel: 869 - originalLookupLabel: 869 - center: - x: 44.0 - y: -68.0 - z: 49.0 - color: '#87324d' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_9: - name: 17Networks_RH_ContB_IPL_9 - lookupLabel: 870 - originalLookupLabel: 870 - center: - x: 47.0 - y: -57.0 - z: 54.0 - color: '#87324e' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_10: - name: 17Networks_RH_ContB_IPL_10 - lookupLabel: 871 - originalLookupLabel: 871 - center: - x: 49.0 - y: -44.0 - z: 49.0 - color: '#87324f' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_11: - name: 17Networks_RH_ContB_IPL_11 - lookupLabel: 872 - originalLookupLabel: 872 - center: - x: 48.0 - y: -50.0 - z: 55.0 - color: '#873250' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_12: - name: 17Networks_RH_ContB_IPL_12 - lookupLabel: 873 - originalLookupLabel: 873 - center: - x: 42.0 - y: -58.0 - z: 50.0 - color: '#873349' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_1: - name: 17Networks_RH_ContB_PFCld_1 - lookupLabel: 874 - originalLookupLabel: 874 - center: - x: 51.0 - y: 24.0 - z: 31.0 - color: '#873146' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_2: - name: 17Networks_RH_ContB_PFCld_2 - lookupLabel: 875 - originalLookupLabel: 875 - center: - x: 44.0 - y: 30.0 - z: 36.0 - color: '#873147' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_3: - name: 17Networks_RH_ContB_PFCld_3 - lookupLabel: 876 - originalLookupLabel: 876 - center: - x: 47.0 - y: 16.0 - z: 39.0 - color: '#873148' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_4: - name: 17Networks_RH_ContB_PFCld_4 - lookupLabel: 877 - originalLookupLabel: 877 - center: - x: 40.0 - y: 10.0 - z: 45.0 - color: '#873149' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_5: - name: 17Networks_RH_ContB_PFCld_5 - lookupLabel: 878 - originalLookupLabel: 878 - center: - x: 41.0 - y: 23.0 - z: 47.0 - color: '#87314b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_6: - name: 17Networks_RH_ContB_PFCld_6 - lookupLabel: 879 - originalLookupLabel: 879 - center: - x: 33.0 - y: 30.0 - z: 47.0 - color: '#87314c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_7: - name: 17Networks_RH_ContB_PFCld_7 - lookupLabel: 880 - originalLookupLabel: 880 - center: - x: 45.0 - y: 6.0 - z: 51.0 - color: '#87314d' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_8: - name: 17Networks_RH_ContB_PFCld_8 - lookupLabel: 881 - originalLookupLabel: 881 - center: - x: 38.0 - y: 10.0 - z: 58.0 - color: '#87314e' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_9: - name: 17Networks_RH_ContB_PFCld_9 - lookupLabel: 882 - originalLookupLabel: 882 - center: - x: 31.0 - y: 17.0 - z: 53.0 - color: '#87314f' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_10: - name: 17Networks_RH_ContB_PFCld_10 - lookupLabel: 883 - originalLookupLabel: 883 - center: - x: 25.0 - y: 17.0 - z: 46.0 - color: '#873150' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_11: - name: 17Networks_RH_ContB_PFCld_11 - lookupLabel: 884 - originalLookupLabel: 884 - center: - x: 20.0 - y: 18.0 - z: 62.0 - color: '#873151' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_1: - name: 17Networks_RH_ContB_PFClv_1 - lookupLabel: 885 - originalLookupLabel: 885 - center: - x: 35.0 - y: 37.0 - z: -13.0 - color: '#87314a' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_2: - name: 17Networks_RH_ContB_PFClv_2 - lookupLabel: 886 - originalLookupLabel: 886 - center: - x: 28.0 - y: 52.0 - z: -14.0 - color: '#873249' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_3: - name: 17Networks_RH_ContB_PFClv_3 - lookupLabel: 887 - originalLookupLabel: 887 - center: - x: 40.0 - y: 52.0 - z: -12.0 - color: '#87334a' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_4: - name: 17Networks_RH_ContB_PFClv_4 - lookupLabel: 888 - originalLookupLabel: 888 - center: - x: 32.0 - y: 59.0 - z: -2.0 - color: '#87334b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_5: - name: 17Networks_RH_ContB_PFClv_5 - lookupLabel: 889 - originalLookupLabel: 889 - center: - x: 44.0 - y: 49.0 - z: -4.0 - color: '#87334c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_6: - name: 17Networks_RH_ContB_PFClv_6 - lookupLabel: 890 - originalLookupLabel: 890 - center: - x: 23.0 - y: 63.0 - z: 2.0 - color: '#87334d' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_7: - name: 17Networks_RH_ContB_PFClv_7 - lookupLabel: 891 - originalLookupLabel: 891 - center: - x: 31.0 - y: 55.0 - z: 10.0 - color: '#87334e' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_8: - name: 17Networks_RH_ContB_PFClv_8 - lookupLabel: 892 - originalLookupLabel: 892 - center: - x: 26.0 - y: 61.0 - z: 15.0 - color: '#87334f' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCmp_1: - name: 17Networks_RH_ContB_PFCmp_1 - lookupLabel: 893 - originalLookupLabel: 893 - center: - x: 6.0 - y: 35.0 - z: 33.0 - color: '#86324b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCmp_2: - name: 17Networks_RH_ContB_PFCmp_2 - lookupLabel: 894 - originalLookupLabel: 894 - center: - x: 4.0 - y: 38.0 - z: 47.0 - color: '#86324c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCmp_3: - name: 17Networks_RH_ContB_PFCmp_3 - lookupLabel: 895 - originalLookupLabel: 895 - center: - x: 5.0 - y: 25.0 - z: 48.0 - color: '#86324d' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContC_pCun_1: - name: 17Networks_RH_ContC_pCun_1 - lookupLabel: 896 - originalLookupLabel: 896 - center: - x: 18.0 - y: -63.0 - z: 27.0 - color: '#778dac' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_2: - name: 17Networks_RH_ContC_pCun_2 - lookupLabel: 897 - originalLookupLabel: 897 - center: - x: 14.0 - y: -68.0 - z: 35.0 - color: '#778dad' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_3: - name: 17Networks_RH_ContC_pCun_3 - lookupLabel: 898 - originalLookupLabel: 898 - center: - x: 6.0 - y: -37.0 - z: 39.0 - color: '#778dae' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_4: - name: 17Networks_RH_ContC_pCun_4 - lookupLabel: 899 - originalLookupLabel: 899 - center: - x: 14.0 - y: -75.0 - z: 44.0 - color: '#778daf' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_5: - name: 17Networks_RH_ContC_pCun_5 - lookupLabel: 900 - originalLookupLabel: 900 - center: - x: 8.0 - y: -44.0 - z: 41.0 - color: '#778db1' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_6: - name: 17Networks_RH_ContC_pCun_6 - lookupLabel: 901 - originalLookupLabel: 901 - center: - x: 7.0 - y: -50.0 - z: 44.0 - color: '#778db2' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_7: - name: 17Networks_RH_ContC_pCun_7 - lookupLabel: 902 - originalLookupLabel: 902 - center: - x: 5.0 - y: -74.0 - z: 46.0 - color: '#778db3' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_8: - name: 17Networks_RH_ContC_pCun_8 - lookupLabel: 903 - originalLookupLabel: 903 - center: - x: 6.0 - y: -62.0 - z: 44.0 - color: '#778db4' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_9: - name: 17Networks_RH_ContC_pCun_9 - lookupLabel: 904 - originalLookupLabel: 904 - center: - x: 6.0 - y: -52.0 - z: 50.0 - color: '#778db5' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_10: - name: 17Networks_RH_ContC_pCun_10 - lookupLabel: 905 - originalLookupLabel: 905 - center: - x: 5.0 - y: -66.0 - z: 52.0 - color: '#778db6' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_11: - name: 17Networks_RH_ContC_pCun_11 - lookupLabel: 906 - originalLookupLabel: 906 - center: - x: 7.0 - y: -57.0 - z: 54.0 - color: '#778db7' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_Cingp_1: - name: 17Networks_RH_ContC_Cingp_1 - lookupLabel: 907 - originalLookupLabel: 907 - center: - x: 8.0 - y: -42.0 - z: 23.0 - color: '#778db8' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_Cingp_2: - name: 17Networks_RH_ContC_Cingp_2 - lookupLabel: 908 - originalLookupLabel: 908 - center: - x: 6.0 - y: -23.0 - z: 27.0 - color: '#778eb1' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_Cingp_3: - name: 17Networks_RH_ContC_Cingp_3 - lookupLabel: 909 - originalLookupLabel: 909 - center: - x: 7.0 - y: -32.0 - z: 27.0 - color: '#778eb2' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_Cingp_4: - name: 17Networks_RH_ContC_Cingp_4 - lookupLabel: 910 - originalLookupLabel: 910 - center: - x: 5.0 - y: -16.0 - z: 30.0 - color: '#778eb3' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_DefaultA_Temp_1: - name: 17Networks_RH_DefaultA_Temp_1 - lookupLabel: 911 - originalLookupLabel: 911 - center: - x: 58.0 - y: -4.0 - z: -18.0 - color: '#feff02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_Temp_2: - name: 17Networks_RH_DefaultA_Temp_2 - lookupLabel: 912 - originalLookupLabel: 912 - center: - x: 66.0 - y: -12.0 - z: -13.0 - color: '#feff03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_1: - name: 17Networks_RH_DefaultA_IPL_1 - lookupLabel: 913 - originalLookupLabel: 913 - center: - x: 50.0 - y: -50.0 - z: 19.0 - color: '#fffe00' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_2: - name: 17Networks_RH_DefaultA_IPL_2 - lookupLabel: 914 - originalLookupLabel: 914 - center: - x: 56.0 - y: -47.0 - z: 22.0 - color: '#fffe02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_3: - name: 17Networks_RH_DefaultA_IPL_3 - lookupLabel: 915 - originalLookupLabel: 915 - center: - x: 46.0 - y: -55.0 - z: 28.0 - color: '#fffe03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_4: - name: 17Networks_RH_DefaultA_IPL_4 - lookupLabel: 916 - originalLookupLabel: 916 - center: - x: 57.0 - y: -53.0 - z: 24.0 - color: '#fffe04' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_5: - name: 17Networks_RH_DefaultA_IPL_5 - lookupLabel: 917 - originalLookupLabel: 917 - center: - x: 49.0 - y: -61.0 - z: 34.0 - color: '#fffe05' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_6: - name: 17Networks_RH_DefaultA_IPL_6 - lookupLabel: 918 - originalLookupLabel: 918 - center: - x: 47.0 - y: -69.0 - z: 36.0 - color: '#fffe06' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_7: - name: 17Networks_RH_DefaultA_IPL_7 - lookupLabel: 919 - originalLookupLabel: 919 - center: - x: 57.0 - y: -53.0 - z: 33.0 - color: '#fffe07' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_8: - name: 17Networks_RH_DefaultA_IPL_8 - lookupLabel: 920 - originalLookupLabel: 920 - center: - x: 49.0 - y: -63.0 - z: 42.0 - color: '#fffe08' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCd_1: - name: 17Networks_RH_DefaultA_PFCd_1 - lookupLabel: 921 - originalLookupLabel: 921 - center: - x: 20.0 - y: 46.0 - z: 36.0 - color: '#ffff01' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCd_2: - name: 17Networks_RH_DefaultA_PFCd_2 - lookupLabel: 922 - originalLookupLabel: 922 - center: - x: 26.0 - y: 34.0 - z: 34.0 - color: '#ffff03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCd_3: - name: 17Networks_RH_DefaultA_PFCd_3 - lookupLabel: 923 - originalLookupLabel: 923 - center: - x: 22.0 - y: 40.0 - z: 46.0 - color: '#ffff04' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCd_4: - name: 17Networks_RH_DefaultA_PFCd_4 - lookupLabel: 924 - originalLookupLabel: 924 - center: - x: 27.0 - y: 29.0 - z: 42.0 - color: '#ffff05' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCd_5: - name: 17Networks_RH_DefaultA_PFCd_5 - lookupLabel: 925 - originalLookupLabel: 925 - center: - x: 24.0 - y: 27.0 - z: 53.0 - color: '#ffff06' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_1: - name: 17Networks_RH_DefaultA_pCunPCC_1 - lookupLabel: 926 - originalLookupLabel: 926 - center: - x: 7.0 - y: -47.0 - z: 14.0 - color: '#fffd01' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_2: - name: 17Networks_RH_DefaultA_pCunPCC_2 - lookupLabel: 927 - originalLookupLabel: 927 - center: - x: 5.0 - y: -53.0 - z: 20.0 - color: '#fffd02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_3: - name: 17Networks_RH_DefaultA_pCunPCC_3 - lookupLabel: 928 - originalLookupLabel: 928 - center: - x: 4.0 - y: -61.0 - z: 23.0 - color: '#fffd03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_4: - name: 17Networks_RH_DefaultA_pCunPCC_4 - lookupLabel: 929 - originalLookupLabel: 929 - center: - x: 5.0 - y: -45.0 - z: 29.0 - color: '#fffd04' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_5: - name: 17Networks_RH_DefaultA_pCunPCC_5 - lookupLabel: 930 - originalLookupLabel: 930 - center: - x: 6.0 - y: -66.0 - z: 28.0 - color: '#fffd05' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_6: - name: 17Networks_RH_DefaultA_pCunPCC_6 - lookupLabel: 931 - originalLookupLabel: 931 - center: - x: 8.0 - y: -54.0 - z: 29.0 - color: '#fffd06' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_7: - name: 17Networks_RH_DefaultA_pCunPCC_7 - lookupLabel: 932 - originalLookupLabel: 932 - center: - x: 6.0 - y: -38.0 - z: 32.0 - color: '#fffd07' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_8: - name: 17Networks_RH_DefaultA_pCunPCC_8 - lookupLabel: 933 - originalLookupLabel: 933 - center: - x: 4.0 - y: -29.0 - z: 36.0 - color: '#fffe01' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_9: - name: 17Networks_RH_DefaultA_pCunPCC_9 - lookupLabel: 934 - originalLookupLabel: 934 - center: - x: 12.0 - y: -44.0 - z: 34.0 - color: '#ffff00' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_10: - name: 17Networks_RH_DefaultA_pCunPCC_10 - lookupLabel: 935 - originalLookupLabel: 935 - center: - x: 4.0 - y: -16.0 - z: 37.0 - color: '#ffff02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_11: - name: 17Networks_RH_DefaultA_pCunPCC_11 - lookupLabel: 936 - originalLookupLabel: 936 - center: - x: 4.0 - y: -65.0 - z: 36.0 - color: '#ffff07' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_12: - name: 17Networks_RH_DefaultA_pCunPCC_12 - lookupLabel: 937 - originalLookupLabel: 937 - center: - x: 10.0 - y: -53.0 - z: 36.0 - color: '#fcf900' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_1: - name: 17Networks_RH_DefaultA_PFCm_1 - lookupLabel: 938 - originalLookupLabel: 938 - center: - x: 5.0 - y: 45.0 - z: -12.0 - color: '#fdff01' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_2: - name: 17Networks_RH_DefaultA_PFCm_2 - lookupLabel: 939 - originalLookupLabel: 939 - center: - x: 5.0 - y: 34.0 - z: -5.0 - color: '#fdff02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_3: - name: 17Networks_RH_DefaultA_PFCm_3 - lookupLabel: 940 - originalLookupLabel: 940 - center: - x: 8.0 - y: 52.0 - z: -4.0 - color: '#fdff03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_4: - name: 17Networks_RH_DefaultA_PFCm_4 - lookupLabel: 941 - originalLookupLabel: 941 - center: - x: 9.0 - y: 67.0 - z: 0.0 - color: '#fdff04' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_5: - name: 17Networks_RH_DefaultA_PFCm_5 - lookupLabel: 942 - originalLookupLabel: 942 - center: - x: 11.0 - y: 46.0 - z: -1.0 - color: '#fdff05' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_6: - name: 17Networks_RH_DefaultA_PFCm_6 - lookupLabel: 943 - originalLookupLabel: 943 - center: - x: 17.0 - y: 67.0 - z: 10.0 - color: '#fdff06' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_7: - name: 17Networks_RH_DefaultA_PFCm_7 - lookupLabel: 944 - originalLookupLabel: 944 - center: - x: 8.0 - y: 42.0 - z: 7.0 - color: '#fdff07' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_8: - name: 17Networks_RH_DefaultA_PFCm_8 - lookupLabel: 945 - originalLookupLabel: 945 - center: - x: 7.0 - y: 57.0 - z: 11.0 - color: '#faf900' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_9: - name: 17Networks_RH_DefaultA_PFCm_9 - lookupLabel: 946 - originalLookupLabel: 946 - center: - x: 6.0 - y: 29.0 - z: 14.0 - color: '#fafa00' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_10: - name: 17Networks_RH_DefaultA_PFCm_10 - lookupLabel: 947 - originalLookupLabel: 947 - center: - x: 8.0 - y: 45.0 - z: 22.0 - color: '#fafb00' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultB_Temp_1: - name: 17Networks_RH_DefaultB_Temp_1 - lookupLabel: 948 - originalLookupLabel: 948 - center: - x: 64.0 - y: -22.0 - z: -8.0 - color: '#ce3e50' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_Temp_2: - name: 17Networks_RH_DefaultB_Temp_2 - lookupLabel: 949 - originalLookupLabel: 949 - center: - x: 54.0 - y: -27.0 - z: -6.0 - color: '#ce3e51' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_Temp_3: - name: 17Networks_RH_DefaultB_Temp_3 - lookupLabel: 950 - originalLookupLabel: 950 - center: - x: 65.0 - y: -33.0 - z: -2.0 - color: '#ce3e52' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_AntTemp_1: - name: 17Networks_RH_DefaultB_AntTemp_1 - lookupLabel: 951 - originalLookupLabel: 951 - center: - x: 47.0 - y: 10.0 - z: -37.0 - color: '#ce3f4f' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_AntTemp_2: - name: 17Networks_RH_DefaultB_AntTemp_2 - lookupLabel: 952 - originalLookupLabel: 952 - center: - x: 50.0 - y: 0.0 - z: -32.0 - color: '#ce3f50' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_AntTemp_3: - name: 17Networks_RH_DefaultB_AntTemp_3 - lookupLabel: 953 - originalLookupLabel: 953 - center: - x: 60.0 - y: -8.0 - z: -25.0 - color: '#ce3f51' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_AntTemp_4: - name: 17Networks_RH_DefaultB_AntTemp_4 - lookupLabel: 954 - originalLookupLabel: 954 - center: - x: 52.0 - y: 8.0 - z: -26.0 - color: '#ce3f52' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_1: - name: 17Networks_RH_DefaultB_PFCd_1 - lookupLabel: 955 - originalLookupLabel: 955 - center: - x: 16.0 - y: 64.0 - z: 21.0 - color: '#ce3f4d' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_2: - name: 17Networks_RH_DefaultB_PFCd_2 - lookupLabel: 956 - originalLookupLabel: 956 - center: - x: 6.0 - y: 57.0 - z: 28.0 - color: '#ce3f4e' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_3: - name: 17Networks_RH_DefaultB_PFCd_3 - lookupLabel: 957 - originalLookupLabel: 957 - center: - x: 15.0 - y: 54.0 - z: 35.0 - color: '#ce3f53' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_4: - name: 17Networks_RH_DefaultB_PFCd_4 - lookupLabel: 958 - originalLookupLabel: 958 - center: - x: 5.0 - y: 46.0 - z: 35.0 - color: '#ce3f54' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_5: - name: 17Networks_RH_DefaultB_PFCd_5 - lookupLabel: 959 - originalLookupLabel: 959 - center: - x: 9.0 - y: 48.0 - z: 48.0 - color: '#ce3f55' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_6: - name: 17Networks_RH_DefaultB_PFCd_6 - lookupLabel: 960 - originalLookupLabel: 960 - center: - x: 14.0 - y: 34.0 - z: 56.0 - color: '#ce3f56' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_7: - name: 17Networks_RH_DefaultB_PFCd_7 - lookupLabel: 961 - originalLookupLabel: 961 - center: - x: 5.0 - y: 24.0 - z: 61.0 - color: '#ce404f' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_8: - name: 17Networks_RH_DefaultB_PFCd_8 - lookupLabel: 962 - originalLookupLabel: 962 - center: - x: 11.0 - y: 19.0 - z: 64.0 - color: '#ce4050' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_1: - name: 17Networks_RH_DefaultB_PFCv_1 - lookupLabel: 963 - originalLookupLabel: 963 - center: - x: 35.0 - y: 27.0 - z: -19.0 - color: '#cd3e4c' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_2: - name: 17Networks_RH_DefaultB_PFCv_2 - lookupLabel: 964 - originalLookupLabel: 964 - center: - x: 41.0 - y: 25.0 - z: -14.0 - color: '#cd3e4e' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_3: - name: 17Networks_RH_DefaultB_PFCv_3 - lookupLabel: 965 - originalLookupLabel: 965 - center: - x: 48.0 - y: 35.0 - z: -14.0 - color: '#cd3e4f' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_4: - name: 17Networks_RH_DefaultB_PFCv_4 - lookupLabel: 966 - originalLookupLabel: 966 - center: - x: 50.0 - y: 34.0 - z: -6.0 - color: '#cd3e50' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_5: - name: 17Networks_RH_DefaultB_PFCv_5 - lookupLabel: 967 - originalLookupLabel: 967 - center: - x: 53.0 - y: 29.0 - z: 1.0 - color: '#cd3e51' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_6: - name: 17Networks_RH_DefaultB_PFCv_6 - lookupLabel: 968 - originalLookupLabel: 968 - center: - x: 56.0 - y: 21.0 - z: 9.0 - color: '#cd3e52' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultC_IPL_1: - name: 17Networks_RH_DefaultC_IPL_1 - lookupLabel: 969 - originalLookupLabel: 969 - center: - x: 51.0 - y: -63.0 - z: 25.0 - color: '#000184' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_IPL_2: - name: 17Networks_RH_DefaultC_IPL_2 - lookupLabel: 970 - originalLookupLabel: 970 - center: - x: 46.0 - y: -75.0 - z: 27.0 - color: '#000185' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_Rsp_1: - name: 17Networks_RH_DefaultC_Rsp_1 - lookupLabel: 971 - originalLookupLabel: 971 - center: - x: 13.0 - y: -44.0 - z: 3.0 - color: '#010083' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_Rsp_2: - name: 17Networks_RH_DefaultC_Rsp_2 - lookupLabel: 972 - originalLookupLabel: 972 - center: - x: 10.0 - y: -48.0 - z: 7.0 - color: '#010084' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_Rsp_3: - name: 17Networks_RH_DefaultC_Rsp_3 - lookupLabel: 973 - originalLookupLabel: 973 - center: - x: 11.0 - y: -54.0 - z: 13.0 - color: '#010085' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_Rsp_4: - name: 17Networks_RH_DefaultC_Rsp_4 - lookupLabel: 974 - originalLookupLabel: 974 - center: - x: 16.0 - y: -58.0 - z: 22.0 - color: '#010086' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_PHC_1: - name: 17Networks_RH_DefaultC_PHC_1 - lookupLabel: 975 - originalLookupLabel: 975 - center: - x: 33.0 - y: -22.0 - z: -26.0 - color: '#010087' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_PHC_2: - name: 17Networks_RH_DefaultC_PHC_2 - lookupLabel: 976 - originalLookupLabel: 976 - center: - x: 22.0 - y: -22.0 - z: -24.0 - color: '#010088' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_PHC_3: - name: 17Networks_RH_DefaultC_PHC_3 - lookupLabel: 977 - originalLookupLabel: 977 - center: - x: 30.0 - y: -32.0 - z: -16.0 - color: '#010089' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_PHC_4: - name: 17Networks_RH_DefaultC_PHC_4 - lookupLabel: 978 - originalLookupLabel: 978 - center: - x: 20.0 - y: -31.0 - z: -15.0 - color: '#01008a' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_TempPar_1: - name: 17Networks_RH_TempPar_1 - lookupLabel: 979 - originalLookupLabel: 979 - center: - x: 49.0 - y: 17.0 - z: -22.0 - color: '#0c2ffd' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_2: - name: 17Networks_RH_TempPar_2 - lookupLabel: 980 - originalLookupLabel: 980 - center: - x: 53.0 - y: 4.0 - z: -15.0 - color: '#0c2ffe' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_3: - name: 17Networks_RH_TempPar_3 - lookupLabel: 981 - originalLookupLabel: 981 - center: - x: 51.0 - y: -8.0 - z: -13.0 - color: '#0c30f7' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_4: - name: 17Networks_RH_TempPar_4 - lookupLabel: 982 - originalLookupLabel: 982 - center: - x: 50.0 - y: -17.0 - z: -11.0 - color: '#0c30f8' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_5: - name: 17Networks_RH_TempPar_5 - lookupLabel: 983 - originalLookupLabel: 983 - center: - x: 60.0 - y: -3.0 - z: -7.0 - color: '#0c30f9' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_6: - name: 17Networks_RH_TempPar_6 - lookupLabel: 984 - originalLookupLabel: 984 - center: - x: 56.0 - y: -13.0 - z: -5.0 - color: '#0c30fa' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_7: - name: 17Networks_RH_TempPar_7 - lookupLabel: 985 - originalLookupLabel: 985 - center: - x: 48.0 - y: -23.0 - z: -5.0 - color: '#0c30fb' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_8: - name: 17Networks_RH_TempPar_8 - lookupLabel: 986 - originalLookupLabel: 986 - center: - x: 63.0 - y: -15.0 - z: -2.0 - color: '#0c30fc' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_9: - name: 17Networks_RH_TempPar_9 - lookupLabel: 987 - originalLookupLabel: 987 - center: - x: 48.0 - y: -30.0 - z: -1.0 - color: '#0c30fd' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_10: - name: 17Networks_RH_TempPar_10 - lookupLabel: 988 - originalLookupLabel: 988 - center: - x: 55.0 - y: -37.0 - z: -1.0 - color: '#0c30ff' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_11: - name: 17Networks_RH_TempPar_11 - lookupLabel: 989 - originalLookupLabel: 989 - center: - x: 63.0 - y: -46.0 - z: 4.0 - color: '#0929fa' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_12: - name: 17Networks_RH_TempPar_12 - lookupLabel: 990 - originalLookupLabel: 990 - center: - x: 63.0 - y: -23.0 - z: 2.0 - color: '#0929fb' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_13: - name: 17Networks_RH_TempPar_13 - lookupLabel: 991 - originalLookupLabel: 991 - center: - x: 49.0 - y: -37.0 - z: 4.0 - color: '#0929fc' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_14: - name: 17Networks_RH_TempPar_14 - lookupLabel: 992 - originalLookupLabel: 992 - center: - x: 56.0 - y: -31.0 - z: 4.0 - color: '#0929fd' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_15: - name: 17Networks_RH_TempPar_15 - lookupLabel: 993 - originalLookupLabel: 993 - center: - x: 56.0 - y: -43.0 - z: 8.0 - color: '#0929fe' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_16: - name: 17Networks_RH_TempPar_16 - lookupLabel: 994 - originalLookupLabel: 994 - center: - x: 59.0 - y: -55.0 - z: 8.0 - color: '#092af7' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_17: - name: 17Networks_RH_TempPar_17 - lookupLabel: 995 - originalLookupLabel: 995 - center: - x: 58.0 - y: -48.0 - z: 11.0 - color: '#092af8' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_18: - name: 17Networks_RH_TempPar_18 - lookupLabel: 996 - originalLookupLabel: 996 - center: - x: 51.0 - y: -40.0 - z: 13.0 - color: '#092af9' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_19: - name: 17Networks_RH_TempPar_19 - lookupLabel: 997 - originalLookupLabel: 997 - center: - x: 65.0 - y: -36.0 - z: 11.0 - color: '#092afa' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_20: - name: 17Networks_RH_TempPar_20 - lookupLabel: 998 - originalLookupLabel: 998 - center: - x: 50.0 - y: -53.0 - z: 14.0 - color: '#092afb' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_21: - name: 17Networks_RH_TempPar_21 - lookupLabel: 999 - originalLookupLabel: 999 - center: - x: 53.0 - y: -45.0 - z: 18.0 - color: '#092afc' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_22: - name: 17Networks_RH_TempPar_22 - lookupLabel: 1000 - originalLookupLabel: 1000 - center: - x: 55.0 - y: -40.0 - z: 20.0 - color: '#092afd' - hemisphere: right - hasParent: - - RH_TempPar - versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_1000Parcels_17Networks_order_FSLMNI152_1mm.nii.gz diff --git a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-1000_res-1_desc-ordered_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-1000_res-1_desc-ordered_dseg.yaml similarity index 99% rename from tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-1000_res-1_desc-ordered_dseg.yaml rename to tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-1000_res-1_desc-ordered_dseg.yaml index 31ea0465c..0ab59a766 100644 --- a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-1000_res-1_desc-ordered_dseg.yaml +++ b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-1000_res-1_desc-ordered_dseg.yaml @@ -1,14 +1,12 @@ name: Schaefer2018 abbreviation: Schaefer2018 versionIdentifier: '2018' -coordinateSpace: - name: MNI152 - abbreviation: FSLMNI152 - nativeUnit: mm +coordinateSpace: FSLMNI152 terminology: label: Schaefer2018_1000Parcels_17Networks_order versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_1000Parcels_17Networks_order_FSLMNI152_1mm.nii.gz + dataLocation: + schaefer2018_original_mni/Schaefer2018_1000Parcels_17Networks_order_FSLMNI152_1mm.nii.gz entities: 17Networks_LH_VisCent_Striate_1: name: 17Networks_LH_VisCent_Striate_1 diff --git a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-100_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-100_dseg.yaml deleted file mode 100644 index 81e3d3e8a..000000000 --- a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-100_dseg.yaml +++ /dev/null @@ -1,1481 +0,0 @@ -name: Schaefer2018 -abbreviation: Schaefer2018 -versionIdentifier: '2018' -coordinateSpace: MNI152NLin6Asym -terminology: - label: Schaefer2018_100Parcels_17Networks_order - entities: - LH_VisCent: - name: LH_VisCent - lookupLabel: -1 - hemisphere: left - center: - x: -20.8 - y: -88.0 - z: 0.0 - LH_VisPeri: - name: LH_VisPeri - lookupLabel: -2 - hemisphere: left - center: - x: -11.7 - y: -69.7 - z: 8.7 - LH_SomMotA: - name: LH_SomMotA - lookupLabel: -3 - hemisphere: left - center: - x: -22.5 - y: -26.0 - z: 64.5 - LH_SomMotB: - name: LH_SomMotB - lookupLabel: -4 - hemisphere: left - center: - x: -49.8 - y: -16.0 - z: 17.8 - LH_DorsAttnA: - name: LH_DorsAttnA - lookupLabel: -5 - hemisphere: left - center: - x: -39.3 - y: -65.7 - z: 15.7 - LH_DorsAttnB: - name: LH_DorsAttnB - lookupLabel: -6 - hemisphere: left - center: - x: -36.8 - y: -28.2 - z: 53.0 - LH_SalVentAttnA: - name: LH_SalVentAttnA - lookupLabel: -7 - hemisphere: left - center: - x: -31.0 - y: -11.4 - z: 27.0 - LH_SalVentAttnB: - name: LH_SalVentAttnB - lookupLabel: -8 - hemisphere: left - center: - x: -17.5 - y: 32.0 - z: 32.0 - LH_LimbicB: - name: LH_LimbicB - lookupLabel: -9 - hemisphere: left - center: - x: -14.0 - y: 32.0 - z: -20.0 - LH_LimbicA: - name: LH_LimbicA - lookupLabel: -10 - hemisphere: left - center: - x: -44.5 - y: -15.5 - z: -29.0 - LH_ContA: - name: LH_ContA - lookupLabel: -11 - hemisphere: left - center: - x: -42.7 - y: -4.7 - z: 31.7 - LH_ContB: - name: LH_ContB - lookupLabel: -12 - hemisphere: left - center: - x: -24.0 - y: 61.0 - z: -1.0 - LH_ContC: - name: LH_ContC - lookupLabel: -13 - hemisphere: left - center: - x: -6.3 - y: -53.0 - z: 42.3 - LH_DefaultA: - name: LH_DefaultA - lookupLabel: -14 - hemisphere: left - center: - x: -12.3 - y: 4.7 - z: 28.0 - LH_DefaultB: - name: LH_DefaultB - lookupLabel: -15 - hemisphere: left - center: - x: -41.9 - y: 2.4 - z: 12.7 - LH_DefaultC: - name: LH_DefaultC - lookupLabel: -16 - hemisphere: left - center: - x: -18.5 - y: -45.0 - z: -2.0 - LH_TempPar: - name: LH_TempPar - lookupLabel: -17 - hemisphere: left - center: - x: -57.0 - y: -50.0 - z: 12.0 - RH_VisCent: - name: RH_VisCent - lookupLabel: -18 - hemisphere: right - center: - x: 28.3 - y: -81.3 - z: -0.3 - RH_VisPeri: - name: RH_VisPeri - lookupLabel: -19 - hemisphere: right - center: - x: 12.7 - y: -73.0 - z: 13.0 - RH_SomMotA: - name: RH_SomMotA - lookupLabel: -20 - hemisphere: right - center: - x: 31.0 - y: -24.0 - z: 60.5 - RH_SomMotB: - name: RH_SomMotB - lookupLabel: -21 - hemisphere: right - center: - x: 52.0 - y: -10.0 - z: 16.0 - RH_DorsAttnA: - name: RH_DorsAttnA - lookupLabel: -22 - hemisphere: right - center: - x: 42.0 - y: -63.0 - z: 18.7 - RH_DorsAttnB: - name: RH_DorsAttnB - lookupLabel: -23 - hemisphere: right - center: - x: 30.7 - y: -26.3 - z: 55.7 - RH_SalVentAttnA: - name: RH_SalVentAttnA - lookupLabel: -24 - hemisphere: right - center: - x: 29.8 - y: -10.8 - z: 31.2 - RH_SalVentAttnB: - name: RH_SalVentAttnB - lookupLabel: -25 - hemisphere: right - center: - x: 31.7 - y: 11.7 - z: 34.3 - RH_LimbicB: - name: RH_LimbicB - lookupLabel: -26 - hemisphere: right - center: - x: 12.0 - y: 35.0 - z: -20.0 - RH_LimbicA: - name: RH_LimbicA - lookupLabel: -27 - hemisphere: right - center: - x: 38.0 - y: 1.0 - z: -38.0 - RH_ContA: - name: RH_ContA - lookupLabel: -28 - hemisphere: right - center: - x: 44.0 - y: 1.3 - z: 30.3 - RH_ContB: - name: RH_ContB - lookupLabel: -29 - hemisphere: right - center: - x: 45.0 - y: -3.0 - z: 17.2 - RH_ContC: - name: RH_ContC - lookupLabel: -30 - hemisphere: right - center: - x: 7.0 - y: -46.5 - z: 38.0 - RH_DefaultA: - name: RH_DefaultA - lookupLabel: -31 - hemisphere: right - center: - x: 23.8 - y: -7.8 - z: 28.2 - RH_DefaultB: - name: RH_DefaultB - lookupLabel: -32 - hemisphere: right - center: - x: 32.3 - y: 34.7 - z: 8.0 - RH_DefaultC: - name: RH_DefaultC - lookupLabel: -33 - hemisphere: right - center: - x: 22.0 - y: -42.5 - z: -4.0 - RH_TempPar: - name: RH_TempPar - lookupLabel: -34 - hemisphere: right - center: - x: 55.3 - y: -20.3 - z: -2.3 - 17Networks_LH_VisCent_ExStr_1: - name: 17Networks_LH_VisCent_ExStr_1 - lookupLabel: 1 - originalLookupLabel: 1 - center: - x: -26.0 - y: -77.0 - z: -14.0 - color: '#781288' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_2: - name: 17Networks_LH_VisCent_ExStr_2 - lookupLabel: 2 - originalLookupLabel: 2 - center: - x: -27.0 - y: -95.0 - z: -4.0 - color: '#781289' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_Striate_1: - name: 17Networks_LH_VisCent_Striate_1 - lookupLabel: 3 - originalLookupLabel: 3 - center: - x: -5.0 - y: -92.0 - z: -2.0 - color: '#78128a' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_3: - name: 17Networks_LH_VisCent_ExStr_3 - lookupLabel: 4 - originalLookupLabel: 4 - center: - x: -25.0 - y: -88.0 - z: 20.0 - color: '#78128b' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisPeri_ExStrInf_1: - name: 17Networks_LH_VisPeri_ExStrInf_1 - lookupLabel: 5 - originalLookupLabel: 5 - center: - x: -17.0 - y: -60.0 - z: -7.0 - color: '#ff0002' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_1: - name: 17Networks_LH_VisPeri_StriCal_1 - lookupLabel: 6 - originalLookupLabel: 6 - center: - x: -12.0 - y: -67.0 - z: 7.0 - color: '#ff0003' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_1: - name: 17Networks_LH_VisPeri_ExStrSup_1 - lookupLabel: 7 - originalLookupLabel: 7 - center: - x: -6.0 - y: -82.0 - z: 26.0 - color: '#ff0004' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_SomMotA_1: - name: 17Networks_LH_SomMotA_1 - lookupLabel: 8 - originalLookupLabel: 8 - center: - x: -39.0 - y: -23.0 - z: 59.0 - color: '#4682b5' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_2: - name: 17Networks_LH_SomMotA_2 - lookupLabel: 9 - originalLookupLabel: 9 - center: - x: -6.0 - y: -29.0 - z: 70.0 - color: '#4682b6' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotB_Aud_1: - name: 17Networks_LH_SomMotB_Aud_1 - lookupLabel: 10 - originalLookupLabel: 10 - center: - x: -53.0 - y: -23.0 - z: 8.0 - color: '#2bcca5' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_1: - name: 17Networks_LH_SomMotB_S2_1 - lookupLabel: 11 - originalLookupLabel: 11 - center: - x: -37.0 - y: -21.0 - z: 16.0 - color: '#2bcca6' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_2: - name: 17Networks_LH_SomMotB_S2_2 - lookupLabel: 12 - originalLookupLabel: 12 - center: - x: -54.0 - y: -12.0 - z: 13.0 - color: '#2bcca7' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_1: - name: 17Networks_LH_SomMotB_Cent_1 - lookupLabel: 13 - originalLookupLabel: 13 - center: - x: -55.0 - y: -8.0 - z: 34.0 - color: '#2bcca8' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_DorsAttnA_TempOcc_1: - name: 17Networks_LH_DorsAttnA_TempOcc_1 - lookupLabel: 14 - originalLookupLabel: 14 - center: - x: -47.0 - y: -58.0 - z: -13.0 - color: '#4a9c3d' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_1: - name: 17Networks_LH_DorsAttnA_ParOcc_1 - lookupLabel: 15 - originalLookupLabel: 15 - center: - x: -47.0 - y: -71.0 - z: 11.0 - color: '#4a9c3e' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_1: - name: 17Networks_LH_DorsAttnA_SPL_1 - lookupLabel: 16 - originalLookupLabel: 16 - center: - x: -24.0 - y: -68.0 - z: 49.0 - color: '#4a9c3f' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnB_PostC_1: - name: 17Networks_LH_DorsAttnB_PostC_1 - lookupLabel: 17 - originalLookupLabel: 17 - center: - x: -57.0 - y: -25.0 - z: 39.0 - color: '#007610' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_2: - name: 17Networks_LH_DorsAttnB_PostC_2 - lookupLabel: 18 - originalLookupLabel: 18 - center: - x: -42.0 - y: -34.0 - z: 48.0 - color: '#007611' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_3: - name: 17Networks_LH_DorsAttnB_PostC_3 - lookupLabel: 19 - originalLookupLabel: 19 - center: - x: -22.0 - y: -51.0 - z: 66.0 - color: '#007612' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_1: - name: 17Networks_LH_DorsAttnB_FEF_1 - lookupLabel: 20 - originalLookupLabel: 20 - center: - x: -26.0 - y: -3.0 - z: 59.0 - color: '#00770f' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_SalVentAttnA_ParOper_1: - name: 17Networks_LH_SalVentAttnA_ParOper_1 - lookupLabel: 21 - originalLookupLabel: 21 - center: - x: -59.0 - y: -38.0 - z: 29.0 - color: '#c43afb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_1: - name: 17Networks_LH_SalVentAttnA_Ins_1 - lookupLabel: 22 - originalLookupLabel: 22 - center: - x: -41.0 - y: -1.0 - z: -7.0 - color: '#c43bfb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_2: - name: 17Networks_LH_SalVentAttnA_Ins_2 - lookupLabel: 23 - originalLookupLabel: 23 - center: - x: -38.0 - y: 12.0 - z: 6.0 - color: '#c43bfc' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_1: - name: 17Networks_LH_SalVentAttnA_ParMed_1 - lookupLabel: 24 - originalLookupLabel: 24 - center: - x: -11.0 - y: -34.0 - z: 45.0 - color: '#c43bfd' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_1: - name: 17Networks_LH_SalVentAttnA_FrMed_1 - lookupLabel: 25 - originalLookupLabel: 25 - center: - x: -6.0 - y: 4.0 - z: 62.0 - color: '#c53afb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnB_PFCl_1: - name: 17Networks_LH_SalVentAttnB_PFCl_1 - lookupLabel: 26 - originalLookupLabel: 26 - center: - x: -30.0 - y: 44.0 - z: 30.0 - color: '#ff99d6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCmp_1: - name: 17Networks_LH_SalVentAttnB_PFCmp_1 - lookupLabel: 27 - originalLookupLabel: 27 - center: - x: -5.0 - y: 20.0 - z: 34.0 - color: '#ff97d6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_LimbicB_OFC_1: - name: 17Networks_LH_LimbicB_OFC_1 - lookupLabel: 28 - originalLookupLabel: 28 - center: - x: -14.0 - y: 32.0 - z: -20.0 - color: '#7a8733' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicA_TempPole_1: - name: 17Networks_LH_LimbicA_TempPole_1 - lookupLabel: 29 - originalLookupLabel: 29 - center: - x: -32.0 - y: 2.0 - z: -37.0 - color: '#dcf8a5' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_2: - name: 17Networks_LH_LimbicA_TempPole_2 - lookupLabel: 30 - originalLookupLabel: 30 - center: - x: -57.0 - y: -33.0 - z: -21.0 - color: '#dcf8a6' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_ContA_IPS_1: - name: 17Networks_LH_ContA_IPS_1 - lookupLabel: 31 - originalLookupLabel: 31 - center: - x: -37.0 - y: -53.0 - z: 46.0 - color: '#e69424' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_1: - name: 17Networks_LH_ContA_PFCl_1 - lookupLabel: 32 - originalLookupLabel: 32 - center: - x: -43.0 - y: 33.0 - z: 21.0 - color: '#e69524' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_2: - name: 17Networks_LH_ContA_PFCl_2 - lookupLabel: 33 - originalLookupLabel: 33 - center: - x: -48.0 - y: 6.0 - z: 28.0 - color: '#e69525' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContB_PFClv_1: - name: 17Networks_LH_ContB_PFClv_1 - lookupLabel: 34 - originalLookupLabel: 34 - center: - x: -24.0 - y: 61.0 - z: -1.0 - color: '#88324b' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContC_pCun_1: - name: 17Networks_LH_ContC_pCun_1 - lookupLabel: 35 - originalLookupLabel: 35 - center: - x: -9.0 - y: -73.0 - z: 38.0 - color: '#778cb1' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_2: - name: 17Networks_LH_ContC_pCun_2 - lookupLabel: 36 - originalLookupLabel: 36 - center: - x: -6.0 - y: -60.0 - z: 56.0 - color: '#778cb2' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_Cingp_1: - name: 17Networks_LH_ContC_Cingp_1 - lookupLabel: 37 - originalLookupLabel: 37 - center: - x: -4.0 - y: -26.0 - z: 33.0 - color: '#778cb3' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_DefaultA_PFCd_1: - name: 17Networks_LH_DefaultA_PFCd_1 - lookupLabel: 38 - originalLookupLabel: 38 - center: - x: -25.0 - y: 20.0 - z: 51.0 - color: '#ffff02' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_1: - name: 17Networks_LH_DefaultA_pCunPCC_1 - lookupLabel: 39 - originalLookupLabel: 39 - center: - x: -6.0 - y: -53.0 - z: 33.0 - color: '#fffe01' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_1: - name: 17Networks_LH_DefaultA_PFCm_1 - lookupLabel: 40 - originalLookupLabel: 40 - center: - x: -6.0 - y: 47.0 - z: 0.0 - color: '#feff01' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultB_Temp_1: - name: 17Networks_LH_DefaultB_Temp_1 - lookupLabel: 41 - originalLookupLabel: 41 - center: - x: -55.0 - y: -4.0 - z: -20.0 - color: '#cd3e4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_2: - name: 17Networks_LH_DefaultB_Temp_2 - lookupLabel: 42 - originalLookupLabel: 42 - center: - x: -58.0 - y: -32.0 - z: -1.0 - color: '#cd3e50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_1: - name: 17Networks_LH_DefaultB_IPL_1 - lookupLabel: 43 - originalLookupLabel: 43 - center: - x: -48.0 - y: -63.0 - z: 35.0 - color: '#cd3e51' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_1: - name: 17Networks_LH_DefaultB_PFCd_1 - lookupLabel: 44 - originalLookupLabel: 44 - center: - x: -9.0 - y: 48.0 - z: 41.0 - color: '#cd3f4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCl_1: - name: 17Networks_LH_DefaultB_PFCl_1 - lookupLabel: 45 - originalLookupLabel: 45 - center: - x: -41.0 - y: 14.0 - z: 48.0 - color: '#cd3f50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_1: - name: 17Networks_LH_DefaultB_PFCv_1 - lookupLabel: 46 - originalLookupLabel: 46 - center: - x: -35.0 - y: 21.0 - z: -11.0 - color: '#ce3e4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_2: - name: 17Networks_LH_DefaultB_PFCv_2 - lookupLabel: 47 - originalLookupLabel: 47 - center: - x: -47.0 - y: 33.0 - z: -3.0 - color: '#ce3e50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultC_Rsp_1: - name: 17Networks_LH_DefaultC_Rsp_1 - lookupLabel: 48 - originalLookupLabel: 48 - center: - x: -11.0 - y: -56.0 - z: 13.0 - color: '#000084' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_1: - name: 17Networks_LH_DefaultC_PHC_1 - lookupLabel: 49 - originalLookupLabel: 49 - center: - x: -26.0 - y: -34.0 - z: -17.0 - color: '#000183' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_TempPar_1: - name: 17Networks_LH_TempPar_1 - lookupLabel: 50 - originalLookupLabel: 50 - center: - x: -57.0 - y: -50.0 - z: 12.0 - color: '#0929fa' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_RH_VisCent_ExStr_1: - name: 17Networks_RH_VisCent_ExStr_1 - lookupLabel: 51 - originalLookupLabel: 51 - center: - x: 27.0 - y: -66.0 - z: -12.0 - color: '#7c1388' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_2: - name: 17Networks_RH_VisCent_ExStr_2 - lookupLabel: 52 - originalLookupLabel: 52 - center: - x: 22.0 - y: -96.0 - z: -5.0 - color: '#7c1389' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_3: - name: 17Networks_RH_VisCent_ExStr_3 - lookupLabel: 53 - originalLookupLabel: 53 - center: - x: 36.0 - y: -82.0 - z: 16.0 - color: '#7c138a' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisPeri_StriCal_1: - name: 17Networks_RH_VisPeri_StriCal_1 - lookupLabel: 54 - originalLookupLabel: 54 - center: - x: 8.0 - y: -76.0 - z: 5.0 - color: '#fa0002' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_1: - name: 17Networks_RH_VisPeri_ExStrInf_1 - lookupLabel: 55 - originalLookupLabel: 55 - center: - x: 17.0 - y: -57.0 - z: 5.0 - color: '#fa0003' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_1: - name: 17Networks_RH_VisPeri_ExStrSup_1 - lookupLabel: 56 - originalLookupLabel: 56 - center: - x: 13.0 - y: -86.0 - z: 29.0 - color: '#fa0004' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_SomMotA_1: - name: 17Networks_RH_SomMotA_1 - lookupLabel: 57 - originalLookupLabel: 57 - center: - x: 47.0 - y: -11.0 - z: 48.0 - color: '#4a83b6' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_2: - name: 17Networks_RH_SomMotA_2 - lookupLabel: 58 - originalLookupLabel: 58 - center: - x: 41.0 - y: -22.0 - z: 60.0 - color: '#4a83b7' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_3: - name: 17Networks_RH_SomMotA_3 - lookupLabel: 59 - originalLookupLabel: 59 - center: - x: 30.0 - y: -37.0 - z: 64.0 - color: '#4a83b8' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_4: - name: 17Networks_RH_SomMotA_4 - lookupLabel: 60 - originalLookupLabel: 60 - center: - x: 6.0 - y: -26.0 - z: 70.0 - color: '#4a83b9' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotB_Aud_1: - name: 17Networks_RH_SomMotB_Aud_1 - lookupLabel: 61 - originalLookupLabel: 61 - center: - x: 53.0 - y: -16.0 - z: 7.0 - color: '#2fcda5' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_1: - name: 17Networks_RH_SomMotB_S2_1 - lookupLabel: 62 - originalLookupLabel: 62 - center: - x: 40.0 - y: -15.0 - z: 15.0 - color: '#2fcda6' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_2: - name: 17Networks_RH_SomMotB_S2_2 - lookupLabel: 63 - originalLookupLabel: 63 - center: - x: 57.0 - y: -4.0 - z: 11.0 - color: '#2fcda7' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_1: - name: 17Networks_RH_SomMotB_Cent_1 - lookupLabel: 64 - originalLookupLabel: 64 - center: - x: 58.0 - y: -5.0 - z: 31.0 - color: '#2fcda8' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_DorsAttnA_TempOcc_1: - name: 17Networks_RH_DorsAttnA_TempOcc_1 - lookupLabel: 65 - originalLookupLabel: 65 - center: - x: 49.0 - y: -60.0 - z: -11.0 - color: '#4f9b3e' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_1: - name: 17Networks_RH_DorsAttnA_ParOcc_1 - lookupLabel: 66 - originalLookupLabel: 66 - center: - x: 50.0 - y: -62.0 - z: 16.0 - color: '#4f9b3f' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_1: - name: 17Networks_RH_DorsAttnA_SPL_1 - lookupLabel: 67 - originalLookupLabel: 67 - center: - x: 27.0 - y: -67.0 - z: 51.0 - color: '#4f9b40' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnB_PostC_1: - name: 17Networks_RH_DorsAttnB_PostC_1 - lookupLabel: 68 - originalLookupLabel: 68 - center: - x: 50.0 - y: -24.0 - z: 42.0 - color: '#057610' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_2: - name: 17Networks_RH_DorsAttnB_PostC_2 - lookupLabel: 69 - originalLookupLabel: 69 - center: - x: 14.0 - y: -52.0 - z: 66.0 - color: '#057611' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_1: - name: 17Networks_RH_DorsAttnB_FEF_1 - lookupLabel: 70 - originalLookupLabel: 70 - center: - x: 28.0 - y: -3.0 - z: 59.0 - color: '#05770f' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_SalVentAttnA_ParOper_1: - name: 17Networks_RH_SalVentAttnA_ParOper_1 - lookupLabel: 71 - originalLookupLabel: 71 - center: - x: 61.0 - y: -26.0 - z: 27.0 - color: '#c83afa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_1: - name: 17Networks_RH_SalVentAttnA_Ins_1 - lookupLabel: 72 - originalLookupLabel: 72 - center: - x: 40.0 - y: 8.0 - z: 1.0 - color: '#c73afb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_1: - name: 17Networks_RH_SalVentAttnA_ParMed_1 - lookupLabel: 73 - originalLookupLabel: 73 - center: - x: 11.0 - y: -31.0 - z: 45.0 - color: '#c739fb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_1: - name: 17Networks_RH_SalVentAttnA_FrMed_1 - lookupLabel: 74 - originalLookupLabel: 74 - center: - x: 7.0 - y: 6.0 - z: 52.0 - color: '#c739fc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnB_IPL_1: - name: 17Networks_RH_SalVentAttnB_IPL_1 - lookupLabel: 75 - originalLookupLabel: 75 - center: - x: 57.0 - y: -39.0 - z: 44.0 - color: '#fa98d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_1: - name: 17Networks_RH_SalVentAttnB_PFCl_1 - lookupLabel: 76 - originalLookupLabel: 76 - center: - x: 32.0 - y: 46.0 - z: 29.0 - color: '#fa97d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCmp_1: - name: 17Networks_RH_SalVentAttnB_PFCmp_1 - lookupLabel: 77 - originalLookupLabel: 77 - center: - x: 6.0 - y: 28.0 - z: 30.0 - color: '#fa99d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_LimbicB_OFC_1: - name: 17Networks_RH_LimbicB_OFC_1 - lookupLabel: 78 - originalLookupLabel: 78 - center: - x: 12.0 - y: 35.0 - z: -20.0 - color: '#7e8734' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicA_TempPole_1: - name: 17Networks_RH_LimbicA_TempPole_1 - lookupLabel: 79 - originalLookupLabel: 79 - center: - x: 38.0 - y: 1.0 - z: -38.0 - color: '#e0f8a6' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_ContA_IPS_1: - name: 17Networks_RH_ContA_IPS_1 - lookupLabel: 80 - originalLookupLabel: 80 - center: - x: 38.0 - y: -45.0 - z: 49.0 - color: '#ea9323' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_1: - name: 17Networks_RH_ContA_PFCl_1 - lookupLabel: 81 - originalLookupLabel: 81 - center: - x: 45.0 - y: 39.0 - z: 15.0 - color: '#e99423' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_2: - name: 17Networks_RH_ContA_PFCl_2 - lookupLabel: 82 - originalLookupLabel: 82 - center: - x: 49.0 - y: 10.0 - z: 27.0 - color: '#e99424' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContB_Temp_1: - name: 17Networks_RH_ContB_Temp_1 - lookupLabel: 83 - originalLookupLabel: 83 - center: - x: 62.0 - y: -23.0 - z: -19.0 - color: '#8c334c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_1: - name: 17Networks_RH_ContB_IPL_1 - lookupLabel: 84 - originalLookupLabel: 84 - center: - x: 45.0 - y: -63.0 - z: 46.0 - color: '#8b324a' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_1: - name: 17Networks_RH_ContB_PFCld_1 - lookupLabel: 85 - originalLookupLabel: 85 - center: - x: 43.0 - y: 16.0 - z: 45.0 - color: '#8b314b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_1: - name: 17Networks_RH_ContB_PFClv_1 - lookupLabel: 86 - originalLookupLabel: 86 - center: - x: 30.0 - y: 58.0 - z: -3.0 - color: '#8b314a' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContC_Cingp_1: - name: 17Networks_RH_ContC_Cingp_1 - lookupLabel: 87 - originalLookupLabel: 87 - center: - x: 5.0 - y: -27.0 - z: 33.0 - color: '#7b8db1' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_1: - name: 17Networks_RH_ContC_pCun_1 - lookupLabel: 88 - originalLookupLabel: 88 - center: - x: 9.0 - y: -66.0 - z: 43.0 - color: '#7b8db2' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_DefaultA_IPL_1: - name: 17Networks_RH_DefaultA_IPL_1 - lookupLabel: 89 - originalLookupLabel: 89 - center: - x: 55.0 - y: -51.0 - z: 31.0 - color: '#fbfe02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCd_1: - name: 17Networks_RH_DefaultA_PFCd_1 - lookupLabel: 90 - originalLookupLabel: 90 - center: - x: 26.0 - y: 24.0 - z: 50.0 - color: '#fbff03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_1: - name: 17Networks_RH_DefaultA_pCunPCC_1 - lookupLabel: 91 - originalLookupLabel: 91 - center: - x: 7.0 - y: -52.0 - z: 31.0 - color: '#fbfd01' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_1: - name: 17Networks_RH_DefaultA_PFCm_1 - lookupLabel: 92 - originalLookupLabel: 92 - center: - x: 7.0 - y: 48.0 - z: 1.0 - color: '#f9ff01' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultB_PFCd_1: - name: 17Networks_RH_DefaultB_PFCd_1 - lookupLabel: 93 - originalLookupLabel: 93 - center: - x: 11.0 - y: 50.0 - z: 39.0 - color: '#d23f50' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_1: - name: 17Networks_RH_DefaultB_PFCv_1 - lookupLabel: 94 - originalLookupLabel: 94 - center: - x: 35.0 - y: 26.0 - z: -15.0 - color: '#d13e4e' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_2: - name: 17Networks_RH_DefaultB_PFCv_2 - lookupLabel: 95 - originalLookupLabel: 95 - center: - x: 51.0 - y: 28.0 - z: 0.0 - color: '#d13e4f' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultC_Rsp_1: - name: 17Networks_RH_DefaultC_Rsp_1 - lookupLabel: 96 - originalLookupLabel: 96 - center: - x: 12.0 - y: -54.0 - z: 14.0 - color: '#050083' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_PHC_1: - name: 17Networks_RH_DefaultC_PHC_1 - lookupLabel: 97 - originalLookupLabel: 97 - center: - x: 32.0 - y: -31.0 - z: -22.0 - color: '#050084' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_TempPar_1: - name: 17Networks_RH_TempPar_1 - lookupLabel: 98 - originalLookupLabel: 98 - center: - x: 51.0 - y: 7.0 - z: -18.0 - color: '#1030ff' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_2: - name: 17Networks_RH_TempPar_2 - lookupLabel: 99 - originalLookupLabel: 99 - center: - x: 57.0 - y: -26.0 - z: -2.0 - color: '#0d29fa' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_3: - name: 17Networks_RH_TempPar_3 - lookupLabel: 100 - originalLookupLabel: 100 - center: - x: 58.0 - y: -42.0 - z: 13.0 - color: '#0d29fb' - hemisphere: right - hasParent: - - RH_TempPar - versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_100Parcels_17Networks_order_FSLMNI152_1mm.nii.gz diff --git a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-100_res-1_desc-ordered_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-100_res-1_desc-ordered_dseg.yaml similarity index 99% rename from tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-100_res-1_desc-ordered_dseg.yaml rename to tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-100_res-1_desc-ordered_dseg.yaml index e25af3c76..044401e6c 100644 --- a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-100_res-1_desc-ordered_dseg.yaml +++ b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-100_res-1_desc-ordered_dseg.yaml @@ -1,14 +1,12 @@ name: Schaefer2018 abbreviation: Schaefer2018 versionIdentifier: '2018' -coordinateSpace: - name: MNI152 - abbreviation: FSLMNI152 - nativeUnit: mm +coordinateSpace: FSLMNI152 terminology: label: Schaefer2018_100Parcels_17Networks_order versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_100Parcels_17Networks_order_FSLMNI152_1mm.nii.gz + dataLocation: + schaefer2018_original_mni/Schaefer2018_100Parcels_17Networks_order_FSLMNI152_1mm.nii.gz entities: 17Networks_LH_VisCent_ExStr_1: name: 17Networks_LH_VisCent_ExStr_1 diff --git a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-200_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-200_dseg.yaml deleted file mode 100644 index d136c5b07..000000000 --- a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-200_dseg.yaml +++ /dev/null @@ -1,2681 +0,0 @@ -name: Schaefer2018 -abbreviation: Schaefer2018 -versionIdentifier: '2018' -coordinateSpace: MNI152NLin6Asym -terminology: - label: Schaefer2018_200Parcels_17Networks_order - entities: - LH_VisCent: - name: LH_VisCent - lookupLabel: -1 - hemisphere: left - center: - x: -24.0 - y: -89.0 - z: 1.7 - LH_VisPeri: - name: LH_VisPeri - lookupLabel: -2 - hemisphere: left - center: - x: -13.0 - y: -65.7 - z: 6.8 - LH_SomMotA: - name: LH_SomMotA - lookupLabel: -3 - hemisphere: left - center: - x: -24.8 - y: -24.5 - z: 61.9 - LH_SomMotB: - name: LH_SomMotB - lookupLabel: -4 - hemisphere: left - center: - x: -51.0 - y: -16.5 - z: 18.5 - LH_DorsAttnA: - name: LH_DorsAttnA - lookupLabel: -5 - hemisphere: left - center: - x: -34.5 - y: -65.0 - z: 22.3 - LH_DorsAttnB: - name: LH_DorsAttnB - lookupLabel: -6 - hemisphere: left - center: - x: -34.8 - y: -33.0 - z: 54.6 - LH_SalVentAttnA: - name: LH_SalVentAttnA - lookupLabel: -7 - hemisphere: left - center: - x: -30.4 - y: -7.0 - z: 28.3 - LH_SalVentAttnB: - name: LH_SalVentAttnB - lookupLabel: -8 - hemisphere: left - center: - x: -31.8 - y: 13.5 - z: 24.2 - LH_LimbicB: - name: LH_LimbicB - lookupLabel: -9 - hemisphere: left - center: - x: -17.0 - y: 28.5 - z: -20.5 - LH_LimbicA: - name: LH_LimbicA - lookupLabel: -10 - hemisphere: left - center: - x: -36.2 - y: -2.0 - z: -30.5 - LH_ContA: - name: LH_ContA - lookupLabel: -11 - hemisphere: left - center: - x: -37.2 - y: -13.1 - z: 34.7 - LH_ContB: - name: LH_ContB - lookupLabel: -12 - hemisphere: left - center: - x: -44.8 - y: 6.4 - z: 16.8 - LH_ContC: - name: LH_ContC - lookupLabel: -13 - hemisphere: left - center: - x: -6.7 - y: -54.0 - z: 41.0 - LH_DefaultA: - name: LH_DefaultA - lookupLabel: -14 - hemisphere: left - center: - x: -13.6 - y: -4.8 - z: 22.9 - LH_DefaultB: - name: LH_DefaultB - lookupLabel: -15 - hemisphere: left - center: - x: -36.5 - y: 13.1 - z: 8.0 - LH_DefaultC: - name: LH_DefaultC - lookupLabel: -16 - hemisphere: left - center: - x: -25.3 - y: -56.0 - z: 8.7 - LH_TempPar: - name: LH_TempPar - lookupLabel: -17 - hemisphere: left - center: - x: -53.0 - y: -50.0 - z: 12.5 - RH_VisCent: - name: RH_VisCent - lookupLabel: -18 - hemisphere: right - center: - x: 30.2 - y: -82.7 - z: 0.8 - RH_VisPeri: - name: RH_VisPeri - lookupLabel: -19 - hemisphere: right - center: - x: 14.3 - y: -67.5 - z: 12.5 - RH_SomMotA: - name: RH_SomMotA - lookupLabel: -20 - hemisphere: right - center: - x: 27.0 - y: -23.9 - z: 61.5 - RH_SomMotB: - name: RH_SomMotB - lookupLabel: -21 - hemisphere: right - center: - x: 52.9 - y: -13.4 - z: 14.4 - RH_DorsAttnA: - name: RH_DorsAttnA - lookupLabel: -22 - hemisphere: right - center: - x: 35.0 - y: -61.7 - z: 31.3 - RH_DorsAttnB: - name: RH_DorsAttnB - lookupLabel: -23 - hemisphere: right - center: - x: 32.6 - y: -31.0 - z: 52.6 - RH_SalVentAttnA: - name: RH_SalVentAttnA - lookupLabel: -24 - hemisphere: right - center: - x: 30.8 - y: -5.8 - z: 27.4 - RH_SalVentAttnB: - name: RH_SalVentAttnB - lookupLabel: -25 - hemisphere: right - center: - x: 35.3 - y: 22.0 - z: 16.5 - RH_LimbicB: - name: RH_LimbicB - lookupLabel: -26 - hemisphere: right - center: - x: 15.0 - y: 40.5 - z: -15.8 - RH_LimbicA: - name: RH_LimbicA - lookupLabel: -27 - hemisphere: right - center: - x: 35.2 - y: -12.2 - z: -32.0 - RH_ContA: - name: RH_ContA - lookupLabel: -28 - hemisphere: right - center: - x: 35.3 - y: -9.3 - z: 38.5 - RH_ContB: - name: RH_ContB - lookupLabel: -29 - hemisphere: right - center: - x: 40.6 - y: 4.5 - z: 24.5 - RH_ContC: - name: RH_ContC - lookupLabel: -30 - hemisphere: right - center: - x: 8.3 - y: -50.7 - z: 37.3 - RH_DefaultA: - name: RH_DefaultA - lookupLabel: -31 - hemisphere: right - center: - x: 18.7 - y: 10.0 - z: 23.0 - RH_DefaultB: - name: RH_DefaultB - lookupLabel: -32 - hemisphere: right - center: - x: 44.0 - y: 15.0 - z: 2.0 - RH_DefaultC: - name: RH_DefaultC - lookupLabel: -33 - hemisphere: right - center: - x: 29.0 - y: -53.3 - z: 9.3 - RH_TempPar: - name: RH_TempPar - lookupLabel: -34 - hemisphere: right - center: - x: 56.0 - y: -30.2 - z: 4.5 - 17Networks_LH_VisCent_ExStr_1: - name: 17Networks_LH_VisCent_ExStr_1 - lookupLabel: 1 - originalLookupLabel: 1 - center: - x: -26.0 - y: -77.0 - z: -14.0 - color: '#781286' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_2: - name: 17Networks_LH_VisCent_ExStr_2 - lookupLabel: 2 - originalLookupLabel: 2 - center: - x: -27.0 - y: -95.0 - z: -12.0 - color: '#781288' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_Striate_1: - name: 17Networks_LH_VisCent_Striate_1 - lookupLabel: 3 - originalLookupLabel: 3 - center: - x: -5.0 - y: -93.0 - z: -4.0 - color: '#781289' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_3: - name: 17Networks_LH_VisCent_ExStr_3 - lookupLabel: 4 - originalLookupLabel: 4 - center: - x: -23.0 - y: -97.0 - z: 6.0 - color: '#78128a' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_4: - name: 17Networks_LH_VisCent_ExStr_4 - lookupLabel: 5 - originalLookupLabel: 5 - center: - x: -40.0 - y: -85.0 - z: 11.0 - color: '#78128b' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_5: - name: 17Networks_LH_VisCent_ExStr_5 - lookupLabel: 6 - originalLookupLabel: 6 - center: - x: -23.0 - y: -87.0 - z: 23.0 - color: '#78128c' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisPeri_ExStrInf_1: - name: 17Networks_LH_VisPeri_ExStrInf_1 - lookupLabel: 7 - originalLookupLabel: 7 - center: - x: -24.0 - y: -53.0 - z: -9.0 - color: '#ff0101' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_2: - name: 17Networks_LH_VisPeri_ExStrInf_2 - lookupLabel: 8 - originalLookupLabel: 8 - center: - x: -10.0 - y: -67.0 - z: -4.0 - color: '#ff0102' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_3: - name: 17Networks_LH_VisPeri_ExStrInf_3 - lookupLabel: 9 - originalLookupLabel: 9 - center: - x: -14.0 - y: -44.0 - z: -3.0 - color: '#ff0103' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_1: - name: 17Networks_LH_VisPeri_StriCal_1 - lookupLabel: 10 - originalLookupLabel: 10 - center: - x: -11.0 - y: -70.0 - z: 7.0 - color: '#ff0104' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_1: - name: 17Networks_LH_VisPeri_ExStrSup_1 - lookupLabel: 11 - originalLookupLabel: 11 - center: - x: -12.0 - y: -73.0 - z: 22.0 - color: '#ff0105' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_2: - name: 17Networks_LH_VisPeri_ExStrSup_2 - lookupLabel: 12 - originalLookupLabel: 12 - center: - x: -7.0 - y: -87.0 - z: 28.0 - color: '#ff0106' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_SomMotA_1: - name: 17Networks_LH_SomMotA_1 - lookupLabel: 13 - originalLookupLabel: 13 - center: - x: -7.0 - y: -12.0 - z: 46.0 - color: '#4682b2' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_2: - name: 17Networks_LH_SomMotA_2 - lookupLabel: 14 - originalLookupLabel: 14 - center: - x: -49.0 - y: -28.0 - z: 57.0 - color: '#4682b3' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_3: - name: 17Networks_LH_SomMotA_3 - lookupLabel: 15 - originalLookupLabel: 15 - center: - x: -40.0 - y: -25.0 - z: 57.0 - color: '#4682b5' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_4: - name: 17Networks_LH_SomMotA_4 - lookupLabel: 16 - originalLookupLabel: 16 - center: - x: -32.0 - y: -22.0 - z: 64.0 - color: '#4682b6' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_5: - name: 17Networks_LH_SomMotA_5 - lookupLabel: 17 - originalLookupLabel: 17 - center: - x: -26.0 - y: -38.0 - z: 68.0 - color: '#4682b7' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_6: - name: 17Networks_LH_SomMotA_6 - lookupLabel: 18 - originalLookupLabel: 18 - center: - x: -20.0 - y: -11.0 - z: 68.0 - color: '#4682b8' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_7: - name: 17Networks_LH_SomMotA_7 - lookupLabel: 19 - originalLookupLabel: 19 - center: - x: -5.0 - y: -29.0 - z: 67.0 - color: '#4682b9' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_8: - name: 17Networks_LH_SomMotA_8 - lookupLabel: 20 - originalLookupLabel: 20 - center: - x: -19.0 - y: -31.0 - z: 68.0 - color: '#4682ba' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotB_Aud_1: - name: 17Networks_LH_SomMotB_Aud_1 - lookupLabel: 21 - originalLookupLabel: 21 - center: - x: -51.0 - y: -4.0 - z: -2.0 - color: '#2bcca2' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_2: - name: 17Networks_LH_SomMotB_Aud_2 - lookupLabel: 22 - originalLookupLabel: 22 - center: - x: -53.0 - y: -24.0 - z: 9.0 - color: '#2bcca3' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_1: - name: 17Networks_LH_SomMotB_S2_1 - lookupLabel: 23 - originalLookupLabel: 23 - center: - x: -37.0 - y: -21.0 - z: 16.0 - color: '#2bcca5' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_2: - name: 17Networks_LH_SomMotB_S2_2 - lookupLabel: 24 - originalLookupLabel: 24 - center: - x: -55.0 - y: -4.0 - z: 10.0 - color: '#2bcca6' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_3: - name: 17Networks_LH_SomMotB_Aud_3 - lookupLabel: 25 - originalLookupLabel: 25 - center: - x: -56.0 - y: -40.0 - z: 20.0 - color: '#2bcca7' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_3: - name: 17Networks_LH_SomMotB_S2_3 - lookupLabel: 26 - originalLookupLabel: 26 - center: - x: -53.0 - y: -22.0 - z: 18.0 - color: '#2bcca8' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_1: - name: 17Networks_LH_SomMotB_Cent_1 - lookupLabel: 27 - originalLookupLabel: 27 - center: - x: -56.0 - y: -8.0 - z: 31.0 - color: '#2bcca9' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_2: - name: 17Networks_LH_SomMotB_Cent_2 - lookupLabel: 28 - originalLookupLabel: 28 - center: - x: -47.0 - y: -9.0 - z: 46.0 - color: '#2bccaa' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_DorsAttnA_TempOcc_1: - name: 17Networks_LH_DorsAttnA_TempOcc_1 - lookupLabel: 29 - originalLookupLabel: 29 - center: - x: -43.0 - y: -48.0 - z: -19.0 - color: '#4a9b3d' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_2: - name: 17Networks_LH_DorsAttnA_TempOcc_2 - lookupLabel: 30 - originalLookupLabel: 30 - center: - x: -45.0 - y: -69.0 - z: -8.0 - color: '#4a9b3e' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_1: - name: 17Networks_LH_DorsAttnA_ParOcc_1 - lookupLabel: 31 - originalLookupLabel: 31 - center: - x: -47.0 - y: -70.0 - z: 10.0 - color: '#4a9b3f' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_1: - name: 17Networks_LH_DorsAttnA_SPL_1 - lookupLabel: 32 - originalLookupLabel: 32 - center: - x: -26.0 - y: -70.0 - z: 38.0 - color: '#4a9c3d' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_2: - name: 17Networks_LH_DorsAttnA_SPL_2 - lookupLabel: 33 - originalLookupLabel: 33 - center: - x: -17.0 - y: -73.0 - z: 54.0 - color: '#4a9c3e' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_3: - name: 17Networks_LH_DorsAttnA_SPL_3 - lookupLabel: 34 - originalLookupLabel: 34 - center: - x: -29.0 - y: -60.0 - z: 59.0 - color: '#4a9c3f' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnB_PostC_1: - name: 17Networks_LH_DorsAttnB_PostC_1 - lookupLabel: 35 - originalLookupLabel: 35 - center: - x: -54.0 - y: -27.0 - z: 42.0 - color: '#007610' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_2: - name: 17Networks_LH_DorsAttnB_PostC_2 - lookupLabel: 36 - originalLookupLabel: 36 - center: - x: -41.0 - y: -35.0 - z: 47.0 - color: '#007611' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_3: - name: 17Networks_LH_DorsAttnB_PostC_3 - lookupLabel: 37 - originalLookupLabel: 37 - center: - x: -31.0 - y: -46.0 - z: 63.0 - color: '#007612' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_4: - name: 17Networks_LH_DorsAttnB_PostC_4 - lookupLabel: 38 - originalLookupLabel: 38 - center: - x: -17.0 - y: -53.0 - z: 68.0 - color: '#007613' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_1: - name: 17Networks_LH_DorsAttnB_FEF_1 - lookupLabel: 39 - originalLookupLabel: 39 - center: - x: -31.0 - y: -4.0 - z: 53.0 - color: '#00770f' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_SalVentAttnA_ParOper_1: - name: 17Networks_LH_SalVentAttnA_ParOper_1 - lookupLabel: 40 - originalLookupLabel: 40 - center: - x: -61.0 - y: -26.0 - z: 28.0 - color: '#c43afb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_1: - name: 17Networks_LH_SalVentAttnA_Ins_1 - lookupLabel: 41 - originalLookupLabel: 41 - center: - x: -39.0 - y: -4.0 - z: -4.0 - color: '#c43bfb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_1: - name: 17Networks_LH_SalVentAttnA_FrOper_1 - lookupLabel: 42 - originalLookupLabel: 42 - center: - x: -39.0 - y: 1.0 - z: 11.0 - color: '#c43bfc' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_2: - name: 17Networks_LH_SalVentAttnA_FrOper_2 - lookupLabel: 43 - originalLookupLabel: 43 - center: - x: -51.0 - y: 9.0 - z: 11.0 - color: '#c43bfd' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_1: - name: 17Networks_LH_SalVentAttnA_ParMed_1 - lookupLabel: 44 - originalLookupLabel: 44 - center: - x: -11.0 - y: -35.0 - z: 46.0 - color: '#c43bfe' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_1: - name: 17Networks_LH_SalVentAttnA_FrMed_1 - lookupLabel: 45 - originalLookupLabel: 45 - center: - x: -6.0 - y: 9.0 - z: 41.0 - color: '#c53afb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_2: - name: 17Networks_LH_SalVentAttnA_FrMed_2 - lookupLabel: 46 - originalLookupLabel: 46 - center: - x: -6.0 - y: -3.0 - z: 65.0 - color: '#c53afc' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnB_IPL_1: - name: 17Networks_LH_SalVentAttnB_IPL_1 - lookupLabel: 47 - originalLookupLabel: 47 - center: - x: -60.0 - y: -39.0 - z: 36.0 - color: '#ff98d6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_1: - name: 17Networks_LH_SalVentAttnB_PFCl_1 - lookupLabel: 48 - originalLookupLabel: 48 - center: - x: -28.0 - y: 43.0 - z: 31.0 - color: '#ff99d6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_1: - name: 17Networks_LH_SalVentAttnB_Ins_1 - lookupLabel: 49 - originalLookupLabel: 49 - center: - x: -33.0 - y: 20.0 - z: 5.0 - color: '#ff99d7' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCmp_1: - name: 17Networks_LH_SalVentAttnB_PFCmp_1 - lookupLabel: 50 - originalLookupLabel: 50 - center: - x: -6.0 - y: 30.0 - z: 25.0 - color: '#ff97d6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_LimbicB_OFC_1: - name: 17Networks_LH_LimbicB_OFC_1 - lookupLabel: 51 - originalLookupLabel: 51 - center: - x: -24.0 - y: 22.0 - z: -20.0 - color: '#7a8733' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_2: - name: 17Networks_LH_LimbicB_OFC_2 - lookupLabel: 52 - originalLookupLabel: 52 - center: - x: -10.0 - y: 35.0 - z: -21.0 - color: '#7a8734' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicA_TempPole_1: - name: 17Networks_LH_LimbicA_TempPole_1 - lookupLabel: 53 - originalLookupLabel: 53 - center: - x: -29.0 - y: -6.0 - z: -39.0 - color: '#dcf8a5' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_2: - name: 17Networks_LH_LimbicA_TempPole_2 - lookupLabel: 54 - originalLookupLabel: 54 - center: - x: -45.0 - y: -20.0 - z: -30.0 - color: '#dcf8a6' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_3: - name: 17Networks_LH_LimbicA_TempPole_3 - lookupLabel: 55 - originalLookupLabel: 55 - center: - x: -28.0 - y: 10.0 - z: -34.0 - color: '#dcf8a7' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_4: - name: 17Networks_LH_LimbicA_TempPole_4 - lookupLabel: 56 - originalLookupLabel: 56 - center: - x: -43.0 - y: 8.0 - z: -19.0 - color: '#dcf8a8' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_ContA_Temp_1: - name: 17Networks_LH_ContA_Temp_1 - lookupLabel: 57 - originalLookupLabel: 57 - center: - x: -57.0 - y: -60.0 - z: -1.0 - color: '#e69423' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_1: - name: 17Networks_LH_ContA_IPS_1 - lookupLabel: 58 - originalLookupLabel: 58 - center: - x: -35.0 - y: -62.0 - z: 48.0 - color: '#e69424' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_2: - name: 17Networks_LH_ContA_IPS_2 - lookupLabel: 59 - originalLookupLabel: 59 - center: - x: -45.0 - y: -42.0 - z: 46.0 - color: '#e69425' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_3: - name: 17Networks_LH_ContA_IPS_3 - lookupLabel: 60 - originalLookupLabel: 60 - center: - x: -33.0 - y: -49.0 - z: 47.0 - color: '#e69426' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCd_1: - name: 17Networks_LH_ContA_PFCd_1 - lookupLabel: 61 - originalLookupLabel: 61 - center: - x: -22.0 - y: 6.0 - z: 62.0 - color: '#e69523' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFClv_1: - name: 17Networks_LH_ContA_PFClv_1 - lookupLabel: 62 - originalLookupLabel: 62 - center: - x: -42.0 - y: 40.0 - z: 16.0 - color: '#e69524' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_1: - name: 17Networks_LH_ContA_PFCl_1 - lookupLabel: 63 - originalLookupLabel: 63 - center: - x: -44.0 - y: 20.0 - z: 27.0 - color: '#e69525' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_2: - name: 17Networks_LH_ContA_PFCl_2 - lookupLabel: 64 - originalLookupLabel: 64 - center: - x: -48.0 - y: 6.0 - z: 29.0 - color: '#e69526' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_3: - name: 17Networks_LH_ContA_PFCl_3 - lookupLabel: 65 - originalLookupLabel: 65 - center: - x: -43.0 - y: 6.0 - z: 43.0 - color: '#e69527' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_Cingm_1: - name: 17Networks_LH_ContA_Cingm_1 - lookupLabel: 66 - originalLookupLabel: 66 - center: - x: -3.0 - y: 4.0 - z: 30.0 - color: '#e79424' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContB_Temp_1: - name: 17Networks_LH_ContB_Temp_1 - lookupLabel: 67 - originalLookupLabel: 67 - center: - x: -61.0 - y: -43.0 - z: -13.0 - color: '#87324b' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_1: - name: 17Networks_LH_ContB_IPL_1 - lookupLabel: 68 - originalLookupLabel: 68 - center: - x: -53.0 - y: -51.0 - z: 46.0 - color: '#87324c' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCl_1: - name: 17Networks_LH_ContB_PFCl_1 - lookupLabel: 69 - originalLookupLabel: 69 - center: - x: -40.0 - y: 19.0 - z: 49.0 - color: '#87334c' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_1: - name: 17Networks_LH_ContB_PFClv_1 - lookupLabel: 70 - originalLookupLabel: 70 - center: - x: -42.0 - y: 49.0 - z: -6.0 - color: '#88324b' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_2: - name: 17Networks_LH_ContB_PFClv_2 - lookupLabel: 71 - originalLookupLabel: 71 - center: - x: -28.0 - y: 58.0 - z: 8.0 - color: '#88324c' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContC_pCun_1: - name: 17Networks_LH_ContC_pCun_1 - lookupLabel: 72 - originalLookupLabel: 72 - center: - x: -9.0 - y: -73.0 - z: 38.0 - color: '#778cb1' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_2: - name: 17Networks_LH_ContC_pCun_2 - lookupLabel: 73 - originalLookupLabel: 73 - center: - x: -6.0 - y: -60.0 - z: 57.0 - color: '#778cb2' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_Cingp_1: - name: 17Networks_LH_ContC_Cingp_1 - lookupLabel: 74 - originalLookupLabel: 74 - center: - x: -5.0 - y: -29.0 - z: 28.0 - color: '#778cb3' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_DefaultA_IPL_1: - name: 17Networks_LH_DefaultA_IPL_1 - lookupLabel: 75 - originalLookupLabel: 75 - center: - x: -46.0 - y: -66.0 - z: 38.0 - color: '#ffff01' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_1: - name: 17Networks_LH_DefaultA_PFCd_1 - lookupLabel: 76 - originalLookupLabel: 76 - center: - x: -24.0 - y: 25.0 - z: 49.0 - color: '#ffff02' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_1: - name: 17Networks_LH_DefaultA_pCunPCC_1 - lookupLabel: 77 - originalLookupLabel: 77 - center: - x: -5.0 - y: -55.0 - z: 27.0 - color: '#fffe01' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_2: - name: 17Networks_LH_DefaultA_pCunPCC_2 - lookupLabel: 78 - originalLookupLabel: 78 - center: - x: -4.0 - y: -31.0 - z: 36.0 - color: '#fffe02' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_3: - name: 17Networks_LH_DefaultA_pCunPCC_3 - lookupLabel: 79 - originalLookupLabel: 79 - center: - x: -6.0 - y: -54.0 - z: 42.0 - color: '#fffe03' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_1: - name: 17Networks_LH_DefaultA_PFCm_1 - lookupLabel: 80 - originalLookupLabel: 80 - center: - x: -6.0 - y: 36.0 - z: -10.0 - color: '#feff01' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_2: - name: 17Networks_LH_DefaultA_PFCm_2 - lookupLabel: 81 - originalLookupLabel: 81 - center: - x: -12.0 - y: 63.0 - z: -6.0 - color: '#feff02' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_3: - name: 17Networks_LH_DefaultA_PFCm_3 - lookupLabel: 82 - originalLookupLabel: 82 - center: - x: -6.0 - y: 44.0 - z: 7.0 - color: '#feff03' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultB_Temp_1: - name: 17Networks_LH_DefaultB_Temp_1 - lookupLabel: 83 - originalLookupLabel: 83 - center: - x: -47.0 - y: 8.0 - z: -33.0 - color: '#cd3e4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_2: - name: 17Networks_LH_DefaultB_Temp_2 - lookupLabel: 84 - originalLookupLabel: 84 - center: - x: -60.0 - y: -19.0 - z: -22.0 - color: '#cd3e50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_3: - name: 17Networks_LH_DefaultB_Temp_3 - lookupLabel: 85 - originalLookupLabel: 85 - center: - x: -56.0 - y: -6.0 - z: -12.0 - color: '#cd3e51' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_4: - name: 17Networks_LH_DefaultB_Temp_4 - lookupLabel: 86 - originalLookupLabel: 86 - center: - x: -58.0 - y: -30.0 - z: -4.0 - color: '#cd3e52' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_1: - name: 17Networks_LH_DefaultB_IPL_1 - lookupLabel: 87 - originalLookupLabel: 87 - center: - x: -57.0 - y: -54.0 - z: 28.0 - color: '#cd3e53' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_1: - name: 17Networks_LH_DefaultB_PFCd_1 - lookupLabel: 88 - originalLookupLabel: 88 - center: - x: -8.0 - y: 59.0 - z: 21.0 - color: '#cd3f4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_2: - name: 17Networks_LH_DefaultB_PFCd_2 - lookupLabel: 89 - originalLookupLabel: 89 - center: - x: -11.0 - y: 47.0 - z: 45.0 - color: '#cd3f50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_3: - name: 17Networks_LH_DefaultB_PFCd_3 - lookupLabel: 90 - originalLookupLabel: 90 - center: - x: -3.0 - y: 33.0 - z: 43.0 - color: '#cd3f51' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_4: - name: 17Networks_LH_DefaultB_PFCd_4 - lookupLabel: 91 - originalLookupLabel: 91 - center: - x: -9.0 - y: 17.0 - z: 63.0 - color: '#cd3f52' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_1: - name: 17Networks_LH_DefaultB_PFCv_1 - lookupLabel: 92 - originalLookupLabel: 92 - center: - x: -35.0 - y: 20.0 - z: -13.0 - color: '#ce3e4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_2: - name: 17Networks_LH_DefaultB_PFCv_2 - lookupLabel: 93 - originalLookupLabel: 93 - center: - x: -32.0 - y: 42.0 - z: -13.0 - color: '#ce3e50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_3: - name: 17Networks_LH_DefaultB_PFCv_3 - lookupLabel: 94 - originalLookupLabel: 94 - center: - x: -46.0 - y: 31.0 - z: -7.0 - color: '#ce3e51' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_4: - name: 17Networks_LH_DefaultB_PFCv_4 - lookupLabel: 95 - originalLookupLabel: 95 - center: - x: -52.0 - y: 22.0 - z: 8.0 - color: '#ce3e52' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultC_IPL_1: - name: 17Networks_LH_DefaultC_IPL_1 - lookupLabel: 96 - originalLookupLabel: 96 - center: - x: -39.0 - y: -80.0 - z: 31.0 - color: '#000083' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_1: - name: 17Networks_LH_DefaultC_Rsp_1 - lookupLabel: 97 - originalLookupLabel: 97 - center: - x: -11.0 - y: -56.0 - z: 13.0 - color: '#000084' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_1: - name: 17Networks_LH_DefaultC_PHC_1 - lookupLabel: 98 - originalLookupLabel: 98 - center: - x: -26.0 - y: -32.0 - z: -18.0 - color: '#000183' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_TempPar_1: - name: 17Networks_LH_TempPar_1 - lookupLabel: 99 - originalLookupLabel: 99 - center: - x: -58.0 - y: -43.0 - z: 7.0 - color: '#0929fa' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_2: - name: 17Networks_LH_TempPar_2 - lookupLabel: 100 - originalLookupLabel: 100 - center: - x: -48.0 - y: -57.0 - z: 18.0 - color: '#0929fb' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_RH_VisCent_ExStr_1: - name: 17Networks_RH_VisCent_ExStr_1 - lookupLabel: 101 - originalLookupLabel: 101 - center: - x: 29.0 - y: -69.0 - z: -12.0 - color: '#7c1386' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_2: - name: 17Networks_RH_VisCent_ExStr_2 - lookupLabel: 102 - originalLookupLabel: 102 - center: - x: 48.0 - y: -71.0 - z: -6.0 - color: '#7c1388' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_Striate_1: - name: 17Networks_RH_VisCent_Striate_1 - lookupLabel: 103 - originalLookupLabel: 103 - center: - x: 11.0 - y: -92.0 - z: -5.0 - color: '#7c1389' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_3: - name: 17Networks_RH_VisCent_ExStr_3 - lookupLabel: 104 - originalLookupLabel: 104 - center: - x: 31.0 - y: -94.0 - z: -4.0 - color: '#7c138a' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_4: - name: 17Networks_RH_VisCent_ExStr_4 - lookupLabel: 105 - originalLookupLabel: 105 - center: - x: 42.0 - y: -80.0 - z: 10.0 - color: '#7c138b' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_5: - name: 17Networks_RH_VisCent_ExStr_5 - lookupLabel: 106 - originalLookupLabel: 106 - center: - x: 20.0 - y: -90.0 - z: 22.0 - color: '#7c138c' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisPeri_ExStrInf_1: - name: 17Networks_RH_VisPeri_ExStrInf_1 - lookupLabel: 107 - originalLookupLabel: 107 - center: - x: 12.0 - y: -65.0 - z: -5.0 - color: '#fa0000' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_2: - name: 17Networks_RH_VisPeri_ExStrInf_2 - lookupLabel: 108 - originalLookupLabel: 108 - center: - x: 16.0 - y: -46.0 - z: -1.0 - color: '#fa0002' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_1: - name: 17Networks_RH_VisPeri_StriCal_1 - lookupLabel: 109 - originalLookupLabel: 109 - center: - x: 9.0 - y: -75.0 - z: 9.0 - color: '#fa0003' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_1: - name: 17Networks_RH_VisPeri_ExStrSup_1 - lookupLabel: 110 - originalLookupLabel: 110 - center: - x: 22.0 - y: -60.0 - z: 7.0 - color: '#fa0004' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_2: - name: 17Networks_RH_VisPeri_ExStrSup_2 - lookupLabel: 111 - originalLookupLabel: 111 - center: - x: 11.0 - y: -74.0 - z: 26.0 - color: '#fa0005' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_3: - name: 17Networks_RH_VisPeri_ExStrSup_3 - lookupLabel: 112 - originalLookupLabel: 112 - center: - x: 16.0 - y: -85.0 - z: 39.0 - color: '#fa0006' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_SomMotA_1: - name: 17Networks_RH_SomMotA_1 - lookupLabel: 113 - originalLookupLabel: 113 - center: - x: 51.0 - y: -22.0 - z: 52.0 - color: '#4a83b1' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_2: - name: 17Networks_RH_SomMotA_2 - lookupLabel: 114 - originalLookupLabel: 114 - center: - x: 47.0 - y: -11.0 - z: 48.0 - color: '#4a83b2' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_3: - name: 17Networks_RH_SomMotA_3 - lookupLabel: 115 - originalLookupLabel: 115 - center: - x: 7.0 - y: -11.0 - z: 51.0 - color: '#4a83b3' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_4: - name: 17Networks_RH_SomMotA_4 - lookupLabel: 116 - originalLookupLabel: 116 - center: - x: 40.0 - y: -24.0 - z: 57.0 - color: '#4a83b4' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_5: - name: 17Networks_RH_SomMotA_5 - lookupLabel: 117 - originalLookupLabel: 117 - center: - x: 32.0 - y: -40.0 - z: 64.0 - color: '#4a83b6' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_6: - name: 17Networks_RH_SomMotA_6 - lookupLabel: 118 - originalLookupLabel: 118 - center: - x: 33.0 - y: -21.0 - z: 65.0 - color: '#4a83b7' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_7: - name: 17Networks_RH_SomMotA_7 - lookupLabel: 119 - originalLookupLabel: 119 - center: - x: 29.0 - y: -34.0 - z: 65.0 - color: '#4a83b8' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_8: - name: 17Networks_RH_SomMotA_8 - lookupLabel: 120 - originalLookupLabel: 120 - center: - x: 22.0 - y: -9.0 - z: 67.0 - color: '#4a83b9' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_9: - name: 17Networks_RH_SomMotA_9 - lookupLabel: 121 - originalLookupLabel: 121 - center: - x: 10.0 - y: -39.0 - z: 69.0 - color: '#4a83ba' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_10: - name: 17Networks_RH_SomMotA_10 - lookupLabel: 122 - originalLookupLabel: 122 - center: - x: 6.0 - y: -23.0 - z: 69.0 - color: '#4a83bb' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_11: - name: 17Networks_RH_SomMotA_11 - lookupLabel: 123 - originalLookupLabel: 123 - center: - x: 20.0 - y: -29.0 - z: 70.0 - color: '#4a83bc' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotB_Aud_1: - name: 17Networks_RH_SomMotB_Aud_1 - lookupLabel: 124 - originalLookupLabel: 124 - center: - x: 51.0 - y: -15.0 - z: 5.0 - color: '#2fcda2' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_2: - name: 17Networks_RH_SomMotB_Aud_2 - lookupLabel: 125 - originalLookupLabel: 125 - center: - x: 64.0 - y: -23.0 - z: 8.0 - color: '#2fcda3' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_1: - name: 17Networks_RH_SomMotB_S2_1 - lookupLabel: 126 - originalLookupLabel: 126 - center: - x: 38.0 - y: -13.0 - z: 15.0 - color: '#2fcda5' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_2: - name: 17Networks_RH_SomMotB_S2_2 - lookupLabel: 127 - originalLookupLabel: 127 - center: - x: 44.0 - y: -27.0 - z: 18.0 - color: '#2fcda6' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_3: - name: 17Networks_RH_SomMotB_S2_3 - lookupLabel: 128 - originalLookupLabel: 128 - center: - x: 59.0 - y: 0.0 - z: 10.0 - color: '#2fcda7' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_4: - name: 17Networks_RH_SomMotB_S2_4 - lookupLabel: 129 - originalLookupLabel: 129 - center: - x: 56.0 - y: -11.0 - z: 14.0 - color: '#2fcda8' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_1: - name: 17Networks_RH_SomMotB_Cent_1 - lookupLabel: 130 - originalLookupLabel: 130 - center: - x: 58.0 - y: -5.0 - z: 31.0 - color: '#2fcda9' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_DorsAttnA_TempOcc_1: - name: 17Networks_RH_DorsAttnA_TempOcc_1 - lookupLabel: 131 - originalLookupLabel: 131 - center: - x: 50.0 - y: -53.0 - z: -15.0 - color: '#4e9c3e' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_1: - name: 17Networks_RH_DorsAttnA_ParOcc_1 - lookupLabel: 132 - originalLookupLabel: 132 - center: - x: 52.0 - y: -60.0 - z: 9.0 - color: '#4e9c3f' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_1: - name: 17Networks_RH_DorsAttnA_SPL_1 - lookupLabel: 133 - originalLookupLabel: 133 - center: - x: 33.0 - y: -75.0 - z: 32.0 - color: '#4f9b3e' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_2: - name: 17Networks_RH_DorsAttnA_SPL_2 - lookupLabel: 134 - originalLookupLabel: 134 - center: - x: 15.0 - y: -73.0 - z: 53.0 - color: '#4f9b3f' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_3: - name: 17Networks_RH_DorsAttnA_SPL_3 - lookupLabel: 135 - originalLookupLabel: 135 - center: - x: 34.0 - y: -48.0 - z: 51.0 - color: '#4f9b40' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_4: - name: 17Networks_RH_DorsAttnA_SPL_4 - lookupLabel: 136 - originalLookupLabel: 136 - center: - x: 26.0 - y: -61.0 - z: 58.0 - color: '#4f9b41' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnB_PostC_1: - name: 17Networks_RH_DorsAttnB_PostC_1 - lookupLabel: 137 - originalLookupLabel: 137 - center: - x: 59.0 - y: -16.0 - z: 34.0 - color: '#057610' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_2: - name: 17Networks_RH_DorsAttnB_PostC_2 - lookupLabel: 138 - originalLookupLabel: 138 - center: - x: 41.0 - y: -31.0 - z: 46.0 - color: '#057611' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_3: - name: 17Networks_RH_DorsAttnB_PostC_3 - lookupLabel: 139 - originalLookupLabel: 139 - center: - x: 8.0 - y: -56.0 - z: 61.0 - color: '#057612' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_4: - name: 17Networks_RH_DorsAttnB_PostC_4 - lookupLabel: 140 - originalLookupLabel: 140 - center: - x: 21.0 - y: -48.0 - z: 70.0 - color: '#057613' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_1: - name: 17Networks_RH_DorsAttnB_FEF_1 - lookupLabel: 141 - originalLookupLabel: 141 - center: - x: 34.0 - y: -4.0 - z: 52.0 - color: '#05770f' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_SalVentAttnA_ParOper_1: - name: 17Networks_RH_SalVentAttnA_ParOper_1 - lookupLabel: 142 - originalLookupLabel: 142 - center: - x: 60.0 - y: -26.0 - z: 27.0 - color: '#c83afa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_PrC_1: - name: 17Networks_RH_SalVentAttnA_PrC_1 - lookupLabel: 143 - originalLookupLabel: 143 - center: - x: 51.0 - y: 4.0 - z: 40.0 - color: '#c839fb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_1: - name: 17Networks_RH_SalVentAttnA_Ins_1 - lookupLabel: 144 - originalLookupLabel: 144 - center: - x: 41.0 - y: 6.0 - z: -15.0 - color: '#c73afb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_2: - name: 17Networks_RH_SalVentAttnA_Ins_2 - lookupLabel: 145 - originalLookupLabel: 145 - center: - x: 46.0 - y: -4.0 - z: -4.0 - color: '#c73afc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_1: - name: 17Networks_RH_SalVentAttnA_FrOper_1 - lookupLabel: 146 - originalLookupLabel: 146 - center: - x: 43.0 - y: 7.0 - z: 4.0 - color: '#c73afd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_1: - name: 17Networks_RH_SalVentAttnA_FrMed_1 - lookupLabel: 147 - originalLookupLabel: 147 - center: - x: 7.0 - y: 9.0 - z: 41.0 - color: '#c739fb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_1: - name: 17Networks_RH_SalVentAttnA_ParMed_1 - lookupLabel: 148 - originalLookupLabel: 148 - center: - x: 10.0 - y: -15.0 - z: 41.0 - color: '#c739fc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_2: - name: 17Networks_RH_SalVentAttnA_ParMed_2 - lookupLabel: 149 - originalLookupLabel: 149 - center: - x: 11.0 - y: -36.0 - z: 47.0 - color: '#c739fd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_2: - name: 17Networks_RH_SalVentAttnA_FrMed_2 - lookupLabel: 150 - originalLookupLabel: 150 - center: - x: 8.0 - y: 3.0 - z: 66.0 - color: '#c739fe' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnB_IPL_1: - name: 17Networks_RH_SalVentAttnB_IPL_1 - lookupLabel: 151 - originalLookupLabel: 151 - center: - x: 62.0 - y: -37.0 - z: 37.0 - color: '#fa98d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFClv_1: - name: 17Networks_RH_SalVentAttnB_PFClv_1 - lookupLabel: 152 - originalLookupLabel: 152 - center: - x: 43.0 - y: 45.0 - z: 10.0 - color: '#fa97d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_1: - name: 17Networks_RH_SalVentAttnB_PFCl_1 - lookupLabel: 153 - originalLookupLabel: 153 - center: - x: 30.0 - y: 48.0 - z: 27.0 - color: '#fa97d7' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_1: - name: 17Networks_RH_SalVentAttnB_Ins_1 - lookupLabel: 154 - originalLookupLabel: 154 - center: - x: 34.0 - y: 21.0 - z: -8.0 - color: '#fa98d7' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_2: - name: 17Networks_RH_SalVentAttnB_Ins_2 - lookupLabel: 155 - originalLookupLabel: 155 - center: - x: 36.0 - y: 24.0 - z: 5.0 - color: '#fa98d8' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCmp_1: - name: 17Networks_RH_SalVentAttnB_PFCmp_1 - lookupLabel: 156 - originalLookupLabel: 156 - center: - x: 7.0 - y: 31.0 - z: 28.0 - color: '#fa99d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_LimbicB_OFC_1: - name: 17Networks_RH_LimbicB_OFC_1 - lookupLabel: 157 - originalLookupLabel: 157 - center: - x: 12.0 - y: 39.0 - z: -22.0 - color: '#7e8734' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_2: - name: 17Networks_RH_LimbicB_OFC_2 - lookupLabel: 158 - originalLookupLabel: 158 - center: - x: 28.0 - y: 22.0 - z: -19.0 - color: '#7e8735' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_3: - name: 17Networks_RH_LimbicB_OFC_3 - lookupLabel: 159 - originalLookupLabel: 159 - center: - x: 5.0 - y: 37.0 - z: -14.0 - color: '#7e8736' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_4: - name: 17Networks_RH_LimbicB_OFC_4 - lookupLabel: 160 - originalLookupLabel: 160 - center: - x: 15.0 - y: 64.0 - z: -8.0 - color: '#7e8737' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicA_TempPole_1: - name: 17Networks_RH_LimbicA_TempPole_1 - lookupLabel: 161 - originalLookupLabel: 161 - center: - x: 30.0 - y: 9.0 - z: -38.0 - color: '#e0f8a6' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_2: - name: 17Networks_RH_LimbicA_TempPole_2 - lookupLabel: 162 - originalLookupLabel: 162 - center: - x: 47.0 - y: -12.0 - z: -35.0 - color: '#e0f8a7' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_3: - name: 17Networks_RH_LimbicA_TempPole_3 - lookupLabel: 163 - originalLookupLabel: 163 - center: - x: 25.0 - y: -11.0 - z: -32.0 - color: '#e0f8a8' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_4: - name: 17Networks_RH_LimbicA_TempPole_4 - lookupLabel: 164 - originalLookupLabel: 164 - center: - x: 39.0 - y: -35.0 - z: -23.0 - color: '#e0f8a9' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_ContA_IPS_1: - name: 17Networks_RH_ContA_IPS_1 - lookupLabel: 165 - originalLookupLabel: 165 - center: - x: 37.0 - y: -63.0 - z: 47.0 - color: '#ea9323' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_2: - name: 17Networks_RH_ContA_IPS_2 - lookupLabel: 166 - originalLookupLabel: 166 - center: - x: 46.0 - y: -38.0 - z: 49.0 - color: '#ea9324' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCd_1: - name: 17Networks_RH_ContA_PFCd_1 - lookupLabel: 167 - originalLookupLabel: 167 - center: - x: 26.0 - y: 7.0 - z: 58.0 - color: '#ea9322' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_1: - name: 17Networks_RH_ContA_PFCl_1 - lookupLabel: 168 - originalLookupLabel: 168 - center: - x: 52.0 - y: 11.0 - z: 21.0 - color: '#e99423' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_2: - name: 17Networks_RH_ContA_PFCl_2 - lookupLabel: 169 - originalLookupLabel: 169 - center: - x: 46.0 - y: 24.0 - z: 26.0 - color: '#e99424' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_Cingm_1: - name: 17Networks_RH_ContA_Cingm_1 - lookupLabel: 170 - originalLookupLabel: 170 - center: - x: 5.0 - y: 3.0 - z: 30.0 - color: '#e99422' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContB_Temp_1: - name: 17Networks_RH_ContB_Temp_1 - lookupLabel: 171 - originalLookupLabel: 171 - center: - x: 61.0 - y: -13.0 - z: -21.0 - color: '#8c334c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_Temp_2: - name: 17Networks_RH_ContB_Temp_2 - lookupLabel: 172 - originalLookupLabel: 172 - center: - x: 63.0 - y: -41.0 - z: -12.0 - color: '#8c334d' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_1: - name: 17Networks_RH_ContB_IPL_1 - lookupLabel: 173 - originalLookupLabel: 173 - center: - x: 51.0 - y: -59.0 - z: 44.0 - color: '#8b324a' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_2: - name: 17Networks_RH_ContB_IPL_2 - lookupLabel: 174 - originalLookupLabel: 174 - center: - x: 53.0 - y: -42.0 - z: 48.0 - color: '#8b324b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_1: - name: 17Networks_RH_ContB_PFCld_1 - lookupLabel: 175 - originalLookupLabel: 175 - center: - x: 41.0 - y: 33.0 - z: 37.0 - color: '#8b314b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_2: - name: 17Networks_RH_ContB_PFCld_2 - lookupLabel: 176 - originalLookupLabel: 176 - center: - x: 42.0 - y: 14.0 - z: 49.0 - color: '#8b314c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_1: - name: 17Networks_RH_ContB_PFClv_1 - lookupLabel: 177 - originalLookupLabel: 177 - center: - x: 36.0 - y: 46.0 - z: -13.0 - color: '#8b314a' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_2: - name: 17Networks_RH_ContB_PFClv_2 - lookupLabel: 178 - originalLookupLabel: 178 - center: - x: 29.0 - y: 58.0 - z: 5.0 - color: '#8b314d' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCmp_1: - name: 17Networks_RH_ContB_PFCmp_1 - lookupLabel: 179 - originalLookupLabel: 179 - center: - x: 7.0 - y: 25.0 - z: 55.0 - color: '#8a324b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_3: - name: 17Networks_RH_ContB_PFCld_3 - lookupLabel: 180 - originalLookupLabel: 180 - center: - x: 23.0 - y: 24.0 - z: 53.0 - color: '#8a324c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContC_pCun_1: - name: 17Networks_RH_ContC_pCun_1 - lookupLabel: 181 - originalLookupLabel: 181 - center: - x: 14.0 - y: -70.0 - z: 37.0 - color: '#7b8db1' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_2: - name: 17Networks_RH_ContC_pCun_2 - lookupLabel: 182 - originalLookupLabel: 182 - center: - x: 6.0 - y: -58.0 - z: 44.0 - color: '#7b8db2' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_Cingp_1: - name: 17Networks_RH_ContC_Cingp_1 - lookupLabel: 183 - originalLookupLabel: 183 - center: - x: 5.0 - y: -24.0 - z: 31.0 - color: '#7b8db3' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_DefaultA_IPL_1: - name: 17Networks_RH_DefaultA_IPL_1 - lookupLabel: 184 - originalLookupLabel: 184 - center: - x: 54.0 - y: -50.0 - z: 28.0 - color: '#fbfe02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCd_1: - name: 17Networks_RH_DefaultA_PFCd_1 - lookupLabel: 185 - originalLookupLabel: 185 - center: - x: 29.0 - y: 30.0 - z: 42.0 - color: '#fbff03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_1: - name: 17Networks_RH_DefaultA_pCunPCC_1 - lookupLabel: 186 - originalLookupLabel: 186 - center: - x: 7.0 - y: -49.0 - z: 31.0 - color: '#fbfd01' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_1: - name: 17Networks_RH_DefaultA_PFCm_1 - lookupLabel: 187 - originalLookupLabel: 187 - center: - x: 8.0 - y: 42.0 - z: 4.0 - color: '#f9ff01' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_2: - name: 17Networks_RH_DefaultA_PFCm_2 - lookupLabel: 188 - originalLookupLabel: 188 - center: - x: 6.0 - y: 29.0 - z: 15.0 - color: '#f9ff02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_3: - name: 17Networks_RH_DefaultA_PFCm_3 - lookupLabel: 189 - originalLookupLabel: 189 - center: - x: 8.0 - y: 58.0 - z: 18.0 - color: '#f9ff03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultB_Temp_1: - name: 17Networks_RH_DefaultB_Temp_1 - lookupLabel: 190 - originalLookupLabel: 190 - center: - x: 63.0 - y: -27.0 - z: -6.0 - color: '#d23e50' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_AntTemp_1: - name: 17Networks_RH_DefaultB_AntTemp_1 - lookupLabel: 191 - originalLookupLabel: 191 - center: - x: 47.0 - y: 13.0 - z: -30.0 - color: '#d23f4f' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_1: - name: 17Networks_RH_DefaultB_PFCd_1 - lookupLabel: 192 - originalLookupLabel: 192 - center: - x: 15.0 - y: 46.0 - z: 44.0 - color: '#d23f50' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_1: - name: 17Networks_RH_DefaultB_PFCv_1 - lookupLabel: 193 - originalLookupLabel: 193 - center: - x: 51.0 - y: 28.0 - z: 0.0 - color: '#d13e4e' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultC_IPL_1: - name: 17Networks_RH_DefaultC_IPL_1 - lookupLabel: 194 - originalLookupLabel: 194 - center: - x: 47.0 - y: -69.0 - z: 27.0 - color: '#040184' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_Rsp_1: - name: 17Networks_RH_DefaultC_Rsp_1 - lookupLabel: 195 - originalLookupLabel: 195 - center: - x: 12.0 - y: -55.0 - z: 15.0 - color: '#050083' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_PHC_1: - name: 17Networks_RH_DefaultC_PHC_1 - lookupLabel: 196 - originalLookupLabel: 196 - center: - x: 28.0 - y: -36.0 - z: -14.0 - color: '#050084' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_TempPar_1: - name: 17Networks_RH_TempPar_1 - lookupLabel: 197 - originalLookupLabel: 197 - center: - x: 55.0 - y: -6.0 - z: -10.0 - color: '#1030ff' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_2: - name: 17Networks_RH_TempPar_2 - lookupLabel: 198 - originalLookupLabel: 198 - center: - x: 52.0 - y: -31.0 - z: 2.0 - color: '#0d29fa' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_3: - name: 17Networks_RH_TempPar_3 - lookupLabel: 199 - originalLookupLabel: 199 - center: - x: 57.0 - y: -45.0 - z: 9.0 - color: '#0d29fb' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_4: - name: 17Networks_RH_TempPar_4 - lookupLabel: 200 - originalLookupLabel: 200 - center: - x: 60.0 - y: -39.0 - z: 17.0 - color: '#0d29fc' - hemisphere: right - hasParent: - - RH_TempPar - versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_200Parcels_17Networks_order_FSLMNI152_1mm.nii.gz diff --git a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-200_res-1_desc-ordered_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-200_res-1_desc-ordered_dseg.yaml similarity index 99% rename from tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-200_res-1_desc-ordered_dseg.yaml rename to tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-200_res-1_desc-ordered_dseg.yaml index 0f5a3d542..33bebbadf 100644 --- a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-200_res-1_desc-ordered_dseg.yaml +++ b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-200_res-1_desc-ordered_dseg.yaml @@ -1,14 +1,12 @@ name: Schaefer2018 abbreviation: Schaefer2018 versionIdentifier: '2018' -coordinateSpace: - name: MNI152 - abbreviation: FSLMNI152 - nativeUnit: mm +coordinateSpace: FSLMNI152 terminology: label: Schaefer2018_200Parcels_17Networks_order versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_200Parcels_17Networks_order_FSLMNI152_1mm.nii.gz + dataLocation: + schaefer2018_original_mni/Schaefer2018_200Parcels_17Networks_order_FSLMNI152_1mm.nii.gz entities: 17Networks_LH_VisCent_ExStr_1: name: 17Networks_LH_VisCent_ExStr_1 diff --git a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-300_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-300_dseg.yaml deleted file mode 100644 index 0fb305864..000000000 --- a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-300_dseg.yaml +++ /dev/null @@ -1,3881 +0,0 @@ -name: Schaefer2018 -abbreviation: Schaefer2018 -versionIdentifier: '2018' -coordinateSpace: MNI152NLin6Asym -terminology: - label: Schaefer2018_300Parcels_17Networks_order - entities: - LH_VisCent: - name: LH_VisCent - lookupLabel: -1 - hemisphere: left - center: - x: -27.5 - y: -84.5 - z: 0.1 - LH_VisPeri: - name: LH_VisPeri - lookupLabel: -2 - hemisphere: left - center: - x: -12.1 - y: -70.1 - z: 8.7 - LH_SomMotA: - name: LH_SomMotA - lookupLabel: -3 - hemisphere: left - center: - x: -22.1 - y: -24.9 - z: 61.5 - LH_SomMotB: - name: LH_SomMotB - lookupLabel: -4 - hemisphere: left - center: - x: -50.5 - y: -17.4 - z: 19.8 - LH_DorsAttnA: - name: LH_DorsAttnA - lookupLabel: -5 - hemisphere: left - center: - x: -33.8 - y: -63.0 - z: 20.1 - LH_DorsAttnB: - name: LH_DorsAttnB - lookupLabel: -6 - hemisphere: left - center: - x: -38.6 - y: -31.9 - z: 46.4 - LH_SalVentAttnA: - name: LH_SalVentAttnA - lookupLabel: -7 - hemisphere: left - center: - x: -31.5 - y: -13.3 - z: 28.4 - LH_SalVentAttnB: - name: LH_SalVentAttnB - lookupLabel: -8 - hemisphere: left - center: - x: -34.8 - y: 17.7 - z: 21.7 - LH_LimbicB: - name: LH_LimbicB - lookupLabel: -9 - hemisphere: left - center: - x: -15.5 - y: 39.0 - z: -17.2 - LH_LimbicA: - name: LH_LimbicA - lookupLabel: -10 - hemisphere: left - center: - x: -37.8 - y: -4.8 - z: -31.0 - LH_ContA: - name: LH_ContA - lookupLabel: -11 - hemisphere: left - center: - x: -38.2 - y: -14.2 - z: 33.0 - LH_ContB: - name: LH_ContB - lookupLabel: -12 - hemisphere: left - center: - x: -38.7 - y: -0.7 - z: 20.7 - LH_ContC: - name: LH_ContC - lookupLabel: -13 - hemisphere: left - center: - x: -7.5 - y: -59.5 - z: 38.8 - LH_DefaultA: - name: LH_DefaultA - lookupLabel: -14 - hemisphere: left - center: - x: -12.4 - y: -8.5 - z: 26.4 - LH_DefaultB: - name: LH_DefaultB - lookupLabel: -15 - hemisphere: left - center: - x: -37.0 - y: 10.6 - z: 15.6 - LH_DefaultC: - name: LH_DefaultC - lookupLabel: -16 - hemisphere: left - center: - x: -21.3 - y: -47.2 - z: 0.5 - LH_TempPar: - name: LH_TempPar - lookupLabel: -17 - hemisphere: left - center: - x: -55.8 - y: -25.2 - z: 1.2 - RH_VisCent: - name: RH_VisCent - lookupLabel: -18 - hemisphere: right - center: - x: 27.3 - y: -79.8 - z: -2.0 - RH_VisPeri: - name: RH_VisPeri - lookupLabel: -19 - hemisphere: right - center: - x: 14.4 - y: -65.6 - z: 9.6 - RH_SomMotA: - name: RH_SomMotA - lookupLabel: -20 - hemisphere: right - center: - x: 26.0 - y: -24.2 - z: 62.7 - RH_SomMotB: - name: RH_SomMotB - lookupLabel: -21 - hemisphere: right - center: - x: 50.8 - y: -13.2 - z: 16.8 - RH_DorsAttnA: - name: RH_DorsAttnA - lookupLabel: -22 - hemisphere: right - center: - x: 36.4 - y: -62.2 - z: 29.5 - RH_DorsAttnB: - name: RH_DorsAttnB - lookupLabel: -23 - hemisphere: right - center: - x: 34.2 - y: -28.5 - z: 54.2 - RH_SalVentAttnA: - name: RH_SalVentAttnA - lookupLabel: -24 - hemisphere: right - center: - x: 34.7 - y: -11.6 - z: 30.8 - RH_SalVentAttnB: - name: RH_SalVentAttnB - lookupLabel: -25 - hemisphere: right - center: - x: 31.4 - y: 24.1 - z: 22.6 - RH_LimbicB: - name: RH_LimbicB - lookupLabel: -26 - hemisphere: right - center: - x: 12.0 - y: 37.8 - z: -18.2 - RH_LimbicA: - name: RH_LimbicA - lookupLabel: -27 - hemisphere: right - center: - x: 38.3 - y: -3.7 - z: -31.5 - RH_ContA: - name: RH_ContA - lookupLabel: -28 - hemisphere: right - center: - x: 40.8 - y: -12.2 - z: 31.6 - RH_ContB: - name: RH_ContB - lookupLabel: -29 - hemisphere: right - center: - x: 37.8 - y: 11.3 - z: 23.3 - RH_ContC: - name: RH_ContC - lookupLabel: -30 - hemisphere: right - center: - x: 8.0 - y: -53.0 - z: 39.5 - RH_DefaultA: - name: RH_DefaultA - lookupLabel: -31 - hemisphere: right - center: - x: 20.5 - y: -1.2 - z: 19.2 - RH_DefaultB: - name: RH_DefaultB - lookupLabel: -32 - hemisphere: right - center: - x: 40.7 - y: 20.3 - z: 7.4 - RH_DefaultC: - name: RH_DefaultC - lookupLabel: -33 - hemisphere: right - center: - x: 25.2 - y: -51.5 - z: 9.2 - RH_TempPar: - name: RH_TempPar - lookupLabel: -34 - hemisphere: right - center: - x: 55.7 - y: -28.0 - z: 3.7 - 17Networks_LH_VisCent_ExStr_1: - name: 17Networks_LH_VisCent_ExStr_1 - lookupLabel: 1 - originalLookupLabel: 1 - center: - x: -35.0 - y: -65.0 - z: -16.0 - color: '#781283' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_2: - name: 17Networks_LH_VisCent_ExStr_2 - lookupLabel: 2 - originalLookupLabel: 2 - center: - x: -22.0 - y: -73.0 - z: -9.0 - color: '#781284' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_3: - name: 17Networks_LH_VisCent_ExStr_3 - lookupLabel: 3 - originalLookupLabel: 3 - center: - x: -21.0 - y: -85.0 - z: -15.0 - color: '#781285' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_4: - name: 17Networks_LH_VisCent_ExStr_4 - lookupLabel: 4 - originalLookupLabel: 4 - center: - x: -42.0 - y: -84.0 - z: -10.0 - color: '#781286' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_5: - name: 17Networks_LH_VisCent_ExStr_5 - lookupLabel: 5 - originalLookupLabel: 5 - center: - x: -23.0 - y: -97.0 - z: -12.0 - color: '#781288' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_6: - name: 17Networks_LH_VisCent_ExStr_6 - lookupLabel: 6 - originalLookupLabel: 6 - center: - x: -46.0 - y: -74.0 - z: 6.0 - color: '#781289' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_Striate_1: - name: 17Networks_LH_VisCent_Striate_1 - lookupLabel: 7 - originalLookupLabel: 7 - center: - x: -6.0 - y: -94.0 - z: -4.0 - color: '#78128a' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_7: - name: 17Networks_LH_VisCent_ExStr_7 - lookupLabel: 8 - originalLookupLabel: 8 - center: - x: -26.0 - y: -95.0 - z: 5.0 - color: '#78128b' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_8: - name: 17Networks_LH_VisCent_ExStr_8 - lookupLabel: 9 - originalLookupLabel: 9 - center: - x: -40.0 - y: -84.0 - z: 14.0 - color: '#78128c' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_9: - name: 17Networks_LH_VisCent_ExStr_9 - lookupLabel: 10 - originalLookupLabel: 10 - center: - x: -13.0 - y: -95.0 - z: 19.0 - color: '#78128d' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_10: - name: 17Networks_LH_VisCent_ExStr_10 - lookupLabel: 11 - originalLookupLabel: 11 - center: - x: -28.0 - y: -83.0 - z: 23.0 - color: '#78128e' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisPeri_ExStrInf_1: - name: 17Networks_LH_VisPeri_ExStrInf_1 - lookupLabel: 12 - originalLookupLabel: 12 - center: - x: -24.0 - y: -54.0 - z: -8.0 - color: '#ff0101' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_2: - name: 17Networks_LH_VisPeri_ExStrInf_2 - lookupLabel: 13 - originalLookupLabel: 13 - center: - x: -12.0 - y: -62.0 - z: -5.0 - color: '#ff0102' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_3: - name: 17Networks_LH_VisPeri_ExStrInf_3 - lookupLabel: 14 - originalLookupLabel: 14 - center: - x: -7.0 - y: -76.0 - z: -6.0 - color: '#ff0103' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_4: - name: 17Networks_LH_VisPeri_ExStrInf_4 - lookupLabel: 15 - originalLookupLabel: 15 - center: - x: -14.0 - y: -52.0 - z: -1.0 - color: '#ff0104' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_1: - name: 17Networks_LH_VisPeri_StriCal_1 - lookupLabel: 16 - originalLookupLabel: 16 - center: - x: -6.0 - y: -77.0 - z: 8.0 - color: '#ff0105' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_1: - name: 17Networks_LH_VisPeri_ExStrSup_1 - lookupLabel: 17 - originalLookupLabel: 17 - center: - x: -18.0 - y: -65.0 - z: 7.0 - color: '#ff0106' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_2: - name: 17Networks_LH_VisPeri_ExStrSup_2 - lookupLabel: 18 - originalLookupLabel: 18 - center: - x: -3.0 - y: -86.0 - z: 23.0 - color: '#ff0107' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_3: - name: 17Networks_LH_VisPeri_ExStrSup_3 - lookupLabel: 19 - originalLookupLabel: 19 - center: - x: -11.0 - y: -73.0 - z: 23.0 - color: '#ff0200' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_4: - name: 17Networks_LH_VisPeri_ExStrSup_4 - lookupLabel: 20 - originalLookupLabel: 20 - center: - x: -14.0 - y: -86.0 - z: 37.0 - color: '#ff0201' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_SomMotA_1: - name: 17Networks_LH_SomMotA_1 - lookupLabel: 21 - originalLookupLabel: 21 - center: - x: -8.0 - y: -11.0 - z: 45.0 - color: '#4682ae' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_2: - name: 17Networks_LH_SomMotA_2 - lookupLabel: 22 - originalLookupLabel: 22 - center: - x: -42.0 - y: -13.0 - z: 49.0 - color: '#4682af' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_3: - name: 17Networks_LH_SomMotA_3 - lookupLabel: 23 - originalLookupLabel: 23 - center: - x: -49.0 - y: -28.0 - z: 57.0 - color: '#4682b0' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_4: - name: 17Networks_LH_SomMotA_4 - lookupLabel: 24 - originalLookupLabel: 24 - center: - x: -43.0 - y: -21.0 - z: 54.0 - color: '#4682b1' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_5: - name: 17Networks_LH_SomMotA_5 - lookupLabel: 25 - originalLookupLabel: 25 - center: - x: -5.0 - y: -24.0 - z: 52.0 - color: '#4682b2' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_6: - name: 17Networks_LH_SomMotA_6 - lookupLabel: 26 - originalLookupLabel: 26 - center: - x: -36.0 - y: -20.0 - z: 64.0 - color: '#4682b3' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_7: - name: 17Networks_LH_SomMotA_7 - lookupLabel: 27 - originalLookupLabel: 27 - center: - x: -4.0 - y: -7.0 - z: 60.0 - color: '#4682b5' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_8: - name: 17Networks_LH_SomMotA_8 - lookupLabel: 28 - originalLookupLabel: 28 - center: - x: -31.0 - y: -29.0 - z: 62.0 - color: '#4682b6' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_9: - name: 17Networks_LH_SomMotA_9 - lookupLabel: 29 - originalLookupLabel: 29 - center: - x: -27.0 - y: -38.0 - z: 68.0 - color: '#4682b7' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_10: - name: 17Networks_LH_SomMotA_10 - lookupLabel: 30 - originalLookupLabel: 30 - center: - x: -21.0 - y: -12.0 - z: 68.0 - color: '#4682b8' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_11: - name: 17Networks_LH_SomMotA_11 - lookupLabel: 31 - originalLookupLabel: 31 - center: - x: -8.0 - y: -42.0 - z: 67.0 - color: '#4682b9' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_12: - name: 17Networks_LH_SomMotA_12 - lookupLabel: 32 - originalLookupLabel: 32 - center: - x: -4.0 - y: -25.0 - z: 67.0 - color: '#4682ba' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_13: - name: 17Networks_LH_SomMotA_13 - lookupLabel: 33 - originalLookupLabel: 33 - center: - x: -17.0 - y: -48.0 - z: 71.0 - color: '#4682bb' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_14: - name: 17Networks_LH_SomMotA_14 - lookupLabel: 34 - originalLookupLabel: 34 - center: - x: -19.0 - y: -31.0 - z: 69.0 - color: '#4683b4' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_15: - name: 17Networks_LH_SomMotA_15 - lookupLabel: 35 - originalLookupLabel: 35 - center: - x: -17.0 - y: -25.0 - z: 70.0 - color: '#4683b5' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotB_Aud_1: - name: 17Networks_LH_SomMotB_Aud_1 - lookupLabel: 36 - originalLookupLabel: 36 - center: - x: -49.0 - y: -11.0 - z: 1.0 - color: '#2bcca0' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_2: - name: 17Networks_LH_SomMotB_Aud_2 - lookupLabel: 37 - originalLookupLabel: 37 - center: - x: -54.0 - y: -23.0 - z: 8.0 - color: '#2bcca1' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_1: - name: 17Networks_LH_SomMotB_S2_1 - lookupLabel: 38 - originalLookupLabel: 38 - center: - x: -38.0 - y: -13.0 - z: 15.0 - color: '#2bcca2' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_2: - name: 17Networks_LH_SomMotB_S2_2 - lookupLabel: 39 - originalLookupLabel: 39 - center: - x: -35.0 - y: -26.0 - z: 16.0 - color: '#2bcca3' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_3: - name: 17Networks_LH_SomMotB_S2_3 - lookupLabel: 40 - originalLookupLabel: 40 - center: - x: -51.0 - y: -13.0 - z: 14.0 - color: '#2bcca5' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_3: - name: 17Networks_LH_SomMotB_Aud_3 - lookupLabel: 41 - originalLookupLabel: 41 - center: - x: -56.0 - y: -38.0 - z: 17.0 - color: '#2bcca6' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_4: - name: 17Networks_LH_SomMotB_S2_4 - lookupLabel: 42 - originalLookupLabel: 42 - center: - x: -44.0 - y: -30.0 - z: 18.0 - color: '#2bcca7' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_5: - name: 17Networks_LH_SomMotB_S2_5 - lookupLabel: 43 - originalLookupLabel: 43 - center: - x: -61.0 - y: -4.0 - z: 13.0 - color: '#2bcca8' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_6: - name: 17Networks_LH_SomMotB_S2_6 - lookupLabel: 44 - originalLookupLabel: 44 - center: - x: -59.0 - y: -19.0 - z: 20.0 - color: '#2bcca9' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_1: - name: 17Networks_LH_SomMotB_Cent_1 - lookupLabel: 45 - originalLookupLabel: 45 - center: - x: -58.0 - y: -7.0 - z: 29.0 - color: '#2bccaa' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_2: - name: 17Networks_LH_SomMotB_Cent_2 - lookupLabel: 46 - originalLookupLabel: 46 - center: - x: -51.0 - y: -8.0 - z: 42.0 - color: '#2bccab' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_3: - name: 17Networks_LH_SomMotB_Cent_3 - lookupLabel: 47 - originalLookupLabel: 47 - center: - x: -50.0 - y: -17.0 - z: 44.0 - color: '#2bcda4' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_DorsAttnA_TempOcc_1: - name: 17Networks_LH_DorsAttnA_TempOcc_1 - lookupLabel: 48 - originalLookupLabel: 48 - center: - x: -34.0 - y: -41.0 - z: -21.0 - color: '#4a9b3d' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_2: - name: 17Networks_LH_DorsAttnA_TempOcc_2 - lookupLabel: 49 - originalLookupLabel: 49 - center: - x: -48.0 - y: -50.0 - z: -19.0 - color: '#4a9b3e' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_3: - name: 17Networks_LH_DorsAttnA_TempOcc_3 - lookupLabel: 50 - originalLookupLabel: 50 - center: - x: -45.0 - y: -68.0 - z: -8.0 - color: '#4a9b3f' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_1: - name: 17Networks_LH_DorsAttnA_ParOcc_1 - lookupLabel: 51 - originalLookupLabel: 51 - center: - x: -48.0 - y: -66.0 - z: 15.0 - color: '#4a9b40' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_1: - name: 17Networks_LH_DorsAttnA_SPL_1 - lookupLabel: 52 - originalLookupLabel: 52 - center: - x: -23.0 - y: -79.0 - z: 40.0 - color: '#4a9c3d' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_2: - name: 17Networks_LH_DorsAttnA_SPL_2 - lookupLabel: 53 - originalLookupLabel: 53 - center: - x: -26.0 - y: -68.0 - z: 39.0 - color: '#4a9c3e' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_3: - name: 17Networks_LH_DorsAttnA_SPL_3 - lookupLabel: 54 - originalLookupLabel: 54 - center: - x: -17.0 - y: -72.0 - z: 54.0 - color: '#4a9c3f' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_4: - name: 17Networks_LH_DorsAttnA_SPL_4 - lookupLabel: 55 - originalLookupLabel: 55 - center: - x: -29.0 - y: -60.0 - z: 61.0 - color: '#4a9c40' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnB_TempOcc_1: - name: 17Networks_LH_DorsAttnB_TempOcc_1 - lookupLabel: 56 - originalLookupLabel: 56 - center: - x: -55.0 - y: -63.0 - z: 2.0 - color: '#00760f' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_1: - name: 17Networks_LH_DorsAttnB_PostC_1 - lookupLabel: 57 - originalLookupLabel: 57 - center: - x: -59.0 - y: -21.0 - z: 35.0 - color: '#00760e' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_2: - name: 17Networks_LH_DorsAttnB_PostC_2 - lookupLabel: 58 - originalLookupLabel: 58 - center: - x: -55.0 - y: -31.0 - z: 44.0 - color: '#007610' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_3: - name: 17Networks_LH_DorsAttnB_PostC_3 - lookupLabel: 59 - originalLookupLabel: 59 - center: - x: -42.0 - y: -34.0 - z: 47.0 - color: '#007611' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_4: - name: 17Networks_LH_DorsAttnB_PostC_4 - lookupLabel: 60 - originalLookupLabel: 60 - center: - x: -31.0 - y: -47.0 - z: 63.0 - color: '#007612' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_5: - name: 17Networks_LH_DorsAttnB_PostC_5 - lookupLabel: 61 - originalLookupLabel: 61 - center: - x: -13.0 - y: -59.0 - z: 64.0 - color: '#007613' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_1: - name: 17Networks_LH_DorsAttnB_FEF_1 - lookupLabel: 62 - originalLookupLabel: 62 - center: - x: -32.0 - y: -5.0 - z: 52.0 - color: '#00770f' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_2: - name: 17Networks_LH_DorsAttnB_FEF_2 - lookupLabel: 63 - originalLookupLabel: 63 - center: - x: -22.0 - y: 5.0 - z: 64.0 - color: '#007710' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_SalVentAttnA_ParOper_1: - name: 17Networks_LH_SalVentAttnA_ParOper_1 - lookupLabel: 64 - originalLookupLabel: 64 - center: - x: -58.0 - y: -44.0 - z: 27.0 - color: '#c43afb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_2: - name: 17Networks_LH_SalVentAttnA_ParOper_2 - lookupLabel: 65 - originalLookupLabel: 65 - center: - x: -60.0 - y: -30.0 - z: 24.0 - color: '#c43afc' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_1: - name: 17Networks_LH_SalVentAttnA_Ins_1 - lookupLabel: 66 - originalLookupLabel: 66 - center: - x: -39.0 - y: -3.0 - z: -4.0 - color: '#c43bfb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_2: - name: 17Networks_LH_SalVentAttnA_Ins_2 - lookupLabel: 67 - originalLookupLabel: 67 - center: - x: -33.0 - y: 19.0 - z: 8.0 - color: '#c43bfc' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_3: - name: 17Networks_LH_SalVentAttnA_Ins_3 - lookupLabel: 68 - originalLookupLabel: 68 - center: - x: -38.0 - y: 1.0 - z: 11.0 - color: '#c43bfd' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_1: - name: 17Networks_LH_SalVentAttnA_FrOper_1 - lookupLabel: 69 - originalLookupLabel: 69 - center: - x: -52.0 - y: 1.0 - z: 6.0 - color: '#c43bfe' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_1: - name: 17Networks_LH_SalVentAttnA_ParMed_1 - lookupLabel: 70 - originalLookupLabel: 70 - center: - x: -12.0 - y: -33.0 - z: 44.0 - color: '#c43bff' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_2: - name: 17Networks_LH_SalVentAttnA_ParMed_2 - lookupLabel: 71 - originalLookupLabel: 71 - center: - x: -6.0 - y: -50.0 - z: 56.0 - color: '#c134fa' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_1: - name: 17Networks_LH_SalVentAttnA_FrMed_1 - lookupLabel: 72 - originalLookupLabel: 72 - center: - x: -6.0 - y: 9.0 - z: 41.0 - color: '#c53afb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_2: - name: 17Networks_LH_SalVentAttnA_FrMed_2 - lookupLabel: 73 - originalLookupLabel: 73 - center: - x: -11.0 - y: -3.0 - z: 71.0 - color: '#c53afc' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnB_IPL_1: - name: 17Networks_LH_SalVentAttnB_IPL_1 - lookupLabel: 74 - originalLookupLabel: 74 - center: - x: -61.0 - y: -38.0 - z: 39.0 - color: '#ff98d6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_1: - name: 17Networks_LH_SalVentAttnB_PFCl_1 - lookupLabel: 75 - originalLookupLabel: 75 - center: - x: -27.0 - y: 46.0 - z: 29.0 - color: '#ff99d6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_2: - name: 17Networks_LH_SalVentAttnB_PFCl_2 - lookupLabel: 76 - originalLookupLabel: 76 - center: - x: -38.0 - y: 33.0 - z: 36.0 - color: '#ff99d7' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_1: - name: 17Networks_LH_SalVentAttnB_Ins_1 - lookupLabel: 77 - originalLookupLabel: 77 - center: - x: -33.0 - y: 24.0 - z: -1.0 - color: '#ff99d8' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_2: - name: 17Networks_LH_SalVentAttnB_Ins_2 - lookupLabel: 78 - originalLookupLabel: 78 - center: - x: -44.0 - y: 11.0 - z: 2.0 - color: '#ff99d9' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCmp_1: - name: 17Networks_LH_SalVentAttnB_PFCmp_1 - lookupLabel: 79 - originalLookupLabel: 79 - center: - x: -6.0 - y: 30.0 - z: 25.0 - color: '#ff97d6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_LimbicB_OFC_1: - name: 17Networks_LH_LimbicB_OFC_1 - lookupLabel: 80 - originalLookupLabel: 80 - center: - x: -24.0 - y: 22.0 - z: -20.0 - color: '#7a8733' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_2: - name: 17Networks_LH_LimbicB_OFC_2 - lookupLabel: 81 - originalLookupLabel: 81 - center: - x: -8.0 - y: 23.0 - z: -20.0 - color: '#7a8734' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_3: - name: 17Networks_LH_LimbicB_OFC_3 - lookupLabel: 82 - originalLookupLabel: 82 - center: - x: -11.0 - y: 48.0 - z: -21.0 - color: '#7a8735' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_4: - name: 17Networks_LH_LimbicB_OFC_4 - lookupLabel: 83 - originalLookupLabel: 83 - center: - x: -19.0 - y: 63.0 - z: -8.0 - color: '#7a8736' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicA_TempPole_1: - name: 17Networks_LH_LimbicA_TempPole_1 - lookupLabel: 84 - originalLookupLabel: 84 - center: - x: -29.0 - y: -4.0 - z: -40.0 - color: '#dcf8a3' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_2: - name: 17Networks_LH_LimbicA_TempPole_2 - lookupLabel: 85 - originalLookupLabel: 85 - center: - x: -52.0 - y: -17.0 - z: -34.0 - color: '#dcf8a5' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_3: - name: 17Networks_LH_LimbicA_TempPole_3 - lookupLabel: 86 - originalLookupLabel: 86 - center: - x: -39.0 - y: -20.0 - z: -28.0 - color: '#dcf8a6' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_4: - name: 17Networks_LH_LimbicA_TempPole_4 - lookupLabel: 87 - originalLookupLabel: 87 - center: - x: -27.0 - y: 10.0 - z: -34.0 - color: '#dcf8a7' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_5: - name: 17Networks_LH_LimbicA_TempPole_5 - lookupLabel: 88 - originalLookupLabel: 88 - center: - x: -42.0 - y: 7.0 - z: -19.0 - color: '#dcf8a8' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_ContA_Temp_1: - name: 17Networks_LH_ContA_Temp_1 - lookupLabel: 89 - originalLookupLabel: 89 - center: - x: -60.0 - y: -52.0 - z: -9.0 - color: '#e69423' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_1: - name: 17Networks_LH_ContA_IPS_1 - lookupLabel: 90 - originalLookupLabel: 90 - center: - x: -33.0 - y: -66.0 - z: 48.0 - color: '#e69424' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_2: - name: 17Networks_LH_ContA_IPS_2 - lookupLabel: 91 - originalLookupLabel: 91 - center: - x: -45.0 - y: -41.0 - z: 46.0 - color: '#e69425' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_3: - name: 17Networks_LH_ContA_IPS_3 - lookupLabel: 92 - originalLookupLabel: 92 - center: - x: -30.0 - y: -58.0 - z: 48.0 - color: '#e69426' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_4: - name: 17Networks_LH_ContA_IPS_4 - lookupLabel: 93 - originalLookupLabel: 93 - center: - x: -33.0 - y: -48.0 - z: 47.0 - color: '#e69427' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCd_1: - name: 17Networks_LH_ContA_PFCd_1 - lookupLabel: 94 - originalLookupLabel: 94 - center: - x: -27.0 - y: 5.0 - z: 56.0 - color: '#e69523' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFClv_1: - name: 17Networks_LH_ContA_PFClv_1 - lookupLabel: 95 - originalLookupLabel: 95 - center: - x: -41.0 - y: 41.0 - z: 14.0 - color: '#e69522' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_1: - name: 17Networks_LH_ContA_PFCl_1 - lookupLabel: 96 - originalLookupLabel: 96 - center: - x: -51.0 - y: 7.0 - z: 20.0 - color: '#e69524' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_2: - name: 17Networks_LH_ContA_PFCl_2 - lookupLabel: 97 - originalLookupLabel: 97 - center: - x: -45.0 - y: 21.0 - z: 25.0 - color: '#e69525' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_3: - name: 17Networks_LH_ContA_PFCl_3 - lookupLabel: 98 - originalLookupLabel: 98 - center: - x: -42.0 - y: 12.0 - z: 34.0 - color: '#e69526' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_4: - name: 17Networks_LH_ContA_PFCl_4 - lookupLabel: 99 - originalLookupLabel: 99 - center: - x: -49.0 - y: 2.0 - z: 38.0 - color: '#e69527' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_Cingm_1: - name: 17Networks_LH_ContA_Cingm_1 - lookupLabel: 100 - originalLookupLabel: 100 - center: - x: -3.0 - y: 6.0 - z: 29.0 - color: '#e79424' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContB_Temp_1: - name: 17Networks_LH_ContB_Temp_1 - lookupLabel: 101 - originalLookupLabel: 101 - center: - x: -61.0 - y: -35.0 - z: -17.0 - color: '#87324b' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_1: - name: 17Networks_LH_ContB_IPL_1 - lookupLabel: 102 - originalLookupLabel: 102 - center: - x: -54.0 - y: -50.0 - z: 45.0 - color: '#87324c' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_2: - name: 17Networks_LH_ContB_IPL_2 - lookupLabel: 103 - originalLookupLabel: 103 - center: - x: -42.0 - y: -52.0 - z: 48.0 - color: '#87324d' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_1: - name: 17Networks_LH_ContB_PFClv_1 - lookupLabel: 104 - originalLookupLabel: 104 - center: - x: -42.0 - y: 49.0 - z: -6.0 - color: '#88324b' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_2: - name: 17Networks_LH_ContB_PFClv_2 - lookupLabel: 105 - originalLookupLabel: 105 - center: - x: -29.0 - y: 57.0 - z: 7.0 - color: '#88324c' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCmp_1: - name: 17Networks_LH_ContB_PFCmp_1 - lookupLabel: 106 - originalLookupLabel: 106 - center: - x: -4.0 - y: 27.0 - z: 47.0 - color: '#88324d' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContC_pCun_1: - name: 17Networks_LH_ContC_pCun_1 - lookupLabel: 107 - originalLookupLabel: 107 - center: - x: -11.0 - y: -69.0 - z: 31.0 - color: '#778cb1' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_2: - name: 17Networks_LH_ContC_pCun_2 - lookupLabel: 108 - originalLookupLabel: 108 - center: - x: -9.0 - y: -76.0 - z: 44.0 - color: '#778cb2' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_3: - name: 17Networks_LH_ContC_pCun_3 - lookupLabel: 109 - originalLookupLabel: 109 - center: - x: -5.0 - y: -65.0 - z: 52.0 - color: '#778cb3' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_Cingp_1: - name: 17Networks_LH_ContC_Cingp_1 - lookupLabel: 110 - originalLookupLabel: 110 - center: - x: -5.0 - y: -28.0 - z: 28.0 - color: '#778cb4' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_DefaultA_IPL_1: - name: 17Networks_LH_DefaultA_IPL_1 - lookupLabel: 111 - originalLookupLabel: 111 - center: - x: -46.0 - y: -66.0 - z: 41.0 - color: '#ffff01' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_1: - name: 17Networks_LH_DefaultA_PFCd_1 - lookupLabel: 112 - originalLookupLabel: 112 - center: - x: -23.0 - y: 31.0 - z: 43.0 - color: '#ffff02' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_2: - name: 17Networks_LH_DefaultA_PFCd_2 - lookupLabel: 113 - originalLookupLabel: 113 - center: - x: -25.0 - y: 19.0 - z: 53.0 - color: '#ffff03' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_1: - name: 17Networks_LH_DefaultA_pCunPCC_1 - lookupLabel: 114 - originalLookupLabel: 114 - center: - x: -5.0 - y: -52.0 - z: 16.0 - color: '#fffe01' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_2: - name: 17Networks_LH_DefaultA_pCunPCC_2 - lookupLabel: 115 - originalLookupLabel: 115 - center: - x: -5.0 - y: -56.0 - z: 28.0 - color: '#fffe02' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_3: - name: 17Networks_LH_DefaultA_pCunPCC_3 - lookupLabel: 116 - originalLookupLabel: 116 - center: - x: -5.0 - y: -38.0 - z: 35.0 - color: '#fffe03' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_4: - name: 17Networks_LH_DefaultA_pCunPCC_4 - lookupLabel: 117 - originalLookupLabel: 117 - center: - x: -3.0 - y: -17.0 - z: 37.0 - color: '#fffe04' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_5: - name: 17Networks_LH_DefaultA_pCunPCC_5 - lookupLabel: 118 - originalLookupLabel: 118 - center: - x: -6.0 - y: -55.0 - z: 41.0 - color: '#fffe05' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_1: - name: 17Networks_LH_DefaultA_PFCm_1 - lookupLabel: 119 - originalLookupLabel: 119 - center: - x: -6.0 - y: 36.0 - z: -10.0 - color: '#feff01' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_2: - name: 17Networks_LH_DefaultA_PFCm_2 - lookupLabel: 120 - originalLookupLabel: 120 - center: - x: -6.0 - y: 60.0 - z: -1.0 - color: '#feff02' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_3: - name: 17Networks_LH_DefaultA_PFCm_3 - lookupLabel: 121 - originalLookupLabel: 121 - center: - x: -6.0 - y: 44.0 - z: 7.0 - color: '#feff03' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultB_Temp_1: - name: 17Networks_LH_DefaultB_Temp_1 - lookupLabel: 122 - originalLookupLabel: 122 - center: - x: -43.0 - y: 12.0 - z: -35.0 - color: '#cd3e4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_2: - name: 17Networks_LH_DefaultB_Temp_2 - lookupLabel: 123 - originalLookupLabel: 123 - center: - x: -58.0 - y: -8.0 - z: -21.0 - color: '#cd3e50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_3: - name: 17Networks_LH_DefaultB_Temp_3 - lookupLabel: 124 - originalLookupLabel: 124 - center: - x: -52.0 - y: -21.0 - z: -8.0 - color: '#cd3e51' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_4: - name: 17Networks_LH_DefaultB_Temp_4 - lookupLabel: 125 - originalLookupLabel: 125 - center: - x: -61.0 - y: -35.0 - z: -3.0 - color: '#cd3e52' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_1: - name: 17Networks_LH_DefaultB_IPL_1 - lookupLabel: 126 - originalLookupLabel: 126 - center: - x: -45.0 - y: -61.0 - z: 24.0 - color: '#cd3e53' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_2: - name: 17Networks_LH_DefaultB_IPL_2 - lookupLabel: 127 - originalLookupLabel: 127 - center: - x: -57.0 - y: -54.0 - z: 28.0 - color: '#cd3e54' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_1: - name: 17Networks_LH_DefaultB_PFCd_1 - lookupLabel: 128 - originalLookupLabel: 128 - center: - x: -18.0 - y: 63.0 - z: 19.0 - color: '#cd3f4d' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_2: - name: 17Networks_LH_DefaultB_PFCd_2 - lookupLabel: 129 - originalLookupLabel: 129 - center: - x: -4.0 - y: 50.0 - z: 31.0 - color: '#cd3f4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_3: - name: 17Networks_LH_DefaultB_PFCd_3 - lookupLabel: 130 - originalLookupLabel: 130 - center: - x: -14.0 - y: 46.0 - z: 45.0 - color: '#cd3f50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_4: - name: 17Networks_LH_DefaultB_PFCd_4 - lookupLabel: 131 - originalLookupLabel: 131 - center: - x: -12.0 - y: 24.0 - z: 61.0 - color: '#cd3f51' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_5: - name: 17Networks_LH_DefaultB_PFCd_5 - lookupLabel: 132 - originalLookupLabel: 132 - center: - x: -6.0 - y: 10.0 - z: 64.0 - color: '#cd3f52' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCl_1: - name: 17Networks_LH_DefaultB_PFCl_1 - lookupLabel: 133 - originalLookupLabel: 133 - center: - x: -39.0 - y: 19.0 - z: 50.0 - color: '#cd3f53' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCl_2: - name: 17Networks_LH_DefaultB_PFCl_2 - lookupLabel: 134 - originalLookupLabel: 134 - center: - x: -42.0 - y: 7.0 - z: 49.0 - color: '#cd3f54' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_1: - name: 17Networks_LH_DefaultB_PFCv_1 - lookupLabel: 135 - originalLookupLabel: 135 - center: - x: -35.0 - y: 20.0 - z: -13.0 - color: '#ce3e4d' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_2: - name: 17Networks_LH_DefaultB_PFCv_2 - lookupLabel: 136 - originalLookupLabel: 136 - center: - x: -32.0 - y: 41.0 - z: -13.0 - color: '#ce3e4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_3: - name: 17Networks_LH_DefaultB_PFCv_3 - lookupLabel: 137 - originalLookupLabel: 137 - center: - x: -46.0 - y: 31.0 - z: -10.0 - color: '#ce3e50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_4: - name: 17Networks_LH_DefaultB_PFCv_4 - lookupLabel: 138 - originalLookupLabel: 138 - center: - x: -48.0 - y: 28.0 - z: 1.0 - color: '#ce3e51' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_5: - name: 17Networks_LH_DefaultB_PFCv_5 - lookupLabel: 139 - originalLookupLabel: 139 - center: - x: -54.0 - y: 19.0 - z: 12.0 - color: '#ce3e52' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultC_IPL_1: - name: 17Networks_LH_DefaultC_IPL_1 - lookupLabel: 140 - originalLookupLabel: 140 - center: - x: -38.0 - y: -81.0 - z: 33.0 - color: '#000083' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_1: - name: 17Networks_LH_DefaultC_Rsp_1 - lookupLabel: 141 - originalLookupLabel: 141 - center: - x: -11.0 - y: -51.0 - z: 6.0 - color: '#000084' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_2: - name: 17Networks_LH_DefaultC_Rsp_2 - lookupLabel: 142 - originalLookupLabel: 142 - center: - x: -13.0 - y: -61.0 - z: 19.0 - color: '#000085' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_1: - name: 17Networks_LH_DefaultC_PHC_1 - lookupLabel: 143 - originalLookupLabel: 143 - center: - x: -21.0 - y: -18.0 - z: -27.0 - color: '#000183' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_2: - name: 17Networks_LH_DefaultC_PHC_2 - lookupLabel: 144 - originalLookupLabel: 144 - center: - x: -29.0 - y: -34.0 - z: -17.0 - color: '#000184' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_3: - name: 17Networks_LH_DefaultC_PHC_3 - lookupLabel: 145 - originalLookupLabel: 145 - center: - x: -16.0 - y: -38.0 - z: -11.0 - color: '#000185' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_TempPar_1: - name: 17Networks_LH_TempPar_1 - lookupLabel: 146 - originalLookupLabel: 146 - center: - x: -52.0 - y: 8.0 - z: -12.0 - color: '#0c30fe' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_2: - name: 17Networks_LH_TempPar_2 - lookupLabel: 147 - originalLookupLabel: 147 - center: - x: -57.0 - y: -9.0 - z: -6.0 - color: '#0929f9' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_3: - name: 17Networks_LH_TempPar_3 - lookupLabel: 148 - originalLookupLabel: 148 - center: - x: -60.0 - y: -28.0 - z: 2.0 - color: '#0929fa' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_4: - name: 17Networks_LH_TempPar_4 - lookupLabel: 149 - originalLookupLabel: 149 - center: - x: -56.0 - y: -44.0 - z: 9.0 - color: '#0929fb' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_5: - name: 17Networks_LH_TempPar_5 - lookupLabel: 150 - originalLookupLabel: 150 - center: - x: -54.0 - y: -53.0 - z: 13.0 - color: '#0929fc' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_RH_VisCent_ExStr_1: - name: 17Networks_RH_VisCent_ExStr_1 - lookupLabel: 151 - originalLookupLabel: 151 - center: - x: 35.0 - y: -44.0 - z: -20.0 - color: '#781383' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_2: - name: 17Networks_RH_VisCent_ExStr_2 - lookupLabel: 152 - originalLookupLabel: 152 - center: - x: 26.0 - y: -54.0 - z: -9.0 - color: '#781384' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_3: - name: 17Networks_RH_VisCent_ExStr_3 - lookupLabel: 153 - originalLookupLabel: 153 - center: - x: 28.0 - y: -75.0 - z: -13.0 - color: '#781385' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_4: - name: 17Networks_RH_VisCent_ExStr_4 - lookupLabel: 154 - originalLookupLabel: 154 - center: - x: 47.0 - y: -76.0 - z: -11.0 - color: '#781386' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_5: - name: 17Networks_RH_VisCent_ExStr_5 - lookupLabel: 155 - originalLookupLabel: 155 - center: - x: 7.0 - y: -88.0 - z: -9.0 - color: '#781388' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_6: - name: 17Networks_RH_VisCent_ExStr_6 - lookupLabel: 156 - originalLookupLabel: 156 - center: - x: 24.0 - y: -95.0 - z: -10.0 - color: '#781389' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_Striate_1: - name: 17Networks_RH_VisCent_Striate_1 - lookupLabel: 157 - originalLookupLabel: 157 - center: - x: 10.0 - y: -95.0 - z: 2.0 - color: '#78138a' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_7: - name: 17Networks_RH_VisCent_ExStr_7 - lookupLabel: 158 - originalLookupLabel: 158 - center: - x: 35.0 - y: -89.0 - z: 1.0 - color: '#78138b' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_8: - name: 17Networks_RH_VisCent_ExStr_8 - lookupLabel: 159 - originalLookupLabel: 159 - center: - x: 18.0 - y: -97.0 - z: 14.0 - color: '#78138c' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_9: - name: 17Networks_RH_VisCent_ExStr_9 - lookupLabel: 160 - originalLookupLabel: 160 - center: - x: 43.0 - y: -79.0 - z: 10.0 - color: '#78138d' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_10: - name: 17Networks_RH_VisCent_ExStr_10 - lookupLabel: 161 - originalLookupLabel: 161 - center: - x: 27.0 - y: -86.0 - z: 23.0 - color: '#78138e' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisPeri_ExStrInf_1: - name: 17Networks_RH_VisPeri_ExStrInf_1 - lookupLabel: 162 - originalLookupLabel: 162 - center: - x: 18.0 - y: -36.0 - z: -12.0 - color: '#fe0000' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_2: - name: 17Networks_RH_VisPeri_ExStrInf_2 - lookupLabel: 163 - originalLookupLabel: 163 - center: - x: 9.0 - y: -72.0 - z: -5.0 - color: '#fe0002' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_3: - name: 17Networks_RH_VisPeri_ExStrInf_3 - lookupLabel: 164 - originalLookupLabel: 164 - center: - x: 13.0 - y: -58.0 - z: -3.0 - color: '#fe0003' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_4: - name: 17Networks_RH_VisPeri_ExStrInf_4 - lookupLabel: 165 - originalLookupLabel: 165 - center: - x: 17.0 - y: -45.0 - z: -1.0 - color: '#fe0004' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_1: - name: 17Networks_RH_VisPeri_StriCal_1 - lookupLabel: 166 - originalLookupLabel: 166 - center: - x: 9.0 - y: -74.0 - z: 9.0 - color: '#fe0005' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_2: - name: 17Networks_RH_VisPeri_StriCal_2 - lookupLabel: 167 - originalLookupLabel: 167 - center: - x: 22.0 - y: -60.0 - z: 7.0 - color: '#fe0006' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_1: - name: 17Networks_RH_VisPeri_ExStrSup_1 - lookupLabel: 168 - originalLookupLabel: 168 - center: - x: 9.0 - y: -88.0 - z: 24.0 - color: '#fe0007' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_2: - name: 17Networks_RH_VisPeri_ExStrSup_2 - lookupLabel: 169 - originalLookupLabel: 169 - center: - x: 13.0 - y: -73.0 - z: 26.0 - color: '#fe0008' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_3: - name: 17Networks_RH_VisPeri_ExStrSup_3 - lookupLabel: 170 - originalLookupLabel: 170 - center: - x: 20.0 - y: -84.0 - z: 41.0 - color: '#fe0101' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_SomMotA_1: - name: 17Networks_RH_SomMotA_1 - lookupLabel: 171 - originalLookupLabel: 171 - center: - x: 52.0 - y: -13.0 - z: 50.0 - color: '#4683af' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_2: - name: 17Networks_RH_SomMotA_2 - lookupLabel: 172 - originalLookupLabel: 172 - center: - x: 46.0 - y: -10.0 - z: 48.0 - color: '#4683b0' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_3: - name: 17Networks_RH_SomMotA_3 - lookupLabel: 173 - originalLookupLabel: 173 - center: - x: 50.0 - y: -24.0 - z: 54.0 - color: '#4683b1' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_4: - name: 17Networks_RH_SomMotA_4 - lookupLabel: 174 - originalLookupLabel: 174 - center: - x: 7.0 - y: -11.0 - z: 50.0 - color: '#4683b2' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_5: - name: 17Networks_RH_SomMotA_5 - lookupLabel: 175 - originalLookupLabel: 175 - center: - x: 39.0 - y: -25.0 - z: 57.0 - color: '#4683b3' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_6: - name: 17Networks_RH_SomMotA_6 - lookupLabel: 176 - originalLookupLabel: 176 - center: - x: 33.0 - y: -34.0 - z: 62.0 - color: '#4683b4' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_7: - name: 17Networks_RH_SomMotA_7 - lookupLabel: 177 - originalLookupLabel: 177 - center: - x: 37.0 - y: -20.0 - z: 64.0 - color: '#4683b6' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_8: - name: 17Networks_RH_SomMotA_8 - lookupLabel: 178 - originalLookupLabel: 178 - center: - x: 9.0 - y: -40.0 - z: 65.0 - color: '#4683b7' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_9: - name: 17Networks_RH_SomMotA_9 - lookupLabel: 179 - originalLookupLabel: 179 - center: - x: 5.0 - y: -23.0 - z: 65.0 - color: '#4683b8' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_10: - name: 17Networks_RH_SomMotA_10 - lookupLabel: 180 - originalLookupLabel: 180 - center: - x: 24.0 - y: -28.0 - z: 66.0 - color: '#4683b9' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_11: - name: 17Networks_RH_SomMotA_11 - lookupLabel: 181 - originalLookupLabel: 181 - center: - x: 23.0 - y: -35.0 - z: 70.0 - color: '#4683ba' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_12: - name: 17Networks_RH_SomMotA_12 - lookupLabel: 182 - originalLookupLabel: 182 - center: - x: 22.0 - y: -24.0 - z: 68.0 - color: '#4683bb' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_13: - name: 17Networks_RH_SomMotA_13 - lookupLabel: 183 - originalLookupLabel: 183 - center: - x: 18.0 - y: -10.0 - z: 71.0 - color: '#4683bc' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_14: - name: 17Networks_RH_SomMotA_14 - lookupLabel: 184 - originalLookupLabel: 184 - center: - x: 12.0 - y: -37.0 - z: 77.0 - color: '#4684b5' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_15: - name: 17Networks_RH_SomMotA_15 - lookupLabel: 185 - originalLookupLabel: 185 - center: - x: 13.0 - y: -29.0 - z: 73.0 - color: '#4684b6' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotB_Aud_1: - name: 17Networks_RH_SomMotB_Aud_1 - lookupLabel: 186 - originalLookupLabel: 186 - center: - x: 53.0 - y: -10.0 - z: 3.0 - color: '#2bcda1' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_1: - name: 17Networks_RH_SomMotB_S2_1 - lookupLabel: 187 - originalLookupLabel: 187 - center: - x: 35.0 - y: -21.0 - z: 14.0 - color: '#2bcda2' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_2: - name: 17Networks_RH_SomMotB_S2_2 - lookupLabel: 188 - originalLookupLabel: 188 - center: - x: 40.0 - y: -10.0 - z: 15.0 - color: '#2bcda3' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_2: - name: 17Networks_RH_SomMotB_Aud_2 - lookupLabel: 189 - originalLookupLabel: 189 - center: - x: 61.0 - y: -24.0 - z: 11.0 - color: '#2bcda5' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_3: - name: 17Networks_RH_SomMotB_S2_3 - lookupLabel: 190 - originalLookupLabel: 190 - center: - x: 42.0 - y: -28.0 - z: 18.0 - color: '#2bcda6' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_4: - name: 17Networks_RH_SomMotB_S2_4 - lookupLabel: 191 - originalLookupLabel: 191 - center: - x: 59.0 - y: 0.0 - z: 11.0 - color: '#2bcda7' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_5: - name: 17Networks_RH_SomMotB_S2_5 - lookupLabel: 192 - originalLookupLabel: 192 - center: - x: 54.0 - y: -14.0 - z: 16.0 - color: '#2bcda8' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_1: - name: 17Networks_RH_SomMotB_Cent_1 - lookupLabel: 193 - originalLookupLabel: 193 - center: - x: 61.0 - y: -4.0 - z: 26.0 - color: '#2bcda9' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_2: - name: 17Networks_RH_SomMotB_Cent_2 - lookupLabel: 194 - originalLookupLabel: 194 - center: - x: 52.0 - y: -8.0 - z: 37.0 - color: '#2bcdaa' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_DorsAttnA_TempOcc_1: - name: 17Networks_RH_DorsAttnA_TempOcc_1 - lookupLabel: 195 - originalLookupLabel: 195 - center: - x: 50.0 - y: -53.0 - z: -16.0 - color: '#4a9c3e' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_1: - name: 17Networks_RH_DorsAttnA_ParOcc_1 - lookupLabel: 196 - originalLookupLabel: 196 - center: - x: 49.0 - y: -64.0 - z: 4.0 - color: '#4a9c3f' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_2: - name: 17Networks_RH_DorsAttnA_ParOcc_2 - lookupLabel: 197 - originalLookupLabel: 197 - center: - x: 54.0 - y: -56.0 - z: 14.0 - color: '#4a9c40' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_3: - name: 17Networks_RH_DorsAttnA_ParOcc_3 - lookupLabel: 198 - originalLookupLabel: 198 - center: - x: 35.0 - y: -77.0 - z: 25.0 - color: '#4b9b3c' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_1: - name: 17Networks_RH_DorsAttnA_SPL_1 - lookupLabel: 199 - originalLookupLabel: 199 - center: - x: 27.0 - y: -67.0 - z: 42.0 - color: '#4b9b3e' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_2: - name: 17Networks_RH_DorsAttnA_SPL_2 - lookupLabel: 200 - originalLookupLabel: 200 - center: - x: 16.0 - y: -72.0 - z: 54.0 - color: '#4b9b3f' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_3: - name: 17Networks_RH_DorsAttnA_SPL_3 - lookupLabel: 201 - originalLookupLabel: 201 - center: - x: 34.0 - y: -50.0 - z: 52.0 - color: '#4b9b40' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_4: - name: 17Networks_RH_DorsAttnA_SPL_4 - lookupLabel: 202 - originalLookupLabel: 202 - center: - x: 26.0 - y: -59.0 - z: 61.0 - color: '#4b9b41' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnB_PostC_1: - name: 17Networks_RH_DorsAttnB_PostC_1 - lookupLabel: 203 - originalLookupLabel: 203 - center: - x: 58.0 - y: -14.0 - z: 35.0 - color: '#01760e' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_2: - name: 17Networks_RH_DorsAttnB_PostC_2 - lookupLabel: 204 - originalLookupLabel: 204 - center: - x: 54.0 - y: -24.0 - z: 43.0 - color: '#017610' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_3: - name: 17Networks_RH_DorsAttnB_PostC_3 - lookupLabel: 205 - originalLookupLabel: 205 - center: - x: 39.0 - y: -32.0 - z: 46.0 - color: '#017611' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_4: - name: 17Networks_RH_DorsAttnB_PostC_4 - lookupLabel: 206 - originalLookupLabel: 206 - center: - x: 33.0 - y: -41.0 - z: 64.0 - color: '#017612' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_5: - name: 17Networks_RH_DorsAttnB_PostC_5 - lookupLabel: 207 - originalLookupLabel: 207 - center: - x: 8.0 - y: -56.0 - z: 61.0 - color: '#017613' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_6: - name: 17Networks_RH_DorsAttnB_PostC_6 - lookupLabel: 208 - originalLookupLabel: 208 - center: - x: 21.0 - y: -48.0 - z: 71.0 - color: '#017614' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_1: - name: 17Networks_RH_DorsAttnB_FEF_1 - lookupLabel: 209 - originalLookupLabel: 209 - center: - x: 35.0 - y: -4.0 - z: 52.0 - color: '#01770f' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_2: - name: 17Networks_RH_DorsAttnB_FEF_2 - lookupLabel: 210 - originalLookupLabel: 210 - center: - x: 26.0 - y: -9.0 - z: 62.0 - color: '#017710' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_SalVentAttnA_ParOper_1: - name: 17Networks_RH_SalVentAttnA_ParOper_1 - lookupLabel: 211 - originalLookupLabel: 211 - center: - x: 64.0 - y: -33.0 - z: 23.0 - color: '#c43afa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_2: - name: 17Networks_RH_SalVentAttnA_ParOper_2 - lookupLabel: 212 - originalLookupLabel: 212 - center: - x: 53.0 - y: -29.0 - z: 26.0 - color: '#c43afb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_3: - name: 17Networks_RH_SalVentAttnA_ParOper_3 - lookupLabel: 213 - originalLookupLabel: 213 - center: - x: 62.0 - y: -20.0 - z: 24.0 - color: '#c43afc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_4: - name: 17Networks_RH_SalVentAttnA_ParOper_4 - lookupLabel: 214 - originalLookupLabel: 214 - center: - x: 63.0 - y: -26.0 - z: 39.0 - color: '#c43afd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_PrC_1: - name: 17Networks_RH_SalVentAttnA_PrC_1 - lookupLabel: 215 - originalLookupLabel: 215 - center: - x: 51.0 - y: 4.0 - z: 40.0 - color: '#c439fb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_1: - name: 17Networks_RH_SalVentAttnA_Ins_1 - lookupLabel: 216 - originalLookupLabel: 216 - center: - x: 40.0 - y: 5.0 - z: -11.0 - color: '#c33afb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_2: - name: 17Networks_RH_SalVentAttnA_Ins_2 - lookupLabel: 217 - originalLookupLabel: 217 - center: - x: 40.0 - y: -11.0 - z: -2.0 - color: '#c33afc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_3: - name: 17Networks_RH_SalVentAttnA_Ins_3 - lookupLabel: 218 - originalLookupLabel: 218 - center: - x: 39.0 - y: 4.0 - z: 7.0 - color: '#c33afd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_1: - name: 17Networks_RH_SalVentAttnA_FrOper_1 - lookupLabel: 219 - originalLookupLabel: 219 - center: - x: 50.0 - y: 5.0 - z: 4.0 - color: '#c33afe' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_1: - name: 17Networks_RH_SalVentAttnA_FrMed_1 - lookupLabel: 220 - originalLookupLabel: 220 - center: - x: 7.0 - y: 9.0 - z: 41.0 - color: '#c339f9' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_1: - name: 17Networks_RH_SalVentAttnA_ParMed_1 - lookupLabel: 221 - originalLookupLabel: 221 - center: - x: 7.0 - y: -16.0 - z: 40.0 - color: '#c339fb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_2: - name: 17Networks_RH_SalVentAttnA_ParMed_2 - lookupLabel: 222 - originalLookupLabel: 222 - center: - x: 11.0 - y: -37.0 - z: 45.0 - color: '#c339fc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_3: - name: 17Networks_RH_SalVentAttnA_ParMed_3 - lookupLabel: 223 - originalLookupLabel: 223 - center: - x: 11.0 - y: -35.0 - z: 53.0 - color: '#c339fd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_2: - name: 17Networks_RH_SalVentAttnA_FrMed_2 - lookupLabel: 224 - originalLookupLabel: 224 - center: - x: 6.0 - y: 0.0 - z: 64.0 - color: '#c339fe' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_3: - name: 17Networks_RH_SalVentAttnA_FrMed_3 - lookupLabel: 225 - originalLookupLabel: 225 - center: - x: 16.0 - y: 6.0 - z: 69.0 - color: '#c339ff' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnB_IPL_1: - name: 17Networks_RH_SalVentAttnB_IPL_1 - lookupLabel: 226 - originalLookupLabel: 226 - center: - x: 62.0 - y: -38.0 - z: 38.0 - color: '#fe98d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFClv_1: - name: 17Networks_RH_SalVentAttnB_PFClv_1 - lookupLabel: 227 - originalLookupLabel: 227 - center: - x: 44.0 - y: 44.0 - z: 11.0 - color: '#fe97d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_1: - name: 17Networks_RH_SalVentAttnB_PFCl_1 - lookupLabel: 228 - originalLookupLabel: 228 - center: - x: 35.0 - y: 45.0 - z: 27.0 - color: '#fe97d7' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_2: - name: 17Networks_RH_SalVentAttnB_PFCl_2 - lookupLabel: 229 - originalLookupLabel: 229 - center: - x: 26.0 - y: 51.0 - z: 28.0 - color: '#fe97d8' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_1: - name: 17Networks_RH_SalVentAttnB_Ins_1 - lookupLabel: 230 - originalLookupLabel: 230 - center: - x: 34.0 - y: 21.0 - z: -9.0 - color: '#fe98d7' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_2: - name: 17Networks_RH_SalVentAttnB_Ins_2 - lookupLabel: 231 - originalLookupLabel: 231 - center: - x: 38.0 - y: 21.0 - z: 4.0 - color: '#fe98d8' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCmp_1: - name: 17Networks_RH_SalVentAttnB_PFCmp_1 - lookupLabel: 232 - originalLookupLabel: 232 - center: - x: 7.0 - y: 30.0 - z: 28.0 - color: '#fe99d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCmp_2: - name: 17Networks_RH_SalVentAttnB_PFCmp_2 - lookupLabel: 233 - originalLookupLabel: 233 - center: - x: 5.0 - y: 19.0 - z: 54.0 - color: '#fe99d7' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_LimbicB_OFC_1: - name: 17Networks_RH_LimbicB_OFC_1 - lookupLabel: 234 - originalLookupLabel: 234 - center: - x: 13.0 - y: 27.0 - z: -21.0 - color: '#7a8732' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_2: - name: 17Networks_RH_LimbicB_OFC_2 - lookupLabel: 235 - originalLookupLabel: 235 - center: - x: 26.0 - y: 21.0 - z: -20.0 - color: '#7a8734' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_3: - name: 17Networks_RH_LimbicB_OFC_3 - lookupLabel: 236 - originalLookupLabel: 236 - center: - x: 4.0 - y: 25.0 - z: -22.0 - color: '#7a8735' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_4: - name: 17Networks_RH_LimbicB_OFC_4 - lookupLabel: 237 - originalLookupLabel: 237 - center: - x: 10.0 - y: 52.0 - z: -21.0 - color: '#7a8736' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_5: - name: 17Networks_RH_LimbicB_OFC_5 - lookupLabel: 238 - originalLookupLabel: 238 - center: - x: 7.0 - y: 64.0 - z: -7.0 - color: '#7a8737' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicA_TempPole_1: - name: 17Networks_RH_LimbicA_TempPole_1 - lookupLabel: 239 - originalLookupLabel: 239 - center: - x: 35.0 - y: -1.0 - z: -44.0 - color: '#dcf8a4' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_2: - name: 17Networks_RH_LimbicA_TempPole_2 - lookupLabel: 240 - originalLookupLabel: 240 - center: - x: 29.0 - y: 12.0 - z: -34.0 - color: '#dcf8a6' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_3: - name: 17Networks_RH_LimbicA_TempPole_3 - lookupLabel: 241 - originalLookupLabel: 241 - center: - x: 26.0 - y: -9.0 - z: -33.0 - color: '#dcf8a7' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_4: - name: 17Networks_RH_LimbicA_TempPole_4 - lookupLabel: 242 - originalLookupLabel: 242 - center: - x: 52.0 - y: -14.0 - z: -34.0 - color: '#dcf8a8' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_5: - name: 17Networks_RH_LimbicA_TempPole_5 - lookupLabel: 243 - originalLookupLabel: 243 - center: - x: 42.0 - y: -20.0 - z: -28.0 - color: '#dcf8a9' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_6: - name: 17Networks_RH_LimbicA_TempPole_6 - lookupLabel: 244 - originalLookupLabel: 244 - center: - x: 46.0 - y: 10.0 - z: -16.0 - color: '#dcf8aa' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_ContA_Temp_1: - name: 17Networks_RH_ContA_Temp_1 - lookupLabel: 245 - originalLookupLabel: 245 - center: - x: 60.0 - y: -53.0 - z: -4.0 - color: '#e69422' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_1: - name: 17Networks_RH_ContA_IPS_1 - lookupLabel: 246 - originalLookupLabel: 246 - center: - x: 35.0 - y: -70.0 - z: 45.0 - color: '#e69323' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_2: - name: 17Networks_RH_ContA_IPS_2 - lookupLabel: 247 - originalLookupLabel: 247 - center: - x: 52.0 - y: -34.0 - z: 52.0 - color: '#e69324' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_3: - name: 17Networks_RH_ContA_IPS_3 - lookupLabel: 248 - originalLookupLabel: 248 - center: - x: 40.0 - y: -41.0 - z: 45.0 - color: '#e69325' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCd_1: - name: 17Networks_RH_ContA_PFCd_1 - lookupLabel: 249 - originalLookupLabel: 249 - center: - x: 25.0 - y: 8.0 - z: 58.0 - color: '#e69322' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_1: - name: 17Networks_RH_ContA_PFCl_1 - lookupLabel: 250 - originalLookupLabel: 250 - center: - x: 53.0 - y: 13.0 - z: 14.0 - color: '#e59423' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_2: - name: 17Networks_RH_ContA_PFCl_2 - lookupLabel: 251 - originalLookupLabel: 251 - center: - x: 48.0 - y: 31.0 - z: 21.0 - color: '#e59424' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_3: - name: 17Networks_RH_ContA_PFCl_3 - lookupLabel: 252 - originalLookupLabel: 252 - center: - x: 49.0 - y: 8.0 - z: 25.0 - color: '#e59425' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_4: - name: 17Networks_RH_ContA_PFCl_4 - lookupLabel: 253 - originalLookupLabel: 253 - center: - x: 41.0 - y: 15.0 - z: 30.0 - color: '#e59426' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_Cingm_1: - name: 17Networks_RH_ContA_Cingm_1 - lookupLabel: 254 - originalLookupLabel: 254 - center: - x: 5.0 - y: 1.0 - z: 30.0 - color: '#e59422' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContB_Temp_1: - name: 17Networks_RH_ContB_Temp_1 - lookupLabel: 255 - originalLookupLabel: 255 - center: - x: 62.0 - y: -34.0 - z: -17.0 - color: '#88334c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_1: - name: 17Networks_RH_ContB_IPL_1 - lookupLabel: 256 - originalLookupLabel: 256 - center: - x: 55.0 - y: -52.0 - z: 41.0 - color: '#87324a' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_2: - name: 17Networks_RH_ContB_IPL_2 - lookupLabel: 257 - originalLookupLabel: 257 - center: - x: 53.0 - y: -42.0 - z: 48.0 - color: '#87324b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_3: - name: 17Networks_RH_ContB_IPL_3 - lookupLabel: 258 - originalLookupLabel: 258 - center: - x: 41.0 - y: -54.0 - z: 48.0 - color: '#87324c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_1: - name: 17Networks_RH_ContB_PFCld_1 - lookupLabel: 259 - originalLookupLabel: 259 - center: - x: 39.0 - y: 33.0 - z: 38.0 - color: '#87314b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_2: - name: 17Networks_RH_ContB_PFCld_2 - lookupLabel: 260 - originalLookupLabel: 260 - center: - x: 43.0 - y: 15.0 - z: 47.0 - color: '#87314c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_3: - name: 17Networks_RH_ContB_PFCld_3 - lookupLabel: 261 - originalLookupLabel: 261 - center: - x: 31.0 - y: 17.0 - z: 53.0 - color: '#87314d' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_1: - name: 17Networks_RH_ContB_PFClv_1 - lookupLabel: 262 - originalLookupLabel: 262 - center: - x: 30.0 - y: 42.0 - z: -14.0 - color: '#87314a' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_2: - name: 17Networks_RH_ContB_PFClv_2 - lookupLabel: 263 - originalLookupLabel: 263 - center: - x: 22.0 - y: 63.0 - z: -7.0 - color: '#87314e' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_3: - name: 17Networks_RH_ContB_PFClv_3 - lookupLabel: 264 - originalLookupLabel: 264 - center: - x: 42.0 - y: 51.0 - z: -7.0 - color: '#87314f' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_4: - name: 17Networks_RH_ContB_PFClv_4 - lookupLabel: 265 - originalLookupLabel: 265 - center: - x: 30.0 - y: 57.0 - z: 7.0 - color: '#873150' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCmp_1: - name: 17Networks_RH_ContB_PFCmp_1 - lookupLabel: 266 - originalLookupLabel: 266 - center: - x: 5.0 - y: 40.0 - z: 43.0 - color: '#86324b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContC_pCun_1: - name: 17Networks_RH_ContC_pCun_1 - lookupLabel: 267 - originalLookupLabel: 267 - center: - x: 14.0 - y: -70.0 - z: 37.0 - color: '#778db1' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_2: - name: 17Networks_RH_ContC_pCun_2 - lookupLabel: 268 - originalLookupLabel: 268 - center: - x: 7.0 - y: -50.0 - z: 45.0 - color: '#778db2' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_3: - name: 17Networks_RH_ContC_pCun_3 - lookupLabel: 269 - originalLookupLabel: 269 - center: - x: 5.0 - y: -66.0 - z: 47.0 - color: '#778db3' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_Cingp_1: - name: 17Networks_RH_ContC_Cingp_1 - lookupLabel: 270 - originalLookupLabel: 270 - center: - x: 6.0 - y: -26.0 - z: 29.0 - color: '#778db4' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_DefaultA_Temp_1: - name: 17Networks_RH_DefaultA_Temp_1 - lookupLabel: 271 - originalLookupLabel: 271 - center: - x: 60.0 - y: -7.0 - z: -21.0 - color: '#feff02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_1: - name: 17Networks_RH_DefaultA_IPL_1 - lookupLabel: 272 - originalLookupLabel: 272 - center: - x: 53.0 - y: -52.0 - z: 24.0 - color: '#fffe02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_2: - name: 17Networks_RH_DefaultA_IPL_2 - lookupLabel: 273 - originalLookupLabel: 273 - center: - x: 47.0 - y: -65.0 - z: 42.0 - color: '#fffe03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCd_1: - name: 17Networks_RH_DefaultA_PFCd_1 - lookupLabel: 274 - originalLookupLabel: 274 - center: - x: 25.0 - y: 30.0 - z: 45.0 - color: '#ffff03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_1: - name: 17Networks_RH_DefaultA_pCunPCC_1 - lookupLabel: 275 - originalLookupLabel: 275 - center: - x: 5.0 - y: -54.0 - z: 24.0 - color: '#fffd01' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_2: - name: 17Networks_RH_DefaultA_pCunPCC_2 - lookupLabel: 276 - originalLookupLabel: 276 - center: - x: 6.0 - y: -37.0 - z: 36.0 - color: '#fffd02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_3: - name: 17Networks_RH_DefaultA_pCunPCC_3 - lookupLabel: 277 - originalLookupLabel: 277 - center: - x: 7.0 - y: -57.0 - z: 35.0 - color: '#fffd03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_1: - name: 17Networks_RH_DefaultA_PFCm_1 - lookupLabel: 278 - originalLookupLabel: 278 - center: - x: 5.0 - y: 39.0 - z: -11.0 - color: '#fdff01' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_2: - name: 17Networks_RH_DefaultA_PFCm_2 - lookupLabel: 279 - originalLookupLabel: 279 - center: - x: 8.0 - y: 43.0 - z: 5.0 - color: '#fdff02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_3: - name: 17Networks_RH_DefaultA_PFCm_3 - lookupLabel: 280 - originalLookupLabel: 280 - center: - x: 18.0 - y: 65.0 - z: 16.0 - color: '#fdff03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_4: - name: 17Networks_RH_DefaultA_PFCm_4 - lookupLabel: 281 - originalLookupLabel: 281 - center: - x: 6.0 - y: 55.0 - z: 17.0 - color: '#fdff04' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_5: - name: 17Networks_RH_DefaultA_PFCm_5 - lookupLabel: 282 - originalLookupLabel: 282 - center: - x: 6.0 - y: 25.0 - z: 18.0 - color: '#fdff05' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultB_Temp_1: - name: 17Networks_RH_DefaultB_Temp_1 - lookupLabel: 283 - originalLookupLabel: 283 - center: - x: 63.0 - y: -28.0 - z: -5.0 - color: '#ce3e50' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_AntTemp_1: - name: 17Networks_RH_DefaultB_AntTemp_1 - lookupLabel: 284 - originalLookupLabel: 284 - center: - x: 47.0 - y: 13.0 - z: -32.0 - color: '#ce3f4f' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_1: - name: 17Networks_RH_DefaultB_PFCd_1 - lookupLabel: 285 - originalLookupLabel: 285 - center: - x: 16.0 - y: 49.0 - z: 41.0 - color: '#ce3f50' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_2: - name: 17Networks_RH_DefaultB_PFCd_2 - lookupLabel: 286 - originalLookupLabel: 286 - center: - x: 14.0 - y: 24.0 - z: 60.0 - color: '#ce3f51' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_1: - name: 17Networks_RH_DefaultB_PFCv_1 - lookupLabel: 287 - originalLookupLabel: 287 - center: - x: 42.0 - y: 28.0 - z: -15.0 - color: '#cd3e4e' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_2: - name: 17Networks_RH_DefaultB_PFCv_2 - lookupLabel: 288 - originalLookupLabel: 288 - center: - x: 49.0 - y: 32.0 - z: -4.0 - color: '#cd3e4f' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_3: - name: 17Networks_RH_DefaultB_PFCv_3 - lookupLabel: 289 - originalLookupLabel: 289 - center: - x: 54.0 - y: 24.0 - z: 7.0 - color: '#cd3e50' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultC_IPL_1: - name: 17Networks_RH_DefaultC_IPL_1 - lookupLabel: 290 - originalLookupLabel: 290 - center: - x: 47.0 - y: -69.0 - z: 26.0 - color: '#000184' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_Rsp_1: - name: 17Networks_RH_DefaultC_Rsp_1 - lookupLabel: 291 - originalLookupLabel: 291 - center: - x: 10.0 - y: -51.0 - z: 10.0 - color: '#010083' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_Rsp_2: - name: 17Networks_RH_DefaultC_Rsp_2 - lookupLabel: 292 - originalLookupLabel: 292 - center: - x: 16.0 - y: -58.0 - z: 21.0 - color: '#010084' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_PHC_1: - name: 17Networks_RH_DefaultC_PHC_1 - lookupLabel: 293 - originalLookupLabel: 293 - center: - x: 28.0 - y: -28.0 - z: -20.0 - color: '#010085' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_TempPar_1: - name: 17Networks_RH_TempPar_1 - lookupLabel: 294 - originalLookupLabel: 294 - center: - x: 54.0 - y: -1.0 - z: -13.0 - color: '#0c30fc' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_2: - name: 17Networks_RH_TempPar_2 - lookupLabel: 295 - originalLookupLabel: 295 - center: - x: 50.0 - y: -19.0 - z: -9.0 - color: '#0c30fd' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_3: - name: 17Networks_RH_TempPar_3 - lookupLabel: 296 - originalLookupLabel: 296 - center: - x: 63.0 - y: -19.0 - z: 0.0 - color: '#0c30ff' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_4: - name: 17Networks_RH_TempPar_4 - lookupLabel: 297 - originalLookupLabel: 297 - center: - x: 51.0 - y: -32.0 - z: 1.0 - color: '#0929fa' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_5: - name: 17Networks_RH_TempPar_5 - lookupLabel: 298 - originalLookupLabel: 298 - center: - x: 57.0 - y: -45.0 - z: 9.0 - color: '#0929fb' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_6: - name: 17Networks_RH_TempPar_6 - lookupLabel: 299 - originalLookupLabel: 299 - center: - x: 60.0 - y: -37.0 - z: 12.0 - color: '#0929fc' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_7: - name: 17Networks_RH_TempPar_7 - lookupLabel: 300 - originalLookupLabel: 300 - center: - x: 55.0 - y: -43.0 - z: 26.0 - color: '#0929fd' - hemisphere: right - hasParent: - - RH_TempPar - versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_300Parcels_17Networks_order_FSLMNI152_1mm.nii.gz diff --git a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-300_res-1_desc-ordered_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-300_res-1_desc-ordered_dseg.yaml similarity index 99% rename from tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-300_res-1_desc-ordered_dseg.yaml rename to tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-300_res-1_desc-ordered_dseg.yaml index cb1ec8f39..3c3d9c354 100644 --- a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-300_res-1_desc-ordered_dseg.yaml +++ b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-300_res-1_desc-ordered_dseg.yaml @@ -1,14 +1,12 @@ name: Schaefer2018 abbreviation: Schaefer2018 versionIdentifier: '2018' -coordinateSpace: - name: MNI152 - abbreviation: FSLMNI152 - nativeUnit: mm +coordinateSpace: FSLMNI152 terminology: label: Schaefer2018_300Parcels_17Networks_order versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_300Parcels_17Networks_order_FSLMNI152_1mm.nii.gz + dataLocation: + schaefer2018_original_mni/Schaefer2018_300Parcels_17Networks_order_FSLMNI152_1mm.nii.gz entities: 17Networks_LH_VisCent_ExStr_1: name: 17Networks_LH_VisCent_ExStr_1 diff --git a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-400_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-400_dseg.yaml deleted file mode 100644 index 30ad70807..000000000 --- a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-400_dseg.yaml +++ /dev/null @@ -1,5081 +0,0 @@ -name: Schaefer2018 -abbreviation: Schaefer2018 -versionIdentifier: '2018' -coordinateSpace: MNI152NLin6Asym -terminology: - label: Schaefer2018_400Parcels_17Networks_order - entities: - LH_VisCent: - name: LH_VisCent - lookupLabel: -1 - hemisphere: left - center: - x: -27.4 - y: -84.9 - z: -1.3 - LH_VisPeri: - name: LH_VisPeri - lookupLabel: -2 - hemisphere: left - center: - x: -12.0 - y: -70.4 - z: 9.0 - LH_SomMotA: - name: LH_SomMotA - lookupLabel: -3 - hemisphere: left - center: - x: -22.1 - y: -24.7 - z: 62.1 - LH_SomMotB: - name: LH_SomMotB - lookupLabel: -4 - hemisphere: left - center: - x: -50.5 - y: -16.4 - z: 19.3 - LH_DorsAttnA: - name: LH_DorsAttnA - lookupLabel: -5 - hemisphere: left - center: - x: -33.2 - y: -62.7 - z: 24.9 - LH_DorsAttnB: - name: LH_DorsAttnB - lookupLabel: -6 - hemisphere: left - center: - x: -36.2 - y: -27.8 - z: 51.7 - LH_SalVentAttnA: - name: LH_SalVentAttnA - lookupLabel: -7 - hemisphere: left - center: - x: -31.6 - y: -13.5 - z: 27.9 - LH_SalVentAttnB: - name: LH_SalVentAttnB - lookupLabel: -8 - hemisphere: left - center: - x: -30.8 - y: 31.0 - z: 11.1 - LH_LimbicB: - name: LH_LimbicB - lookupLabel: -9 - hemisphere: left - center: - x: -13.0 - y: 36.6 - z: -17.8 - LH_LimbicA: - name: LH_LimbicA - lookupLabel: -10 - hemisphere: left - center: - x: -36.9 - y: -4.7 - z: -31.1 - LH_ContA: - name: LH_ContA - lookupLabel: -11 - hemisphere: left - center: - x: -38.6 - y: -16.2 - z: 33.5 - LH_ContB: - name: LH_ContB - lookupLabel: -12 - hemisphere: left - center: - x: -39.6 - y: -4.1 - z: 22.3 - LH_ContC: - name: LH_ContC - lookupLabel: -13 - hemisphere: left - center: - x: -6.8 - y: -54.8 - z: 36.4 - LH_DefaultA: - name: LH_DefaultA - lookupLabel: -14 - hemisphere: left - center: - x: -12.8 - y: -4.6 - z: 26.7 - LH_DefaultB: - name: LH_DefaultB - lookupLabel: -15 - hemisphere: left - center: - x: -38.1 - y: 10.2 - z: 13.2 - LH_DefaultC: - name: LH_DefaultC - lookupLabel: -16 - hemisphere: left - center: - x: -20.4 - y: -47.4 - z: 0.9 - LH_TempPar: - name: LH_TempPar - lookupLabel: -17 - hemisphere: left - center: - x: -57.3 - y: -30.8 - z: 3.7 - RH_VisCent: - name: RH_VisCent - lookupLabel: -18 - hemisphere: right - center: - x: 27.8 - y: -84.1 - z: -1.8 - RH_VisPeri: - name: RH_VisPeri - lookupLabel: -19 - hemisphere: right - center: - x: 15.1 - y: -64.3 - z: 8.7 - RH_SomMotA: - name: RH_SomMotA - lookupLabel: -20 - hemisphere: right - center: - x: 27.1 - y: -23.1 - z: 61.9 - RH_SomMotB: - name: RH_SomMotB - lookupLabel: -21 - hemisphere: right - center: - x: 50.1 - y: -11.5 - z: 15.4 - RH_DorsAttnA: - name: RH_DorsAttnA - lookupLabel: -22 - hemisphere: right - center: - x: 34.2 - y: -62.8 - z: 28.4 - RH_DorsAttnB: - name: RH_DorsAttnB - lookupLabel: -23 - hemisphere: right - center: - x: 36.6 - y: -29.4 - z: 48.8 - RH_SalVentAttnA: - name: RH_SalVentAttnA - lookupLabel: -24 - hemisphere: right - center: - x: 32.3 - y: -8.4 - z: 29.4 - RH_SalVentAttnB: - name: RH_SalVentAttnB - lookupLabel: -25 - hemisphere: right - center: - x: 33.0 - y: 27.3 - z: 18.4 - RH_LimbicB: - name: RH_LimbicB - lookupLabel: -26 - hemisphere: right - center: - x: 13.0 - y: 36.8 - z: -19.7 - RH_LimbicA: - name: RH_LimbicA - lookupLabel: -27 - hemisphere: right - center: - x: 38.7 - y: -3.7 - z: -34.0 - RH_ContA: - name: RH_ContA - lookupLabel: -28 - hemisphere: right - center: - x: 39.5 - y: -7.7 - z: 36.8 - RH_ContB: - name: RH_ContB - lookupLabel: -29 - hemisphere: right - center: - x: 41.9 - y: 2.7 - z: 23.3 - RH_ContC: - name: RH_ContC - lookupLabel: -30 - hemisphere: right - center: - x: 9.0 - y: -55.6 - z: 36.7 - RH_DefaultA: - name: RH_DefaultA - lookupLabel: -31 - hemisphere: right - center: - x: 18.4 - y: 0.1 - z: 21.1 - RH_DefaultB: - name: RH_DefaultB - lookupLabel: -32 - hemisphere: right - center: - x: 33.2 - y: 21.8 - z: 14.5 - RH_DefaultC: - name: RH_DefaultC - lookupLabel: -33 - hemisphere: right - center: - x: 28.8 - y: -48.2 - z: 4.5 - RH_TempPar: - name: RH_TempPar - lookupLabel: -34 - hemisphere: right - center: - x: 55.5 - y: -26.7 - z: 3.2 - 17Networks_LH_VisCent_ExStr_1: - name: 17Networks_LH_VisCent_ExStr_1 - lookupLabel: 1 - originalLookupLabel: 1 - center: - x: -36.0 - y: -62.0 - z: -17.0 - color: '#781283' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_2: - name: 17Networks_LH_VisCent_ExStr_2 - lookupLabel: 2 - originalLookupLabel: 2 - center: - x: -23.0 - y: -73.0 - z: -10.0 - color: '#781284' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_3: - name: 17Networks_LH_VisCent_ExStr_3 - lookupLabel: 3 - originalLookupLabel: 3 - center: - x: -36.0 - y: -81.0 - z: -16.0 - color: '#781285' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_4: - name: 17Networks_LH_VisCent_ExStr_4 - lookupLabel: 4 - originalLookupLabel: 4 - center: - x: -17.0 - y: -86.0 - z: -15.0 - color: '#781286' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_5: - name: 17Networks_LH_VisCent_ExStr_5 - lookupLabel: 5 - originalLookupLabel: 5 - center: - x: -24.0 - y: -97.0 - z: -12.0 - color: '#781288' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_6: - name: 17Networks_LH_VisCent_ExStr_6 - lookupLabel: 6 - originalLookupLabel: 6 - center: - x: -41.0 - y: -87.0 - z: -3.0 - color: '#781289' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_Striate_1: - name: 17Networks_LH_VisCent_Striate_1 - lookupLabel: 7 - originalLookupLabel: 7 - center: - x: -7.0 - y: -98.0 - z: -7.0 - color: '#78128a' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_7: - name: 17Networks_LH_VisCent_ExStr_7 - lookupLabel: 8 - originalLookupLabel: 8 - center: - x: -46.0 - y: -73.0 - z: 6.0 - color: '#78128b' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_8: - name: 17Networks_LH_VisCent_ExStr_8 - lookupLabel: 9 - originalLookupLabel: 9 - center: - x: -24.0 - y: -96.0 - z: 6.0 - color: '#78128c' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_9: - name: 17Networks_LH_VisCent_ExStr_9 - lookupLabel: 10 - originalLookupLabel: 10 - center: - x: -39.0 - y: -84.0 - z: 14.0 - color: '#78128d' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_10: - name: 17Networks_LH_VisCent_ExStr_10 - lookupLabel: 11 - originalLookupLabel: 11 - center: - x: -11.0 - y: -97.0 - z: 17.0 - color: '#78128e' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_11: - name: 17Networks_LH_VisCent_ExStr_11 - lookupLabel: 12 - originalLookupLabel: 12 - center: - x: -25.0 - y: -85.0 - z: 21.0 - color: '#781387' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisPeri_ExStrInf_1: - name: 17Networks_LH_VisPeri_ExStrInf_1 - lookupLabel: 13 - originalLookupLabel: 13 - center: - x: -24.0 - y: -55.0 - z: -8.0 - color: '#ff0101' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_2: - name: 17Networks_LH_VisPeri_ExStrInf_2 - lookupLabel: 14 - originalLookupLabel: 14 - center: - x: -12.0 - y: -62.0 - z: -5.0 - color: '#ff0102' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_3: - name: 17Networks_LH_VisPeri_ExStrInf_3 - lookupLabel: 15 - originalLookupLabel: 15 - center: - x: -7.0 - y: -76.0 - z: -6.0 - color: '#ff0103' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_4: - name: 17Networks_LH_VisPeri_ExStrInf_4 - lookupLabel: 16 - originalLookupLabel: 16 - center: - x: -13.0 - y: -43.0 - z: -5.0 - color: '#ff0104' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_5: - name: 17Networks_LH_VisPeri_ExStrInf_5 - lookupLabel: 17 - originalLookupLabel: 17 - center: - x: -14.0 - y: -57.0 - z: 1.0 - color: '#ff0105' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_1: - name: 17Networks_LH_VisPeri_StriCal_1 - lookupLabel: 18 - originalLookupLabel: 18 - center: - x: -5.0 - y: -88.0 - z: 2.0 - color: '#ff0106' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_2: - name: 17Networks_LH_VisPeri_StriCal_2 - lookupLabel: 19 - originalLookupLabel: 19 - center: - x: -7.0 - y: -74.0 - z: 9.0 - color: '#ff0107' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_1: - name: 17Networks_LH_VisPeri_ExStrSup_1 - lookupLabel: 20 - originalLookupLabel: 20 - center: - x: -19.0 - y: -65.0 - z: 7.0 - color: '#ff0200' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_2: - name: 17Networks_LH_VisPeri_ExStrSup_2 - lookupLabel: 21 - originalLookupLabel: 21 - center: - x: -3.0 - y: -84.0 - z: 24.0 - color: '#ff0201' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_3: - name: 17Networks_LH_VisPeri_ExStrSup_3 - lookupLabel: 22 - originalLookupLabel: 22 - center: - x: -12.0 - y: -71.0 - z: 20.0 - color: '#ff0202' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_4: - name: 17Networks_LH_VisPeri_ExStrSup_4 - lookupLabel: 23 - originalLookupLabel: 23 - center: - x: -16.0 - y: -89.0 - z: 33.0 - color: '#ff0203' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_5: - name: 17Networks_LH_VisPeri_ExStrSup_5 - lookupLabel: 24 - originalLookupLabel: 24 - center: - x: -12.0 - y: -81.0 - z: 36.0 - color: '#ff0204' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_SomMotA_1: - name: 17Networks_LH_SomMotA_1 - lookupLabel: 25 - originalLookupLabel: 25 - center: - x: -8.0 - y: -15.0 - z: 47.0 - color: '#4681b4' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_2: - name: 17Networks_LH_SomMotA_2 - lookupLabel: 26 - originalLookupLabel: 26 - center: - x: -41.0 - y: -14.0 - z: 47.0 - color: '#4682ad' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_3: - name: 17Networks_LH_SomMotA_3 - lookupLabel: 27 - originalLookupLabel: 27 - center: - x: -49.0 - y: -17.0 - z: 54.0 - color: '#4682ae' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_4: - name: 17Networks_LH_SomMotA_4 - lookupLabel: 28 - originalLookupLabel: 28 - center: - x: -48.0 - y: -29.0 - z: 58.0 - color: '#4682af' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_5: - name: 17Networks_LH_SomMotA_5 - lookupLabel: 29 - originalLookupLabel: 29 - center: - x: -39.0 - y: -25.0 - z: 53.0 - color: '#4682b0' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_6: - name: 17Networks_LH_SomMotA_6 - lookupLabel: 30 - originalLookupLabel: 30 - center: - x: -9.0 - y: -38.0 - z: 54.0 - color: '#4682b1' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_7: - name: 17Networks_LH_SomMotA_7 - lookupLabel: 31 - originalLookupLabel: 31 - center: - x: -4.0 - y: -25.0 - z: 56.0 - color: '#4682b2' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_8: - name: 17Networks_LH_SomMotA_8 - lookupLabel: 32 - originalLookupLabel: 32 - center: - x: -4.0 - y: -9.0 - z: 59.0 - color: '#4682b3' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_9: - name: 17Networks_LH_SomMotA_9 - lookupLabel: 33 - originalLookupLabel: 33 - center: - x: -36.0 - y: -19.0 - z: 65.0 - color: '#4682b5' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_10: - name: 17Networks_LH_SomMotA_10 - lookupLabel: 34 - originalLookupLabel: 34 - center: - x: -32.0 - y: -29.0 - z: 63.0 - color: '#4682b6' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_11: - name: 17Networks_LH_SomMotA_11 - lookupLabel: 35 - originalLookupLabel: 35 - center: - x: -30.0 - y: -38.0 - z: 65.0 - color: '#4682b7' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_12: - name: 17Networks_LH_SomMotA_12 - lookupLabel: 36 - originalLookupLabel: 36 - center: - x: -23.0 - y: -11.0 - z: 65.0 - color: '#4682b8' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_13: - name: 17Networks_LH_SomMotA_13 - lookupLabel: 37 - originalLookupLabel: 37 - center: - x: -19.0 - y: -24.0 - z: 67.0 - color: '#4682b9' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_14: - name: 17Networks_LH_SomMotA_14 - lookupLabel: 38 - originalLookupLabel: 38 - center: - x: -9.0 - y: -42.0 - z: 70.0 - color: '#4682ba' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_15: - name: 17Networks_LH_SomMotA_15 - lookupLabel: 39 - originalLookupLabel: 39 - center: - x: -4.0 - y: -25.0 - z: 69.0 - color: '#4682bb' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_16: - name: 17Networks_LH_SomMotA_16 - lookupLabel: 40 - originalLookupLabel: 40 - center: - x: -14.0 - y: -11.0 - z: 73.0 - color: '#4683b4' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_17: - name: 17Networks_LH_SomMotA_17 - lookupLabel: 41 - originalLookupLabel: 41 - center: - x: -19.0 - y: -31.0 - z: 69.0 - color: '#4683b5' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_18: - name: 17Networks_LH_SomMotA_18 - lookupLabel: 42 - originalLookupLabel: 42 - center: - x: -19.0 - y: -40.0 - z: 72.0 - color: '#4683b6' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_19: - name: 17Networks_LH_SomMotA_19 - lookupLabel: 43 - originalLookupLabel: 43 - center: - x: -12.0 - y: -27.0 - z: 73.0 - color: '#4683b7' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotB_Aud_1: - name: 17Networks_LH_SomMotB_Aud_1 - lookupLabel: 44 - originalLookupLabel: 44 - center: - x: -50.0 - y: -9.0 - z: 0.0 - color: '#2bcc9e' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_2: - name: 17Networks_LH_SomMotB_Aud_2 - lookupLabel: 45 - originalLookupLabel: 45 - center: - x: -56.0 - y: -22.0 - z: 8.0 - color: '#2bcc9f' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Ins_1: - name: 17Networks_LH_SomMotB_Ins_1 - lookupLabel: 46 - originalLookupLabel: 46 - center: - x: -36.0 - y: -24.0 - z: 10.0 - color: '#2bcca0' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_1: - name: 17Networks_LH_SomMotB_S2_1 - lookupLabel: 47 - originalLookupLabel: 47 - center: - x: -38.0 - y: -9.0 - z: 13.0 - color: '#2bcca1' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_2: - name: 17Networks_LH_SomMotB_S2_2 - lookupLabel: 48 - originalLookupLabel: 48 - center: - x: -36.0 - y: -26.0 - z: 19.0 - color: '#2bcca2' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_3: - name: 17Networks_LH_SomMotB_Aud_3 - lookupLabel: 49 - originalLookupLabel: 49 - center: - x: -59.0 - y: -37.0 - z: 16.0 - color: '#2bcca3' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_4: - name: 17Networks_LH_SomMotB_Aud_4 - lookupLabel: 50 - originalLookupLabel: 50 - center: - x: -41.0 - y: -35.0 - z: 14.0 - color: '#2bcca5' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_3: - name: 17Networks_LH_SomMotB_S2_3 - lookupLabel: 51 - originalLookupLabel: 51 - center: - x: -49.0 - y: -13.0 - z: 14.0 - color: '#2bcca6' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_4: - name: 17Networks_LH_SomMotB_S2_4 - lookupLabel: 52 - originalLookupLabel: 52 - center: - x: -60.0 - y: -2.0 - z: 11.0 - color: '#2bcca7' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_5: - name: 17Networks_LH_SomMotB_S2_5 - lookupLabel: 53 - originalLookupLabel: 53 - center: - x: -48.0 - y: -24.0 - z: 18.0 - color: '#2bcca8' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_6: - name: 17Networks_LH_SomMotB_S2_6 - lookupLabel: 54 - originalLookupLabel: 54 - center: - x: -61.0 - y: -18.0 - z: 19.0 - color: '#2bcca9' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_1: - name: 17Networks_LH_SomMotB_Cent_1 - lookupLabel: 55 - originalLookupLabel: 55 - center: - x: -59.0 - y: -2.0 - z: 23.0 - color: '#2bccaa' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_2: - name: 17Networks_LH_SomMotB_Cent_2 - lookupLabel: 56 - originalLookupLabel: 56 - center: - x: -63.0 - y: -10.0 - z: 31.0 - color: '#2bccab' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_3: - name: 17Networks_LH_SomMotB_Cent_3 - lookupLabel: 57 - originalLookupLabel: 57 - center: - x: -53.0 - y: -9.0 - z: 30.0 - color: '#2bcda4' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_4: - name: 17Networks_LH_SomMotB_Cent_4 - lookupLabel: 58 - originalLookupLabel: 58 - center: - x: -51.0 - y: -7.0 - z: 43.0 - color: '#2bcda5' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_5: - name: 17Networks_LH_SomMotB_Cent_5 - lookupLabel: 59 - originalLookupLabel: 59 - center: - x: -48.0 - y: -16.0 - z: 40.0 - color: '#2bcda6' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_DorsAttnA_TempOcc_1: - name: 17Networks_LH_DorsAttnA_TempOcc_1 - lookupLabel: 60 - originalLookupLabel: 60 - center: - x: -45.0 - y: -42.0 - z: -21.0 - color: '#4a9b3d' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_2: - name: 17Networks_LH_DorsAttnA_TempOcc_2 - lookupLabel: 61 - originalLookupLabel: 61 - center: - x: -33.0 - y: -42.0 - z: -21.0 - color: '#4a9b3e' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_3: - name: 17Networks_LH_DorsAttnA_TempOcc_3 - lookupLabel: 62 - originalLookupLabel: 62 - center: - x: -49.0 - y: -56.0 - z: -15.0 - color: '#4a9b3f' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_4: - name: 17Networks_LH_DorsAttnA_TempOcc_4 - lookupLabel: 63 - originalLookupLabel: 63 - center: - x: -45.0 - y: -70.0 - z: -8.0 - color: '#4a9b40' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_1: - name: 17Networks_LH_DorsAttnA_ParOcc_1 - lookupLabel: 64 - originalLookupLabel: 64 - center: - x: -48.0 - y: -65.0 - z: 15.0 - color: '#4a9b41' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_2: - name: 17Networks_LH_DorsAttnA_ParOcc_2 - lookupLabel: 65 - originalLookupLabel: 65 - center: - x: -32.0 - y: -84.0 - z: 27.0 - color: '#4a9c3a' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_1: - name: 17Networks_LH_DorsAttnA_SPL_1 - lookupLabel: 66 - originalLookupLabel: 66 - center: - x: -26.0 - y: -70.0 - z: 31.0 - color: '#4a9c3b' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_2: - name: 17Networks_LH_DorsAttnA_SPL_2 - lookupLabel: 67 - originalLookupLabel: 67 - center: - x: -21.0 - y: -79.0 - z: 45.0 - color: '#4a9c3d' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_3: - name: 17Networks_LH_DorsAttnA_SPL_3 - lookupLabel: 68 - originalLookupLabel: 68 - center: - x: -23.0 - y: -65.0 - z: 46.0 - color: '#4a9c3e' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_4: - name: 17Networks_LH_DorsAttnA_SPL_4 - lookupLabel: 69 - originalLookupLabel: 69 - center: - x: -29.0 - y: -58.0 - z: 50.0 - color: '#4a9c3f' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_5: - name: 17Networks_LH_DorsAttnA_SPL_5 - lookupLabel: 70 - originalLookupLabel: 70 - center: - x: -36.0 - y: -52.0 - z: 56.0 - color: '#4a9c40' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_6: - name: 17Networks_LH_DorsAttnA_SPL_6 - lookupLabel: 71 - originalLookupLabel: 71 - center: - x: -15.0 - y: -71.0 - z: 57.0 - color: '#4a9c41' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_7: - name: 17Networks_LH_DorsAttnA_SPL_7 - lookupLabel: 72 - originalLookupLabel: 72 - center: - x: -29.0 - y: -61.0 - z: 62.0 - color: '#4a9c42' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnB_PostC_1: - name: 17Networks_LH_DorsAttnB_PostC_1 - lookupLabel: 73 - originalLookupLabel: 73 - center: - x: -61.0 - y: -23.0 - z: 33.0 - color: '#00760c' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_2: - name: 17Networks_LH_DorsAttnB_PostC_2 - lookupLabel: 74 - originalLookupLabel: 74 - center: - x: -55.0 - y: -20.0 - z: 41.0 - color: '#00760d' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_3: - name: 17Networks_LH_DorsAttnB_PostC_3 - lookupLabel: 75 - originalLookupLabel: 75 - center: - x: -55.0 - y: -32.0 - z: 45.0 - color: '#00760e' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_4: - name: 17Networks_LH_DorsAttnB_PostC_4 - lookupLabel: 76 - originalLookupLabel: 76 - center: - x: -46.0 - y: -29.0 - z: 44.0 - color: '#007610' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_5: - name: 17Networks_LH_DorsAttnB_PostC_5 - lookupLabel: 77 - originalLookupLabel: 77 - center: - x: -39.0 - y: -37.0 - z: 49.0 - color: '#007611' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_6: - name: 17Networks_LH_DorsAttnB_PostC_6 - lookupLabel: 78 - originalLookupLabel: 78 - center: - x: -30.0 - y: -46.0 - z: 63.0 - color: '#007612' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_7: - name: 17Networks_LH_DorsAttnB_PostC_7 - lookupLabel: 79 - originalLookupLabel: 79 - center: - x: -7.0 - y: -59.0 - z: 63.0 - color: '#007613' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_8: - name: 17Networks_LH_DorsAttnB_PostC_8 - lookupLabel: 80 - originalLookupLabel: 80 - center: - x: -20.0 - y: -57.0 - z: 66.0 - color: '#007614' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_9: - name: 17Networks_LH_DorsAttnB_PostC_9 - lookupLabel: 81 - originalLookupLabel: 81 - center: - x: -13.0 - y: -50.0 - z: 72.0 - color: '#007615' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_1: - name: 17Networks_LH_DorsAttnB_FEF_1 - lookupLabel: 82 - originalLookupLabel: 82 - center: - x: -40.0 - y: -3.0 - z: 51.0 - color: '#00770f' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_2: - name: 17Networks_LH_DorsAttnB_FEF_2 - lookupLabel: 83 - originalLookupLabel: 83 - center: - x: -25.0 - y: -1.0 - z: 55.0 - color: '#007710' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_3: - name: 17Networks_LH_DorsAttnB_FEF_3 - lookupLabel: 84 - originalLookupLabel: 84 - center: - x: -30.0 - y: -8.0 - z: 52.0 - color: '#007711' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PrCv_1: - name: 17Networks_LH_DorsAttnB_PrCv_1 - lookupLabel: 85 - originalLookupLabel: 85 - center: - x: -50.0 - y: 3.0 - z: 38.0 - color: '#007712' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_SalVentAttnA_ParOper_1: - name: 17Networks_LH_SalVentAttnA_ParOper_1 - lookupLabel: 86 - originalLookupLabel: 86 - center: - x: -55.0 - y: -32.0 - z: 22.0 - color: '#c43afb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_2: - name: 17Networks_LH_SalVentAttnA_ParOper_2 - lookupLabel: 87 - originalLookupLabel: 87 - center: - x: -58.0 - y: -44.0 - z: 27.0 - color: '#c43afc' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_3: - name: 17Networks_LH_SalVentAttnA_ParOper_3 - lookupLabel: 88 - originalLookupLabel: 88 - center: - x: -61.0 - y: -36.0 - z: 33.0 - color: '#c43afd' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_1: - name: 17Networks_LH_SalVentAttnA_Ins_1 - lookupLabel: 89 - originalLookupLabel: 89 - center: - x: -39.0 - y: 2.0 - z: -4.0 - color: '#c43bf9' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_2: - name: 17Networks_LH_SalVentAttnA_Ins_2 - lookupLabel: 90 - originalLookupLabel: 90 - center: - x: -40.0 - y: -15.0 - z: -2.0 - color: '#c43bfb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_3: - name: 17Networks_LH_SalVentAttnA_Ins_3 - lookupLabel: 91 - originalLookupLabel: 91 - center: - x: -33.0 - y: 19.0 - z: 8.0 - color: '#c43bfc' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_4: - name: 17Networks_LH_SalVentAttnA_Ins_4 - lookupLabel: 92 - originalLookupLabel: 92 - center: - x: -36.0 - y: 4.0 - z: 11.0 - color: '#c43bfd' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_1: - name: 17Networks_LH_SalVentAttnA_FrOper_1 - lookupLabel: 93 - originalLookupLabel: 93 - center: - x: -50.0 - y: 1.0 - z: 5.0 - color: '#c43bfe' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_2: - name: 17Networks_LH_SalVentAttnA_FrOper_2 - lookupLabel: 94 - originalLookupLabel: 94 - center: - x: -52.0 - y: 9.0 - z: 13.0 - color: '#c43bff' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_1: - name: 17Networks_LH_SalVentAttnA_ParMed_1 - lookupLabel: 95 - originalLookupLabel: 95 - center: - x: -11.0 - y: -27.0 - z: 41.0 - color: '#c134f9' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_2: - name: 17Networks_LH_SalVentAttnA_ParMed_2 - lookupLabel: 96 - originalLookupLabel: 96 - center: - x: -13.0 - y: -41.0 - z: 47.0 - color: '#c134fa' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_3: - name: 17Networks_LH_SalVentAttnA_ParMed_3 - lookupLabel: 97 - originalLookupLabel: 97 - center: - x: -6.0 - y: -49.0 - z: 57.0 - color: '#c134fb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_1: - name: 17Networks_LH_SalVentAttnA_FrMed_1 - lookupLabel: 98 - originalLookupLabel: 98 - center: - x: -7.0 - y: 0.0 - z: 41.0 - color: '#c53afb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_2: - name: 17Networks_LH_SalVentAttnA_FrMed_2 - lookupLabel: 99 - originalLookupLabel: 99 - center: - x: -5.0 - y: 9.0 - z: 48.0 - color: '#c53afc' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_3: - name: 17Networks_LH_SalVentAttnA_FrMed_3 - lookupLabel: 100 - originalLookupLabel: 100 - center: - x: -8.0 - y: -3.0 - z: 71.0 - color: '#c53afd' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnB_PFCl_1: - name: 17Networks_LH_SalVentAttnB_PFCl_1 - lookupLabel: 101 - originalLookupLabel: 101 - center: - x: -38.0 - y: 49.0 - z: 11.0 - color: '#ff99d6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_2: - name: 17Networks_LH_SalVentAttnB_PFCl_2 - lookupLabel: 102 - originalLookupLabel: 102 - center: - x: -29.0 - y: 43.0 - z: 30.0 - color: '#ff99d7' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_3: - name: 17Networks_LH_SalVentAttnB_PFCl_3 - lookupLabel: 103 - originalLookupLabel: 103 - center: - x: -36.0 - y: 32.0 - z: 38.0 - color: '#ff99d8' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_1: - name: 17Networks_LH_SalVentAttnB_Ins_1 - lookupLabel: 104 - originalLookupLabel: 104 - center: - x: -34.0 - y: 16.0 - z: -8.0 - color: '#ff99d9' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_2: - name: 17Networks_LH_SalVentAttnB_Ins_2 - lookupLabel: 105 - originalLookupLabel: 105 - center: - x: -33.0 - y: 25.0 - z: -1.0 - color: '#ff99da' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_3: - name: 17Networks_LH_SalVentAttnB_Ins_3 - lookupLabel: 106 - originalLookupLabel: 106 - center: - x: -43.0 - y: 12.0 - z: 2.0 - color: '#ff99db' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_OFC_1: - name: 17Networks_LH_SalVentAttnB_OFC_1 - lookupLabel: 107 - originalLookupLabel: 107 - center: - x: -27.0 - y: 49.0 - z: -14.0 - color: '#ff98d5' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCmp_1: - name: 17Networks_LH_SalVentAttnB_PFCmp_1 - lookupLabel: 108 - originalLookupLabel: 108 - center: - x: -6.0 - y: 22.0 - z: 31.0 - color: '#ff97d6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_LimbicB_OFC_1: - name: 17Networks_LH_LimbicB_OFC_1 - lookupLabel: 109 - originalLookupLabel: 109 - center: - x: -12.0 - y: 25.0 - z: -21.0 - color: '#7a8731' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_2: - name: 17Networks_LH_LimbicB_OFC_2 - lookupLabel: 110 - originalLookupLabel: 110 - center: - x: -24.0 - y: 23.0 - z: -20.0 - color: '#7a8733' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_3: - name: 17Networks_LH_LimbicB_OFC_3 - lookupLabel: 111 - originalLookupLabel: 111 - center: - x: -10.0 - y: 47.0 - z: -21.0 - color: '#7a8734' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_4: - name: 17Networks_LH_LimbicB_OFC_4 - lookupLabel: 112 - originalLookupLabel: 112 - center: - x: -4.0 - y: 23.0 - z: -19.0 - color: '#7a8735' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_5: - name: 17Networks_LH_LimbicB_OFC_5 - lookupLabel: 113 - originalLookupLabel: 113 - center: - x: -15.0 - y: 65.0 - z: -8.0 - color: '#7a8736' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicA_TempPole_1: - name: 17Networks_LH_LimbicA_TempPole_1 - lookupLabel: 114 - originalLookupLabel: 114 - center: - x: -37.0 - y: -5.0 - z: -42.0 - color: '#dcf8a2' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_2: - name: 17Networks_LH_LimbicA_TempPole_2 - lookupLabel: 115 - originalLookupLabel: 115 - center: - x: -25.0 - y: 6.0 - z: -39.0 - color: '#dcf8a3' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_3: - name: 17Networks_LH_LimbicA_TempPole_3 - lookupLabel: 116 - originalLookupLabel: 116 - center: - x: -26.0 - y: -9.0 - z: -33.0 - color: '#dcf8a5' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_4: - name: 17Networks_LH_LimbicA_TempPole_4 - lookupLabel: 117 - originalLookupLabel: 117 - center: - x: -54.0 - y: -21.0 - z: -31.0 - color: '#dcf8a6' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_5: - name: 17Networks_LH_LimbicA_TempPole_5 - lookupLabel: 118 - originalLookupLabel: 118 - center: - x: -40.0 - y: -21.0 - z: -27.0 - color: '#dcf8a7' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_6: - name: 17Networks_LH_LimbicA_TempPole_6 - lookupLabel: 119 - originalLookupLabel: 119 - center: - x: -32.0 - y: 12.0 - z: -29.0 - color: '#dcf8a8' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_7: - name: 17Networks_LH_LimbicA_TempPole_7 - lookupLabel: 120 - originalLookupLabel: 120 - center: - x: -44.0 - y: 5.0 - z: -17.0 - color: '#dcf8a9' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_ContA_Temp_1: - name: 17Networks_LH_ContA_Temp_1 - lookupLabel: 121 - originalLookupLabel: 121 - center: - x: -55.0 - y: -62.0 - z: -1.0 - color: '#e69423' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_1: - name: 17Networks_LH_ContA_IPS_1 - lookupLabel: 122 - originalLookupLabel: 122 - center: - x: -29.0 - y: -74.0 - z: 42.0 - color: '#e69422' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_2: - name: 17Networks_LH_ContA_IPS_2 - lookupLabel: 123 - originalLookupLabel: 123 - center: - x: -58.0 - y: -42.0 - z: 45.0 - color: '#e69424' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_3: - name: 17Networks_LH_ContA_IPS_3 - lookupLabel: 124 - originalLookupLabel: 124 - center: - x: -35.0 - y: -62.0 - z: 48.0 - color: '#e69425' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_4: - name: 17Networks_LH_ContA_IPS_4 - lookupLabel: 125 - originalLookupLabel: 125 - center: - x: -45.0 - y: -41.0 - z: 47.0 - color: '#e69426' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_5: - name: 17Networks_LH_ContA_IPS_5 - lookupLabel: 126 - originalLookupLabel: 126 - center: - x: -33.0 - y: -46.0 - z: 41.0 - color: '#e69427' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCd_1: - name: 17Networks_LH_ContA_PFCd_1 - lookupLabel: 127 - originalLookupLabel: 127 - center: - x: -21.0 - y: 5.0 - z: 65.0 - color: '#e69523' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFClv_1: - name: 17Networks_LH_ContA_PFClv_1 - lookupLabel: 128 - originalLookupLabel: 128 - center: - x: -48.0 - y: 35.0 - z: 10.0 - color: '#e69522' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFClv_2: - name: 17Networks_LH_ContA_PFClv_2 - lookupLabel: 129 - originalLookupLabel: 129 - center: - x: -42.0 - y: 38.0 - z: 22.0 - color: '#e69524' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_1: - name: 17Networks_LH_ContA_PFCl_1 - lookupLabel: 130 - originalLookupLabel: 130 - center: - x: -49.0 - y: 6.0 - z: 26.0 - color: '#e69525' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_2: - name: 17Networks_LH_ContA_PFCl_2 - lookupLabel: 131 - originalLookupLabel: 131 - center: - x: -45.0 - y: 20.0 - z: 27.0 - color: '#e69526' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_3: - name: 17Networks_LH_ContA_PFCl_3 - lookupLabel: 132 - originalLookupLabel: 132 - center: - x: -39.0 - y: 7.0 - z: 34.0 - color: '#e69527' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_Cingm_1: - name: 17Networks_LH_ContA_Cingm_1 - lookupLabel: 133 - originalLookupLabel: 133 - center: - x: -3.0 - y: 5.0 - z: 29.0 - color: '#e79424' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContB_Temp_1: - name: 17Networks_LH_ContB_Temp_1 - lookupLabel: 134 - originalLookupLabel: 134 - center: - x: -60.0 - y: -36.0 - z: -18.0 - color: '#87324b' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_Temp_2: - name: 17Networks_LH_ContB_Temp_2 - lookupLabel: 135 - originalLookupLabel: 135 - center: - x: -60.0 - y: -49.0 - z: -10.0 - color: '#87324c' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_1: - name: 17Networks_LH_ContB_IPL_1 - lookupLabel: 136 - originalLookupLabel: 136 - center: - x: -49.0 - y: -60.0 - z: 47.0 - color: '#87324d' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_2: - name: 17Networks_LH_ContB_IPL_2 - lookupLabel: 137 - originalLookupLabel: 137 - center: - x: -53.0 - y: -50.0 - z: 45.0 - color: '#87324e' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_3: - name: 17Networks_LH_ContB_IPL_3 - lookupLabel: 138 - originalLookupLabel: 138 - center: - x: -42.0 - y: -52.0 - z: 49.0 - color: '#87324f' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCd_1: - name: 17Networks_LH_ContB_PFCd_1 - lookupLabel: 139 - originalLookupLabel: 139 - center: - x: -30.0 - y: 14.0 - z: 57.0 - color: '#87334b' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_1: - name: 17Networks_LH_ContB_PFClv_1 - lookupLabel: 140 - originalLookupLabel: 140 - center: - x: -42.0 - y: 49.0 - z: -6.0 - color: '#88324b' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_2: - name: 17Networks_LH_ContB_PFClv_2 - lookupLabel: 141 - originalLookupLabel: 141 - center: - x: -28.0 - y: 58.0 - z: -1.0 - color: '#88324c' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_3: - name: 17Networks_LH_ContB_PFClv_3 - lookupLabel: 142 - originalLookupLabel: 142 - center: - x: -28.0 - y: 57.0 - z: 13.0 - color: '#88324d' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCmp_1: - name: 17Networks_LH_ContB_PFCmp_1 - lookupLabel: 143 - originalLookupLabel: 143 - center: - x: -4.0 - y: 28.0 - z: 47.0 - color: '#88324e' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContC_pCun_1: - name: 17Networks_LH_ContC_pCun_1 - lookupLabel: 144 - originalLookupLabel: 144 - center: - x: -10.0 - y: -70.0 - z: 32.0 - color: '#778cb1' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_2: - name: 17Networks_LH_ContC_pCun_2 - lookupLabel: 145 - originalLookupLabel: 145 - center: - x: -9.0 - y: -77.0 - z: 45.0 - color: '#778cb2' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_3: - name: 17Networks_LH_ContC_pCun_3 - lookupLabel: 146 - originalLookupLabel: 146 - center: - x: -5.0 - y: -64.0 - z: 52.0 - color: '#778cb3' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_Cingp_1: - name: 17Networks_LH_ContC_Cingp_1 - lookupLabel: 147 - originalLookupLabel: 147 - center: - x: -6.0 - y: -41.0 - z: 24.0 - color: '#778cb4' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_Cingp_2: - name: 17Networks_LH_ContC_Cingp_2 - lookupLabel: 148 - originalLookupLabel: 148 - center: - x: -4.0 - y: -22.0 - z: 29.0 - color: '#778cb5' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_DefaultA_IPL_1: - name: 17Networks_LH_DefaultA_IPL_1 - lookupLabel: 149 - originalLookupLabel: 149 - center: - x: -47.0 - y: -64.0 - z: 31.0 - color: '#ffff01' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_IPL_2: - name: 17Networks_LH_DefaultA_IPL_2 - lookupLabel: 150 - originalLookupLabel: 150 - center: - x: -41.0 - y: -72.0 - z: 43.0 - color: '#ffff02' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_1: - name: 17Networks_LH_DefaultA_PFCd_1 - lookupLabel: 151 - originalLookupLabel: 151 - center: - x: -25.0 - y: 28.0 - z: 43.0 - color: '#ffff03' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_2: - name: 17Networks_LH_DefaultA_PFCd_2 - lookupLabel: 152 - originalLookupLabel: 152 - center: - x: -18.0 - y: 36.0 - z: 48.0 - color: '#ffff04' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_3: - name: 17Networks_LH_DefaultA_PFCd_3 - lookupLabel: 153 - originalLookupLabel: 153 - center: - x: -22.0 - y: 20.0 - z: 52.0 - color: '#ffff05' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_1: - name: 17Networks_LH_DefaultA_pCunPCC_1 - lookupLabel: 154 - originalLookupLabel: 154 - center: - x: -4.0 - y: -53.0 - z: 20.0 - color: '#fffe01' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_2: - name: 17Networks_LH_DefaultA_pCunPCC_2 - lookupLabel: 155 - originalLookupLabel: 155 - center: - x: -5.0 - y: -60.0 - z: 30.0 - color: '#fffe02' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_3: - name: 17Networks_LH_DefaultA_pCunPCC_3 - lookupLabel: 156 - originalLookupLabel: 156 - center: - x: -7.0 - y: -44.0 - z: 32.0 - color: '#fffe03' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_4: - name: 17Networks_LH_DefaultA_pCunPCC_4 - lookupLabel: 157 - originalLookupLabel: 157 - center: - x: -4.0 - y: -34.0 - z: 38.0 - color: '#fffe04' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_5: - name: 17Networks_LH_DefaultA_pCunPCC_5 - lookupLabel: 158 - originalLookupLabel: 158 - center: - x: -3.0 - y: -15.0 - z: 37.0 - color: '#fffe05' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_6: - name: 17Networks_LH_DefaultA_pCunPCC_6 - lookupLabel: 159 - originalLookupLabel: 159 - center: - x: -3.0 - y: -68.0 - z: 41.0 - color: '#fffe06' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_7: - name: 17Networks_LH_DefaultA_pCunPCC_7 - lookupLabel: 160 - originalLookupLabel: 160 - center: - x: -7.0 - y: -51.0 - z: 43.0 - color: '#fffe07' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_1: - name: 17Networks_LH_DefaultA_PFCm_1 - lookupLabel: 161 - originalLookupLabel: 161 - center: - x: -5.0 - y: 55.0 - z: -10.0 - color: '#feff01' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_2: - name: 17Networks_LH_DefaultA_PFCm_2 - lookupLabel: 162 - originalLookupLabel: 162 - center: - x: -6.0 - y: 35.0 - z: -9.0 - color: '#feff02' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_3: - name: 17Networks_LH_DefaultA_PFCm_3 - lookupLabel: 163 - originalLookupLabel: 163 - center: - x: -6.0 - y: 59.0 - z: 7.0 - color: '#feff03' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_4: - name: 17Networks_LH_DefaultA_PFCm_4 - lookupLabel: 164 - originalLookupLabel: 164 - center: - x: -6.0 - y: 45.0 - z: 6.0 - color: '#feff04' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_5: - name: 17Networks_LH_DefaultA_PFCm_5 - lookupLabel: 165 - originalLookupLabel: 165 - center: - x: -16.0 - y: 67.0 - z: 8.0 - color: '#feff05' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_6: - name: 17Networks_LH_DefaultA_PFCm_6 - lookupLabel: 166 - originalLookupLabel: 166 - center: - x: -5.0 - y: 34.0 - z: 21.0 - color: '#feff06' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultB_Temp_1: - name: 17Networks_LH_DefaultB_Temp_1 - lookupLabel: 167 - originalLookupLabel: 167 - center: - x: -44.0 - y: 13.0 - z: -34.0 - color: '#cd3e4d' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_2: - name: 17Networks_LH_DefaultB_Temp_2 - lookupLabel: 168 - originalLookupLabel: 168 - center: - x: -54.0 - y: -2.0 - z: -30.0 - color: '#cd3e4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_3: - name: 17Networks_LH_DefaultB_Temp_3 - lookupLabel: 169 - originalLookupLabel: 169 - center: - x: -62.0 - y: -18.0 - z: -21.0 - color: '#cd3e50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_4: - name: 17Networks_LH_DefaultB_Temp_4 - lookupLabel: 170 - originalLookupLabel: 170 - center: - x: -57.0 - y: -9.0 - z: -14.0 - color: '#cd3e51' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_5: - name: 17Networks_LH_DefaultB_Temp_5 - lookupLabel: 171 - originalLookupLabel: 171 - center: - x: -61.0 - y: -35.0 - z: -3.0 - color: '#cd3e52' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_6: - name: 17Networks_LH_DefaultB_Temp_6 - lookupLabel: 172 - originalLookupLabel: 172 - center: - x: -52.0 - y: -22.0 - z: -6.0 - color: '#cd3e53' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_1: - name: 17Networks_LH_DefaultB_IPL_1 - lookupLabel: 173 - originalLookupLabel: 173 - center: - x: -45.0 - y: -58.0 - z: 21.0 - color: '#cd3e54' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_2: - name: 17Networks_LH_DefaultB_IPL_2 - lookupLabel: 174 - originalLookupLabel: 174 - center: - x: -57.0 - y: -55.0 - z: 30.0 - color: '#cd3e55' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_1: - name: 17Networks_LH_DefaultB_PFCd_1 - lookupLabel: 175 - originalLookupLabel: 175 - center: - x: -4.0 - y: 51.0 - z: 28.0 - color: '#cd3f4d' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_2: - name: 17Networks_LH_DefaultB_PFCd_2 - lookupLabel: 176 - originalLookupLabel: 176 - center: - x: -14.0 - y: 58.0 - z: 31.0 - color: '#cd3f4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_3: - name: 17Networks_LH_DefaultB_PFCd_3 - lookupLabel: 177 - originalLookupLabel: 177 - center: - x: -22.0 - y: 51.0 - z: 31.0 - color: '#cd3f50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_4: - name: 17Networks_LH_DefaultB_PFCd_4 - lookupLabel: 178 - originalLookupLabel: 178 - center: - x: -8.0 - y: 43.0 - z: 51.0 - color: '#cd3f51' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_5: - name: 17Networks_LH_DefaultB_PFCd_5 - lookupLabel: 179 - originalLookupLabel: 179 - center: - x: -13.0 - y: 24.0 - z: 61.0 - color: '#cd3f52' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_6: - name: 17Networks_LH_DefaultB_PFCd_6 - lookupLabel: 180 - originalLookupLabel: 180 - center: - x: -6.0 - y: 10.0 - z: 65.0 - color: '#cd3f53' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCl_1: - name: 17Networks_LH_DefaultB_PFCl_1 - lookupLabel: 181 - originalLookupLabel: 181 - center: - x: -41.0 - y: 19.0 - z: 48.0 - color: '#cd3f54' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCl_2: - name: 17Networks_LH_DefaultB_PFCl_2 - lookupLabel: 182 - originalLookupLabel: 182 - center: - x: -42.0 - y: 7.0 - z: 48.0 - color: '#cd3f55' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_1: - name: 17Networks_LH_DefaultB_PFCv_1 - lookupLabel: 183 - originalLookupLabel: 183 - center: - x: -36.0 - y: 22.0 - z: -16.0 - color: '#ce3e4d' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_2: - name: 17Networks_LH_DefaultB_PFCv_2 - lookupLabel: 184 - originalLookupLabel: 184 - center: - x: -36.0 - y: 37.0 - z: -13.0 - color: '#ce3e4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_3: - name: 17Networks_LH_DefaultB_PFCv_3 - lookupLabel: 185 - originalLookupLabel: 185 - center: - x: -46.0 - y: 32.0 - z: -10.0 - color: '#ce3e50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_4: - name: 17Networks_LH_DefaultB_PFCv_4 - lookupLabel: 186 - originalLookupLabel: 186 - center: - x: -48.0 - y: 28.0 - z: 0.0 - color: '#ce3e51' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_5: - name: 17Networks_LH_DefaultB_PFCv_5 - lookupLabel: 187 - originalLookupLabel: 187 - center: - x: -53.0 - y: 19.0 - z: 11.0 - color: '#ce3e52' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultC_IPL_1: - name: 17Networks_LH_DefaultC_IPL_1 - lookupLabel: 188 - originalLookupLabel: 188 - center: - x: -40.0 - y: -79.0 - z: 30.0 - color: '#000083' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_1: - name: 17Networks_LH_DefaultC_Rsp_1 - lookupLabel: 189 - originalLookupLabel: 189 - center: - x: -13.0 - y: -49.0 - z: 4.0 - color: '#000084' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_2: - name: 17Networks_LH_DefaultC_Rsp_2 - lookupLabel: 190 - originalLookupLabel: 190 - center: - x: -8.0 - y: -52.0 - z: 9.0 - color: '#000085' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_3: - name: 17Networks_LH_DefaultC_Rsp_3 - lookupLabel: 191 - originalLookupLabel: 191 - center: - x: -13.0 - y: -61.0 - z: 19.0 - color: '#000086' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_1: - name: 17Networks_LH_DefaultC_PHC_1 - lookupLabel: 192 - originalLookupLabel: 192 - center: - x: -21.0 - y: -21.0 - z: -26.0 - color: '#000183' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_2: - name: 17Networks_LH_DefaultC_PHC_2 - lookupLabel: 193 - originalLookupLabel: 193 - center: - x: -30.0 - y: -33.0 - z: -18.0 - color: '#000184' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_3: - name: 17Networks_LH_DefaultC_PHC_3 - lookupLabel: 194 - originalLookupLabel: 194 - center: - x: -18.0 - y: -37.0 - z: -12.0 - color: '#000185' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_TempPar_1: - name: 17Networks_LH_TempPar_1 - lookupLabel: 195 - originalLookupLabel: 195 - center: - x: -53.0 - y: 6.0 - z: -11.0 - color: '#0c30fe' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_2: - name: 17Networks_LH_TempPar_2 - lookupLabel: 196 - originalLookupLabel: 196 - center: - x: -61.0 - y: -13.0 - z: -3.0 - color: '#0929f9' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_3: - name: 17Networks_LH_TempPar_3 - lookupLabel: 197 - originalLookupLabel: 197 - center: - x: -62.0 - y: -32.0 - z: 5.0 - color: '#0929fa' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_4: - name: 17Networks_LH_TempPar_4 - lookupLabel: 198 - originalLookupLabel: 198 - center: - x: -52.0 - y: -43.0 - z: 5.0 - color: '#0929fb' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_5: - name: 17Networks_LH_TempPar_5 - lookupLabel: 199 - originalLookupLabel: 199 - center: - x: -57.0 - y: -54.0 - z: 10.0 - color: '#0929fc' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_6: - name: 17Networks_LH_TempPar_6 - lookupLabel: 200 - originalLookupLabel: 200 - center: - x: -59.0 - y: -49.0 - z: 16.0 - color: '#0929fd' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_RH_VisCent_ExStr_1: - name: 17Networks_RH_VisCent_ExStr_1 - lookupLabel: 201 - originalLookupLabel: 201 - center: - x: 36.0 - y: -53.0 - z: -17.0 - color: '#7c1383' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_2: - name: 17Networks_RH_VisCent_ExStr_2 - lookupLabel: 202 - originalLookupLabel: 202 - center: - x: 37.0 - y: -73.0 - z: -16.0 - color: '#7c1384' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_3: - name: 17Networks_RH_VisCent_ExStr_3 - lookupLabel: 203 - originalLookupLabel: 203 - center: - x: 23.0 - y: -74.0 - z: -11.0 - color: '#7c1385' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_4: - name: 17Networks_RH_VisCent_ExStr_4 - lookupLabel: 204 - originalLookupLabel: 204 - center: - x: 20.0 - y: -88.0 - z: -13.0 - color: '#7c1386' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_5: - name: 17Networks_RH_VisCent_ExStr_5 - lookupLabel: 205 - originalLookupLabel: 205 - center: - x: 42.0 - y: -84.0 - z: -12.0 - color: '#7c1388' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_6: - name: 17Networks_RH_VisCent_ExStr_6 - lookupLabel: 206 - originalLookupLabel: 206 - center: - x: 25.0 - y: -97.0 - z: -10.0 - color: '#7c1389' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_Striate_1: - name: 17Networks_RH_VisCent_Striate_1 - lookupLabel: 207 - originalLookupLabel: 207 - center: - x: 8.0 - y: -92.0 - z: -2.0 - color: '#7c138a' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_7: - name: 17Networks_RH_VisCent_ExStr_7 - lookupLabel: 208 - originalLookupLabel: 208 - center: - x: 35.0 - y: -89.0 - z: 2.0 - color: '#7c138b' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_8: - name: 17Networks_RH_VisCent_ExStr_8 - lookupLabel: 209 - originalLookupLabel: 209 - center: - x: 24.0 - y: -99.0 - z: 7.0 - color: '#7c138c' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_9: - name: 17Networks_RH_VisCent_ExStr_9 - lookupLabel: 210 - originalLookupLabel: 210 - center: - x: 43.0 - y: -79.0 - z: 10.0 - color: '#7c138d' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_10: - name: 17Networks_RH_VisCent_ExStr_10 - lookupLabel: 211 - originalLookupLabel: 211 - center: - x: 13.0 - y: -94.0 - z: 19.0 - color: '#7c138e' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_11: - name: 17Networks_RH_VisCent_ExStr_11 - lookupLabel: 212 - originalLookupLabel: 212 - center: - x: 27.0 - y: -87.0 - z: 21.0 - color: '#7c1487' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisPeri_ExStrInf_1: - name: 17Networks_RH_VisPeri_ExStrInf_1 - lookupLabel: 213 - originalLookupLabel: 213 - center: - x: 26.0 - y: -52.0 - z: -9.0 - color: '#fa0000' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_2: - name: 17Networks_RH_VisPeri_ExStrInf_2 - lookupLabel: 214 - originalLookupLabel: 214 - center: - x: 18.0 - y: -36.0 - z: -12.0 - color: '#fa0002' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_3: - name: 17Networks_RH_VisPeri_ExStrInf_3 - lookupLabel: 215 - originalLookupLabel: 215 - center: - x: 9.0 - y: -72.0 - z: -5.0 - color: '#fa0003' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_4: - name: 17Networks_RH_VisPeri_ExStrInf_4 - lookupLabel: 216 - originalLookupLabel: 216 - center: - x: 13.0 - y: -58.0 - z: -3.0 - color: '#fa0004' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_5: - name: 17Networks_RH_VisPeri_ExStrInf_5 - lookupLabel: 217 - originalLookupLabel: 217 - center: - x: 18.0 - y: -45.0 - z: -3.0 - color: '#fa0005' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_1: - name: 17Networks_RH_VisPeri_StriCal_1 - lookupLabel: 218 - originalLookupLabel: 218 - center: - x: 9.0 - y: -74.0 - z: 9.0 - color: '#fa0006' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_2: - name: 17Networks_RH_VisPeri_StriCal_2 - lookupLabel: 219 - originalLookupLabel: 219 - center: - x: 22.0 - y: -59.0 - z: 6.0 - color: '#fa0007' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_1: - name: 17Networks_RH_VisPeri_ExStrSup_1 - lookupLabel: 220 - originalLookupLabel: 220 - center: - x: 16.0 - y: -66.0 - z: 19.0 - color: '#fa0008' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_2: - name: 17Networks_RH_VisPeri_ExStrSup_2 - lookupLabel: 221 - originalLookupLabel: 221 - center: - x: 5.0 - y: -80.0 - z: 24.0 - color: '#fa0101' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_3: - name: 17Networks_RH_VisPeri_ExStrSup_3 - lookupLabel: 222 - originalLookupLabel: 222 - center: - x: 14.0 - y: -78.0 - z: 34.0 - color: '#fa0102' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_4: - name: 17Networks_RH_VisPeri_ExStrSup_4 - lookupLabel: 223 - originalLookupLabel: 223 - center: - x: 16.0 - y: -87.0 - z: 36.0 - color: '#fa0103' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_SomMotA_1: - name: 17Networks_RH_SomMotA_1 - lookupLabel: 224 - originalLookupLabel: 224 - center: - x: 54.0 - y: -17.0 - z: 40.0 - color: '#4a82b5' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_2: - name: 17Networks_RH_SomMotA_2 - lookupLabel: 225 - originalLookupLabel: 225 - center: - x: 52.0 - y: -13.0 - z: 49.0 - color: '#4a83ae' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_3: - name: 17Networks_RH_SomMotA_3 - lookupLabel: 226 - originalLookupLabel: 226 - center: - x: 44.0 - y: -10.0 - z: 49.0 - color: '#4a83af' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_4: - name: 17Networks_RH_SomMotA_4 - lookupLabel: 227 - originalLookupLabel: 227 - center: - x: 49.0 - y: -26.0 - z: 56.0 - color: '#4a83b0' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_5: - name: 17Networks_RH_SomMotA_5 - lookupLabel: 228 - originalLookupLabel: 228 - center: - x: 7.0 - y: -10.0 - z: 51.0 - color: '#4a83b1' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_6: - name: 17Networks_RH_SomMotA_6 - lookupLabel: 229 - originalLookupLabel: 229 - center: - x: 43.0 - y: -21.0 - z: 54.0 - color: '#4a83b2' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_7: - name: 17Networks_RH_SomMotA_7 - lookupLabel: 230 - originalLookupLabel: 230 - center: - x: 37.0 - y: -20.0 - z: 64.0 - color: '#4a83b3' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_8: - name: 17Networks_RH_SomMotA_8 - lookupLabel: 231 - originalLookupLabel: 231 - center: - x: 32.0 - y: -34.0 - z: 63.0 - color: '#4a83b4' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_9: - name: 17Networks_RH_SomMotA_9 - lookupLabel: 232 - originalLookupLabel: 232 - center: - x: 31.0 - y: -41.0 - z: 64.0 - color: '#4a83b6' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_10: - name: 17Networks_RH_SomMotA_10 - lookupLabel: 233 - originalLookupLabel: 233 - center: - x: 34.0 - y: -27.0 - z: 61.0 - color: '#4a83b7' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_11: - name: 17Networks_RH_SomMotA_11 - lookupLabel: 234 - originalLookupLabel: 234 - center: - x: 4.0 - y: -25.0 - z: 58.0 - color: '#4a83b8' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_12: - name: 17Networks_RH_SomMotA_12 - lookupLabel: 235 - originalLookupLabel: 235 - center: - x: 29.0 - y: -11.0 - z: 65.0 - color: '#4a83b9' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_13: - name: 17Networks_RH_SomMotA_13 - lookupLabel: 236 - originalLookupLabel: 236 - center: - x: 9.0 - y: -40.0 - z: 68.0 - color: '#4a83ba' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_14: - name: 17Networks_RH_SomMotA_14 - lookupLabel: 237 - originalLookupLabel: 237 - center: - x: 21.0 - y: -24.0 - z: 67.0 - color: '#4a83bb' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_15: - name: 17Networks_RH_SomMotA_15 - lookupLabel: 238 - originalLookupLabel: 238 - center: - x: 22.0 - y: -29.0 - z: 68.0 - color: '#4a83bc' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_16: - name: 17Networks_RH_SomMotA_16 - lookupLabel: 239 - originalLookupLabel: 239 - center: - x: 22.0 - y: -35.0 - z: 71.0 - color: '#4a84b5' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_17: - name: 17Networks_RH_SomMotA_17 - lookupLabel: 240 - originalLookupLabel: 240 - center: - x: 17.0 - y: -6.0 - z: 69.0 - color: '#4a84b6' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_18: - name: 17Networks_RH_SomMotA_18 - lookupLabel: 241 - originalLookupLabel: 241 - center: - x: 5.0 - y: -22.0 - z: 72.0 - color: '#4a84b7' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_19: - name: 17Networks_RH_SomMotA_19 - lookupLabel: 242 - originalLookupLabel: 242 - center: - x: 17.0 - y: -18.0 - z: 73.0 - color: '#4a84b8' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_20: - name: 17Networks_RH_SomMotA_20 - lookupLabel: 243 - originalLookupLabel: 243 - center: - x: 13.0 - y: -33.0 - z: 76.0 - color: '#4a84b9' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotB_Aud_1: - name: 17Networks_RH_SomMotB_Aud_1 - lookupLabel: 244 - originalLookupLabel: 244 - center: - x: 53.0 - y: 3.0 - z: -6.0 - color: '#2fcd9e' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_2: - name: 17Networks_RH_SomMotB_Aud_2 - lookupLabel: 245 - originalLookupLabel: 245 - center: - x: 53.0 - y: -14.0 - z: 6.0 - color: '#2fcd9f' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Ins_1: - name: 17Networks_RH_SomMotB_Ins_1 - lookupLabel: 246 - originalLookupLabel: 246 - center: - x: 39.0 - y: -19.0 - z: 5.0 - color: '#2fcda0' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_1: - name: 17Networks_RH_SomMotB_S2_1 - lookupLabel: 247 - originalLookupLabel: 247 - center: - x: 37.0 - y: -8.0 - z: 14.0 - color: '#2fcda1' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_2: - name: 17Networks_RH_SomMotB_S2_2 - lookupLabel: 248 - originalLookupLabel: 248 - center: - x: 35.0 - y: -21.0 - z: 14.0 - color: '#2fcda2' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_3: - name: 17Networks_RH_SomMotB_Aud_3 - lookupLabel: 249 - originalLookupLabel: 249 - center: - x: 60.0 - y: -24.0 - z: 11.0 - color: '#2fcda3' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_3: - name: 17Networks_RH_SomMotB_S2_3 - lookupLabel: 250 - originalLookupLabel: 250 - center: - x: 41.0 - y: -13.0 - z: 18.0 - color: '#2fcda5' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_4: - name: 17Networks_RH_SomMotB_S2_4 - lookupLabel: 251 - originalLookupLabel: 251 - center: - x: 41.0 - y: -29.0 - z: 18.0 - color: '#2fcda6' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_5: - name: 17Networks_RH_SomMotB_S2_5 - lookupLabel: 252 - originalLookupLabel: 252 - center: - x: 50.0 - y: -10.0 - z: 13.0 - color: '#2fcda7' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_6: - name: 17Networks_RH_SomMotB_S2_6 - lookupLabel: 253 - originalLookupLabel: 253 - center: - x: 59.0 - y: 1.0 - z: 10.0 - color: '#2fcda8' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_7: - name: 17Networks_RH_SomMotB_S2_7 - lookupLabel: 254 - originalLookupLabel: 254 - center: - x: 49.0 - y: -21.0 - z: 19.0 - color: '#2fcda9' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_8: - name: 17Networks_RH_SomMotB_S2_8 - lookupLabel: 255 - originalLookupLabel: 255 - center: - x: 62.0 - y: -12.0 - z: 15.0 - color: '#2fcdaa' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_1: - name: 17Networks_RH_SomMotB_Cent_1 - lookupLabel: 256 - originalLookupLabel: 256 - center: - x: 61.0 - y: 6.0 - z: 30.0 - color: '#2fcdab' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_2: - name: 17Networks_RH_SomMotB_Cent_2 - lookupLabel: 257 - originalLookupLabel: 257 - center: - x: 60.0 - y: -5.0 - z: 27.0 - color: '#2fcea4' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_3: - name: 17Networks_RH_SomMotB_Cent_3 - lookupLabel: 258 - originalLookupLabel: 258 - center: - x: 52.0 - y: -6.0 - z: 37.0 - color: '#2fcea5' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_DorsAttnA_TempOcc_1: - name: 17Networks_RH_DorsAttnA_TempOcc_1 - lookupLabel: 259 - originalLookupLabel: 259 - center: - x: 34.0 - y: -37.0 - z: -23.0 - color: '#4e9c3c' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_2: - name: 17Networks_RH_DorsAttnA_TempOcc_2 - lookupLabel: 260 - originalLookupLabel: 260 - center: - x: 50.0 - y: -49.0 - z: -18.0 - color: '#4e9c3e' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_3: - name: 17Networks_RH_DorsAttnA_TempOcc_3 - lookupLabel: 261 - originalLookupLabel: 261 - center: - x: 50.0 - y: -64.0 - z: -9.0 - color: '#4e9c3f' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_1: - name: 17Networks_RH_DorsAttnA_ParOcc_1 - lookupLabel: 262 - originalLookupLabel: 262 - center: - x: 48.0 - y: -66.0 - z: 4.0 - color: '#4e9c40' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_2: - name: 17Networks_RH_DorsAttnA_ParOcc_2 - lookupLabel: 263 - originalLookupLabel: 263 - center: - x: 54.0 - y: -56.0 - z: 12.0 - color: '#4e9c41' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_3: - name: 17Networks_RH_DorsAttnA_ParOcc_3 - lookupLabel: 264 - originalLookupLabel: 264 - center: - x: 36.0 - y: -79.0 - z: 24.0 - color: '#4f9b3a' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_1: - name: 17Networks_RH_DorsAttnA_SPL_1 - lookupLabel: 265 - originalLookupLabel: 265 - center: - x: 29.0 - y: -78.0 - z: 37.0 - color: '#4f9b3b' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_2: - name: 17Networks_RH_DorsAttnA_SPL_2 - lookupLabel: 266 - originalLookupLabel: 266 - center: - x: 32.0 - y: -66.0 - z: 35.0 - color: '#4f9b3c' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_3: - name: 17Networks_RH_DorsAttnA_SPL_3 - lookupLabel: 267 - originalLookupLabel: 267 - center: - x: 19.0 - y: -79.0 - z: 50.0 - color: '#4f9b3e' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_4: - name: 17Networks_RH_DorsAttnA_SPL_4 - lookupLabel: 268 - originalLookupLabel: 268 - center: - x: 31.0 - y: -64.0 - z: 53.0 - color: '#4f9b3f' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_5: - name: 17Networks_RH_DorsAttnA_SPL_5 - lookupLabel: 269 - originalLookupLabel: 269 - center: - x: 21.0 - y: -69.0 - z: 53.0 - color: '#4f9b40' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_6: - name: 17Networks_RH_DorsAttnA_SPL_6 - lookupLabel: 270 - originalLookupLabel: 270 - center: - x: 34.0 - y: -50.0 - z: 54.0 - color: '#4f9b41' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_7: - name: 17Networks_RH_DorsAttnA_SPL_7 - lookupLabel: 271 - originalLookupLabel: 271 - center: - x: 27.0 - y: -58.0 - z: 61.0 - color: '#4f9b42' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_8: - name: 17Networks_RH_DorsAttnA_SPL_8 - lookupLabel: 272 - originalLookupLabel: 272 - center: - x: 14.0 - y: -64.0 - z: 65.0 - color: '#4f9b43' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnB_TempOcc_1: - name: 17Networks_RH_DorsAttnB_TempOcc_1 - lookupLabel: 273 - originalLookupLabel: 273 - center: - x: 59.0 - y: -55.0 - z: -2.0 - color: '#05760f' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_1: - name: 17Networks_RH_DorsAttnB_PostC_1 - lookupLabel: 274 - originalLookupLabel: 274 - center: - x: 61.0 - y: -14.0 - z: 30.0 - color: '#05760d' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_2: - name: 17Networks_RH_DorsAttnB_PostC_2 - lookupLabel: 275 - originalLookupLabel: 275 - center: - x: 57.0 - y: -23.0 - z: 44.0 - color: '#05760e' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_3: - name: 17Networks_RH_DorsAttnB_PostC_3 - lookupLabel: 276 - originalLookupLabel: 276 - center: - x: 44.0 - y: -37.0 - z: 50.0 - color: '#057610' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_4: - name: 17Networks_RH_DorsAttnB_PostC_4 - lookupLabel: 277 - originalLookupLabel: 277 - center: - x: 45.0 - y: -28.0 - z: 42.0 - color: '#057611' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_5: - name: 17Networks_RH_DorsAttnB_PostC_5 - lookupLabel: 278 - originalLookupLabel: 278 - center: - x: 35.0 - y: -36.0 - z: 51.0 - color: '#057612' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_6: - name: 17Networks_RH_DorsAttnB_PostC_6 - lookupLabel: 279 - originalLookupLabel: 279 - center: - x: 7.0 - y: -54.0 - z: 59.0 - color: '#057613' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_7: - name: 17Networks_RH_DorsAttnB_PostC_7 - lookupLabel: 280 - originalLookupLabel: 280 - center: - x: 24.0 - y: -50.0 - z: 68.0 - color: '#057614' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_8: - name: 17Networks_RH_DorsAttnB_PostC_8 - lookupLabel: 281 - originalLookupLabel: 281 - center: - x: 16.0 - y: -47.0 - z: 74.0 - color: '#057615' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_1: - name: 17Networks_RH_DorsAttnB_FEF_1 - lookupLabel: 282 - originalLookupLabel: 282 - center: - x: 39.0 - y: -3.0 - z: 53.0 - color: '#05770f' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_2: - name: 17Networks_RH_DorsAttnB_FEF_2 - lookupLabel: 283 - originalLookupLabel: 283 - center: - x: 27.0 - y: -3.0 - z: 52.0 - color: '#057710' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_3: - name: 17Networks_RH_DorsAttnB_FEF_3 - lookupLabel: 284 - originalLookupLabel: 284 - center: - x: 25.0 - y: -3.0 - z: 64.0 - color: '#057711' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_SalVentAttnA_ParOper_1: - name: 17Networks_RH_SalVentAttnA_ParOper_1 - lookupLabel: 285 - originalLookupLabel: 285 - center: - x: 58.0 - y: -31.0 - z: 24.0 - color: '#c83afa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_2: - name: 17Networks_RH_SalVentAttnA_ParOper_2 - lookupLabel: 286 - originalLookupLabel: 286 - center: - x: 60.0 - y: -22.0 - z: 22.0 - color: '#c83afb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_3: - name: 17Networks_RH_SalVentAttnA_ParOper_3 - lookupLabel: 287 - originalLookupLabel: 287 - center: - x: 63.0 - y: -26.0 - z: 38.0 - color: '#c83afc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_PrC_1: - name: 17Networks_RH_SalVentAttnA_PrC_1 - lookupLabel: 288 - originalLookupLabel: 288 - center: - x: 51.0 - y: 3.0 - z: 41.0 - color: '#c839fb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_1: - name: 17Networks_RH_SalVentAttnA_Ins_1 - lookupLabel: 289 - originalLookupLabel: 289 - center: - x: 40.0 - y: 5.0 - z: -15.0 - color: '#c73af8' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_2: - name: 17Networks_RH_SalVentAttnA_Ins_2 - lookupLabel: 290 - originalLookupLabel: 290 - center: - x: 41.0 - y: 8.0 - z: -3.0 - color: '#c73af9' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_3: - name: 17Networks_RH_SalVentAttnA_Ins_3 - lookupLabel: 291 - originalLookupLabel: 291 - center: - x: 40.0 - y: -10.0 - z: -4.0 - color: '#c73afb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_4: - name: 17Networks_RH_SalVentAttnA_Ins_4 - lookupLabel: 292 - originalLookupLabel: 292 - center: - x: 39.0 - y: -2.0 - z: 6.0 - color: '#c73afc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_1: - name: 17Networks_RH_SalVentAttnA_FrOper_1 - lookupLabel: 293 - originalLookupLabel: 293 - center: - x: 38.0 - y: 7.0 - z: 11.0 - color: '#c73afd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_2: - name: 17Networks_RH_SalVentAttnA_FrOper_2 - lookupLabel: 294 - originalLookupLabel: 294 - center: - x: 49.0 - y: 5.0 - z: 3.0 - color: '#c73afe' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_3: - name: 17Networks_RH_SalVentAttnA_FrOper_3 - lookupLabel: 295 - originalLookupLabel: 295 - center: - x: 54.0 - y: 12.0 - z: 12.0 - color: '#c73aff' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_1: - name: 17Networks_RH_SalVentAttnA_FrMed_1 - lookupLabel: 296 - originalLookupLabel: 296 - center: - x: 7.0 - y: 2.0 - z: 43.0 - color: '#c73af7' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_1: - name: 17Networks_RH_SalVentAttnA_ParMed_1 - lookupLabel: 297 - originalLookupLabel: 297 - center: - x: 11.0 - y: -17.0 - z: 41.0 - color: '#c73afa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_2: - name: 17Networks_RH_SalVentAttnA_ParMed_2 - lookupLabel: 298 - originalLookupLabel: 298 - center: - x: 12.0 - y: -34.0 - z: 43.0 - color: '#c433f9' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_2: - name: 17Networks_RH_SalVentAttnA_FrMed_2 - lookupLabel: 299 - originalLookupLabel: 299 - center: - x: 6.0 - y: 11.0 - z: 58.0 - color: '#c434f2' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_3: - name: 17Networks_RH_SalVentAttnA_ParMed_3 - lookupLabel: 300 - originalLookupLabel: 300 - center: - x: 10.0 - y: -43.0 - z: 53.0 - color: '#c434f3' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_4: - name: 17Networks_RH_SalVentAttnA_ParMed_4 - lookupLabel: 301 - originalLookupLabel: 301 - center: - x: 11.0 - y: -32.0 - z: 50.0 - color: '#c434f4' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_3: - name: 17Networks_RH_SalVentAttnA_FrMed_3 - lookupLabel: 302 - originalLookupLabel: 302 - center: - x: 7.0 - y: -2.0 - z: 67.0 - color: '#c434f5' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_4: - name: 17Networks_RH_SalVentAttnA_FrMed_4 - lookupLabel: 303 - originalLookupLabel: 303 - center: - x: 16.0 - y: 7.0 - z: 69.0 - color: '#c434f6' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnB_IPL_1: - name: 17Networks_RH_SalVentAttnB_IPL_1 - lookupLabel: 304 - originalLookupLabel: 304 - center: - x: 62.0 - y: -37.0 - z: 37.0 - color: '#fa98d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFClv_1: - name: 17Networks_RH_SalVentAttnB_PFClv_1 - lookupLabel: 305 - originalLookupLabel: 305 - center: - x: 49.0 - y: 40.0 - z: 5.0 - color: '#fa97d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_1: - name: 17Networks_RH_SalVentAttnB_PFCl_1 - lookupLabel: 306 - originalLookupLabel: 306 - center: - x: 42.0 - y: 46.0 - z: 14.0 - color: '#fa97d7' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_2: - name: 17Networks_RH_SalVentAttnB_PFCl_2 - lookupLabel: 307 - originalLookupLabel: 307 - center: - x: 25.0 - y: 54.0 - z: 25.0 - color: '#fa97d8' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_3: - name: 17Networks_RH_SalVentAttnB_PFCl_3 - lookupLabel: 308 - originalLookupLabel: 308 - center: - x: 33.0 - y: 45.0 - z: 28.0 - color: '#fa97d9' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_1: - name: 17Networks_RH_SalVentAttnB_Ins_1 - lookupLabel: 309 - originalLookupLabel: 309 - center: - x: 34.0 - y: 21.0 - z: -8.0 - color: '#fa98d7' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_2: - name: 17Networks_RH_SalVentAttnB_Ins_2 - lookupLabel: 310 - originalLookupLabel: 310 - center: - x: 37.0 - y: 23.0 - z: 5.0 - color: '#fa98d8' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCmp_1: - name: 17Networks_RH_SalVentAttnB_PFCmp_1 - lookupLabel: 311 - originalLookupLabel: 311 - center: - x: 8.0 - y: 35.0 - z: 25.0 - color: '#fa99d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCmp_2: - name: 17Networks_RH_SalVentAttnB_PFCmp_2 - lookupLabel: 312 - originalLookupLabel: 312 - center: - x: 7.0 - y: 19.0 - z: 35.0 - color: '#fa99d7' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_LimbicB_OFC_1: - name: 17Networks_RH_LimbicB_OFC_1 - lookupLabel: 313 - originalLookupLabel: 313 - center: - x: 13.0 - y: 24.0 - z: -21.0 - color: '#7e8732' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_2: - name: 17Networks_RH_LimbicB_OFC_2 - lookupLabel: 314 - originalLookupLabel: 314 - center: - x: 23.0 - y: 22.0 - z: -21.0 - color: '#7e8734' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_3: - name: 17Networks_RH_LimbicB_OFC_3 - lookupLabel: 315 - originalLookupLabel: 315 - center: - x: 8.0 - y: 47.0 - z: -23.0 - color: '#7e8735' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_4: - name: 17Networks_RH_LimbicB_OFC_4 - lookupLabel: 316 - originalLookupLabel: 316 - center: - x: 20.0 - y: 43.0 - z: -18.0 - color: '#7e8736' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_5: - name: 17Networks_RH_LimbicB_OFC_5 - lookupLabel: 317 - originalLookupLabel: 317 - center: - x: 5.0 - y: 22.0 - z: -21.0 - color: '#7e8737' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_6: - name: 17Networks_RH_LimbicB_OFC_6 - lookupLabel: 318 - originalLookupLabel: 318 - center: - x: 9.0 - y: 63.0 - z: -14.0 - color: '#7e8738' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicA_TempPole_1: - name: 17Networks_RH_LimbicA_TempPole_1 - lookupLabel: 319 - originalLookupLabel: 319 - center: - x: 28.0 - y: -1.0 - z: -40.0 - color: '#e0f8a4' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_2: - name: 17Networks_RH_LimbicA_TempPole_2 - lookupLabel: 320 - originalLookupLabel: 320 - center: - x: 49.0 - y: -7.0 - z: -39.0 - color: '#e0f8a6' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_3: - name: 17Networks_RH_LimbicA_TempPole_3 - lookupLabel: 321 - originalLookupLabel: 321 - center: - x: 37.0 - y: 17.0 - z: -38.0 - color: '#e0f8a7' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_4: - name: 17Networks_RH_LimbicA_TempPole_4 - lookupLabel: 322 - originalLookupLabel: 322 - center: - x: 39.0 - y: -15.0 - z: -31.0 - color: '#e0f8a8' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_5: - name: 17Networks_RH_LimbicA_TempPole_5 - lookupLabel: 323 - originalLookupLabel: 323 - center: - x: 29.0 - y: 12.0 - z: -30.0 - color: '#e0f8a9' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_6: - name: 17Networks_RH_LimbicA_TempPole_6 - lookupLabel: 324 - originalLookupLabel: 324 - center: - x: 50.0 - y: -28.0 - z: -26.0 - color: '#e0f8aa' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_ContA_IPS_1: - name: 17Networks_RH_ContA_IPS_1 - lookupLabel: 325 - originalLookupLabel: 325 - center: - x: 35.0 - y: -71.0 - z: 47.0 - color: '#ea9323' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_2: - name: 17Networks_RH_ContA_IPS_2 - lookupLabel: 326 - originalLookupLabel: 326 - center: - x: 54.0 - y: -33.0 - z: 51.0 - color: '#ea9324' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_3: - name: 17Networks_RH_ContA_IPS_3 - lookupLabel: 327 - originalLookupLabel: 327 - center: - x: 47.0 - y: -44.0 - z: 46.0 - color: '#ea9325' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_4: - name: 17Networks_RH_ContA_IPS_4 - lookupLabel: 328 - originalLookupLabel: 328 - center: - x: 36.0 - y: -44.0 - z: 45.0 - color: '#ea9326' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCd_1: - name: 17Networks_RH_ContA_PFCd_1 - lookupLabel: 329 - originalLookupLabel: 329 - center: - x: 24.0 - y: 10.0 - z: 58.0 - color: '#ea9322' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_1: - name: 17Networks_RH_ContA_PFCl_1 - lookupLabel: 330 - originalLookupLabel: 330 - center: - x: 50.0 - y: 30.0 - z: 18.0 - color: '#e99421' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_2: - name: 17Networks_RH_ContA_PFCl_2 - lookupLabel: 331 - originalLookupLabel: 331 - center: - x: 48.0 - y: 18.0 - z: 23.0 - color: '#e99423' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_3: - name: 17Networks_RH_ContA_PFCl_3 - lookupLabel: 332 - originalLookupLabel: 332 - center: - x: 47.0 - y: 29.0 - z: 28.0 - color: '#e99424' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_4: - name: 17Networks_RH_ContA_PFCl_4 - lookupLabel: 333 - originalLookupLabel: 333 - center: - x: 49.0 - y: 8.0 - z: 25.0 - color: '#e99425' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_5: - name: 17Networks_RH_ContA_PFCl_5 - lookupLabel: 334 - originalLookupLabel: 334 - center: - x: 39.0 - y: 11.0 - z: 34.0 - color: '#e99426' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_Cingm_1: - name: 17Networks_RH_ContA_Cingm_1 - lookupLabel: 335 - originalLookupLabel: 335 - center: - x: 5.0 - y: 1.0 - z: 30.0 - color: '#e99422' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContB_Temp_1: - name: 17Networks_RH_ContB_Temp_1 - lookupLabel: 336 - originalLookupLabel: 336 - center: - x: 62.0 - y: -28.0 - z: -20.0 - color: '#8c334c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_Temp_2: - name: 17Networks_RH_ContB_Temp_2 - lookupLabel: 337 - originalLookupLabel: 337 - center: - x: 63.0 - y: -42.0 - z: -11.0 - color: '#8c334d' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_1: - name: 17Networks_RH_ContB_IPL_1 - lookupLabel: 338 - originalLookupLabel: 338 - center: - x: 55.0 - y: -45.0 - z: 33.0 - color: '#8b324a' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_2: - name: 17Networks_RH_ContB_IPL_2 - lookupLabel: 339 - originalLookupLabel: 339 - center: - x: 54.0 - y: -53.0 - z: 44.0 - color: '#8b324b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_3: - name: 17Networks_RH_ContB_IPL_3 - lookupLabel: 340 - originalLookupLabel: 340 - center: - x: 56.0 - y: -41.0 - z: 48.0 - color: '#8b324c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_4: - name: 17Networks_RH_ContB_IPL_4 - lookupLabel: 341 - originalLookupLabel: 341 - center: - x: 41.0 - y: -55.0 - z: 48.0 - color: '#8b324d' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_1: - name: 17Networks_RH_ContB_PFCld_1 - lookupLabel: 342 - originalLookupLabel: 342 - center: - x: 39.0 - y: 33.0 - z: 38.0 - color: '#8b314b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_2: - name: 17Networks_RH_ContB_PFCld_2 - lookupLabel: 343 - originalLookupLabel: 343 - center: - x: 45.0 - y: 19.0 - z: 44.0 - color: '#8b314c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_3: - name: 17Networks_RH_ContB_PFCld_3 - lookupLabel: 344 - originalLookupLabel: 344 - center: - x: 43.0 - y: 7.0 - z: 51.0 - color: '#8b314d' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_4: - name: 17Networks_RH_ContB_PFCld_4 - lookupLabel: 345 - originalLookupLabel: 345 - center: - x: 34.0 - y: 15.0 - z: 56.0 - color: '#8b314e' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_1: - name: 17Networks_RH_ContB_PFClv_1 - lookupLabel: 346 - originalLookupLabel: 346 - center: - x: 35.0 - y: 38.0 - z: -13.0 - color: '#8b314a' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_2: - name: 17Networks_RH_ContB_PFClv_2 - lookupLabel: 347 - originalLookupLabel: 347 - center: - x: 28.0 - y: 55.0 - z: -14.0 - color: '#8b314f' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_3: - name: 17Networks_RH_ContB_PFClv_3 - lookupLabel: 348 - originalLookupLabel: 348 - center: - x: 42.0 - y: 51.0 - z: -6.0 - color: '#8b3150' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_4: - name: 17Networks_RH_ContB_PFClv_4 - lookupLabel: 349 - originalLookupLabel: 349 - center: - x: 27.0 - y: 59.0 - z: 3.0 - color: '#8b3249' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCmp_1: - name: 17Networks_RH_ContB_PFCmp_1 - lookupLabel: 350 - originalLookupLabel: 350 - center: - x: 5.0 - y: 28.0 - z: 48.0 - color: '#8a324b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContC_pCun_1: - name: 17Networks_RH_ContC_pCun_1 - lookupLabel: 351 - originalLookupLabel: 351 - center: - x: 17.0 - y: -63.0 - z: 28.0 - color: '#7b8daf' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_2: - name: 17Networks_RH_ContC_pCun_2 - lookupLabel: 352 - originalLookupLabel: 352 - center: - x: 13.0 - y: -71.0 - z: 39.0 - color: '#7b8db1' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_3: - name: 17Networks_RH_ContC_pCun_3 - lookupLabel: 353 - originalLookupLabel: 353 - center: - x: 5.0 - y: -64.0 - z: 44.0 - color: '#7b8db2' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_4: - name: 17Networks_RH_ContC_pCun_4 - lookupLabel: 354 - originalLookupLabel: 354 - center: - x: 7.0 - y: -50.0 - z: 45.0 - color: '#7b8db3' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_5: - name: 17Networks_RH_ContC_pCun_5 - lookupLabel: 355 - originalLookupLabel: 355 - center: - x: 8.0 - y: -71.0 - z: 53.0 - color: '#7b8db4' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_Cingp_1: - name: 17Networks_RH_ContC_Cingp_1 - lookupLabel: 356 - originalLookupLabel: 356 - center: - x: 7.0 - y: -44.0 - z: 20.0 - color: '#7b8db5' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_Cingp_2: - name: 17Networks_RH_ContC_Cingp_2 - lookupLabel: 357 - originalLookupLabel: 357 - center: - x: 6.0 - y: -26.0 - z: 28.0 - color: '#7b8db6' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_DefaultA_Temp_1: - name: 17Networks_RH_DefaultA_Temp_1 - lookupLabel: 358 - originalLookupLabel: 358 - center: - x: 61.0 - y: -8.0 - z: -23.0 - color: '#faff02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_1: - name: 17Networks_RH_DefaultA_IPL_1 - lookupLabel: 359 - originalLookupLabel: 359 - center: - x: 53.0 - y: -53.0 - z: 26.0 - color: '#fbfe02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_2: - name: 17Networks_RH_DefaultA_IPL_2 - lookupLabel: 360 - originalLookupLabel: 360 - center: - x: 47.0 - y: -64.0 - z: 42.0 - color: '#fbfe03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCd_1: - name: 17Networks_RH_DefaultA_PFCd_1 - lookupLabel: 361 - originalLookupLabel: 361 - center: - x: 26.0 - y: 34.0 - z: 39.0 - color: '#fbff03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCd_2: - name: 17Networks_RH_DefaultA_PFCd_2 - lookupLabel: 362 - originalLookupLabel: 362 - center: - x: 24.0 - y: 26.0 - z: 51.0 - color: '#fbff04' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_1: - name: 17Networks_RH_DefaultA_pCunPCC_1 - lookupLabel: 363 - originalLookupLabel: 363 - center: - x: 6.0 - y: -52.0 - z: 23.0 - color: '#fbfd01' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_2: - name: 17Networks_RH_DefaultA_pCunPCC_2 - lookupLabel: 364 - originalLookupLabel: 364 - center: - x: 5.0 - y: -63.0 - z: 31.0 - color: '#fbfd02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_3: - name: 17Networks_RH_DefaultA_pCunPCC_3 - lookupLabel: 365 - originalLookupLabel: 365 - center: - x: 7.0 - y: -39.0 - z: 35.0 - color: '#fbfd03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_4: - name: 17Networks_RH_DefaultA_pCunPCC_4 - lookupLabel: 366 - originalLookupLabel: 366 - center: - x: 4.0 - y: -20.0 - z: 37.0 - color: '#fbfd04' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_5: - name: 17Networks_RH_DefaultA_pCunPCC_5 - lookupLabel: 367 - originalLookupLabel: 367 - center: - x: 10.0 - y: -53.0 - z: 35.0 - color: '#fbfd05' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_1: - name: 17Networks_RH_DefaultA_PFCm_1 - lookupLabel: 368 - originalLookupLabel: 368 - center: - x: 5.0 - y: 41.0 - z: -11.0 - color: '#f9ff01' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_2: - name: 17Networks_RH_DefaultA_PFCm_2 - lookupLabel: 369 - originalLookupLabel: 369 - center: - x: 9.0 - y: 67.0 - z: 1.0 - color: '#f9ff02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_3: - name: 17Networks_RH_DefaultA_PFCm_3 - lookupLabel: 370 - originalLookupLabel: 370 - center: - x: 7.0 - y: 42.0 - z: 4.0 - color: '#f9ff03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_4: - name: 17Networks_RH_DefaultA_PFCm_4 - lookupLabel: 371 - originalLookupLabel: 371 - center: - x: 7.0 - y: 54.0 - z: 13.0 - color: '#f9ff04' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_5: - name: 17Networks_RH_DefaultA_PFCm_5 - lookupLabel: 372 - originalLookupLabel: 372 - center: - x: 17.0 - y: 65.0 - z: 16.0 - color: '#f9ff05' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_6: - name: 17Networks_RH_DefaultA_PFCm_6 - lookupLabel: 373 - originalLookupLabel: 373 - center: - x: 6.0 - y: 25.0 - z: 18.0 - color: '#f9ff06' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultB_Temp_1: - name: 17Networks_RH_DefaultB_Temp_1 - lookupLabel: 374 - originalLookupLabel: 374 - center: - x: 63.0 - y: -23.0 - z: -7.0 - color: '#d23e50' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_Temp_2: - name: 17Networks_RH_DefaultB_Temp_2 - lookupLabel: 375 - originalLookupLabel: 375 - center: - x: 63.0 - y: -38.0 - z: 0.0 - color: '#d23e51' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_AntTemp_1: - name: 17Networks_RH_DefaultB_AntTemp_1 - lookupLabel: 376 - originalLookupLabel: 376 - center: - x: 49.0 - y: 9.0 - z: -33.0 - color: '#d23f4f' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_1: - name: 17Networks_RH_DefaultB_PFCd_1 - lookupLabel: 377 - originalLookupLabel: 377 - center: - x: 6.0 - y: 58.0 - z: 29.0 - color: '#d23f4e' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_2: - name: 17Networks_RH_DefaultB_PFCd_2 - lookupLabel: 378 - originalLookupLabel: 378 - center: - x: 16.0 - y: 52.0 - z: 36.0 - color: '#d23f50' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_3: - name: 17Networks_RH_DefaultB_PFCd_3 - lookupLabel: 379 - originalLookupLabel: 379 - center: - x: 5.0 - y: 44.0 - z: 40.0 - color: '#d23f51' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_4: - name: 17Networks_RH_DefaultB_PFCd_4 - lookupLabel: 380 - originalLookupLabel: 380 - center: - x: 14.0 - y: 39.0 - z: 52.0 - color: '#d23f52' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_5: - name: 17Networks_RH_DefaultB_PFCd_5 - lookupLabel: 381 - originalLookupLabel: 381 - center: - x: 12.0 - y: 20.0 - z: 63.0 - color: '#d23f53' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_1: - name: 17Networks_RH_DefaultB_PFCv_1 - lookupLabel: 382 - originalLookupLabel: 382 - center: - x: 35.0 - y: 23.0 - z: -18.0 - color: '#d13e4e' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_2: - name: 17Networks_RH_DefaultB_PFCv_2 - lookupLabel: 383 - originalLookupLabel: 383 - center: - x: 48.0 - y: 32.0 - z: -8.0 - color: '#d13e4f' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_3: - name: 17Networks_RH_DefaultB_PFCv_3 - lookupLabel: 384 - originalLookupLabel: 384 - center: - x: 54.0 - y: 24.0 - z: 6.0 - color: '#d13e50' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultC_IPL_1: - name: 17Networks_RH_DefaultC_IPL_1 - lookupLabel: 385 - originalLookupLabel: 385 - center: - x: 48.0 - y: -64.0 - z: 22.0 - color: '#040184' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_IPL_2: - name: 17Networks_RH_DefaultC_IPL_2 - lookupLabel: 386 - originalLookupLabel: 386 - center: - x: 45.0 - y: -75.0 - z: 31.0 - color: '#040185' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_Rsp_1: - name: 17Networks_RH_DefaultC_Rsp_1 - lookupLabel: 387 - originalLookupLabel: 387 - center: - x: 14.0 - y: -46.0 - z: 4.0 - color: '#050083' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_Rsp_2: - name: 17Networks_RH_DefaultC_Rsp_2 - lookupLabel: 388 - originalLookupLabel: 388 - center: - x: 12.0 - y: -55.0 - z: 15.0 - color: '#050084' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_PHC_1: - name: 17Networks_RH_DefaultC_PHC_1 - lookupLabel: 389 - originalLookupLabel: 389 - center: - x: 23.0 - y: -18.0 - z: -27.0 - color: '#050085' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_PHC_2: - name: 17Networks_RH_DefaultC_PHC_2 - lookupLabel: 390 - originalLookupLabel: 390 - center: - x: 31.0 - y: -31.0 - z: -18.0 - color: '#050086' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_TempPar_1: - name: 17Networks_RH_TempPar_1 - lookupLabel: 391 - originalLookupLabel: 391 - center: - x: 47.0 - y: 16.0 - z: -20.0 - color: '#1030fb' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_2: - name: 17Networks_RH_TempPar_2 - lookupLabel: 392 - originalLookupLabel: 392 - center: - x: 55.0 - y: -4.0 - z: -14.0 - color: '#1030fc' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_3: - name: 17Networks_RH_TempPar_3 - lookupLabel: 393 - originalLookupLabel: 393 - center: - x: 49.0 - y: -20.0 - z: -8.0 - color: '#1030fd' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_4: - name: 17Networks_RH_TempPar_4 - lookupLabel: 394 - originalLookupLabel: 394 - center: - x: 62.0 - y: -19.0 - z: 0.0 - color: '#1030ff' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_5: - name: 17Networks_RH_TempPar_5 - lookupLabel: 395 - originalLookupLabel: 395 - center: - x: 50.0 - y: -33.0 - z: 2.0 - color: '#0d29fa' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_6: - name: 17Networks_RH_TempPar_6 - lookupLabel: 396 - originalLookupLabel: 396 - center: - x: 59.0 - y: -46.0 - z: 7.0 - color: '#0d29fb' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_7: - name: 17Networks_RH_TempPar_7 - lookupLabel: 397 - originalLookupLabel: 397 - center: - x: 51.0 - y: -41.0 - z: 13.0 - color: '#0d29fc' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_8: - name: 17Networks_RH_TempPar_8 - lookupLabel: 398 - originalLookupLabel: 398 - center: - x: 65.0 - y: -34.0 - z: 11.0 - color: '#0d29fd' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_9: - name: 17Networks_RH_TempPar_9 - lookupLabel: 399 - originalLookupLabel: 399 - center: - x: 55.0 - y: -46.0 - z: 19.0 - color: '#0d29fe' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_10: - name: 17Networks_RH_TempPar_10 - lookupLabel: 400 - originalLookupLabel: 400 - center: - x: 62.0 - y: -40.0 - z: 22.0 - color: '#0d2af7' - hemisphere: right - hasParent: - - RH_TempPar - versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_400Parcels_17Networks_order_FSLMNI152_1mm.nii.gz diff --git a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-400_res-1_desc-ordered_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-400_res-1_desc-ordered_dseg.yaml similarity index 99% rename from tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-400_res-1_desc-ordered_dseg.yaml rename to tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-400_res-1_desc-ordered_dseg.yaml index e68cdb178..a5c24d570 100644 --- a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-400_res-1_desc-ordered_dseg.yaml +++ b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-400_res-1_desc-ordered_dseg.yaml @@ -1,14 +1,12 @@ name: Schaefer2018 abbreviation: Schaefer2018 versionIdentifier: '2018' -coordinateSpace: - name: MNI152 - abbreviation: FSLMNI152 - nativeUnit: mm +coordinateSpace: FSLMNI152 terminology: label: Schaefer2018_400Parcels_17Networks_order versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_400Parcels_17Networks_order_FSLMNI152_1mm.nii.gz + dataLocation: + schaefer2018_original_mni/Schaefer2018_400Parcels_17Networks_order_FSLMNI152_1mm.nii.gz entities: 17Networks_LH_VisCent_ExStr_1: name: 17Networks_LH_VisCent_ExStr_1 diff --git a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-500_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-500_dseg.yaml deleted file mode 100644 index 724e534d9..000000000 --- a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-500_dseg.yaml +++ /dev/null @@ -1,6281 +0,0 @@ -name: Schaefer2018 -abbreviation: Schaefer2018 -versionIdentifier: '2018' -coordinateSpace: MNI152NLin6Asym -terminology: - label: Schaefer2018_500Parcels_17Networks_order - entities: - LH_VisCent: - name: LH_VisCent - lookupLabel: -1 - hemisphere: left - center: - x: -25.3 - y: -83.9 - z: -2.7 - LH_VisPeri: - name: LH_VisPeri - lookupLabel: -2 - hemisphere: left - center: - x: -11.1 - y: -72.1 - z: 9.6 - LH_SomMotA: - name: LH_SomMotA - lookupLabel: -3 - hemisphere: left - center: - x: -22.6 - y: -26.1 - z: 63.3 - LH_SomMotB: - name: LH_SomMotB - lookupLabel: -4 - hemisphere: left - center: - x: -50.6 - y: -16.7 - z: 18.9 - LH_DorsAttnA: - name: LH_DorsAttnA - lookupLabel: -5 - hemisphere: left - center: - x: -32.6 - y: -66.4 - z: 30.4 - LH_DorsAttnB: - name: LH_DorsAttnB - lookupLabel: -6 - hemisphere: left - center: - x: -36.1 - y: -32.4 - z: 48.6 - LH_SalVentAttnA: - name: LH_SalVentAttnA - lookupLabel: -7 - hemisphere: left - center: - x: -28.7 - y: -13.7 - z: 30.7 - LH_SalVentAttnB: - name: LH_SalVentAttnB - lookupLabel: -8 - hemisphere: left - center: - x: -26.2 - y: 19.7 - z: 22.5 - LH_LimbicB: - name: LH_LimbicB - lookupLabel: -9 - hemisphere: left - center: - x: -13.0 - y: 38.0 - z: -18.3 - LH_LimbicA: - name: LH_LimbicA - lookupLabel: -10 - hemisphere: left - center: - x: -36.2 - y: -7.8 - z: -30.3 - LH_ContA: - name: LH_ContA - lookupLabel: -11 - hemisphere: left - center: - x: -37.3 - y: -20.5 - z: 36.3 - LH_ContB: - name: LH_ContB - lookupLabel: -12 - hemisphere: left - center: - x: -34.8 - y: 13.6 - z: 24.9 - LH_ContC: - name: LH_ContC - lookupLabel: -13 - hemisphere: left - center: - x: -6.7 - y: -56.8 - z: 38.2 - LH_DefaultA: - name: LH_DefaultA - lookupLabel: -14 - hemisphere: left - center: - x: -15.1 - y: -9.1 - z: 25.6 - LH_DefaultB: - name: LH_DefaultB - lookupLabel: -15 - hemisphere: left - center: - x: -37.2 - y: 14.5 - z: 11.6 - LH_DefaultC: - name: LH_DefaultC - lookupLabel: -16 - hemisphere: left - center: - x: -20.2 - y: -46.2 - z: -0.6 - LH_TempPar: - name: LH_TempPar - lookupLabel: -17 - hemisphere: left - center: - x: -56.6 - y: -33.4 - z: 4.3 - RH_VisCent: - name: RH_VisCent - lookupLabel: -18 - hemisphere: right - center: - x: 28.8 - y: -80.9 - z: -1.4 - RH_VisPeri: - name: RH_VisPeri - lookupLabel: -19 - hemisphere: right - center: - x: 12.7 - y: -64.6 - z: 7.2 - RH_SomMotA: - name: RH_SomMotA - lookupLabel: -20 - hemisphere: right - center: - x: 23.9 - y: -23.8 - z: 61.8 - RH_SomMotB: - name: RH_SomMotB - lookupLabel: -21 - hemisphere: right - center: - x: 50.5 - y: -11.9 - z: 17.5 - RH_DorsAttnA: - name: RH_DorsAttnA - lookupLabel: -22 - hemisphere: right - center: - x: 33.8 - y: -63.0 - z: 33.5 - RH_DorsAttnB: - name: RH_DorsAttnB - lookupLabel: -23 - hemisphere: right - center: - x: 36.5 - y: -28.1 - z: 49.9 - RH_SalVentAttnA: - name: RH_SalVentAttnA - lookupLabel: -24 - hemisphere: right - center: - x: 32.8 - y: -11.6 - z: 29.2 - RH_SalVentAttnB: - name: RH_SalVentAttnB - lookupLabel: -25 - hemisphere: right - center: - x: 32.6 - y: 18.2 - z: 25.9 - RH_LimbicB: - name: RH_LimbicB - lookupLabel: -26 - hemisphere: right - center: - x: 11.7 - y: 33.3 - z: -18.7 - RH_LimbicA: - name: RH_LimbicA - lookupLabel: -27 - hemisphere: right - center: - x: 37.9 - y: -2.2 - z: -31.9 - RH_ContA: - name: RH_ContA - lookupLabel: -28 - hemisphere: right - center: - x: 39.5 - y: -2.5 - z: 33.6 - RH_ContB: - name: RH_ContB - lookupLabel: -29 - hemisphere: right - center: - x: 39.4 - y: 3.6 - z: 25.0 - RH_ContC: - name: RH_ContC - lookupLabel: -30 - hemisphere: right - center: - x: 8.1 - y: -50.1 - z: 38.0 - RH_DefaultA: - name: RH_DefaultA - lookupLabel: -31 - hemisphere: right - center: - x: 17.7 - y: -5.4 - z: 20.4 - RH_DefaultB: - name: RH_DefaultB - lookupLabel: -32 - hemisphere: right - center: - x: 34.9 - y: 20.8 - z: 9.2 - RH_DefaultC: - name: RH_DefaultC - lookupLabel: -33 - hemisphere: right - center: - x: 26.5 - y: -42.2 - z: -3.3 - RH_TempPar: - name: RH_TempPar - lookupLabel: -34 - hemisphere: right - center: - x: 56.0 - y: -28.0 - z: 2.9 - 17Networks_LH_VisCent_Striate_1: - name: 17Networks_LH_VisCent_Striate_1 - lookupLabel: 1 - originalLookupLabel: 1 - center: - x: -5.0 - y: -87.0 - z: -12.0 - color: '#781287' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_Striate_2: - name: 17Networks_LH_VisCent_Striate_2 - lookupLabel: 2 - originalLookupLabel: 2 - center: - x: -9.0 - y: -98.0 - z: -11.0 - color: '#781288' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_1: - name: 17Networks_LH_VisCent_ExStr_1 - lookupLabel: 3 - originalLookupLabel: 3 - center: - x: -35.0 - y: -60.0 - z: -17.0 - color: '#781282' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_2: - name: 17Networks_LH_VisCent_ExStr_2 - lookupLabel: 4 - originalLookupLabel: 4 - center: - x: -25.0 - y: -57.0 - z: -10.0 - color: '#781283' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_3: - name: 17Networks_LH_VisCent_ExStr_3 - lookupLabel: 5 - originalLookupLabel: 5 - center: - x: -37.0 - y: -80.0 - z: -16.0 - color: '#781284' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_4: - name: 17Networks_LH_VisCent_ExStr_4 - lookupLabel: 6 - originalLookupLabel: 6 - center: - x: -23.0 - y: -73.0 - z: -10.0 - color: '#781285' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_5: - name: 17Networks_LH_VisCent_ExStr_5 - lookupLabel: 7 - originalLookupLabel: 7 - center: - x: -19.0 - y: -86.0 - z: -15.0 - color: '#781286' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_6: - name: 17Networks_LH_VisCent_ExStr_6 - lookupLabel: 8 - originalLookupLabel: 8 - center: - x: -25.0 - y: -97.0 - z: -12.0 - color: '#781289' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_7: - name: 17Networks_LH_VisCent_ExStr_7 - lookupLabel: 9 - originalLookupLabel: 9 - center: - x: -43.0 - y: -85.0 - z: -5.0 - color: '#78128a' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_8: - name: 17Networks_LH_VisCent_ExStr_8 - lookupLabel: 10 - originalLookupLabel: 10 - center: - x: -45.0 - y: -75.0 - z: 5.0 - color: '#78128b' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_9: - name: 17Networks_LH_VisCent_ExStr_9 - lookupLabel: 11 - originalLookupLabel: 11 - center: - x: -25.0 - y: -96.0 - z: 5.0 - color: '#78128c' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_10: - name: 17Networks_LH_VisCent_ExStr_10 - lookupLabel: 12 - originalLookupLabel: 12 - center: - x: -10.0 - y: -102.0 - z: 6.0 - color: '#78128d' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_11: - name: 17Networks_LH_VisCent_ExStr_11 - lookupLabel: 13 - originalLookupLabel: 13 - center: - x: -34.0 - y: -88.0 - z: 9.0 - color: '#78128e' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_12: - name: 17Networks_LH_VisCent_ExStr_12 - lookupLabel: 14 - originalLookupLabel: 14 - center: - x: -18.0 - y: -93.0 - z: 21.0 - color: '#781387' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_13: - name: 17Networks_LH_VisCent_ExStr_13 - lookupLabel: 15 - originalLookupLabel: 15 - center: - x: -26.0 - y: -82.0 - z: 22.0 - color: '#781388' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisPeri_StriCal_1: - name: 17Networks_LH_VisPeri_StriCal_1 - lookupLabel: 16 - originalLookupLabel: 16 - center: - x: -8.0 - y: -61.0 - z: 3.0 - color: '#ff0001' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_2: - name: 17Networks_LH_VisPeri_StriCal_2 - lookupLabel: 17 - originalLookupLabel: 17 - center: - x: -5.0 - y: -74.0 - z: 5.0 - color: '#ff0002' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_3: - name: 17Networks_LH_VisPeri_StriCal_3 - lookupLabel: 18 - originalLookupLabel: 18 - center: - x: -5.0 - y: -91.0 - z: 1.0 - color: '#ff0003' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_4: - name: 17Networks_LH_VisPeri_StriCal_4 - lookupLabel: 19 - originalLookupLabel: 19 - center: - x: -16.0 - y: -68.0 - z: 7.0 - color: '#ff0004' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_5: - name: 17Networks_LH_VisPeri_StriCal_5 - lookupLabel: 20 - originalLookupLabel: 20 - center: - x: -6.0 - y: -78.0 - z: 11.0 - color: '#ff0005' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_1: - name: 17Networks_LH_VisPeri_ExStrInf_1 - lookupLabel: 21 - originalLookupLabel: 21 - center: - x: -23.0 - y: -48.0 - z: -6.0 - color: '#ff0000' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_2: - name: 17Networks_LH_VisPeri_ExStrInf_2 - lookupLabel: 22 - originalLookupLabel: 22 - center: - x: -13.0 - y: -61.0 - z: -5.0 - color: '#ff0006' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_3: - name: 17Networks_LH_VisPeri_ExStrInf_3 - lookupLabel: 23 - originalLookupLabel: 23 - center: - x: -7.0 - y: -75.0 - z: -6.0 - color: '#ff0007' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_4: - name: 17Networks_LH_VisPeri_ExStrInf_4 - lookupLabel: 24 - originalLookupLabel: 24 - center: - x: -15.0 - y: -47.0 - z: -3.0 - color: '#ff0008' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_5: - name: 17Networks_LH_VisPeri_ExStrInf_5 - lookupLabel: 25 - originalLookupLabel: 25 - center: - x: -20.0 - y: -58.0 - z: 4.0 - color: '#ff0101' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_1: - name: 17Networks_LH_VisPeri_ExStrSup_1 - lookupLabel: 26 - originalLookupLabel: 26 - center: - x: -6.0 - y: -95.0 - z: 17.0 - color: '#ff0102' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_2: - name: 17Networks_LH_VisPeri_ExStrSup_2 - lookupLabel: 27 - originalLookupLabel: 27 - center: - x: -3.0 - y: -84.0 - z: 25.0 - color: '#ff0103' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_3: - name: 17Networks_LH_VisPeri_ExStrSup_3 - lookupLabel: 28 - originalLookupLabel: 28 - center: - x: -11.0 - y: -72.0 - z: 21.0 - color: '#ff0104' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_4: - name: 17Networks_LH_VisPeri_ExStrSup_4 - lookupLabel: 29 - originalLookupLabel: 29 - center: - x: -16.0 - y: -89.0 - z: 34.0 - color: '#ff0105' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_5: - name: 17Networks_LH_VisPeri_ExStrSup_5 - lookupLabel: 30 - originalLookupLabel: 30 - center: - x: -12.0 - y: -81.0 - z: 36.0 - color: '#ff0106' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_SomMotA_1: - name: 17Networks_LH_SomMotA_1 - lookupLabel: 31 - originalLookupLabel: 31 - center: - x: -49.0 - y: -26.0 - z: 49.0 - color: '#4681b2' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_2: - name: 17Networks_LH_SomMotA_2 - lookupLabel: 32 - originalLookupLabel: 32 - center: - x: -49.0 - y: -17.0 - z: 54.0 - color: '#4681b3' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_3: - name: 17Networks_LH_SomMotA_3 - lookupLabel: 33 - originalLookupLabel: 33 - center: - x: -43.0 - y: -12.0 - z: 51.0 - color: '#4681b4' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_4: - name: 17Networks_LH_SomMotA_4 - lookupLabel: 34 - originalLookupLabel: 34 - center: - x: -7.0 - y: -14.0 - z: 49.0 - color: '#4682ad' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_5: - name: 17Networks_LH_SomMotA_5 - lookupLabel: 35 - originalLookupLabel: 35 - center: - x: -47.0 - y: -30.0 - z: 59.0 - color: '#4682ae' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_6: - name: 17Networks_LH_SomMotA_6 - lookupLabel: 36 - originalLookupLabel: 36 - center: - x: -39.0 - y: -24.0 - z: 53.0 - color: '#4682af' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_7: - name: 17Networks_LH_SomMotA_7 - lookupLabel: 37 - originalLookupLabel: 37 - center: - x: -8.0 - y: -39.0 - z: 56.0 - color: '#4682b0' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_8: - name: 17Networks_LH_SomMotA_8 - lookupLabel: 38 - originalLookupLabel: 38 - center: - x: -36.0 - y: -20.0 - z: 64.0 - color: '#4682b1' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_9: - name: 17Networks_LH_SomMotA_9 - lookupLabel: 39 - originalLookupLabel: 39 - center: - x: -4.0 - y: -26.0 - z: 58.0 - color: '#4682b2' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_10: - name: 17Networks_LH_SomMotA_10 - lookupLabel: 40 - originalLookupLabel: 40 - center: - x: -30.0 - y: -46.0 - z: 63.0 - color: '#4682b3' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_11: - name: 17Networks_LH_SomMotA_11 - lookupLabel: 41 - originalLookupLabel: 41 - center: - x: -5.0 - y: -8.0 - z: 63.0 - color: '#4682b5' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_12: - name: 17Networks_LH_SomMotA_12 - lookupLabel: 42 - originalLookupLabel: 42 - center: - x: -32.0 - y: -29.0 - z: 62.0 - color: '#4682b6' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_13: - name: 17Networks_LH_SomMotA_13 - lookupLabel: 43 - originalLookupLabel: 43 - center: - x: -26.0 - y: -11.0 - z: 66.0 - color: '#4682b7' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_14: - name: 17Networks_LH_SomMotA_14 - lookupLabel: 44 - originalLookupLabel: 44 - center: - x: -29.0 - y: -38.0 - z: 66.0 - color: '#4682b8' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_15: - name: 17Networks_LH_SomMotA_15 - lookupLabel: 45 - originalLookupLabel: 45 - center: - x: -9.0 - y: -43.0 - z: 70.0 - color: '#4682b9' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_16: - name: 17Networks_LH_SomMotA_16 - lookupLabel: 46 - originalLookupLabel: 46 - center: - x: -19.0 - y: -24.0 - z: 67.0 - color: '#4682ba' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_17: - name: 17Networks_LH_SomMotA_17 - lookupLabel: 47 - originalLookupLabel: 47 - center: - x: -20.0 - y: -31.0 - z: 68.0 - color: '#4682bb' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_18: - name: 17Networks_LH_SomMotA_18 - lookupLabel: 48 - originalLookupLabel: 48 - center: - x: -15.0 - y: -13.0 - z: 73.0 - color: '#4683b4' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_19: - name: 17Networks_LH_SomMotA_19 - lookupLabel: 49 - originalLookupLabel: 49 - center: - x: -20.0 - y: -38.0 - z: 72.0 - color: '#4683b5' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_20: - name: 17Networks_LH_SomMotA_20 - lookupLabel: 50 - originalLookupLabel: 50 - center: - x: -3.0 - y: -33.0 - z: 69.0 - color: '#4683b6' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_21: - name: 17Networks_LH_SomMotA_21 - lookupLabel: 51 - originalLookupLabel: 51 - center: - x: -7.0 - y: -17.0 - z: 74.0 - color: '#4683b7' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_22: - name: 17Networks_LH_SomMotA_22 - lookupLabel: 52 - originalLookupLabel: 52 - center: - x: -12.0 - y: -27.0 - z: 73.0 - color: '#4683b8' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_23: - name: 17Networks_LH_SomMotA_23 - lookupLabel: 53 - originalLookupLabel: 53 - center: - x: -10.0 - y: -34.0 - z: 76.0 - color: '#4683b9' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotB_Cent_1: - name: 17Networks_LH_SomMotB_Cent_1 - lookupLabel: 54 - originalLookupLabel: 54 - center: - x: -60.0 - y: -4.0 - z: 18.0 - color: '#2acca2' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_2: - name: 17Networks_LH_SomMotB_Cent_2 - lookupLabel: 55 - originalLookupLabel: 55 - center: - x: -63.0 - y: -11.0 - z: 30.0 - color: '#2acca3' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_3: - name: 17Networks_LH_SomMotB_Cent_3 - lookupLabel: 56 - originalLookupLabel: 56 - center: - x: -58.0 - y: -1.0 - z: 31.0 - color: '#2acca5' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_4: - name: 17Networks_LH_SomMotB_Cent_4 - lookupLabel: 57 - originalLookupLabel: 57 - center: - x: -54.0 - y: -9.0 - z: 28.0 - color: '#2acca6' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_5: - name: 17Networks_LH_SomMotB_Cent_5 - lookupLabel: 58 - originalLookupLabel: 58 - center: - x: -50.0 - y: -15.0 - z: 39.0 - color: '#2acca7' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_6: - name: 17Networks_LH_SomMotB_Cent_6 - lookupLabel: 59 - originalLookupLabel: 59 - center: - x: -51.0 - y: -7.0 - z: 43.0 - color: '#2acca8' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_7: - name: 17Networks_LH_SomMotB_Cent_7 - lookupLabel: 60 - originalLookupLabel: 60 - center: - x: -39.0 - y: -19.0 - z: 42.0 - color: '#2acca9' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_1: - name: 17Networks_LH_SomMotB_S2_1 - lookupLabel: 61 - originalLookupLabel: 61 - center: - x: -38.0 - y: -13.0 - z: 16.0 - color: '#2acca4' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_2: - name: 17Networks_LH_SomMotB_S2_2 - lookupLabel: 62 - originalLookupLabel: 62 - center: - x: -36.0 - y: -27.0 - z: 19.0 - color: '#2accaa' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_3: - name: 17Networks_LH_SomMotB_S2_3 - lookupLabel: 63 - originalLookupLabel: 63 - center: - x: -51.0 - y: -13.0 - z: 13.0 - color: '#2accab' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_4: - name: 17Networks_LH_SomMotB_S2_4 - lookupLabel: 64 - originalLookupLabel: 64 - center: - x: -60.0 - y: -2.0 - z: 12.0 - color: '#2accac' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_5: - name: 17Networks_LH_SomMotB_S2_5 - lookupLabel: 65 - originalLookupLabel: 65 - center: - x: -49.0 - y: -24.0 - z: 18.0 - color: '#2acda5' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_6: - name: 17Networks_LH_SomMotB_S2_6 - lookupLabel: 66 - originalLookupLabel: 66 - center: - x: -62.0 - y: -18.0 - z: 20.0 - color: '#2acda6' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Ins_1: - name: 17Networks_LH_SomMotB_Ins_1 - lookupLabel: 67 - originalLookupLabel: 67 - center: - x: -35.0 - y: -24.0 - z: 11.0 - color: '#2acda7' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_1: - name: 17Networks_LH_SomMotB_Aud_1 - lookupLabel: 68 - originalLookupLabel: 68 - center: - x: -53.0 - y: -1.0 - z: -3.0 - color: '#2bcca2' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_2: - name: 17Networks_LH_SomMotB_Aud_2 - lookupLabel: 69 - originalLookupLabel: 69 - center: - x: -57.0 - y: -16.0 - z: 6.0 - color: '#2bcca3' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_3: - name: 17Networks_LH_SomMotB_Aud_3 - lookupLabel: 70 - originalLookupLabel: 70 - center: - x: -43.0 - y: -19.0 - z: 4.0 - color: '#2bcca5' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_4: - name: 17Networks_LH_SomMotB_Aud_4 - lookupLabel: 71 - originalLookupLabel: 71 - center: - x: -61.0 - y: -27.0 - z: 10.0 - color: '#2bcca6' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_5: - name: 17Networks_LH_SomMotB_Aud_5 - lookupLabel: 72 - originalLookupLabel: 72 - center: - x: -44.0 - y: -28.0 - z: 9.0 - color: '#2bcca7' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_6: - name: 17Networks_LH_SomMotB_Aud_6 - lookupLabel: 73 - originalLookupLabel: 73 - center: - x: -58.0 - y: -37.0 - z: 16.0 - color: '#2bcca8' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_7: - name: 17Networks_LH_SomMotB_Aud_7 - lookupLabel: 74 - originalLookupLabel: 74 - center: - x: -41.0 - y: -36.0 - z: 15.0 - color: '#2bcca9' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_DorsAttnA_TempOcc_1: - name: 17Networks_LH_DorsAttnA_TempOcc_1 - lookupLabel: 75 - originalLookupLabel: 75 - center: - x: -45.0 - y: -44.0 - z: -21.0 - color: '#4a9b3d' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_2: - name: 17Networks_LH_DorsAttnA_TempOcc_2 - lookupLabel: 76 - originalLookupLabel: 76 - center: - x: -49.0 - y: -57.0 - z: -14.0 - color: '#4a9b3e' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_3: - name: 17Networks_LH_DorsAttnA_TempOcc_3 - lookupLabel: 77 - originalLookupLabel: 77 - center: - x: -45.0 - y: -70.0 - z: -8.0 - color: '#4a9b3f' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_1: - name: 17Networks_LH_DorsAttnA_ParOcc_1 - lookupLabel: 78 - originalLookupLabel: 78 - center: - x: -49.0 - y: -66.0 - z: 13.0 - color: '#4a9b40' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_2: - name: 17Networks_LH_DorsAttnA_ParOcc_2 - lookupLabel: 79 - originalLookupLabel: 79 - center: - x: -42.0 - y: -81.0 - z: 17.0 - color: '#4a9b41' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_3: - name: 17Networks_LH_DorsAttnA_ParOcc_3 - lookupLabel: 80 - originalLookupLabel: 80 - center: - x: -32.0 - y: -84.0 - z: 26.0 - color: '#4a9b42' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_1: - name: 17Networks_LH_DorsAttnA_SPL_1 - lookupLabel: 81 - originalLookupLabel: 81 - center: - x: -26.0 - y: -71.0 - z: 31.0 - color: '#4a9c3a' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_2: - name: 17Networks_LH_DorsAttnA_SPL_2 - lookupLabel: 82 - originalLookupLabel: 82 - center: - x: -21.0 - y: -82.0 - z: 44.0 - color: '#4a9c3b' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_3: - name: 17Networks_LH_DorsAttnA_SPL_3 - lookupLabel: 83 - originalLookupLabel: 83 - center: - x: -22.0 - y: -66.0 - z: 48.0 - color: '#4a9c3d' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_4: - name: 17Networks_LH_DorsAttnA_SPL_4 - lookupLabel: 84 - originalLookupLabel: 84 - center: - x: -17.0 - y: -73.0 - z: 53.0 - color: '#4a9c3e' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_5: - name: 17Networks_LH_DorsAttnA_SPL_5 - lookupLabel: 85 - originalLookupLabel: 85 - center: - x: -35.0 - y: -49.0 - z: 52.0 - color: '#4a9c3f' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_6: - name: 17Networks_LH_DorsAttnA_SPL_6 - lookupLabel: 86 - originalLookupLabel: 86 - center: - x: -34.0 - y: -56.0 - z: 62.0 - color: '#4a9c40' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_7: - name: 17Networks_LH_DorsAttnA_SPL_7 - lookupLabel: 87 - originalLookupLabel: 87 - center: - x: -27.0 - y: -64.0 - z: 61.0 - color: '#4a9c41' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_8: - name: 17Networks_LH_DorsAttnA_SPL_8 - lookupLabel: 88 - originalLookupLabel: 88 - center: - x: -12.0 - y: -67.0 - z: 61.0 - color: '#4a9c42' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnB_TempOcc_1: - name: 17Networks_LH_DorsAttnB_TempOcc_1 - lookupLabel: 89 - originalLookupLabel: 89 - center: - x: -55.0 - y: -63.0 - z: 2.0 - color: '#00760f' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_1: - name: 17Networks_LH_DorsAttnB_PostC_1 - lookupLabel: 90 - originalLookupLabel: 90 - center: - x: -61.0 - y: -23.0 - z: 33.0 - color: '#00760d' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_2: - name: 17Networks_LH_DorsAttnB_PostC_2 - lookupLabel: 91 - originalLookupLabel: 91 - center: - x: -54.0 - y: -21.0 - z: 41.0 - color: '#00760e' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_3: - name: 17Networks_LH_DorsAttnB_PostC_3 - lookupLabel: 92 - originalLookupLabel: 92 - center: - x: -55.0 - y: -31.0 - z: 44.0 - color: '#007610' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_4: - name: 17Networks_LH_DorsAttnB_PostC_4 - lookupLabel: 93 - originalLookupLabel: 93 - center: - x: -43.0 - y: -32.0 - z: 43.0 - color: '#007611' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_5: - name: 17Networks_LH_DorsAttnB_PostC_5 - lookupLabel: 94 - originalLookupLabel: 94 - center: - x: -38.0 - y: -39.0 - z: 53.0 - color: '#007612' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_6: - name: 17Networks_LH_DorsAttnB_PostC_6 - lookupLabel: 95 - originalLookupLabel: 95 - center: - x: -7.0 - y: -58.0 - z: 64.0 - color: '#007613' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_7: - name: 17Networks_LH_DorsAttnB_PostC_7 - lookupLabel: 96 - originalLookupLabel: 96 - center: - x: -20.0 - y: -58.0 - z: 66.0 - color: '#007614' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_8: - name: 17Networks_LH_DorsAttnB_PostC_8 - lookupLabel: 97 - originalLookupLabel: 97 - center: - x: -16.0 - y: -50.0 - z: 70.0 - color: '#007615' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_1: - name: 17Networks_LH_DorsAttnB_FEF_1 - lookupLabel: 98 - originalLookupLabel: 98 - center: - x: -39.0 - y: -3.0 - z: 51.0 - color: '#00770f' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_2: - name: 17Networks_LH_DorsAttnB_FEF_2 - lookupLabel: 99 - originalLookupLabel: 99 - center: - x: -25.0 - y: -7.0 - z: 52.0 - color: '#007710' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_3: - name: 17Networks_LH_DorsAttnB_FEF_3 - lookupLabel: 100 - originalLookupLabel: 100 - center: - x: -20.0 - y: -4.0 - z: 64.0 - color: '#007711' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_SalVentAttnA_ParOper_1: - name: 17Networks_LH_SalVentAttnA_ParOper_1 - lookupLabel: 101 - originalLookupLabel: 101 - center: - x: -47.0 - y: -37.0 - z: 24.0 - color: '#c43afb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_2: - name: 17Networks_LH_SalVentAttnA_ParOper_2 - lookupLabel: 102 - originalLookupLabel: 102 - center: - x: -60.0 - y: -29.0 - z: 22.0 - color: '#c43afc' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_3: - name: 17Networks_LH_SalVentAttnA_ParOper_3 - lookupLabel: 103 - originalLookupLabel: 103 - center: - x: -57.0 - y: -42.0 - z: 29.0 - color: '#c43afd' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_4: - name: 17Networks_LH_SalVentAttnA_ParOper_4 - lookupLabel: 104 - originalLookupLabel: 104 - center: - x: -62.0 - y: -36.0 - z: 36.0 - color: '#c43afe' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_1: - name: 17Networks_LH_SalVentAttnA_FrOper_1 - lookupLabel: 105 - originalLookupLabel: 105 - center: - x: -39.0 - y: 1.0 - z: 13.0 - color: '#c43aff' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_2: - name: 17Networks_LH_SalVentAttnA_FrOper_2 - lookupLabel: 106 - originalLookupLabel: 106 - center: - x: -50.0 - y: 1.0 - z: 5.0 - color: '#c133fa' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_3: - name: 17Networks_LH_SalVentAttnA_FrOper_3 - lookupLabel: 107 - originalLookupLabel: 107 - center: - x: -51.0 - y: 8.0 - z: 15.0 - color: '#c133fb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_1: - name: 17Networks_LH_SalVentAttnA_Ins_1 - lookupLabel: 108 - originalLookupLabel: 108 - center: - x: -39.0 - y: 2.0 - z: -5.0 - color: '#c43bfb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_2: - name: 17Networks_LH_SalVentAttnA_Ins_2 - lookupLabel: 109 - originalLookupLabel: 109 - center: - x: -40.0 - y: -14.0 - z: -2.0 - color: '#c43bfc' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_3: - name: 17Networks_LH_SalVentAttnA_Ins_3 - lookupLabel: 110 - originalLookupLabel: 110 - center: - x: -38.0 - y: -5.0 - z: 8.0 - color: '#c43bfd' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_4: - name: 17Networks_LH_SalVentAttnA_Ins_4 - lookupLabel: 111 - originalLookupLabel: 111 - center: - x: -33.0 - y: 18.0 - z: 8.0 - color: '#c43bfe' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_1: - name: 17Networks_LH_SalVentAttnA_ParMed_1 - lookupLabel: 112 - originalLookupLabel: 112 - center: - x: -10.0 - y: -32.0 - z: 40.0 - color: '#c43bfa' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_2: - name: 17Networks_LH_SalVentAttnA_ParMed_2 - lookupLabel: 113 - originalLookupLabel: 113 - center: - x: -11.0 - y: -20.0 - z: 40.0 - color: '#c43bff' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_3: - name: 17Networks_LH_SalVentAttnA_ParMed_3 - lookupLabel: 114 - originalLookupLabel: 114 - center: - x: -13.0 - y: -42.0 - z: 49.0 - color: '#c134fa' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_4: - name: 17Networks_LH_SalVentAttnA_ParMed_4 - lookupLabel: 115 - originalLookupLabel: 115 - center: - x: -11.0 - y: -31.0 - z: 47.0 - color: '#c134fb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_5: - name: 17Networks_LH_SalVentAttnA_ParMed_5 - lookupLabel: 116 - originalLookupLabel: 116 - center: - x: -6.0 - y: -49.0 - z: 57.0 - color: '#c135f4' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_1: - name: 17Networks_LH_SalVentAttnA_FrMed_1 - lookupLabel: 117 - originalLookupLabel: 117 - center: - x: -6.0 - y: 16.0 - z: 36.0 - color: '#c53af9' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_2: - name: 17Networks_LH_SalVentAttnA_FrMed_2 - lookupLabel: 118 - originalLookupLabel: 118 - center: - x: -6.0 - y: -1.0 - z: 40.0 - color: '#c53afb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_3: - name: 17Networks_LH_SalVentAttnA_FrMed_3 - lookupLabel: 119 - originalLookupLabel: 119 - center: - x: -6.0 - y: 3.0 - z: 50.0 - color: '#c53afc' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_4: - name: 17Networks_LH_SalVentAttnA_FrMed_4 - lookupLabel: 120 - originalLookupLabel: 120 - center: - x: -4.0 - y: 3.0 - z: 60.0 - color: '#c53afd' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_5: - name: 17Networks_LH_SalVentAttnA_FrMed_5 - lookupLabel: 121 - originalLookupLabel: 121 - center: - x: -13.0 - y: -1.0 - z: 72.0 - color: '#c53afe' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnB_IPL_1: - name: 17Networks_LH_SalVentAttnB_IPL_1 - lookupLabel: 122 - originalLookupLabel: 122 - center: - x: -59.0 - y: -43.0 - z: 44.0 - color: '#ff98d6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_1: - name: 17Networks_LH_SalVentAttnB_PFCl_1 - lookupLabel: 123 - originalLookupLabel: 123 - center: - x: -38.0 - y: 46.0 - z: 17.0 - color: '#ff99d6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_2: - name: 17Networks_LH_SalVentAttnB_PFCl_2 - lookupLabel: 124 - originalLookupLabel: 124 - center: - x: -29.0 - y: 43.0 - z: 30.0 - color: '#ff99d7' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_3: - name: 17Networks_LH_SalVentAttnB_PFCl_3 - lookupLabel: 125 - originalLookupLabel: 125 - center: - x: -35.0 - y: 32.0 - z: 39.0 - color: '#ff99d8' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_1: - name: 17Networks_LH_SalVentAttnB_Ins_1 - lookupLabel: 126 - originalLookupLabel: 126 - center: - x: -33.0 - y: 17.0 - z: -8.0 - color: '#ff99d9' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_2: - name: 17Networks_LH_SalVentAttnB_Ins_2 - lookupLabel: 127 - originalLookupLabel: 127 - center: - x: -32.0 - y: 24.0 - z: 0.0 - color: '#ff99da' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_3: - name: 17Networks_LH_SalVentAttnB_Ins_3 - lookupLabel: 128 - originalLookupLabel: 128 - center: - x: -44.0 - y: 12.0 - z: 2.0 - color: '#ff99db' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCmp_1: - name: 17Networks_LH_SalVentAttnB_PFCmp_1 - lookupLabel: 129 - originalLookupLabel: 129 - center: - x: -3.0 - y: 26.0 - z: 19.0 - color: '#ff97d6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCmp_2: - name: 17Networks_LH_SalVentAttnB_PFCmp_2 - lookupLabel: 130 - originalLookupLabel: 130 - center: - x: -3.0 - y: 14.0 - z: 26.0 - color: '#ff97d7' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCmp_3: - name: 17Networks_LH_SalVentAttnB_PFCmp_3 - lookupLabel: 131 - originalLookupLabel: 131 - center: - x: -7.0 - y: 31.0 - z: 27.0 - color: '#ff97d8' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCmp_4: - name: 17Networks_LH_SalVentAttnB_PFCmp_4 - lookupLabel: 132 - originalLookupLabel: 132 - center: - x: -5.0 - y: 15.0 - z: 51.0 - color: '#ff97d9' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_LimbicB_OFC_1: - name: 17Networks_LH_LimbicB_OFC_1 - lookupLabel: 133 - originalLookupLabel: 133 - center: - x: -12.0 - y: 25.0 - z: -21.0 - color: '#7a8731' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_2: - name: 17Networks_LH_LimbicB_OFC_2 - lookupLabel: 134 - originalLookupLabel: 134 - center: - x: -24.0 - y: 23.0 - z: -20.0 - color: '#7a8733' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_3: - name: 17Networks_LH_LimbicB_OFC_3 - lookupLabel: 135 - originalLookupLabel: 135 - center: - x: -6.0 - y: 45.0 - z: -23.0 - color: '#7a8734' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_4: - name: 17Networks_LH_LimbicB_OFC_4 - lookupLabel: 136 - originalLookupLabel: 136 - center: - x: -17.0 - y: 48.0 - z: -19.0 - color: '#7a8735' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_5: - name: 17Networks_LH_LimbicB_OFC_5 - lookupLabel: 137 - originalLookupLabel: 137 - center: - x: -4.0 - y: 22.0 - z: -19.0 - color: '#7a8736' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_6: - name: 17Networks_LH_LimbicB_OFC_6 - lookupLabel: 138 - originalLookupLabel: 138 - center: - x: -15.0 - y: 65.0 - z: -8.0 - color: '#7a8737' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicA_TempPole_1: - name: 17Networks_LH_LimbicA_TempPole_1 - lookupLabel: 139 - originalLookupLabel: 139 - center: - x: -31.0 - y: 0.0 - z: -43.0 - color: '#dcf8a1' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_2: - name: 17Networks_LH_LimbicA_TempPole_2 - lookupLabel: 140 - originalLookupLabel: 140 - center: - x: -46.0 - y: -5.0 - z: -41.0 - color: '#dcf8a2' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_3: - name: 17Networks_LH_LimbicA_TempPole_3 - lookupLabel: 141 - originalLookupLabel: 141 - center: - x: -26.0 - y: -7.0 - z: -34.0 - color: '#dcf8a3' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_4: - name: 17Networks_LH_LimbicA_TempPole_4 - lookupLabel: 142 - originalLookupLabel: 142 - center: - x: -39.0 - y: -16.0 - z: -31.0 - color: '#dcf8a5' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_5: - name: 17Networks_LH_LimbicA_TempPole_5 - lookupLabel: 143 - originalLookupLabel: 143 - center: - x: -27.0 - y: 10.0 - z: -33.0 - color: '#dcf8a6' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_6: - name: 17Networks_LH_LimbicA_TempPole_6 - lookupLabel: 144 - originalLookupLabel: 144 - center: - x: -52.0 - y: -24.0 - z: -30.0 - color: '#dcf8a7' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_7: - name: 17Networks_LH_LimbicA_TempPole_7 - lookupLabel: 145 - originalLookupLabel: 145 - center: - x: -21.0 - y: -15.0 - z: -29.0 - color: '#dcf8a8' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_8: - name: 17Networks_LH_LimbicA_TempPole_8 - lookupLabel: 146 - originalLookupLabel: 146 - center: - x: -37.0 - y: -36.0 - z: -23.0 - color: '#dcf8a9' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_9: - name: 17Networks_LH_LimbicA_TempPole_9 - lookupLabel: 147 - originalLookupLabel: 147 - center: - x: -38.0 - y: 9.0 - z: -24.0 - color: '#dcf8aa' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_10: - name: 17Networks_LH_LimbicA_TempPole_10 - lookupLabel: 148 - originalLookupLabel: 148 - center: - x: -45.0 - y: 6.0 - z: -15.0 - color: '#dcf8ab' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_ContA_Temp_1: - name: 17Networks_LH_ContA_Temp_1 - lookupLabel: 149 - originalLookupLabel: 149 - center: - x: -60.0 - y: -51.0 - z: -9.0 - color: '#e69423' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_1: - name: 17Networks_LH_ContA_IPS_1 - lookupLabel: 150 - originalLookupLabel: 150 - center: - x: -29.0 - y: -76.0 - z: 41.0 - color: '#e69421' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_2: - name: 17Networks_LH_ContA_IPS_2 - lookupLabel: 151 - originalLookupLabel: 151 - center: - x: -27.0 - y: -67.0 - z: 42.0 - color: '#e69422' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_3: - name: 17Networks_LH_ContA_IPS_3 - lookupLabel: 152 - originalLookupLabel: 152 - center: - x: -51.0 - y: -39.0 - z: 48.0 - color: '#e69424' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_4: - name: 17Networks_LH_ContA_IPS_4 - lookupLabel: 153 - originalLookupLabel: 153 - center: - x: -35.0 - y: -63.0 - z: 49.0 - color: '#e69425' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_5: - name: 17Networks_LH_ContA_IPS_5 - lookupLabel: 154 - originalLookupLabel: 154 - center: - x: -43.0 - y: -44.0 - z: 48.0 - color: '#e69426' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_6: - name: 17Networks_LH_ContA_IPS_6 - lookupLabel: 155 - originalLookupLabel: 155 - center: - x: -34.0 - y: -50.0 - z: 40.0 - color: '#e69427' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_7: - name: 17Networks_LH_ContA_IPS_7 - lookupLabel: 156 - originalLookupLabel: 156 - center: - x: -37.0 - y: -39.0 - z: 41.0 - color: '#e69428' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_8: - name: 17Networks_LH_ContA_IPS_8 - lookupLabel: 157 - originalLookupLabel: 157 - center: - x: -29.0 - y: -58.0 - z: 50.0 - color: '#e69429' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCd_1: - name: 17Networks_LH_ContA_PFCd_1 - lookupLabel: 158 - originalLookupLabel: 158 - center: - x: -30.0 - y: 2.0 - z: 59.0 - color: '#e69523' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCd_2: - name: 17Networks_LH_ContA_PFCd_2 - lookupLabel: 159 - originalLookupLabel: 159 - center: - x: -22.0 - y: 8.0 - z: 56.0 - color: '#e69524' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_1: - name: 17Networks_LH_ContA_PFCl_1 - lookupLabel: 160 - originalLookupLabel: 160 - center: - x: -45.0 - y: 20.0 - z: 25.0 - color: '#e69522' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_2: - name: 17Networks_LH_ContA_PFCl_2 - lookupLabel: 161 - originalLookupLabel: 161 - center: - x: -43.0 - y: 36.0 - z: 28.0 - color: '#e69525' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_3: - name: 17Networks_LH_ContA_PFCl_3 - lookupLabel: 162 - originalLookupLabel: 162 - center: - x: -54.0 - y: 7.0 - z: 27.0 - color: '#e69526' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_4: - name: 17Networks_LH_ContA_PFCl_4 - lookupLabel: 163 - originalLookupLabel: 163 - center: - x: -39.0 - y: 7.0 - z: 28.0 - color: '#e69527' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_5: - name: 17Networks_LH_ContA_PFCl_5 - lookupLabel: 164 - originalLookupLabel: 164 - center: - x: -46.0 - y: 3.0 - z: 37.0 - color: '#e69528' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFClv_1: - name: 17Networks_LH_ContA_PFClv_1 - lookupLabel: 165 - originalLookupLabel: 165 - center: - x: -45.0 - y: 35.0 - z: 13.0 - color: '#e79423' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_Cingm_1: - name: 17Networks_LH_ContA_Cingm_1 - lookupLabel: 166 - originalLookupLabel: 166 - center: - x: -3.0 - y: 0.0 - z: 31.0 - color: '#e79424' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContB_Temp_1: - name: 17Networks_LH_ContB_Temp_1 - lookupLabel: 167 - originalLookupLabel: 167 - center: - x: -60.0 - y: -36.0 - z: -18.0 - color: '#87324b' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_1: - name: 17Networks_LH_ContB_IPL_1 - lookupLabel: 168 - originalLookupLabel: 168 - center: - x: -53.0 - y: -50.0 - z: 46.0 - color: '#87324c' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_2: - name: 17Networks_LH_ContB_IPL_2 - lookupLabel: 169 - originalLookupLabel: 169 - center: - x: -43.0 - y: -53.0 - z: 50.0 - color: '#87324d' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCd_1: - name: 17Networks_LH_ContB_PFCd_1 - lookupLabel: 170 - originalLookupLabel: 170 - center: - x: -28.0 - y: 16.0 - z: 53.0 - color: '#87334b' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCd_2: - name: 17Networks_LH_ContB_PFCd_2 - lookupLabel: 171 - originalLookupLabel: 171 - center: - x: -20.0 - y: 11.0 - z: 66.0 - color: '#87334c' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCl_1: - name: 17Networks_LH_ContB_PFCl_1 - lookupLabel: 172 - originalLookupLabel: 172 - center: - x: -45.0 - y: 18.0 - z: 35.0 - color: '#87334d' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_1: - name: 17Networks_LH_ContB_PFClv_1 - lookupLabel: 173 - originalLookupLabel: 173 - center: - x: -31.0 - y: 51.0 - z: -13.0 - color: '#88324b' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_2: - name: 17Networks_LH_ContB_PFClv_2 - lookupLabel: 174 - originalLookupLabel: 174 - center: - x: -28.0 - y: 58.0 - z: -1.0 - color: '#88324c' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_3: - name: 17Networks_LH_ContB_PFClv_3 - lookupLabel: 175 - originalLookupLabel: 175 - center: - x: -41.0 - y: 50.0 - z: -1.0 - color: '#88324d' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_4: - name: 17Networks_LH_ContB_PFClv_4 - lookupLabel: 176 - originalLookupLabel: 176 - center: - x: -30.0 - y: 56.0 - z: 11.0 - color: '#88324e' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCmp_1: - name: 17Networks_LH_ContB_PFCmp_1 - lookupLabel: 177 - originalLookupLabel: 177 - center: - x: -4.0 - y: 29.0 - z: 46.0 - color: '#88324f' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContC_pCun_1: - name: 17Networks_LH_ContC_pCun_1 - lookupLabel: 178 - originalLookupLabel: 178 - center: - x: -11.0 - y: -69.0 - z: 30.0 - color: '#778cb1' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_2: - name: 17Networks_LH_ContC_pCun_2 - lookupLabel: 179 - originalLookupLabel: 179 - center: - x: -9.0 - y: -76.0 - z: 42.0 - color: '#778cb2' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_3: - name: 17Networks_LH_ContC_pCun_3 - lookupLabel: 180 - originalLookupLabel: 180 - center: - x: -4.0 - y: -72.0 - z: 52.0 - color: '#778cb3' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_4: - name: 17Networks_LH_ContC_pCun_4 - lookupLabel: 181 - originalLookupLabel: 181 - center: - x: -5.0 - y: -61.0 - z: 51.0 - color: '#778cb4' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_Cingp_1: - name: 17Networks_LH_ContC_Cingp_1 - lookupLabel: 182 - originalLookupLabel: 182 - center: - x: -6.0 - y: -40.0 - z: 25.0 - color: '#778cb5' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_Cingp_2: - name: 17Networks_LH_ContC_Cingp_2 - lookupLabel: 183 - originalLookupLabel: 183 - center: - x: -5.0 - y: -23.0 - z: 29.0 - color: '#778cb6' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_DefaultA_IPL_1: - name: 17Networks_LH_DefaultA_IPL_1 - lookupLabel: 184 - originalLookupLabel: 184 - center: - x: -43.0 - y: -69.0 - z: 22.0 - color: '#ffff01' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_IPL_2: - name: 17Networks_LH_DefaultA_IPL_2 - lookupLabel: 185 - originalLookupLabel: 185 - center: - x: -47.0 - y: -66.0 - z: 31.0 - color: '#ffff02' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_IPL_3: - name: 17Networks_LH_DefaultA_IPL_3 - lookupLabel: 186 - originalLookupLabel: 186 - center: - x: -41.0 - y: -72.0 - z: 44.0 - color: '#ffff03' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_IPL_4: - name: 17Networks_LH_DefaultA_IPL_4 - lookupLabel: 187 - originalLookupLabel: 187 - center: - x: -49.0 - y: -60.0 - z: 44.0 - color: '#ffff04' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_1: - name: 17Networks_LH_DefaultA_PFCd_1 - lookupLabel: 188 - originalLookupLabel: 188 - center: - x: -20.0 - y: 41.0 - z: 42.0 - color: '#ffff05' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_2: - name: 17Networks_LH_DefaultA_PFCd_2 - lookupLabel: 189 - originalLookupLabel: 189 - center: - x: -25.0 - y: 28.0 - z: 44.0 - color: '#ffff06' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_3: - name: 17Networks_LH_DefaultA_PFCd_3 - lookupLabel: 190 - originalLookupLabel: 190 - center: - x: -21.0 - y: 25.0 - z: 52.0 - color: '#ffff07' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_1: - name: 17Networks_LH_DefaultA_pCunPCC_1 - lookupLabel: 191 - originalLookupLabel: 191 - center: - x: -6.0 - y: -47.0 - z: 13.0 - color: '#fffe01' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_2: - name: 17Networks_LH_DefaultA_pCunPCC_2 - lookupLabel: 192 - originalLookupLabel: 192 - center: - x: -4.0 - y: -54.0 - z: 20.0 - color: '#fffe02' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_3: - name: 17Networks_LH_DefaultA_pCunPCC_3 - lookupLabel: 193 - originalLookupLabel: 193 - center: - x: -5.0 - y: -59.0 - z: 30.0 - color: '#fffe03' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_4: - name: 17Networks_LH_DefaultA_pCunPCC_4 - lookupLabel: 194 - originalLookupLabel: 194 - center: - x: -7.0 - y: -44.0 - z: 32.0 - color: '#fffe04' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_5: - name: 17Networks_LH_DefaultA_pCunPCC_5 - lookupLabel: 195 - originalLookupLabel: 195 - center: - x: -3.0 - y: -33.0 - z: 37.0 - color: '#fffe05' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_6: - name: 17Networks_LH_DefaultA_pCunPCC_6 - lookupLabel: 196 - originalLookupLabel: 196 - center: - x: -2.0 - y: -16.0 - z: 37.0 - color: '#fffe06' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_7: - name: 17Networks_LH_DefaultA_pCunPCC_7 - lookupLabel: 197 - originalLookupLabel: 197 - center: - x: -3.0 - y: -66.0 - z: 40.0 - color: '#fffe07' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_8: - name: 17Networks_LH_DefaultA_pCunPCC_8 - lookupLabel: 198 - originalLookupLabel: 198 - center: - x: -7.0 - y: -50.0 - z: 43.0 - color: '#ffff00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_1: - name: 17Networks_LH_DefaultA_PFCm_1 - lookupLabel: 199 - originalLookupLabel: 199 - center: - x: -5.0 - y: 55.0 - z: -10.0 - color: '#feff01' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_2: - name: 17Networks_LH_DefaultA_PFCm_2 - lookupLabel: 200 - originalLookupLabel: 200 - center: - x: -6.0 - y: 35.0 - z: -9.0 - color: '#feff02' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_3: - name: 17Networks_LH_DefaultA_PFCm_3 - lookupLabel: 201 - originalLookupLabel: 201 - center: - x: -6.0 - y: 45.0 - z: 4.0 - color: '#feff03' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_4: - name: 17Networks_LH_DefaultA_PFCm_4 - lookupLabel: 202 - originalLookupLabel: 202 - center: - x: -6.0 - y: 60.0 - z: 7.0 - color: '#feff04' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_5: - name: 17Networks_LH_DefaultA_PFCm_5 - lookupLabel: 203 - originalLookupLabel: 203 - center: - x: -17.0 - y: 66.0 - z: 9.0 - color: '#feff05' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_6: - name: 17Networks_LH_DefaultA_PFCm_6 - lookupLabel: 204 - originalLookupLabel: 204 - center: - x: -3.0 - y: 35.0 - z: 12.0 - color: '#feff06' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_7: - name: 17Networks_LH_DefaultA_PFCm_7 - lookupLabel: 205 - originalLookupLabel: 205 - center: - x: -7.0 - y: 46.0 - z: 19.0 - color: '#feff07' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultB_Temp_1: - name: 17Networks_LH_DefaultB_Temp_1 - lookupLabel: 206 - originalLookupLabel: 206 - center: - x: -43.0 - y: 14.0 - z: -34.0 - color: '#cd3e4d' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_2: - name: 17Networks_LH_DefaultB_Temp_2 - lookupLabel: 207 - originalLookupLabel: 207 - center: - x: -54.0 - y: 0.0 - z: -29.0 - color: '#cd3e4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_3: - name: 17Networks_LH_DefaultB_Temp_3 - lookupLabel: 208 - originalLookupLabel: 208 - center: - x: -61.0 - y: -17.0 - z: -23.0 - color: '#cd3e50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_4: - name: 17Networks_LH_DefaultB_Temp_4 - lookupLabel: 209 - originalLookupLabel: 209 - center: - x: -59.0 - y: -11.0 - z: -13.0 - color: '#cd3e51' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_5: - name: 17Networks_LH_DefaultB_Temp_5 - lookupLabel: 210 - originalLookupLabel: 210 - center: - x: -63.0 - y: -34.0 - z: -4.0 - color: '#cd3e52' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_6: - name: 17Networks_LH_DefaultB_Temp_6 - lookupLabel: 211 - originalLookupLabel: 211 - center: - x: -51.0 - y: -28.0 - z: -4.0 - color: '#cd3e53' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_1: - name: 17Networks_LH_DefaultB_IPL_1 - lookupLabel: 212 - originalLookupLabel: 212 - center: - x: -47.0 - y: -56.0 - z: 24.0 - color: '#cd3e54' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_2: - name: 17Networks_LH_DefaultB_IPL_2 - lookupLabel: 213 - originalLookupLabel: 213 - center: - x: -59.0 - y: -53.0 - z: 31.0 - color: '#cd3e55' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_1: - name: 17Networks_LH_DefaultB_PFCd_1 - lookupLabel: 214 - originalLookupLabel: 214 - center: - x: -5.0 - y: 60.0 - z: 23.0 - color: '#cd3f4c' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_2: - name: 17Networks_LH_DefaultB_PFCd_2 - lookupLabel: 215 - originalLookupLabel: 215 - center: - x: -22.0 - y: 54.0 - z: 25.0 - color: '#cd3f4d' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_3: - name: 17Networks_LH_DefaultB_PFCd_3 - lookupLabel: 216 - originalLookupLabel: 216 - center: - x: -14.0 - y: 57.0 - z: 32.0 - color: '#cd3f4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_4: - name: 17Networks_LH_DefaultB_PFCd_4 - lookupLabel: 217 - originalLookupLabel: 217 - center: - x: -3.0 - y: 45.0 - z: 40.0 - color: '#cd3f50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_5: - name: 17Networks_LH_DefaultB_PFCd_5 - lookupLabel: 218 - originalLookupLabel: 218 - center: - x: -13.0 - y: 41.0 - z: 50.0 - color: '#cd3f51' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_6: - name: 17Networks_LH_DefaultB_PFCd_6 - lookupLabel: 219 - originalLookupLabel: 219 - center: - x: -11.0 - y: 26.0 - z: 60.0 - color: '#cd3f52' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_7: - name: 17Networks_LH_DefaultB_PFCd_7 - lookupLabel: 220 - originalLookupLabel: 220 - center: - x: -6.0 - y: 12.0 - z: 65.0 - color: '#cd3f53' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCl_1: - name: 17Networks_LH_DefaultB_PFCl_1 - lookupLabel: 221 - originalLookupLabel: 221 - center: - x: -39.0 - y: 19.0 - z: 50.0 - color: '#cd3f54' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCl_2: - name: 17Networks_LH_DefaultB_PFCl_2 - lookupLabel: 222 - originalLookupLabel: 222 - center: - x: -42.0 - y: 7.0 - z: 48.0 - color: '#cd3f55' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_1: - name: 17Networks_LH_DefaultB_PFCv_1 - lookupLabel: 223 - originalLookupLabel: 223 - center: - x: -29.0 - y: 17.0 - z: -17.0 - color: '#ce3e4c' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_2: - name: 17Networks_LH_DefaultB_PFCv_2 - lookupLabel: 224 - originalLookupLabel: 224 - center: - x: -34.0 - y: 37.0 - z: -12.0 - color: '#ce3e4d' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_3: - name: 17Networks_LH_DefaultB_PFCv_3 - lookupLabel: 225 - originalLookupLabel: 225 - center: - x: -38.0 - y: 24.0 - z: -14.0 - color: '#ce3e4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_4: - name: 17Networks_LH_DefaultB_PFCv_4 - lookupLabel: 226 - originalLookupLabel: 226 - center: - x: -45.0 - y: 37.0 - z: -15.0 - color: '#ce3e50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_5: - name: 17Networks_LH_DefaultB_PFCv_5 - lookupLabel: 227 - originalLookupLabel: 227 - center: - x: -43.0 - y: 28.0 - z: -5.0 - color: '#ce3e51' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_6: - name: 17Networks_LH_DefaultB_PFCv_6 - lookupLabel: 228 - originalLookupLabel: 228 - center: - x: -49.0 - y: 39.0 - z: -3.0 - color: '#ce3e52' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_7: - name: 17Networks_LH_DefaultB_PFCv_7 - lookupLabel: 229 - originalLookupLabel: 229 - center: - x: -47.0 - y: 26.0 - z: 2.0 - color: '#ce3e53' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_8: - name: 17Networks_LH_DefaultB_PFCv_8 - lookupLabel: 230 - originalLookupLabel: 230 - center: - x: -54.0 - y: 19.0 - z: 12.0 - color: '#ce3e54' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultC_IPL_1: - name: 17Networks_LH_DefaultC_IPL_1 - lookupLabel: 231 - originalLookupLabel: 231 - center: - x: -39.0 - y: -81.0 - z: 32.0 - color: '#000083' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_1: - name: 17Networks_LH_DefaultC_Rsp_1 - lookupLabel: 232 - originalLookupLabel: 232 - center: - x: -11.0 - y: -46.0 - z: 3.0 - color: '#000084' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_2: - name: 17Networks_LH_DefaultC_Rsp_2 - lookupLabel: 233 - originalLookupLabel: 233 - center: - x: -10.0 - y: -53.0 - z: 8.0 - color: '#000085' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_3: - name: 17Networks_LH_DefaultC_Rsp_3 - lookupLabel: 234 - originalLookupLabel: 234 - center: - x: -10.0 - y: -59.0 - z: 17.0 - color: '#000086' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_4: - name: 17Networks_LH_DefaultC_Rsp_4 - lookupLabel: 235 - originalLookupLabel: 235 - center: - x: -17.0 - y: -64.0 - z: 21.0 - color: '#000087' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_1: - name: 17Networks_LH_DefaultC_PHC_1 - lookupLabel: 236 - originalLookupLabel: 236 - center: - x: -32.0 - y: -24.0 - z: -26.0 - color: '#000181' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_2: - name: 17Networks_LH_DefaultC_PHC_2 - lookupLabel: 237 - originalLookupLabel: 237 - center: - x: -20.0 - y: -25.0 - z: -22.0 - color: '#000183' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_3: - name: 17Networks_LH_DefaultC_PHC_3 - lookupLabel: 238 - originalLookupLabel: 238 - center: - x: -29.0 - y: -37.0 - z: -15.0 - color: '#000184' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_4: - name: 17Networks_LH_DefaultC_PHC_4 - lookupLabel: 239 - originalLookupLabel: 239 - center: - x: -19.0 - y: -35.0 - z: -14.0 - color: '#000185' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_5: - name: 17Networks_LH_DefaultC_PHC_5 - lookupLabel: 240 - originalLookupLabel: 240 - center: - x: -15.0 - y: -38.0 - z: -10.0 - color: '#000186' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_TempPar_1: - name: 17Networks_LH_TempPar_1 - lookupLabel: 241 - originalLookupLabel: 241 - center: - x: -52.0 - y: 9.0 - z: -18.0 - color: '#0c30fc' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_2: - name: 17Networks_LH_TempPar_2 - lookupLabel: 242 - originalLookupLabel: 242 - center: - x: -53.0 - y: -4.0 - z: -11.0 - color: '#0c30fd' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_3: - name: 17Networks_LH_TempPar_3 - lookupLabel: 243 - originalLookupLabel: 243 - center: - x: -60.0 - y: -17.0 - z: -2.0 - color: '#0c30fe' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_4: - name: 17Networks_LH_TempPar_4 - lookupLabel: 244 - originalLookupLabel: 244 - center: - x: -62.0 - y: -51.0 - z: 5.0 - color: '#0929f9' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_5: - name: 17Networks_LH_TempPar_5 - lookupLabel: 245 - originalLookupLabel: 245 - center: - x: -61.0 - y: -32.0 - z: 4.0 - color: '#0929fa' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_6: - name: 17Networks_LH_TempPar_6 - lookupLabel: 246 - originalLookupLabel: 246 - center: - x: -52.0 - y: -42.0 - z: 4.0 - color: '#0929fb' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_7: - name: 17Networks_LH_TempPar_7 - lookupLabel: 247 - originalLookupLabel: 247 - center: - x: -54.0 - y: -56.0 - z: 14.0 - color: '#0929fc' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_8: - name: 17Networks_LH_TempPar_8 - lookupLabel: 248 - originalLookupLabel: 248 - center: - x: -61.0 - y: -44.0 - z: 11.0 - color: '#0929fd' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_9: - name: 17Networks_LH_TempPar_9 - lookupLabel: 249 - originalLookupLabel: 249 - center: - x: -50.0 - y: -49.0 - z: 15.0 - color: '#0929fe' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_10: - name: 17Networks_LH_TempPar_10 - lookupLabel: 250 - originalLookupLabel: 250 - center: - x: -61.0 - y: -48.0 - z: 21.0 - color: '#0929ff' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_RH_VisCent_Striate_1: - name: 17Networks_RH_VisCent_Striate_1 - lookupLabel: 251 - originalLookupLabel: 251 - center: - x: 11.0 - y: -97.0 - z: 0.0 - color: '#781387' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_1: - name: 17Networks_RH_VisCent_ExStr_1 - lookupLabel: 252 - originalLookupLabel: 252 - center: - x: 35.0 - y: -48.0 - z: -19.0 - color: '#781381' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_2: - name: 17Networks_RH_VisCent_ExStr_2 - lookupLabel: 253 - originalLookupLabel: 253 - center: - x: 37.0 - y: -72.0 - z: -15.0 - color: '#781382' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_3: - name: 17Networks_RH_VisCent_ExStr_3 - lookupLabel: 254 - originalLookupLabel: 254 - center: - x: 27.0 - y: -53.0 - z: -9.0 - color: '#781383' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_4: - name: 17Networks_RH_VisCent_ExStr_4 - lookupLabel: 255 - originalLookupLabel: 255 - center: - x: 23.0 - y: -74.0 - z: -11.0 - color: '#781384' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_5: - name: 17Networks_RH_VisCent_ExStr_5 - lookupLabel: 256 - originalLookupLabel: 256 - center: - x: 20.0 - y: -88.0 - z: -12.0 - color: '#781385' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_6: - name: 17Networks_RH_VisCent_ExStr_6 - lookupLabel: 257 - originalLookupLabel: 257 - center: - x: 44.0 - y: -80.0 - z: -14.0 - color: '#781386' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_7: - name: 17Networks_RH_VisCent_ExStr_7 - lookupLabel: 258 - originalLookupLabel: 258 - center: - x: 6.0 - y: -85.0 - z: -9.0 - color: '#781388' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_8: - name: 17Networks_RH_VisCent_ExStr_8 - lookupLabel: 259 - originalLookupLabel: 259 - center: - x: 49.0 - y: -67.0 - z: -4.0 - color: '#781389' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_9: - name: 17Networks_RH_VisCent_ExStr_9 - lookupLabel: 260 - originalLookupLabel: 260 - center: - x: 25.0 - y: -97.0 - z: -11.0 - color: '#78138a' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_10: - name: 17Networks_RH_VisCent_ExStr_10 - lookupLabel: 261 - originalLookupLabel: 261 - center: - x: 41.0 - y: -86.0 - z: -5.0 - color: '#78138b' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_11: - name: 17Networks_RH_VisCent_ExStr_11 - lookupLabel: 262 - originalLookupLabel: 262 - center: - x: 26.0 - y: -97.0 - z: 6.0 - color: '#78138c' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_12: - name: 17Networks_RH_VisCent_ExStr_12 - lookupLabel: 263 - originalLookupLabel: 263 - center: - x: 35.0 - y: -86.0 - z: 4.0 - color: '#78138d' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_13: - name: 17Networks_RH_VisCent_ExStr_13 - lookupLabel: 264 - originalLookupLabel: 264 - center: - x: 44.0 - y: -78.0 - z: 11.0 - color: '#78138e' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_14: - name: 17Networks_RH_VisCent_ExStr_14 - lookupLabel: 265 - originalLookupLabel: 265 - center: - x: 13.0 - y: -94.0 - z: 18.0 - color: '#781487' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_15: - name: 17Networks_RH_VisCent_ExStr_15 - lookupLabel: 266 - originalLookupLabel: 266 - center: - x: 30.0 - y: -88.0 - z: 17.0 - color: '#781488' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_16: - name: 17Networks_RH_VisCent_ExStr_16 - lookupLabel: 267 - originalLookupLabel: 267 - center: - x: 23.0 - y: -86.0 - z: 30.0 - color: '#781489' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisPeri_StriCal_1: - name: 17Networks_RH_VisPeri_StriCal_1 - lookupLabel: 268 - originalLookupLabel: 268 - center: - x: 3.0 - y: -69.0 - z: 6.0 - color: '#ff0102' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_2: - name: 17Networks_RH_VisPeri_StriCal_2 - lookupLabel: 269 - originalLookupLabel: 269 - center: - x: 7.0 - y: -84.0 - z: 5.0 - color: '#ff0103' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_3: - name: 17Networks_RH_VisPeri_StriCal_3 - lookupLabel: 270 - originalLookupLabel: 270 - center: - x: 23.0 - y: -59.0 - z: 6.0 - color: '#ff0104' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_4: - name: 17Networks_RH_VisPeri_StriCal_4 - lookupLabel: 271 - originalLookupLabel: 271 - center: - x: 11.0 - y: -70.0 - z: 10.0 - color: '#ff0105' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_1: - name: 17Networks_RH_VisPeri_ExStrInf_1 - lookupLabel: 272 - originalLookupLabel: 272 - center: - x: 18.0 - y: -36.0 - z: -12.0 - color: '#fe0001' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_2: - name: 17Networks_RH_VisPeri_ExStrInf_2 - lookupLabel: 273 - originalLookupLabel: 273 - center: - x: 14.0 - y: -58.0 - z: -5.0 - color: '#fe0002' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_3: - name: 17Networks_RH_VisPeri_ExStrInf_3 - lookupLabel: 274 - originalLookupLabel: 274 - center: - x: 9.0 - y: -72.0 - z: -5.0 - color: '#fe0003' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_4: - name: 17Networks_RH_VisPeri_ExStrInf_4 - lookupLabel: 275 - originalLookupLabel: 275 - center: - x: 14.0 - y: -56.0 - z: 2.0 - color: '#fe0004' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_5: - name: 17Networks_RH_VisPeri_ExStrInf_5 - lookupLabel: 276 - originalLookupLabel: 276 - center: - x: 17.0 - y: -43.0 - z: -3.0 - color: '#fe0005' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_1: - name: 17Networks_RH_VisPeri_ExStrSup_1 - lookupLabel: 277 - originalLookupLabel: 277 - center: - x: 16.0 - y: -67.0 - z: 20.0 - color: '#fe0006' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_2: - name: 17Networks_RH_VisPeri_ExStrSup_2 - lookupLabel: 278 - originalLookupLabel: 278 - center: - x: 5.0 - y: -81.0 - z: 26.0 - color: '#fe0007' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_3: - name: 17Networks_RH_VisPeri_ExStrSup_3 - lookupLabel: 279 - originalLookupLabel: 279 - center: - x: 15.0 - y: -80.0 - z: 37.0 - color: '#fe0008' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_SomMotA_1: - name: 17Networks_RH_SomMotA_1 - lookupLabel: 280 - originalLookupLabel: 280 - center: - x: 55.0 - y: -17.0 - z: 41.0 - color: '#4682b2' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_2: - name: 17Networks_RH_SomMotA_2 - lookupLabel: 281 - originalLookupLabel: 281 - center: - x: 11.0 - y: -15.0 - z: 42.0 - color: '#4682b3' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_3: - name: 17Networks_RH_SomMotA_3 - lookupLabel: 282 - originalLookupLabel: 282 - center: - x: 52.0 - y: -13.0 - z: 51.0 - color: '#4682b4' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_4: - name: 17Networks_RH_SomMotA_4 - lookupLabel: 283 - originalLookupLabel: 283 - center: - x: 45.0 - y: -10.0 - z: 50.0 - color: '#4682b5' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_5: - name: 17Networks_RH_SomMotA_5 - lookupLabel: 284 - originalLookupLabel: 284 - center: - x: 50.0 - y: -25.0 - z: 55.0 - color: '#4683ae' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_6: - name: 17Networks_RH_SomMotA_6 - lookupLabel: 285 - originalLookupLabel: 285 - center: - x: 7.0 - y: -4.0 - z: 51.0 - color: '#4683af' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_7: - name: 17Networks_RH_SomMotA_7 - lookupLabel: 286 - originalLookupLabel: 286 - center: - x: 41.0 - y: -21.0 - z: 50.0 - color: '#4683b0' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_8: - name: 17Networks_RH_SomMotA_8 - lookupLabel: 287 - originalLookupLabel: 287 - center: - x: 7.0 - y: -18.0 - z: 51.0 - color: '#4683b1' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_9: - name: 17Networks_RH_SomMotA_9 - lookupLabel: 288 - originalLookupLabel: 288 - center: - x: 43.0 - y: -26.0 - z: 64.0 - color: '#4683b2' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_10: - name: 17Networks_RH_SomMotA_10 - lookupLabel: 289 - originalLookupLabel: 289 - center: - x: 37.0 - y: -20.0 - z: 64.0 - color: '#4683b3' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_11: - name: 17Networks_RH_SomMotA_11 - lookupLabel: 290 - originalLookupLabel: 290 - center: - x: 32.0 - y: -34.0 - z: 64.0 - color: '#4683b4' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_12: - name: 17Networks_RH_SomMotA_12 - lookupLabel: 291 - originalLookupLabel: 291 - center: - x: 32.0 - y: -26.0 - z: 55.0 - color: '#4683b6' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_13: - name: 17Networks_RH_SomMotA_13 - lookupLabel: 292 - originalLookupLabel: 292 - center: - x: 30.0 - y: -41.0 - z: 65.0 - color: '#4683b7' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_14: - name: 17Networks_RH_SomMotA_14 - lookupLabel: 293 - originalLookupLabel: 293 - center: - x: 9.0 - y: -40.0 - z: 60.0 - color: '#4683b8' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_15: - name: 17Networks_RH_SomMotA_15 - lookupLabel: 294 - originalLookupLabel: 294 - center: - x: 4.0 - y: -24.0 - z: 61.0 - color: '#4683b9' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_16: - name: 17Networks_RH_SomMotA_16 - lookupLabel: 295 - originalLookupLabel: 295 - center: - x: 24.0 - y: -28.0 - z: 67.0 - color: '#4683ba' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_17: - name: 17Networks_RH_SomMotA_17 - lookupLabel: 296 - originalLookupLabel: 296 - center: - x: 22.0 - y: -24.0 - z: 67.0 - color: '#4683bb' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_18: - name: 17Networks_RH_SomMotA_18 - lookupLabel: 297 - originalLookupLabel: 297 - center: - x: 18.0 - y: -5.0 - z: 69.0 - color: '#4683bc' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_19: - name: 17Networks_RH_SomMotA_19 - lookupLabel: 298 - originalLookupLabel: 298 - center: - x: 6.0 - y: -40.0 - z: 68.0 - color: '#4684b5' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_20: - name: 17Networks_RH_SomMotA_20 - lookupLabel: 299 - originalLookupLabel: 299 - center: - x: 22.0 - y: -34.0 - z: 71.0 - color: '#4684b6' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_21: - name: 17Networks_RH_SomMotA_21 - lookupLabel: 300 - originalLookupLabel: 300 - center: - x: 21.0 - y: -14.0 - z: 72.0 - color: '#4684b7' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_22: - name: 17Networks_RH_SomMotA_22 - lookupLabel: 301 - originalLookupLabel: 301 - center: - x: 9.0 - y: -15.0 - z: 74.0 - color: '#4684b8' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_23: - name: 17Networks_RH_SomMotA_23 - lookupLabel: 302 - originalLookupLabel: 302 - center: - x: 5.0 - y: -29.0 - z: 73.0 - color: '#4684b9' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_24: - name: 17Networks_RH_SomMotA_24 - lookupLabel: 303 - originalLookupLabel: 303 - center: - x: 12.0 - y: -37.0 - z: 77.0 - color: '#4684ba' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_25: - name: 17Networks_RH_SomMotA_25 - lookupLabel: 304 - originalLookupLabel: 304 - center: - x: 14.0 - y: -26.0 - z: 73.0 - color: '#4684bb' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_26: - name: 17Networks_RH_SomMotA_26 - lookupLabel: 305 - originalLookupLabel: 305 - center: - x: 14.0 - y: -32.0 - z: 73.0 - color: '#4684bc' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotB_Cent_1: - name: 17Networks_RH_SomMotB_Cent_1 - lookupLabel: 306 - originalLookupLabel: 306 - center: - x: 61.0 - y: -3.0 - z: 24.0 - color: '#2bcca4' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_2: - name: 17Networks_RH_SomMotB_Cent_2 - lookupLabel: 307 - originalLookupLabel: 307 - center: - x: 64.0 - y: -11.0 - z: 29.0 - color: '#2bcca6' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_3: - name: 17Networks_RH_SomMotB_Cent_3 - lookupLabel: 308 - originalLookupLabel: 308 - center: - x: 53.0 - y: -10.0 - z: 36.0 - color: '#2bcca7' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_4: - name: 17Networks_RH_SomMotB_Cent_4 - lookupLabel: 309 - originalLookupLabel: 309 - center: - x: 53.0 - y: -5.0 - z: 37.0 - color: '#2bcca8' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_5: - name: 17Networks_RH_SomMotB_Cent_5 - lookupLabel: 310 - originalLookupLabel: 310 - center: - x: 41.0 - y: -16.0 - z: 41.0 - color: '#2bcca9' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_1: - name: 17Networks_RH_SomMotB_S2_1 - lookupLabel: 311 - originalLookupLabel: 311 - center: - x: 38.0 - y: -9.0 - z: 11.0 - color: '#2bcda2' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_2: - name: 17Networks_RH_SomMotB_S2_2 - lookupLabel: 312 - originalLookupLabel: 312 - center: - x: 35.0 - y: -21.0 - z: 15.0 - color: '#2bcda3' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_3: - name: 17Networks_RH_SomMotB_S2_3 - lookupLabel: 313 - originalLookupLabel: 313 - center: - x: 42.0 - y: -12.0 - z: 17.0 - color: '#2bcda5' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_4: - name: 17Networks_RH_SomMotB_S2_4 - lookupLabel: 314 - originalLookupLabel: 314 - center: - x: 41.0 - y: -29.0 - z: 18.0 - color: '#2bcda6' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_5: - name: 17Networks_RH_SomMotB_S2_5 - lookupLabel: 315 - originalLookupLabel: 315 - center: - x: 57.0 - y: 1.0 - z: 9.0 - color: '#2bcda7' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_6: - name: 17Networks_RH_SomMotB_S2_6 - lookupLabel: 316 - originalLookupLabel: 316 - center: - x: 56.0 - y: -11.0 - z: 14.0 - color: '#2bcda8' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_7: - name: 17Networks_RH_SomMotB_S2_7 - lookupLabel: 317 - originalLookupLabel: 317 - center: - x: 49.0 - y: -20.0 - z: 18.0 - color: '#2bcda9' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_8: - name: 17Networks_RH_SomMotB_S2_8 - lookupLabel: 318 - originalLookupLabel: 318 - center: - x: 63.0 - y: -1.0 - z: 13.0 - color: '#2bcdaa' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Ins_1: - name: 17Networks_RH_SomMotB_Ins_1 - lookupLabel: 319 - originalLookupLabel: 319 - center: - x: 39.0 - y: -20.0 - z: 4.0 - color: '#2bcdab' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_1: - name: 17Networks_RH_SomMotB_Aud_1 - lookupLabel: 320 - originalLookupLabel: 320 - center: - x: 53.0 - y: 2.0 - z: -5.0 - color: '#2acca4' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_2: - name: 17Networks_RH_SomMotB_Aud_2 - lookupLabel: 321 - originalLookupLabel: 321 - center: - x: 53.0 - y: -14.0 - z: 6.0 - color: '#2acca5' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_3: - name: 17Networks_RH_SomMotB_Aud_3 - lookupLabel: 322 - originalLookupLabel: 322 - center: - x: 60.0 - y: -24.0 - z: 11.0 - color: '#2acca6' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_DorsAttnA_TempOcc_1: - name: 17Networks_RH_DorsAttnA_TempOcc_1 - lookupLabel: 323 - originalLookupLabel: 323 - center: - x: 48.0 - y: -45.0 - z: -19.0 - color: '#4a9c3e' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_2: - name: 17Networks_RH_DorsAttnA_TempOcc_2 - lookupLabel: 324 - originalLookupLabel: 324 - center: - x: 51.0 - y: -58.0 - z: -14.0 - color: '#4a9c3f' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_1: - name: 17Networks_RH_DorsAttnA_ParOcc_1 - lookupLabel: 325 - originalLookupLabel: 325 - center: - x: 49.0 - y: -64.0 - z: 8.0 - color: '#4b9b3d' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_2: - name: 17Networks_RH_DorsAttnA_ParOcc_2 - lookupLabel: 326 - originalLookupLabel: 326 - center: - x: 48.0 - y: -59.0 - z: 19.0 - color: '#4b9b3e' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_3: - name: 17Networks_RH_DorsAttnA_ParOcc_3 - lookupLabel: 327 - originalLookupLabel: 327 - center: - x: 36.0 - y: -79.0 - z: 25.0 - color: '#4b9b3f' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_1: - name: 17Networks_RH_DorsAttnA_SPL_1 - lookupLabel: 328 - originalLookupLabel: 328 - center: - x: 30.0 - y: -68.0 - z: 33.0 - color: '#4b9b3b' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_2: - name: 17Networks_RH_DorsAttnA_SPL_2 - lookupLabel: 329 - originalLookupLabel: 329 - center: - x: 27.0 - y: -79.0 - z: 44.0 - color: '#4b9b3c' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_3: - name: 17Networks_RH_DorsAttnA_SPL_3 - lookupLabel: 330 - originalLookupLabel: 330 - center: - x: 24.0 - y: -66.0 - z: 51.0 - color: '#4b9b40' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_4: - name: 17Networks_RH_DorsAttnA_SPL_4 - lookupLabel: 331 - originalLookupLabel: 331 - center: - x: 34.0 - y: -56.0 - z: 52.0 - color: '#4b9b41' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_5: - name: 17Networks_RH_DorsAttnA_SPL_5 - lookupLabel: 332 - originalLookupLabel: 332 - center: - x: 12.0 - y: -72.0 - z: 54.0 - color: '#4b9b42' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_6: - name: 17Networks_RH_DorsAttnA_SPL_6 - lookupLabel: 333 - originalLookupLabel: 333 - center: - x: 36.0 - y: -48.0 - z: 59.0 - color: '#4b9b43' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_7: - name: 17Networks_RH_DorsAttnA_SPL_7 - lookupLabel: 334 - originalLookupLabel: 334 - center: - x: 26.0 - y: -58.0 - z: 60.0 - color: '#4b9b44' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_8: - name: 17Networks_RH_DorsAttnA_SPL_8 - lookupLabel: 335 - originalLookupLabel: 335 - center: - x: 18.0 - y: -67.0 - z: 64.0 - color: '#4b9c3d' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnB_TempOcc_1: - name: 17Networks_RH_DorsAttnB_TempOcc_1 - lookupLabel: 336 - originalLookupLabel: 336 - center: - x: 59.0 - y: -55.0 - z: -3.0 - color: '#01760f' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_1: - name: 17Networks_RH_DorsAttnB_PostC_1 - lookupLabel: 337 - originalLookupLabel: 337 - center: - x: 59.0 - y: -16.0 - z: 32.0 - color: '#01760b' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_2: - name: 17Networks_RH_DorsAttnB_PostC_2 - lookupLabel: 338 - originalLookupLabel: 338 - center: - x: 57.0 - y: -24.0 - z: 46.0 - color: '#01760c' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_3: - name: 17Networks_RH_DorsAttnB_PostC_3 - lookupLabel: 339 - originalLookupLabel: 339 - center: - x: 47.0 - y: -25.0 - z: 41.0 - color: '#01760d' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_4: - name: 17Networks_RH_DorsAttnB_PostC_4 - lookupLabel: 340 - originalLookupLabel: 340 - center: - x: 41.0 - y: -33.0 - z: 45.0 - color: '#01760e' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_5: - name: 17Networks_RH_DorsAttnB_PostC_5 - lookupLabel: 341 - originalLookupLabel: 341 - center: - x: 41.0 - y: -39.0 - z: 49.0 - color: '#017610' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_6: - name: 17Networks_RH_DorsAttnB_PostC_6 - lookupLabel: 342 - originalLookupLabel: 342 - center: - x: 35.0 - y: -33.0 - z: 50.0 - color: '#017611' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_7: - name: 17Networks_RH_DorsAttnB_PostC_7 - lookupLabel: 343 - originalLookupLabel: 343 - center: - x: 37.0 - y: -40.0 - z: 58.0 - color: '#017612' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_8: - name: 17Networks_RH_DorsAttnB_PostC_8 - lookupLabel: 344 - originalLookupLabel: 344 - center: - x: 9.0 - y: -58.0 - z: 63.0 - color: '#017613' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_9: - name: 17Networks_RH_DorsAttnB_PostC_9 - lookupLabel: 345 - originalLookupLabel: 345 - center: - x: 26.0 - y: -52.0 - z: 69.0 - color: '#017614' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_10: - name: 17Networks_RH_DorsAttnB_PostC_10 - lookupLabel: 346 - originalLookupLabel: 346 - center: - x: 11.0 - y: -46.0 - z: 66.0 - color: '#017615' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_11: - name: 17Networks_RH_DorsAttnB_PostC_11 - lookupLabel: 347 - originalLookupLabel: 347 - center: - x: 19.0 - y: -46.0 - z: 72.0 - color: '#017616' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_1: - name: 17Networks_RH_DorsAttnB_FEF_1 - lookupLabel: 348 - originalLookupLabel: 348 - center: - x: 40.0 - y: -3.0 - z: 52.0 - color: '#01770f' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_2: - name: 17Networks_RH_DorsAttnB_FEF_2 - lookupLabel: 349 - originalLookupLabel: 349 - center: - x: 28.0 - y: -4.0 - z: 51.0 - color: '#017710' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_3: - name: 17Networks_RH_DorsAttnB_FEF_3 - lookupLabel: 350 - originalLookupLabel: 350 - center: - x: 30.0 - y: -10.0 - z: 64.0 - color: '#017711' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_4: - name: 17Networks_RH_DorsAttnB_FEF_4 - lookupLabel: 351 - originalLookupLabel: 351 - center: - x: 25.0 - y: -2.0 - z: 63.0 - color: '#017712' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PrCv_1: - name: 17Networks_RH_DorsAttnB_PrCv_1 - lookupLabel: 352 - originalLookupLabel: 352 - center: - x: 57.0 - y: 8.0 - z: 31.0 - color: '#017713' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_SalVentAttnA_ParOper_1: - name: 17Networks_RH_SalVentAttnA_ParOper_1 - lookupLabel: 353 - originalLookupLabel: 353 - center: - x: 62.0 - y: -31.0 - z: 22.0 - color: '#c43afa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_2: - name: 17Networks_RH_SalVentAttnA_ParOper_2 - lookupLabel: 354 - originalLookupLabel: 354 - center: - x: 50.0 - y: -28.0 - z: 25.0 - color: '#c43afb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_3: - name: 17Networks_RH_SalVentAttnA_ParOper_3 - lookupLabel: 355 - originalLookupLabel: 355 - center: - x: 61.0 - y: -21.0 - z: 22.0 - color: '#c43afc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_4: - name: 17Networks_RH_SalVentAttnA_ParOper_4 - lookupLabel: 356 - originalLookupLabel: 356 - center: - x: 63.0 - y: -26.0 - z: 37.0 - color: '#c43afd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_PrC_1: - name: 17Networks_RH_SalVentAttnA_PrC_1 - lookupLabel: 357 - originalLookupLabel: 357 - center: - x: 54.0 - y: 1.0 - z: 45.0 - color: '#c439fb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_1: - name: 17Networks_RH_SalVentAttnA_FrOper_1 - lookupLabel: 358 - originalLookupLabel: 358 - center: - x: 49.0 - y: 5.0 - z: 3.0 - color: '#c439fa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_2: - name: 17Networks_RH_SalVentAttnA_FrOper_2 - lookupLabel: 359 - originalLookupLabel: 359 - center: - x: 53.0 - y: 11.0 - z: 12.0 - color: '#c439fc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_3: - name: 17Networks_RH_SalVentAttnA_FrOper_3 - lookupLabel: 360 - originalLookupLabel: 360 - center: - x: 60.0 - y: 9.0 - z: 18.0 - color: '#c439fd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_1: - name: 17Networks_RH_SalVentAttnA_Ins_1 - lookupLabel: 361 - originalLookupLabel: 361 - center: - x: 39.0 - y: 5.0 - z: -12.0 - color: '#c33afb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_2: - name: 17Networks_RH_SalVentAttnA_Ins_2 - lookupLabel: 362 - originalLookupLabel: 362 - center: - x: 40.0 - y: 7.0 - z: 0.0 - color: '#c33afc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_3: - name: 17Networks_RH_SalVentAttnA_Ins_3 - lookupLabel: 363 - originalLookupLabel: 363 - center: - x: 40.0 - y: -10.0 - z: -3.0 - color: '#c33afd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_4: - name: 17Networks_RH_SalVentAttnA_Ins_4 - lookupLabel: 364 - originalLookupLabel: 364 - center: - x: 38.0 - y: 4.0 - z: 11.0 - color: '#c33afe' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_1: - name: 17Networks_RH_SalVentAttnA_ParMed_1 - lookupLabel: 365 - originalLookupLabel: 365 - center: - x: 10.0 - y: -29.0 - z: 41.0 - color: '#c33af8' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_2: - name: 17Networks_RH_SalVentAttnA_ParMed_2 - lookupLabel: 366 - originalLookupLabel: 366 - center: - x: 12.0 - y: -38.0 - z: 45.0 - color: '#c33afa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_3: - name: 17Networks_RH_SalVentAttnA_ParMed_3 - lookupLabel: 367 - originalLookupLabel: 367 - center: - x: 14.0 - y: -27.0 - z: 44.0 - color: '#c33aff' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_4: - name: 17Networks_RH_SalVentAttnA_ParMed_4 - lookupLabel: 368 - originalLookupLabel: 368 - center: - x: 9.0 - y: -44.0 - z: 53.0 - color: '#c33bf9' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_5: - name: 17Networks_RH_SalVentAttnA_ParMed_5 - lookupLabel: 369 - originalLookupLabel: 369 - center: - x: 10.0 - y: -34.0 - z: 52.0 - color: '#c33bfa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_1: - name: 17Networks_RH_SalVentAttnA_FrMed_1 - lookupLabel: 370 - originalLookupLabel: 370 - center: - x: 4.0 - y: -16.0 - z: 37.0 - color: '#c339fb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_2: - name: 17Networks_RH_SalVentAttnA_FrMed_2 - lookupLabel: 371 - originalLookupLabel: 371 - center: - x: 7.0 - y: 8.0 - z: 41.0 - color: '#c339fc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_3: - name: 17Networks_RH_SalVentAttnA_FrMed_3 - lookupLabel: 372 - originalLookupLabel: 372 - center: - x: 6.0 - y: 13.0 - z: 54.0 - color: '#c339fd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_4: - name: 17Networks_RH_SalVentAttnA_FrMed_4 - lookupLabel: 373 - originalLookupLabel: 373 - center: - x: 7.0 - y: -2.0 - z: 66.0 - color: '#c339fe' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnB_IPL_1: - name: 17Networks_RH_SalVentAttnB_IPL_1 - lookupLabel: 374 - originalLookupLabel: 374 - center: - x: 64.0 - y: -39.0 - z: 26.0 - color: '#fe98d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_IPL_2: - name: 17Networks_RH_SalVentAttnB_IPL_2 - lookupLabel: 375 - originalLookupLabel: 375 - center: - x: 60.0 - y: -40.0 - z: 36.0 - color: '#fe98d7' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_IPL_3: - name: 17Networks_RH_SalVentAttnB_IPL_3 - lookupLabel: 376 - originalLookupLabel: 376 - center: - x: 61.0 - y: -33.0 - z: 46.0 - color: '#fe98d8' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCd_1: - name: 17Networks_RH_SalVentAttnB_PFCd_1 - lookupLabel: 377 - originalLookupLabel: 377 - center: - x: 15.0 - y: 7.0 - z: 70.0 - color: '#fe98d5' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_1: - name: 17Networks_RH_SalVentAttnB_PFCl_1 - lookupLabel: 378 - originalLookupLabel: 378 - center: - x: 27.0 - y: 53.0 - z: 20.0 - color: '#fe97d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_2: - name: 17Networks_RH_SalVentAttnB_PFCl_2 - lookupLabel: 379 - originalLookupLabel: 379 - center: - x: 37.0 - y: 45.0 - z: 25.0 - color: '#fe97d7' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_3: - name: 17Networks_RH_SalVentAttnB_PFCl_3 - lookupLabel: 380 - originalLookupLabel: 380 - center: - x: 22.0 - y: 55.0 - z: 30.0 - color: '#fe97d8' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_4: - name: 17Networks_RH_SalVentAttnB_PFCl_4 - lookupLabel: 381 - originalLookupLabel: 381 - center: - x: 29.0 - y: 44.0 - z: 33.0 - color: '#fe97d9' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFClv_1: - name: 17Networks_RH_SalVentAttnB_PFClv_1 - lookupLabel: 382 - originalLookupLabel: 382 - center: - x: 49.0 - y: 42.0 - z: 1.0 - color: '#fe97d5' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_1: - name: 17Networks_RH_SalVentAttnB_Ins_1 - lookupLabel: 383 - originalLookupLabel: 383 - center: - x: 34.0 - y: 21.0 - z: -8.0 - color: '#fe98d9' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_2: - name: 17Networks_RH_SalVentAttnB_Ins_2 - lookupLabel: 384 - originalLookupLabel: 384 - center: - x: 34.0 - y: 25.0 - z: 3.0 - color: '#fe98da' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_3: - name: 17Networks_RH_SalVentAttnB_Ins_3 - lookupLabel: 385 - originalLookupLabel: 385 - center: - x: 42.0 - y: 17.0 - z: 6.0 - color: '#fe98db' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_4: - name: 17Networks_RH_SalVentAttnB_Ins_4 - lookupLabel: 386 - originalLookupLabel: 386 - center: - x: 55.0 - y: 20.0 - z: 9.0 - color: '#fe98dc' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCmp_1: - name: 17Networks_RH_SalVentAttnB_PFCmp_1 - lookupLabel: 387 - originalLookupLabel: 387 - center: - x: 8.0 - y: 36.0 - z: 24.0 - color: '#fe99d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCmp_2: - name: 17Networks_RH_SalVentAttnB_PFCmp_2 - lookupLabel: 388 - originalLookupLabel: 388 - center: - x: 8.0 - y: 25.0 - z: 32.0 - color: '#fe99d7' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCmp_3: - name: 17Networks_RH_SalVentAttnB_PFCmp_3 - lookupLabel: 389 - originalLookupLabel: 389 - center: - x: 4.0 - y: 12.0 - z: 63.0 - color: '#fe99d8' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Cinga_1: - name: 17Networks_RH_SalVentAttnB_Cinga_1 - lookupLabel: 390 - originalLookupLabel: 390 - center: - x: 5.0 - y: 20.0 - z: 24.0 - color: '#ff97d5' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_LimbicB_OFC_1: - name: 17Networks_RH_LimbicB_OFC_1 - lookupLabel: 391 - originalLookupLabel: 391 - center: - x: 20.0 - y: 14.0 - z: -22.0 - color: '#7a8731' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_2: - name: 17Networks_RH_LimbicB_OFC_2 - lookupLabel: 392 - originalLookupLabel: 392 - center: - x: 12.0 - y: 25.0 - z: -21.0 - color: '#7a8732' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_3: - name: 17Networks_RH_LimbicB_OFC_3 - lookupLabel: 393 - originalLookupLabel: 393 - center: - x: 23.0 - y: 32.0 - z: -18.0 - color: '#7a8734' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_4: - name: 17Networks_RH_LimbicB_OFC_4 - lookupLabel: 394 - originalLookupLabel: 394 - center: - x: 10.0 - y: 48.0 - z: -22.0 - color: '#7a8735' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_5: - name: 17Networks_RH_LimbicB_OFC_5 - lookupLabel: 395 - originalLookupLabel: 395 - center: - x: 4.0 - y: 24.0 - z: -22.0 - color: '#7a8736' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_6: - name: 17Networks_RH_LimbicB_OFC_6 - lookupLabel: 396 - originalLookupLabel: 396 - center: - x: 4.0 - y: 27.0 - z: -12.0 - color: '#7a8737' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_7: - name: 17Networks_RH_LimbicB_OFC_7 - lookupLabel: 397 - originalLookupLabel: 397 - center: - x: 9.0 - y: 63.0 - z: -14.0 - color: '#7a8738' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicA_TempPole_1: - name: 17Networks_RH_LimbicA_TempPole_1 - lookupLabel: 398 - originalLookupLabel: 398 - center: - x: 38.0 - y: -1.0 - z: -44.0 - color: '#dcf8a2' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_2: - name: 17Networks_RH_LimbicA_TempPole_2 - lookupLabel: 399 - originalLookupLabel: 399 - center: - x: 24.0 - y: 7.0 - z: -37.0 - color: '#dcf8a3' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_3: - name: 17Networks_RH_LimbicA_TempPole_3 - lookupLabel: 400 - originalLookupLabel: 400 - center: - x: 28.0 - y: -6.0 - z: -35.0 - color: '#dcf8a4' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_4: - name: 17Networks_RH_LimbicA_TempPole_4 - lookupLabel: 401 - originalLookupLabel: 401 - center: - x: 40.0 - y: -15.0 - z: -31.0 - color: '#dcf8a6' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_5: - name: 17Networks_RH_LimbicA_TempPole_5 - lookupLabel: 402 - originalLookupLabel: 402 - center: - x: 38.0 - y: 19.0 - z: -36.0 - color: '#dcf8a7' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_6: - name: 17Networks_RH_LimbicA_TempPole_6 - lookupLabel: 403 - originalLookupLabel: 403 - center: - x: 53.0 - y: -17.0 - z: -33.0 - color: '#dcf8a8' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_7: - name: 17Networks_RH_LimbicA_TempPole_7 - lookupLabel: 404 - originalLookupLabel: 404 - center: - x: 31.0 - y: 14.0 - z: -30.0 - color: '#dcf8a9' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_8: - name: 17Networks_RH_LimbicA_TempPole_8 - lookupLabel: 405 - originalLookupLabel: 405 - center: - x: 45.0 - y: -31.0 - z: -23.0 - color: '#dcf8aa' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_9: - name: 17Networks_RH_LimbicA_TempPole_9 - lookupLabel: 406 - originalLookupLabel: 406 - center: - x: 44.0 - y: 10.0 - z: -18.0 - color: '#dcf8ab' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_ContA_IPS_1: - name: 17Networks_RH_ContA_IPS_1 - lookupLabel: 407 - originalLookupLabel: 407 - center: - x: 34.0 - y: -70.0 - z: 44.0 - color: '#e69323' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_2: - name: 17Networks_RH_ContA_IPS_2 - lookupLabel: 408 - originalLookupLabel: 408 - center: - x: 51.0 - y: -35.0 - z: 51.0 - color: '#e69324' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_3: - name: 17Networks_RH_ContA_IPS_3 - lookupLabel: 409 - originalLookupLabel: 409 - center: - x: 45.0 - y: -43.0 - z: 44.0 - color: '#e69325' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_4: - name: 17Networks_RH_ContA_IPS_4 - lookupLabel: 410 - originalLookupLabel: 410 - center: - x: 34.0 - y: -46.0 - z: 45.0 - color: '#e69326' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCd_1: - name: 17Networks_RH_ContA_PFCd_1 - lookupLabel: 411 - originalLookupLabel: 411 - center: - x: 25.0 - y: 9.0 - z: 52.0 - color: '#e69322' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_1: - name: 17Networks_RH_ContA_PFCl_1 - lookupLabel: 412 - originalLookupLabel: 412 - center: - x: 52.0 - y: 31.0 - z: 15.0 - color: '#e59420' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_2: - name: 17Networks_RH_ContA_PFCl_2 - lookupLabel: 413 - originalLookupLabel: 413 - center: - x: 42.0 - y: 45.0 - z: 12.0 - color: '#e59421' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_3: - name: 17Networks_RH_ContA_PFCl_3 - lookupLabel: 414 - originalLookupLabel: 414 - center: - x: 49.0 - y: 18.0 - z: 22.0 - color: '#e59423' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_4: - name: 17Networks_RH_ContA_PFCl_4 - lookupLabel: 415 - originalLookupLabel: 415 - center: - x: 47.0 - y: 30.0 - z: 26.0 - color: '#e59424' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_5: - name: 17Networks_RH_ContA_PFCl_5 - lookupLabel: 416 - originalLookupLabel: 416 - center: - x: 45.0 - y: 8.0 - z: 25.0 - color: '#e59425' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_6: - name: 17Networks_RH_ContA_PFCl_6 - lookupLabel: 417 - originalLookupLabel: 417 - center: - x: 39.0 - y: 13.0 - z: 33.0 - color: '#e59426' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_7: - name: 17Networks_RH_ContA_PFCl_7 - lookupLabel: 418 - originalLookupLabel: 418 - center: - x: 46.0 - y: 4.0 - z: 38.0 - color: '#e59427' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_Cingm_1: - name: 17Networks_RH_ContA_Cingm_1 - lookupLabel: 419 - originalLookupLabel: 419 - center: - x: 5.0 - y: 3.0 - z: 30.0 - color: '#e59422' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContB_Temp_1: - name: 17Networks_RH_ContB_Temp_1 - lookupLabel: 420 - originalLookupLabel: 420 - center: - x: 59.0 - y: -33.0 - z: -23.0 - color: '#88334c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_Temp_2: - name: 17Networks_RH_ContB_Temp_2 - lookupLabel: 421 - originalLookupLabel: 421 - center: - x: 65.0 - y: -24.0 - z: -16.0 - color: '#88334d' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_Temp_3: - name: 17Networks_RH_ContB_Temp_3 - lookupLabel: 422 - originalLookupLabel: 422 - center: - x: 64.0 - y: -42.0 - z: -10.0 - color: '#88334e' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_1: - name: 17Networks_RH_ContB_IPL_1 - lookupLabel: 423 - originalLookupLabel: 423 - center: - x: 57.0 - y: -51.0 - z: 33.0 - color: '#873248' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_2: - name: 17Networks_RH_ContB_IPL_2 - lookupLabel: 424 - originalLookupLabel: 424 - center: - x: 49.0 - y: -60.0 - z: 45.0 - color: '#87324a' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_3: - name: 17Networks_RH_ContB_IPL_3 - lookupLabel: 425 - originalLookupLabel: 425 - center: - x: 55.0 - y: -41.0 - z: 48.0 - color: '#87324b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_4: - name: 17Networks_RH_ContB_IPL_4 - lookupLabel: 426 - originalLookupLabel: 426 - center: - x: 53.0 - y: -50.0 - z: 49.0 - color: '#87324c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_5: - name: 17Networks_RH_ContB_IPL_5 - lookupLabel: 427 - originalLookupLabel: 427 - center: - x: 41.0 - y: -56.0 - z: 48.0 - color: '#87324d' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_1: - name: 17Networks_RH_ContB_PFCld_1 - lookupLabel: 428 - originalLookupLabel: 428 - center: - x: 40.0 - y: 33.0 - z: 38.0 - color: '#873149' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_2: - name: 17Networks_RH_ContB_PFCld_2 - lookupLabel: 429 - originalLookupLabel: 429 - center: - x: 45.0 - y: 19.0 - z: 43.0 - color: '#87314b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_3: - name: 17Networks_RH_ContB_PFCld_3 - lookupLabel: 430 - originalLookupLabel: 430 - center: - x: 31.0 - y: 31.0 - z: 39.0 - color: '#87314c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_4: - name: 17Networks_RH_ContB_PFCld_4 - lookupLabel: 431 - originalLookupLabel: 431 - center: - x: 44.0 - y: 6.0 - z: 50.0 - color: '#87314d' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_5: - name: 17Networks_RH_ContB_PFCld_5 - lookupLabel: 432 - originalLookupLabel: 432 - center: - x: 35.0 - y: 14.0 - z: 57.0 - color: '#87314e' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_6: - name: 17Networks_RH_ContB_PFCld_6 - lookupLabel: 433 - originalLookupLabel: 433 - center: - x: 23.0 - y: 14.0 - z: 62.0 - color: '#87314f' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_1: - name: 17Networks_RH_ContB_PFClv_1 - lookupLabel: 434 - originalLookupLabel: 434 - center: - x: 27.0 - y: 50.0 - z: -15.0 - color: '#873148' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_2: - name: 17Networks_RH_ContB_PFClv_2 - lookupLabel: 435 - originalLookupLabel: 435 - center: - x: 35.0 - y: 37.0 - z: -13.0 - color: '#87314a' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_3: - name: 17Networks_RH_ContB_PFClv_3 - lookupLabel: 436 - originalLookupLabel: 436 - center: - x: 22.0 - y: 63.0 - z: -6.0 - color: '#873150' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_4: - name: 17Networks_RH_ContB_PFClv_4 - lookupLabel: 437 - originalLookupLabel: 437 - center: - x: 42.0 - y: 51.0 - z: -6.0 - color: '#873249' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_5: - name: 17Networks_RH_ContB_PFClv_5 - lookupLabel: 438 - originalLookupLabel: 438 - center: - x: 30.0 - y: 57.0 - z: 6.0 - color: '#87324e' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCmp_1: - name: 17Networks_RH_ContB_PFCmp_1 - lookupLabel: 439 - originalLookupLabel: 439 - center: - x: 5.0 - y: 33.0 - z: 44.0 - color: '#86324b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCmp_2: - name: 17Networks_RH_ContB_PFCmp_2 - lookupLabel: 440 - originalLookupLabel: 440 - center: - x: 5.0 - y: 25.0 - z: 53.0 - color: '#86324c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContC_pCun_1: - name: 17Networks_RH_ContC_pCun_1 - lookupLabel: 441 - originalLookupLabel: 441 - center: - x: 16.0 - y: -64.0 - z: 29.0 - color: '#778daf' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_2: - name: 17Networks_RH_ContC_pCun_2 - lookupLabel: 442 - originalLookupLabel: 442 - center: - x: 14.0 - y: -73.0 - z: 42.0 - color: '#778db1' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_3: - name: 17Networks_RH_ContC_pCun_3 - lookupLabel: 443 - originalLookupLabel: 443 - center: - x: 8.0 - y: -49.0 - z: 43.0 - color: '#778db2' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_4: - name: 17Networks_RH_ContC_pCun_4 - lookupLabel: 444 - originalLookupLabel: 444 - center: - x: 6.0 - y: -62.0 - z: 43.0 - color: '#778db3' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_5: - name: 17Networks_RH_ContC_pCun_5 - lookupLabel: 445 - originalLookupLabel: 445 - center: - x: 4.0 - y: -70.0 - z: 49.0 - color: '#778db4' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_6: - name: 17Networks_RH_ContC_pCun_6 - lookupLabel: 446 - originalLookupLabel: 446 - center: - x: 6.0 - y: -54.0 - z: 54.0 - color: '#778db5' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_Cingp_1: - name: 17Networks_RH_ContC_Cingp_1 - lookupLabel: 447 - originalLookupLabel: 447 - center: - x: 7.0 - y: -41.0 - z: 24.0 - color: '#778db6' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_Cingp_2: - name: 17Networks_RH_ContC_Cingp_2 - lookupLabel: 448 - originalLookupLabel: 448 - center: - x: 6.0 - y: -26.0 - z: 28.0 - color: '#778db7' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_Cingp_3: - name: 17Networks_RH_ContC_Cingp_3 - lookupLabel: 449 - originalLookupLabel: 449 - center: - x: 6.0 - y: -12.0 - z: 30.0 - color: '#778db8' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_DefaultA_Temp_1: - name: 17Networks_RH_DefaultA_Temp_1 - lookupLabel: 450 - originalLookupLabel: 450 - center: - x: 60.0 - y: -5.0 - z: -16.0 - color: '#feff02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_1: - name: 17Networks_RH_DefaultA_IPL_1 - lookupLabel: 451 - originalLookupLabel: 451 - center: - x: 53.0 - y: -50.0 - z: 21.0 - color: '#fffe02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_2: - name: 17Networks_RH_DefaultA_IPL_2 - lookupLabel: 452 - originalLookupLabel: 452 - center: - x: 49.0 - y: -60.0 - z: 31.0 - color: '#fffe03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_3: - name: 17Networks_RH_DefaultA_IPL_3 - lookupLabel: 453 - originalLookupLabel: 453 - center: - x: 43.0 - y: -71.0 - z: 43.0 - color: '#fffe04' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCd_1: - name: 17Networks_RH_DefaultA_PFCd_1 - lookupLabel: 454 - originalLookupLabel: 454 - center: - x: 22.0 - y: 40.0 - z: 37.0 - color: '#ffff03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCd_2: - name: 17Networks_RH_DefaultA_PFCd_2 - lookupLabel: 455 - originalLookupLabel: 455 - center: - x: 25.0 - y: 26.0 - z: 46.0 - color: '#ffff04' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCd_3: - name: 17Networks_RH_DefaultA_PFCd_3 - lookupLabel: 456 - originalLookupLabel: 456 - center: - x: 22.0 - y: 35.0 - z: 52.0 - color: '#ffff05' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_1: - name: 17Networks_RH_DefaultA_pCunPCC_1 - lookupLabel: 457 - originalLookupLabel: 457 - center: - x: 7.0 - y: -48.0 - z: 13.0 - color: '#fffd01' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_2: - name: 17Networks_RH_DefaultA_pCunPCC_2 - lookupLabel: 458 - originalLookupLabel: 458 - center: - x: 6.0 - y: -50.0 - z: 24.0 - color: '#fffd02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_3: - name: 17Networks_RH_DefaultA_pCunPCC_3 - lookupLabel: 459 - originalLookupLabel: 459 - center: - x: 4.0 - y: -62.0 - z: 26.0 - color: '#fffd03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_4: - name: 17Networks_RH_DefaultA_pCunPCC_4 - lookupLabel: 460 - originalLookupLabel: 460 - center: - x: 5.0 - y: -33.0 - z: 35.0 - color: '#fffd04' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_5: - name: 17Networks_RH_DefaultA_pCunPCC_5 - lookupLabel: 461 - originalLookupLabel: 461 - center: - x: 10.0 - y: -43.0 - z: 36.0 - color: '#fffd05' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_6: - name: 17Networks_RH_DefaultA_pCunPCC_6 - lookupLabel: 462 - originalLookupLabel: 462 - center: - x: 8.0 - y: -54.0 - z: 33.0 - color: '#fffd06' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_7: - name: 17Networks_RH_DefaultA_pCunPCC_7 - lookupLabel: 463 - originalLookupLabel: 463 - center: - x: 5.0 - y: -67.0 - z: 34.0 - color: '#fffd07' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_1: - name: 17Networks_RH_DefaultA_PFCm_1 - lookupLabel: 464 - originalLookupLabel: 464 - center: - x: 5.0 - y: 45.0 - z: -13.0 - color: '#fdff01' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_2: - name: 17Networks_RH_DefaultA_PFCm_2 - lookupLabel: 465 - originalLookupLabel: 465 - center: - x: 6.0 - y: 35.0 - z: -6.0 - color: '#fdff02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_3: - name: 17Networks_RH_DefaultA_PFCm_3 - lookupLabel: 466 - originalLookupLabel: 466 - center: - x: 8.0 - y: 53.0 - z: -4.0 - color: '#fdff03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_4: - name: 17Networks_RH_DefaultA_PFCm_4 - lookupLabel: 467 - originalLookupLabel: 467 - center: - x: 12.0 - y: 67.0 - z: 6.0 - color: '#fdff04' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_5: - name: 17Networks_RH_DefaultA_PFCm_5 - lookupLabel: 468 - originalLookupLabel: 468 - center: - x: 8.0 - y: 42.0 - z: 5.0 - color: '#fdff05' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_6: - name: 17Networks_RH_DefaultA_PFCm_6 - lookupLabel: 469 - originalLookupLabel: 469 - center: - x: 7.0 - y: 56.0 - z: 11.0 - color: '#fdff06' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_7: - name: 17Networks_RH_DefaultA_PFCm_7 - lookupLabel: 470 - originalLookupLabel: 470 - center: - x: 6.0 - y: 30.0 - z: 14.0 - color: '#fdff07' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultB_Temp_1: - name: 17Networks_RH_DefaultB_Temp_1 - lookupLabel: 471 - originalLookupLabel: 471 - center: - x: 63.0 - y: -24.0 - z: -7.0 - color: '#ce3e50' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_Temp_2: - name: 17Networks_RH_DefaultB_Temp_2 - lookupLabel: 472 - originalLookupLabel: 472 - center: - x: 62.0 - y: -37.0 - z: 0.0 - color: '#ce3e51' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_AntTemp_1: - name: 17Networks_RH_DefaultB_AntTemp_1 - lookupLabel: 473 - originalLookupLabel: 473 - center: - x: 49.0 - y: 9.0 - z: -34.0 - color: '#ce3f4f' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_AntTemp_2: - name: 17Networks_RH_DefaultB_AntTemp_2 - lookupLabel: 474 - originalLookupLabel: 474 - center: - x: 58.0 - y: -8.0 - z: -27.0 - color: '#ce3f50' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_1: - name: 17Networks_RH_DefaultB_PFCd_1 - lookupLabel: 475 - originalLookupLabel: 475 - center: - x: 16.0 - y: 64.0 - z: 20.0 - color: '#ce3f4e' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_2: - name: 17Networks_RH_DefaultB_PFCd_2 - lookupLabel: 476 - originalLookupLabel: 476 - center: - x: 5.0 - y: 52.0 - z: 30.0 - color: '#ce3f51' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_3: - name: 17Networks_RH_DefaultB_PFCd_3 - lookupLabel: 477 - originalLookupLabel: 477 - center: - x: 14.0 - y: 52.0 - z: 40.0 - color: '#ce3f52' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_4: - name: 17Networks_RH_DefaultB_PFCd_4 - lookupLabel: 478 - originalLookupLabel: 478 - center: - x: 9.0 - y: 38.0 - z: 54.0 - color: '#ce3f53' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_5: - name: 17Networks_RH_DefaultB_PFCd_5 - lookupLabel: 479 - originalLookupLabel: 479 - center: - x: 12.0 - y: 21.0 - z: 62.0 - color: '#ce3f54' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_1: - name: 17Networks_RH_DefaultB_PFCv_1 - lookupLabel: 480 - originalLookupLabel: 480 - center: - x: 34.0 - y: 23.0 - z: -18.0 - color: '#cd3e4e' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_2: - name: 17Networks_RH_DefaultB_PFCv_2 - lookupLabel: 481 - originalLookupLabel: 481 - center: - x: 47.0 - y: 31.0 - z: -10.0 - color: '#cd3e4f' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_3: - name: 17Networks_RH_DefaultB_PFCv_3 - lookupLabel: 482 - originalLookupLabel: 482 - center: - x: 50.0 - y: 29.0 - z: 1.0 - color: '#cd3e50' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultC_IPL_1: - name: 17Networks_RH_DefaultC_IPL_1 - lookupLabel: 483 - originalLookupLabel: 483 - center: - x: 47.0 - y: -71.0 - z: 25.0 - color: '#000184' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_Rsp_1: - name: 17Networks_RH_DefaultC_Rsp_1 - lookupLabel: 484 - originalLookupLabel: 484 - center: - x: 14.0 - y: -47.0 - z: 4.0 - color: '#010083' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_Rsp_2: - name: 17Networks_RH_DefaultC_Rsp_2 - lookupLabel: 485 - originalLookupLabel: 485 - center: - x: 14.0 - y: -56.0 - z: 17.0 - color: '#010084' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_PHC_1: - name: 17Networks_RH_DefaultC_PHC_1 - lookupLabel: 486 - originalLookupLabel: 486 - center: - x: 33.0 - y: -26.0 - z: -25.0 - color: '#010085' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_PHC_2: - name: 17Networks_RH_DefaultC_PHC_2 - lookupLabel: 487 - originalLookupLabel: 487 - center: - x: 22.0 - y: -19.0 - z: -26.0 - color: '#010086' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_PHC_3: - name: 17Networks_RH_DefaultC_PHC_3 - lookupLabel: 488 - originalLookupLabel: 488 - center: - x: 29.0 - y: -34.0 - z: -15.0 - color: '#010087' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_TempPar_1: - name: 17Networks_RH_TempPar_1 - lookupLabel: 489 - originalLookupLabel: 489 - center: - x: 50.0 - y: 15.0 - z: -21.0 - color: '#0c30fa' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_2: - name: 17Networks_RH_TempPar_2 - lookupLabel: 490 - originalLookupLabel: 490 - center: - x: 53.0 - y: -2.0 - z: -13.0 - color: '#0c30fb' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_3: - name: 17Networks_RH_TempPar_3 - lookupLabel: 491 - originalLookupLabel: 491 - center: - x: 50.0 - y: -18.0 - z: -8.0 - color: '#0c30fc' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_4: - name: 17Networks_RH_TempPar_4 - lookupLabel: 492 - originalLookupLabel: 492 - center: - x: 62.0 - y: -11.0 - z: -3.0 - color: '#0c30fd' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_5: - name: 17Networks_RH_TempPar_5 - lookupLabel: 493 - originalLookupLabel: 493 - center: - x: 50.0 - y: -32.0 - z: 1.0 - color: '#0c30ff' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_6: - name: 17Networks_RH_TempPar_6 - lookupLabel: 494 - originalLookupLabel: 494 - center: - x: 63.0 - y: -23.0 - z: 1.0 - color: '#0929fa' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_7: - name: 17Networks_RH_TempPar_7 - lookupLabel: 495 - originalLookupLabel: 495 - center: - x: 61.0 - y: -45.0 - z: 5.0 - color: '#0929fb' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_8: - name: 17Networks_RH_TempPar_8 - lookupLabel: 496 - originalLookupLabel: 496 - center: - x: 56.0 - y: -55.0 - z: 11.0 - color: '#0929fc' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_9: - name: 17Networks_RH_TempPar_9 - lookupLabel: 497 - originalLookupLabel: 497 - center: - x: 52.0 - y: -40.0 - z: 12.0 - color: '#0929fd' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_10: - name: 17Networks_RH_TempPar_10 - lookupLabel: 498 - originalLookupLabel: 498 - center: - x: 56.0 - y: -47.0 - z: 14.0 - color: '#0929fe' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_11: - name: 17Networks_RH_TempPar_11 - lookupLabel: 499 - originalLookupLabel: 499 - center: - x: 65.0 - y: -35.0 - z: 11.0 - color: '#092af7' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_12: - name: 17Networks_RH_TempPar_12 - lookupLabel: 500 - originalLookupLabel: 500 - center: - x: 54.0 - y: -43.0 - z: 25.0 - color: '#092af8' - hemisphere: right - hasParent: - - RH_TempPar - versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_500Parcels_17Networks_order_FSLMNI152_1mm.nii.gz diff --git a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-500_res-1_desc-ordered_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-500_res-1_desc-ordered_dseg.yaml similarity index 99% rename from tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-500_res-1_desc-ordered_dseg.yaml rename to tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-500_res-1_desc-ordered_dseg.yaml index 94e527e7f..e2ab84aa6 100644 --- a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-500_res-1_desc-ordered_dseg.yaml +++ b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-500_res-1_desc-ordered_dseg.yaml @@ -1,14 +1,12 @@ name: Schaefer2018 abbreviation: Schaefer2018 versionIdentifier: '2018' -coordinateSpace: - name: MNI152 - abbreviation: FSLMNI152 - nativeUnit: mm +coordinateSpace: FSLMNI152 terminology: label: Schaefer2018_500Parcels_17Networks_order versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_500Parcels_17Networks_order_FSLMNI152_1mm.nii.gz + dataLocation: + schaefer2018_original_mni/Schaefer2018_500Parcels_17Networks_order_FSLMNI152_1mm.nii.gz entities: 17Networks_LH_VisCent_Striate_1: name: 17Networks_LH_VisCent_Striate_1 diff --git a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-600_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-600_dseg.yaml deleted file mode 100644 index b11636726..000000000 --- a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-600_dseg.yaml +++ /dev/null @@ -1,7481 +0,0 @@ -name: Schaefer2018 -abbreviation: Schaefer2018 -versionIdentifier: '2018' -coordinateSpace: MNI152NLin6Asym -terminology: - label: Schaefer2018_600Parcels_17Networks_order - entities: - LH_VisCent: - name: LH_VisCent - lookupLabel: -1 - hemisphere: left - center: - x: -25.4 - y: -85.7 - z: 0.5 - LH_VisPeri: - name: LH_VisPeri - lookupLabel: -2 - hemisphere: left - center: - x: -10.7 - y: -69.7 - z: 9.9 - LH_SomMotA: - name: LH_SomMotA - lookupLabel: -3 - hemisphere: left - center: - x: -23.8 - y: -26.1 - z: 62.5 - LH_SomMotB: - name: LH_SomMotB - lookupLabel: -4 - hemisphere: left - center: - x: -51.0 - y: -15.5 - z: 19.7 - LH_DorsAttnA: - name: LH_DorsAttnA - lookupLabel: -5 - hemisphere: left - center: - x: -33.2 - y: -66.2 - z: 26.6 - LH_DorsAttnB: - name: LH_DorsAttnB - lookupLabel: -6 - hemisphere: left - center: - x: -35.0 - y: -27.7 - z: 52.5 - LH_SalVentAttnA: - name: LH_SalVentAttnA - lookupLabel: -7 - hemisphere: left - center: - x: -30.5 - y: -13.3 - z: 27.4 - LH_SalVentAttnB: - name: LH_SalVentAttnB - lookupLabel: -8 - hemisphere: left - center: - x: -25.5 - y: 24.8 - z: 24.1 - LH_LimbicB: - name: LH_LimbicB - lookupLabel: -9 - hemisphere: left - center: - x: -13.6 - y: 38.3 - z: -17.4 - LH_LimbicA: - name: LH_LimbicA - lookupLabel: -10 - hemisphere: left - center: - x: -37.9 - y: -6.1 - z: -30.8 - LH_ContA: - name: LH_ContA - lookupLabel: -11 - hemisphere: left - center: - x: -39.6 - y: -13.7 - z: 30.1 - LH_ContB: - name: LH_ContB - lookupLabel: -12 - hemisphere: left - center: - x: -41.8 - y: -7.9 - z: 28.1 - LH_ContC: - name: LH_ContC - lookupLabel: -13 - hemisphere: left - center: - x: -5.9 - y: -57.5 - z: 40.9 - LH_DefaultA: - name: LH_DefaultA - lookupLabel: -14 - hemisphere: left - center: - x: -13.9 - y: -13.0 - z: 27.0 - LH_DefaultB: - name: LH_DefaultB - lookupLabel: -15 - hemisphere: left - center: - x: -39.0 - y: 6.4 - z: 14.0 - LH_DefaultC: - name: LH_DefaultC - lookupLabel: -16 - hemisphere: left - center: - x: -22.7 - y: -48.7 - z: 2.2 - LH_TempPar: - name: LH_TempPar - lookupLabel: -17 - hemisphere: left - center: - x: -56.8 - y: -38.1 - z: 5.9 - RH_VisCent: - name: RH_VisCent - lookupLabel: -18 - hemisphere: right - center: - x: 25.6 - y: -82.9 - z: -0.2 - RH_VisPeri: - name: RH_VisPeri - lookupLabel: -19 - hemisphere: right - center: - x: 12.9 - y: -67.6 - z: 10.5 - RH_SomMotA: - name: RH_SomMotA - lookupLabel: -20 - hemisphere: right - center: - x: 25.3 - y: -24.9 - z: 63.6 - RH_SomMotB: - name: RH_SomMotB - lookupLabel: -21 - hemisphere: right - center: - x: 50.6 - y: -11.8 - z: 18.0 - RH_DorsAttnA: - name: RH_DorsAttnA - lookupLabel: -22 - hemisphere: right - center: - x: 31.6 - y: -63.9 - z: 34.7 - RH_DorsAttnB: - name: RH_DorsAttnB - lookupLabel: -23 - hemisphere: right - center: - x: 39.1 - y: -26.6 - z: 49.3 - RH_SalVentAttnA: - name: RH_SalVentAttnA - lookupLabel: -24 - hemisphere: right - center: - x: 32.0 - y: -8.2 - z: 28.1 - RH_SalVentAttnB: - name: RH_SalVentAttnB - lookupLabel: -25 - hemisphere: right - center: - x: 29.7 - y: 21.6 - z: 27.0 - RH_LimbicB: - name: RH_LimbicB - lookupLabel: -26 - hemisphere: right - center: - x: 12.3 - y: 36.0 - z: -18.9 - RH_LimbicA: - name: RH_LimbicA - lookupLabel: -27 - hemisphere: right - center: - x: 36.1 - y: -1.6 - z: -33.7 - RH_ContA: - name: RH_ContA - lookupLabel: -28 - hemisphere: right - center: - x: 40.0 - y: -12.6 - z: 37.9 - RH_ContB: - name: RH_ContB - lookupLabel: -29 - hemisphere: right - center: - x: 40.5 - y: 6.0 - z: 23.9 - RH_ContC: - name: RH_ContC - lookupLabel: -30 - hemisphere: right - center: - x: 8.3 - y: -49.2 - z: 38.1 - RH_DefaultA: - name: RH_DefaultA - lookupLabel: -31 - hemisphere: right - center: - x: 18.1 - y: -7.8 - z: 21.2 - RH_DefaultB: - name: RH_DefaultB - lookupLabel: -32 - hemisphere: right - center: - x: 35.3 - y: 22.2 - z: 7.3 - RH_DefaultC: - name: RH_DefaultC - lookupLabel: -33 - hemisphere: right - center: - x: 27.8 - y: -49.3 - z: 5.6 - RH_TempPar: - name: RH_TempPar - lookupLabel: -34 - hemisphere: right - center: - x: 56.0 - y: -32.6 - z: 5.4 - 17Networks_LH_VisCent_Striate_1: - name: 17Networks_LH_VisCent_Striate_1 - lookupLabel: 1 - originalLookupLabel: 1 - center: - x: -7.0 - y: -94.0 - z: -14.0 - color: '#781287' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_Striate_2: - name: 17Networks_LH_VisCent_Striate_2 - lookupLabel: 2 - originalLookupLabel: 2 - center: - x: -8.0 - y: -102.0 - z: -2.0 - color: '#781288' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_Striate_3: - name: 17Networks_LH_VisCent_Striate_3 - lookupLabel: 3 - originalLookupLabel: 3 - center: - x: -6.0 - y: -95.0 - z: 1.0 - color: '#781289' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_1: - name: 17Networks_LH_VisCent_ExStr_1 - lookupLabel: 4 - originalLookupLabel: 4 - center: - x: -34.0 - y: -59.0 - z: -17.0 - color: '#781280' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_2: - name: 17Networks_LH_VisCent_ExStr_2 - lookupLabel: 5 - originalLookupLabel: 5 - center: - x: -35.0 - y: -77.0 - z: -15.0 - color: '#781281' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_3: - name: 17Networks_LH_VisCent_ExStr_3 - lookupLabel: 6 - originalLookupLabel: 6 - center: - x: -25.0 - y: -58.0 - z: -9.0 - color: '#781282' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_4: - name: 17Networks_LH_VisCent_ExStr_4 - lookupLabel: 7 - originalLookupLabel: 7 - center: - x: -23.0 - y: -73.0 - z: -10.0 - color: '#781283' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_5: - name: 17Networks_LH_VisCent_ExStr_5 - lookupLabel: 8 - originalLookupLabel: 8 - center: - x: -41.0 - y: -82.0 - z: -15.0 - color: '#781284' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_6: - name: 17Networks_LH_VisCent_ExStr_6 - lookupLabel: 9 - originalLookupLabel: 9 - center: - x: -19.0 - y: -86.0 - z: -15.0 - color: '#781285' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_7: - name: 17Networks_LH_VisCent_ExStr_7 - lookupLabel: 10 - originalLookupLabel: 10 - center: - x: -43.0 - y: -86.0 - z: -5.0 - color: '#781286' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_8: - name: 17Networks_LH_VisCent_ExStr_8 - lookupLabel: 11 - originalLookupLabel: 11 - center: - x: -25.0 - y: -97.0 - z: -11.0 - color: '#78128a' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_9: - name: 17Networks_LH_VisCent_ExStr_9 - lookupLabel: 12 - originalLookupLabel: 12 - center: - x: -45.0 - y: -76.0 - z: 4.0 - color: '#78128b' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_10: - name: 17Networks_LH_VisCent_ExStr_10 - lookupLabel: 13 - originalLookupLabel: 13 - center: - x: -35.0 - y: -90.0 - z: 2.0 - color: '#78128c' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_11: - name: 17Networks_LH_VisCent_ExStr_11 - lookupLabel: 14 - originalLookupLabel: 14 - center: - x: -20.0 - y: -100.0 - z: 5.0 - color: '#78128d' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_12: - name: 17Networks_LH_VisCent_ExStr_12 - lookupLabel: 15 - originalLookupLabel: 15 - center: - x: -28.0 - y: -92.0 - z: 10.0 - color: '#78128e' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_13: - name: 17Networks_LH_VisCent_ExStr_13 - lookupLabel: 16 - originalLookupLabel: 16 - center: - x: -7.0 - y: -97.0 - z: 15.0 - color: '#781387' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_14: - name: 17Networks_LH_VisCent_ExStr_14 - lookupLabel: 17 - originalLookupLabel: 17 - center: - x: -37.0 - y: -87.0 - z: 18.0 - color: '#781388' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_15: - name: 17Networks_LH_VisCent_ExStr_15 - lookupLabel: 18 - originalLookupLabel: 18 - center: - x: -18.0 - y: -94.0 - z: 20.0 - color: '#781389' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_16: - name: 17Networks_LH_VisCent_ExStr_16 - lookupLabel: 19 - originalLookupLabel: 19 - center: - x: -28.0 - y: -84.0 - z: 20.0 - color: '#78138a' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_17: - name: 17Networks_LH_VisCent_ExStr_17 - lookupLabel: 20 - originalLookupLabel: 20 - center: - x: -23.0 - y: -84.0 - z: 28.0 - color: '#78138b' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisPeri_StriCal_1: - name: 17Networks_LH_VisPeri_StriCal_1 - lookupLabel: 21 - originalLookupLabel: 21 - center: - x: -7.0 - y: -62.0 - z: 3.0 - color: '#ff0001' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_2: - name: 17Networks_LH_VisPeri_StriCal_2 - lookupLabel: 22 - originalLookupLabel: 22 - center: - x: -3.0 - y: -70.0 - z: 5.0 - color: '#ff0002' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_3: - name: 17Networks_LH_VisPeri_StriCal_3 - lookupLabel: 23 - originalLookupLabel: 23 - center: - x: -6.0 - y: -86.0 - z: 0.0 - color: '#ff0003' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_4: - name: 17Networks_LH_VisPeri_StriCal_4 - lookupLabel: 24 - originalLookupLabel: 24 - center: - x: -10.0 - y: -73.0 - z: 9.0 - color: '#ff0004' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_5: - name: 17Networks_LH_VisPeri_StriCal_5 - lookupLabel: 25 - originalLookupLabel: 25 - center: - x: -2.0 - y: -82.0 - z: 11.0 - color: '#ff0005' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_1: - name: 17Networks_LH_VisPeri_ExStrInf_1 - lookupLabel: 26 - originalLookupLabel: 26 - center: - x: -20.0 - y: -49.0 - z: -7.0 - color: '#ff0000' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_2: - name: 17Networks_LH_VisPeri_ExStrInf_2 - lookupLabel: 27 - originalLookupLabel: 27 - center: - x: -12.0 - y: -62.0 - z: -4.0 - color: '#ff0006' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_3: - name: 17Networks_LH_VisPeri_ExStrInf_3 - lookupLabel: 28 - originalLookupLabel: 28 - center: - x: -7.0 - y: -76.0 - z: -6.0 - color: '#ff0007' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_4: - name: 17Networks_LH_VisPeri_ExStrInf_4 - lookupLabel: 29 - originalLookupLabel: 29 - center: - x: -13.0 - y: -42.0 - z: -5.0 - color: '#ff0008' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_5: - name: 17Networks_LH_VisPeri_ExStrInf_5 - lookupLabel: 30 - originalLookupLabel: 30 - center: - x: -16.0 - y: -55.0 - z: 1.0 - color: '#ff0101' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_1: - name: 17Networks_LH_VisPeri_ExStrSup_1 - lookupLabel: 31 - originalLookupLabel: 31 - center: - x: -20.0 - y: -63.0 - z: 7.0 - color: '#ff0102' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_2: - name: 17Networks_LH_VisPeri_ExStrSup_2 - lookupLabel: 32 - originalLookupLabel: 32 - center: - x: -7.0 - y: -68.0 - z: 16.0 - color: '#ff0103' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_3: - name: 17Networks_LH_VisPeri_ExStrSup_3 - lookupLabel: 33 - originalLookupLabel: 33 - center: - x: -17.0 - y: -66.0 - z: 17.0 - color: '#ff0104' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_4: - name: 17Networks_LH_VisPeri_ExStrSup_4 - lookupLabel: 34 - originalLookupLabel: 34 - center: - x: -3.0 - y: -84.0 - z: 25.0 - color: '#ff0105' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_5: - name: 17Networks_LH_VisPeri_ExStrSup_5 - lookupLabel: 35 - originalLookupLabel: 35 - center: - x: -13.0 - y: -75.0 - z: 25.0 - color: '#ff0106' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_6: - name: 17Networks_LH_VisPeri_ExStrSup_6 - lookupLabel: 36 - originalLookupLabel: 36 - center: - x: -14.0 - y: -90.0 - z: 34.0 - color: '#ff0107' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_7: - name: 17Networks_LH_VisPeri_ExStrSup_7 - lookupLabel: 37 - originalLookupLabel: 37 - center: - x: -12.0 - y: -82.0 - z: 37.0 - color: '#ff0200' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_SomMotA_1: - name: 17Networks_LH_SomMotA_1 - lookupLabel: 38 - originalLookupLabel: 38 - center: - x: -55.0 - y: -21.0 - z: 47.0 - color: '#4681af' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_2: - name: 17Networks_LH_SomMotA_2 - lookupLabel: 39 - originalLookupLabel: 39 - center: - x: -9.0 - y: -8.0 - z: 42.0 - color: '#4681b0' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_3: - name: 17Networks_LH_SomMotA_3 - lookupLabel: 40 - originalLookupLabel: 40 - center: - x: -48.0 - y: -17.0 - z: 52.0 - color: '#4681b1' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_4: - name: 17Networks_LH_SomMotA_4 - lookupLabel: 41 - originalLookupLabel: 41 - center: - x: -51.0 - y: -26.0 - z: 55.0 - color: '#4681b2' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_5: - name: 17Networks_LH_SomMotA_5 - lookupLabel: 42 - originalLookupLabel: 42 - center: - x: -42.0 - y: -13.0 - z: 49.0 - color: '#4681b3' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_6: - name: 17Networks_LH_SomMotA_6 - lookupLabel: 43 - originalLookupLabel: 43 - center: - x: -7.0 - y: -14.0 - z: 49.0 - color: '#4681b4' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_7: - name: 17Networks_LH_SomMotA_7 - lookupLabel: 44 - originalLookupLabel: 44 - center: - x: -45.0 - y: -24.0 - z: 63.0 - color: '#4682ad' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_8: - name: 17Networks_LH_SomMotA_8 - lookupLabel: 45 - originalLookupLabel: 45 - center: - x: -40.0 - y: -24.0 - z: 53.0 - color: '#4682ae' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_9: - name: 17Networks_LH_SomMotA_9 - lookupLabel: 46 - originalLookupLabel: 46 - center: - x: -40.0 - y: -36.0 - z: 63.0 - color: '#4682af' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_10: - name: 17Networks_LH_SomMotA_10 - lookupLabel: 47 - originalLookupLabel: 47 - center: - x: -37.0 - y: -19.0 - z: 63.0 - color: '#4682b0' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_11: - name: 17Networks_LH_SomMotA_11 - lookupLabel: 48 - originalLookupLabel: 48 - center: - x: -4.0 - y: -9.0 - z: 61.0 - color: '#4682b1' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_12: - name: 17Networks_LH_SomMotA_12 - lookupLabel: 49 - originalLookupLabel: 49 - center: - x: -8.0 - y: -40.0 - z: 58.0 - color: '#4682b2' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_13: - name: 17Networks_LH_SomMotA_13 - lookupLabel: 50 - originalLookupLabel: 50 - center: - x: -4.0 - y: -26.0 - z: 57.0 - color: '#4682b3' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_14: - name: 17Networks_LH_SomMotA_14 - lookupLabel: 51 - originalLookupLabel: 51 - center: - x: -30.0 - y: -11.0 - z: 63.0 - color: '#4682b5' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_15: - name: 17Networks_LH_SomMotA_15 - lookupLabel: 52 - originalLookupLabel: 52 - center: - x: -27.0 - y: -40.0 - z: 59.0 - color: '#4682b6' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_16: - name: 17Networks_LH_SomMotA_16 - lookupLabel: 53 - originalLookupLabel: 53 - center: - x: -31.0 - y: -29.0 - z: 62.0 - color: '#4682b7' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_17: - name: 17Networks_LH_SomMotA_17 - lookupLabel: 54 - originalLookupLabel: 54 - center: - x: -27.0 - y: -48.0 - z: 65.0 - color: '#4682b8' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_18: - name: 17Networks_LH_SomMotA_18 - lookupLabel: 55 - originalLookupLabel: 55 - center: - x: -30.0 - y: -35.0 - z: 70.0 - color: '#4682b9' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_19: - name: 17Networks_LH_SomMotA_19 - lookupLabel: 56 - originalLookupLabel: 56 - center: - x: -21.0 - y: -12.0 - z: 71.0 - color: '#4682ba' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_20: - name: 17Networks_LH_SomMotA_20 - lookupLabel: 57 - originalLookupLabel: 57 - center: - x: -19.0 - y: -24.0 - z: 68.0 - color: '#4682bb' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_21: - name: 17Networks_LH_SomMotA_21 - lookupLabel: 58 - originalLookupLabel: 58 - center: - x: -9.0 - y: -43.0 - z: 71.0 - color: '#4683b4' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_22: - name: 17Networks_LH_SomMotA_22 - lookupLabel: 59 - originalLookupLabel: 59 - center: - x: -23.0 - y: -38.0 - z: 71.0 - color: '#4683b5' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_23: - name: 17Networks_LH_SomMotA_23 - lookupLabel: 60 - originalLookupLabel: 60 - center: - x: -20.0 - y: -31.0 - z: 67.0 - color: '#4683b6' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_24: - name: 17Networks_LH_SomMotA_24 - lookupLabel: 61 - originalLookupLabel: 61 - center: - x: -3.0 - y: -31.0 - z: 68.0 - color: '#4683b7' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_25: - name: 17Networks_LH_SomMotA_25 - lookupLabel: 62 - originalLookupLabel: 62 - center: - x: -6.0 - y: -17.0 - z: 73.0 - color: '#4683b8' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_26: - name: 17Networks_LH_SomMotA_26 - lookupLabel: 63 - originalLookupLabel: 63 - center: - x: -17.0 - y: -46.0 - z: 72.0 - color: '#4683b9' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_27: - name: 17Networks_LH_SomMotA_27 - lookupLabel: 64 - originalLookupLabel: 64 - center: - x: -14.0 - y: -13.0 - z: 73.0 - color: '#4683ba' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_28: - name: 17Networks_LH_SomMotA_28 - lookupLabel: 65 - originalLookupLabel: 65 - center: - x: -11.0 - y: -27.0 - z: 73.0 - color: '#4683bb' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_29: - name: 17Networks_LH_SomMotA_29 - lookupLabel: 66 - originalLookupLabel: 66 - center: - x: -11.0 - y: -34.0 - z: 74.0 - color: '#4684b4' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotB_Cent_1: - name: 17Networks_LH_SomMotB_Cent_1 - lookupLabel: 67 - originalLookupLabel: 67 - center: - x: -59.0 - y: -3.0 - z: 20.0 - color: '#2acca2' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_2: - name: 17Networks_LH_SomMotB_Cent_2 - lookupLabel: 68 - originalLookupLabel: 68 - center: - x: -64.0 - y: -10.0 - z: 26.0 - color: '#2acca3' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_3: - name: 17Networks_LH_SomMotB_Cent_3 - lookupLabel: 69 - originalLookupLabel: 69 - center: - x: -55.0 - y: -9.0 - z: 31.0 - color: '#2acca5' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_4: - name: 17Networks_LH_SomMotB_Cent_4 - lookupLabel: 70 - originalLookupLabel: 70 - center: - x: -54.0 - y: -4.0 - z: 34.0 - color: '#2acca6' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_5: - name: 17Networks_LH_SomMotB_Cent_5 - lookupLabel: 71 - originalLookupLabel: 71 - center: - x: -58.0 - y: -15.0 - z: 40.0 - color: '#2acca7' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_6: - name: 17Networks_LH_SomMotB_Cent_6 - lookupLabel: 72 - originalLookupLabel: 72 - center: - x: -50.0 - y: -16.0 - z: 41.0 - color: '#2acca8' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_7: - name: 17Networks_LH_SomMotB_Cent_7 - lookupLabel: 73 - originalLookupLabel: 73 - center: - x: -52.0 - y: -4.0 - z: 47.0 - color: '#2acca9' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_8: - name: 17Networks_LH_SomMotB_Cent_8 - lookupLabel: 74 - originalLookupLabel: 74 - center: - x: -42.0 - y: -17.0 - z: 39.0 - color: '#2accaa' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_1: - name: 17Networks_LH_SomMotB_S2_1 - lookupLabel: 75 - originalLookupLabel: 75 - center: - x: -35.0 - y: -12.0 - z: 14.0 - color: '#2acca4' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_2: - name: 17Networks_LH_SomMotB_S2_2 - lookupLabel: 76 - originalLookupLabel: 76 - center: - x: -40.0 - y: -13.0 - z: 18.0 - color: '#2accab' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_3: - name: 17Networks_LH_SomMotB_S2_3 - lookupLabel: 77 - originalLookupLabel: 77 - center: - x: -38.0 - y: -26.0 - z: 20.0 - color: '#2accac' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_4: - name: 17Networks_LH_SomMotB_S2_4 - lookupLabel: 78 - originalLookupLabel: 78 - center: - x: -51.0 - y: -13.0 - z: 14.0 - color: '#2acda5' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_5: - name: 17Networks_LH_SomMotB_S2_5 - lookupLabel: 79 - originalLookupLabel: 79 - center: - x: -59.0 - y: 1.0 - z: 13.0 - color: '#2acda6' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_6: - name: 17Networks_LH_SomMotB_S2_6 - lookupLabel: 80 - originalLookupLabel: 80 - center: - x: -62.0 - y: -8.0 - z: 11.0 - color: '#2acda7' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_7: - name: 17Networks_LH_SomMotB_S2_7 - lookupLabel: 81 - originalLookupLabel: 81 - center: - x: -48.0 - y: -25.0 - z: 18.0 - color: '#2acda8' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_8: - name: 17Networks_LH_SomMotB_S2_8 - lookupLabel: 82 - originalLookupLabel: 82 - center: - x: -61.0 - y: -18.0 - z: 20.0 - color: '#2acda9' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Ins_1: - name: 17Networks_LH_SomMotB_Ins_1 - lookupLabel: 83 - originalLookupLabel: 83 - center: - x: -35.0 - y: -25.0 - z: 13.0 - color: '#2acdaa' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_1: - name: 17Networks_LH_SomMotB_Aud_1 - lookupLabel: 84 - originalLookupLabel: 84 - center: - x: -53.0 - y: 0.0 - z: -3.0 - color: '#2bcca2' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_2: - name: 17Networks_LH_SomMotB_Aud_2 - lookupLabel: 85 - originalLookupLabel: 85 - center: - x: -58.0 - y: -15.0 - z: 6.0 - color: '#2bcca3' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_3: - name: 17Networks_LH_SomMotB_Aud_3 - lookupLabel: 86 - originalLookupLabel: 86 - center: - x: -43.0 - y: -19.0 - z: 4.0 - color: '#2bcca5' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_4: - name: 17Networks_LH_SomMotB_Aud_4 - lookupLabel: 87 - originalLookupLabel: 87 - center: - x: -61.0 - y: -25.0 - z: 10.0 - color: '#2bcca6' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_5: - name: 17Networks_LH_SomMotB_Aud_5 - lookupLabel: 88 - originalLookupLabel: 88 - center: - x: -47.0 - y: -25.0 - z: 8.0 - color: '#2bcca7' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_6: - name: 17Networks_LH_SomMotB_Aud_6 - lookupLabel: 89 - originalLookupLabel: 89 - center: - x: -59.0 - y: -37.0 - z: 15.0 - color: '#2bcca8' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_7: - name: 17Networks_LH_SomMotB_Aud_7 - lookupLabel: 90 - originalLookupLabel: 90 - center: - x: -41.0 - y: -35.0 - z: 14.0 - color: '#2bcca9' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_DorsAttnA_TempOcc_1: - name: 17Networks_LH_DorsAttnA_TempOcc_1 - lookupLabel: 91 - originalLookupLabel: 91 - center: - x: -46.0 - y: -45.0 - z: -20.0 - color: '#4a9b3b' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_2: - name: 17Networks_LH_DorsAttnA_TempOcc_2 - lookupLabel: 92 - originalLookupLabel: 92 - center: - x: -25.0 - y: -45.0 - z: -15.0 - color: '#4a9b3d' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_3: - name: 17Networks_LH_DorsAttnA_TempOcc_3 - lookupLabel: 93 - originalLookupLabel: 93 - center: - x: -45.0 - y: -62.0 - z: -14.0 - color: '#4a9b3e' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_4: - name: 17Networks_LH_DorsAttnA_TempOcc_4 - lookupLabel: 94 - originalLookupLabel: 94 - center: - x: -46.0 - y: -71.0 - z: -7.0 - color: '#4a9b3f' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_5: - name: 17Networks_LH_DorsAttnA_TempOcc_5 - lookupLabel: 95 - originalLookupLabel: 95 - center: - x: -48.0 - y: -64.0 - z: -2.0 - color: '#4a9b40' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_6: - name: 17Networks_LH_DorsAttnA_TempOcc_6 - lookupLabel: 96 - originalLookupLabel: 96 - center: - x: -51.0 - y: -65.0 - z: 7.0 - color: '#4a9b41' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_1: - name: 17Networks_LH_DorsAttnA_ParOcc_1 - lookupLabel: 97 - originalLookupLabel: 97 - center: - x: -49.0 - y: -73.0 - z: 13.0 - color: '#4a9b42' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_2: - name: 17Networks_LH_DorsAttnA_ParOcc_2 - lookupLabel: 98 - originalLookupLabel: 98 - center: - x: -43.0 - y: -79.0 - z: 15.0 - color: '#4a9b43' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_3: - name: 17Networks_LH_DorsAttnA_ParOcc_3 - lookupLabel: 99 - originalLookupLabel: 99 - center: - x: -46.0 - y: -62.0 - z: 14.0 - color: '#4a9b44' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_4: - name: 17Networks_LH_DorsAttnA_ParOcc_4 - lookupLabel: 100 - originalLookupLabel: 100 - center: - x: -31.0 - y: -84.0 - z: 29.0 - color: '#4a9c3d' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_1: - name: 17Networks_LH_DorsAttnA_SPL_1 - lookupLabel: 101 - originalLookupLabel: 101 - center: - x: -28.0 - y: -71.0 - z: 30.0 - color: '#4a9c38' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_2: - name: 17Networks_LH_DorsAttnA_SPL_2 - lookupLabel: 102 - originalLookupLabel: 102 - center: - x: -22.0 - y: -84.0 - z: 43.0 - color: '#4a9c39' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_3: - name: 17Networks_LH_DorsAttnA_SPL_3 - lookupLabel: 103 - originalLookupLabel: 103 - center: - x: -22.0 - y: -75.0 - z: 37.0 - color: '#4a9c3a' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_4: - name: 17Networks_LH_DorsAttnA_SPL_4 - lookupLabel: 104 - originalLookupLabel: 104 - center: - x: -25.0 - y: -65.0 - z: 43.0 - color: '#4a9c3b' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_5: - name: 17Networks_LH_DorsAttnA_SPL_5 - lookupLabel: 105 - originalLookupLabel: 105 - center: - x: -19.0 - y: -68.0 - z: 47.0 - color: '#4a9c3e' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_6: - name: 17Networks_LH_DorsAttnA_SPL_6 - lookupLabel: 106 - originalLookupLabel: 106 - center: - x: -15.0 - y: -75.0 - z: 51.0 - color: '#4a9c3f' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_7: - name: 17Networks_LH_DorsAttnA_SPL_7 - lookupLabel: 107 - originalLookupLabel: 107 - center: - x: -28.0 - y: -57.0 - z: 54.0 - color: '#4a9c40' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_8: - name: 17Networks_LH_DorsAttnA_SPL_8 - lookupLabel: 108 - originalLookupLabel: 108 - center: - x: -26.0 - y: -65.0 - z: 56.0 - color: '#4a9c41' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_9: - name: 17Networks_LH_DorsAttnA_SPL_9 - lookupLabel: 109 - originalLookupLabel: 109 - center: - x: -35.0 - y: -51.0 - z: 54.0 - color: '#4a9c42' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_10: - name: 17Networks_LH_DorsAttnA_SPL_10 - lookupLabel: 110 - originalLookupLabel: 110 - center: - x: -17.0 - y: -70.0 - z: 59.0 - color: '#4a9c43' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_11: - name: 17Networks_LH_DorsAttnA_SPL_11 - lookupLabel: 111 - originalLookupLabel: 111 - center: - x: -30.0 - y: -60.0 - z: 64.0 - color: '#4a9d3c' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnB_PostC_1: - name: 17Networks_LH_DorsAttnB_PostC_1 - lookupLabel: 112 - originalLookupLabel: 112 - center: - x: -63.0 - y: -26.0 - z: 36.0 - color: '#00760c' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_2: - name: 17Networks_LH_DorsAttnB_PostC_2 - lookupLabel: 113 - originalLookupLabel: 113 - center: - x: -54.0 - y: -24.0 - z: 39.0 - color: '#00760d' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_3: - name: 17Networks_LH_DorsAttnB_PostC_3 - lookupLabel: 114 - originalLookupLabel: 114 - center: - x: -54.0 - y: -33.0 - z: 45.0 - color: '#00760e' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_4: - name: 17Networks_LH_DorsAttnB_PostC_4 - lookupLabel: 115 - originalLookupLabel: 115 - center: - x: -48.0 - y: -28.0 - z: 44.0 - color: '#007610' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_5: - name: 17Networks_LH_DorsAttnB_PostC_5 - lookupLabel: 116 - originalLookupLabel: 116 - center: - x: -41.0 - y: -34.0 - z: 46.0 - color: '#007611' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_6: - name: 17Networks_LH_DorsAttnB_PostC_6 - lookupLabel: 117 - originalLookupLabel: 117 - center: - x: -37.0 - y: -41.0 - z: 55.0 - color: '#007612' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_7: - name: 17Networks_LH_DorsAttnB_PostC_7 - lookupLabel: 118 - originalLookupLabel: 118 - center: - x: -35.0 - y: -46.0 - z: 62.0 - color: '#007613' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_8: - name: 17Networks_LH_DorsAttnB_PostC_8 - lookupLabel: 119 - originalLookupLabel: 119 - center: - x: -7.0 - y: -59.0 - z: 62.0 - color: '#007614' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_9: - name: 17Networks_LH_DorsAttnB_PostC_9 - lookupLabel: 120 - originalLookupLabel: 120 - center: - x: -20.0 - y: -58.0 - z: 66.0 - color: '#007615' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_10: - name: 17Networks_LH_DorsAttnB_PostC_10 - lookupLabel: 121 - originalLookupLabel: 121 - center: - x: -9.0 - y: -54.0 - z: 71.0 - color: '#007616' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_1: - name: 17Networks_LH_DorsAttnB_FEF_1 - lookupLabel: 122 - originalLookupLabel: 122 - center: - x: -38.0 - y: -3.0 - z: 51.0 - color: '#00770f' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_2: - name: 17Networks_LH_DorsAttnB_FEF_2 - lookupLabel: 123 - originalLookupLabel: 123 - center: - x: -25.0 - y: -6.0 - z: 53.0 - color: '#007710' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_3: - name: 17Networks_LH_DorsAttnB_FEF_3 - lookupLabel: 124 - originalLookupLabel: 124 - center: - x: -19.0 - y: -10.0 - z: 62.0 - color: '#007711' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_4: - name: 17Networks_LH_DorsAttnB_FEF_4 - lookupLabel: 125 - originalLookupLabel: 125 - center: - x: -19.0 - y: -1.0 - z: 69.0 - color: '#007712' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PrCv_1: - name: 17Networks_LH_DorsAttnB_PrCv_1 - lookupLabel: 126 - originalLookupLabel: 126 - center: - x: -56.0 - y: 7.0 - z: 27.0 - color: '#007713' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_SalVentAttnA_ParOper_1: - name: 17Networks_LH_SalVentAttnA_ParOper_1 - lookupLabel: 127 - originalLookupLabel: 127 - center: - x: -47.0 - y: -38.0 - z: 24.0 - color: '#c43af9' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_2: - name: 17Networks_LH_SalVentAttnA_ParOper_2 - lookupLabel: 128 - originalLookupLabel: 128 - center: - x: -58.0 - y: -44.0 - z: 27.0 - color: '#c43afb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_3: - name: 17Networks_LH_SalVentAttnA_ParOper_3 - lookupLabel: 129 - originalLookupLabel: 129 - center: - x: -59.0 - y: -29.0 - z: 22.0 - color: '#c43afc' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_4: - name: 17Networks_LH_SalVentAttnA_ParOper_4 - lookupLabel: 130 - originalLookupLabel: 130 - center: - x: -58.0 - y: -19.0 - z: 30.0 - color: '#c43afd' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_5: - name: 17Networks_LH_SalVentAttnA_ParOper_5 - lookupLabel: 131 - originalLookupLabel: 131 - center: - x: -61.0 - y: -37.0 - z: 34.0 - color: '#c43afe' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_1: - name: 17Networks_LH_SalVentAttnA_FrOper_1 - lookupLabel: 132 - originalLookupLabel: 132 - center: - x: -38.0 - y: 3.0 - z: 12.0 - color: '#c43aff' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_2: - name: 17Networks_LH_SalVentAttnA_FrOper_2 - lookupLabel: 133 - originalLookupLabel: 133 - center: - x: -43.0 - y: -4.0 - z: 13.0 - color: '#c133fa' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_3: - name: 17Networks_LH_SalVentAttnA_FrOper_3 - lookupLabel: 134 - originalLookupLabel: 134 - center: - x: -51.0 - y: 1.0 - z: 5.0 - color: '#c133fb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_4: - name: 17Networks_LH_SalVentAttnA_FrOper_4 - lookupLabel: 135 - originalLookupLabel: 135 - center: - x: -56.0 - y: 8.0 - z: 13.0 - color: '#c134f4' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_1: - name: 17Networks_LH_SalVentAttnA_Ins_1 - lookupLabel: 136 - originalLookupLabel: 136 - center: - x: -39.0 - y: 2.0 - z: -11.0 - color: '#c43bf9' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_2: - name: 17Networks_LH_SalVentAttnA_Ins_2 - lookupLabel: 137 - originalLookupLabel: 137 - center: - x: -39.0 - y: -9.0 - z: -9.0 - color: '#c43bfb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_3: - name: 17Networks_LH_SalVentAttnA_Ins_3 - lookupLabel: 138 - originalLookupLabel: 138 - center: - x: -39.0 - y: 2.0 - z: 0.0 - color: '#c43bfc' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_4: - name: 17Networks_LH_SalVentAttnA_Ins_4 - lookupLabel: 139 - originalLookupLabel: 139 - center: - x: -40.0 - y: -15.0 - z: 0.0 - color: '#c43bfd' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_5: - name: 17Networks_LH_SalVentAttnA_Ins_5 - lookupLabel: 140 - originalLookupLabel: 140 - center: - x: -33.0 - y: 19.0 - z: 8.0 - color: '#c43bfe' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_6: - name: 17Networks_LH_SalVentAttnA_Ins_6 - lookupLabel: 141 - originalLookupLabel: 141 - center: - x: -37.0 - y: -3.0 - z: 9.0 - color: '#c43bff' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_1: - name: 17Networks_LH_SalVentAttnA_ParMed_1 - lookupLabel: 142 - originalLookupLabel: 142 - center: - x: -8.0 - y: -22.0 - z: 39.0 - color: '#c43bfa' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_2: - name: 17Networks_LH_SalVentAttnA_ParMed_2 - lookupLabel: 143 - originalLookupLabel: 143 - center: - x: -12.0 - y: -35.0 - z: 42.0 - color: '#c134f9' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_3: - name: 17Networks_LH_SalVentAttnA_ParMed_3 - lookupLabel: 144 - originalLookupLabel: 144 - center: - x: -13.0 - y: -24.0 - z: 42.0 - color: '#c134fa' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_4: - name: 17Networks_LH_SalVentAttnA_ParMed_4 - lookupLabel: 145 - originalLookupLabel: 145 - center: - x: -12.0 - y: -44.0 - z: 51.0 - color: '#c134fb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_5: - name: 17Networks_LH_SalVentAttnA_ParMed_5 - lookupLabel: 146 - originalLookupLabel: 146 - center: - x: -11.0 - y: -34.0 - z: 49.0 - color: '#c135f4' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_6: - name: 17Networks_LH_SalVentAttnA_ParMed_6 - lookupLabel: 147 - originalLookupLabel: 147 - center: - x: -8.0 - y: -48.0 - z: 61.0 - color: '#c135f5' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_1: - name: 17Networks_LH_SalVentAttnA_FrMed_1 - lookupLabel: 148 - originalLookupLabel: 148 - center: - x: -6.0 - y: 16.0 - z: 36.0 - color: '#c53af9' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_2: - name: 17Networks_LH_SalVentAttnA_FrMed_2 - lookupLabel: 149 - originalLookupLabel: 149 - center: - x: -5.0 - y: 3.0 - z: 37.0 - color: '#c53afb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_3: - name: 17Networks_LH_SalVentAttnA_FrMed_3 - lookupLabel: 150 - originalLookupLabel: 150 - center: - x: -6.0 - y: 4.0 - z: 48.0 - color: '#c53afc' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_4: - name: 17Networks_LH_SalVentAttnA_FrMed_4 - lookupLabel: 151 - originalLookupLabel: 151 - center: - x: -5.0 - y: 3.0 - z: 59.0 - color: '#c53afd' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_5: - name: 17Networks_LH_SalVentAttnA_FrMed_5 - lookupLabel: 152 - originalLookupLabel: 152 - center: - x: -8.0 - y: -2.0 - z: 71.0 - color: '#c53afe' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnB_PFCd_1: - name: 17Networks_LH_SalVentAttnB_PFCd_1 - lookupLabel: 153 - originalLookupLabel: 153 - center: - x: -14.0 - y: 9.0 - z: 67.0 - color: '#ff98d7' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_1: - name: 17Networks_LH_SalVentAttnB_PFCl_1 - lookupLabel: 154 - originalLookupLabel: 154 - center: - x: -40.0 - y: 41.0 - z: 21.0 - color: '#ff99d6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_2: - name: 17Networks_LH_SalVentAttnB_PFCl_2 - lookupLabel: 155 - originalLookupLabel: 155 - center: - x: -30.0 - y: 46.0 - z: 27.0 - color: '#ff99d7' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_3: - name: 17Networks_LH_SalVentAttnB_PFCl_3 - lookupLabel: 156 - originalLookupLabel: 156 - center: - x: -26.0 - y: 37.0 - z: 37.0 - color: '#ff99d8' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_4: - name: 17Networks_LH_SalVentAttnB_PFCl_4 - lookupLabel: 157 - originalLookupLabel: 157 - center: - x: -35.0 - y: 32.0 - z: 38.0 - color: '#ff99d9' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_1: - name: 17Networks_LH_SalVentAttnB_Ins_1 - lookupLabel: 158 - originalLookupLabel: 158 - center: - x: -35.0 - y: 14.0 - z: -8.0 - color: '#ff99da' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_2: - name: 17Networks_LH_SalVentAttnB_Ins_2 - lookupLabel: 159 - originalLookupLabel: 159 - center: - x: -32.0 - y: 22.0 - z: -1.0 - color: '#ff99db' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_3: - name: 17Networks_LH_SalVentAttnB_Ins_3 - lookupLabel: 160 - originalLookupLabel: 160 - center: - x: -34.0 - y: 30.0 - z: 0.0 - color: '#ff99dc' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_4: - name: 17Networks_LH_SalVentAttnB_Ins_4 - lookupLabel: 161 - originalLookupLabel: 161 - center: - x: -44.0 - y: 11.0 - z: 2.0 - color: '#ff99dd' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCmp_1: - name: 17Networks_LH_SalVentAttnB_PFCmp_1 - lookupLabel: 162 - originalLookupLabel: 162 - center: - x: -4.0 - y: 15.0 - z: 25.0 - color: '#ff97d6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCmp_2: - name: 17Networks_LH_SalVentAttnB_PFCmp_2 - lookupLabel: 163 - originalLookupLabel: 163 - center: - x: -7.0 - y: 27.0 - z: 29.0 - color: '#ff97d7' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCmp_3: - name: 17Networks_LH_SalVentAttnB_PFCmp_3 - lookupLabel: 164 - originalLookupLabel: 164 - center: - x: -5.0 - y: 14.0 - z: 52.0 - color: '#ff97d8' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_LimbicB_OFC_1: - name: 17Networks_LH_LimbicB_OFC_1 - lookupLabel: 165 - originalLookupLabel: 165 - center: - x: -23.0 - y: 14.0 - z: -23.0 - color: '#7a872f' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_2: - name: 17Networks_LH_LimbicB_OFC_2 - lookupLabel: 166 - originalLookupLabel: 166 - center: - x: -13.0 - y: 25.0 - z: -21.0 - color: '#7a8730' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_3: - name: 17Networks_LH_LimbicB_OFC_3 - lookupLabel: 167 - originalLookupLabel: 167 - center: - x: -23.0 - y: 30.0 - z: -18.0 - color: '#7a8731' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_4: - name: 17Networks_LH_LimbicB_OFC_4 - lookupLabel: 168 - originalLookupLabel: 168 - center: - x: -4.0 - y: 22.0 - z: -20.0 - color: '#7a8733' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_5: - name: 17Networks_LH_LimbicB_OFC_5 - lookupLabel: 169 - originalLookupLabel: 169 - center: - x: -10.0 - y: 50.0 - z: -22.0 - color: '#7a8734' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_6: - name: 17Networks_LH_LimbicB_OFC_6 - lookupLabel: 170 - originalLookupLabel: 170 - center: - x: -3.0 - y: 42.0 - z: -22.0 - color: '#7a8735' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_7: - name: 17Networks_LH_LimbicB_OFC_7 - lookupLabel: 171 - originalLookupLabel: 171 - center: - x: -25.0 - y: 48.0 - z: -15.0 - color: '#7a8736' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_8: - name: 17Networks_LH_LimbicB_OFC_8 - lookupLabel: 172 - originalLookupLabel: 172 - center: - x: -5.0 - y: 25.0 - z: -11.0 - color: '#7a8737' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_9: - name: 17Networks_LH_LimbicB_OFC_9 - lookupLabel: 173 - originalLookupLabel: 173 - center: - x: -10.0 - y: 64.0 - z: -15.0 - color: '#7a8738' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_10: - name: 17Networks_LH_LimbicB_OFC_10 - lookupLabel: 174 - originalLookupLabel: 174 - center: - x: -20.0 - y: 63.0 - z: -7.0 - color: '#7a8739' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicA_TempPole_1: - name: 17Networks_LH_LimbicA_TempPole_1 - lookupLabel: 175 - originalLookupLabel: 175 - center: - x: -31.0 - y: 0.0 - z: -43.0 - color: '#dcf8a0' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_2: - name: 17Networks_LH_LimbicA_TempPole_2 - lookupLabel: 176 - originalLookupLabel: 176 - center: - x: -49.0 - y: -11.0 - z: -38.0 - color: '#dcf8a1' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_3: - name: 17Networks_LH_LimbicA_TempPole_3 - lookupLabel: 177 - originalLookupLabel: 177 - center: - x: -25.0 - y: -7.0 - z: -34.0 - color: '#dcf8a2' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_4: - name: 17Networks_LH_LimbicA_TempPole_4 - lookupLabel: 178 - originalLookupLabel: 178 - center: - x: -45.0 - y: 5.0 - z: -39.0 - color: '#dcf8a3' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_5: - name: 17Networks_LH_LimbicA_TempPole_5 - lookupLabel: 179 - originalLookupLabel: 179 - center: - x: -39.0 - y: -16.0 - z: -31.0 - color: '#dcf8a5' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_6: - name: 17Networks_LH_LimbicA_TempPole_6 - lookupLabel: 180 - originalLookupLabel: 180 - center: - x: -25.0 - y: 8.0 - z: -32.0 - color: '#dcf8a6' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_7: - name: 17Networks_LH_LimbicA_TempPole_7 - lookupLabel: 181 - originalLookupLabel: 181 - center: - x: -30.0 - y: -16.0 - z: -30.0 - color: '#dcf8a7' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_8: - name: 17Networks_LH_LimbicA_TempPole_8 - lookupLabel: 182 - originalLookupLabel: 182 - center: - x: -54.0 - y: -31.0 - z: -27.0 - color: '#dcf8a8' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_9: - name: 17Networks_LH_LimbicA_TempPole_9 - lookupLabel: 183 - originalLookupLabel: 183 - center: - x: -39.0 - y: 17.0 - z: -32.0 - color: '#dcf8a9' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_10: - name: 17Networks_LH_LimbicA_TempPole_10 - lookupLabel: 184 - originalLookupLabel: 184 - center: - x: -37.0 - y: -36.0 - z: -23.0 - color: '#dcf8aa' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_11: - name: 17Networks_LH_LimbicA_TempPole_11 - lookupLabel: 185 - originalLookupLabel: 185 - center: - x: -36.0 - y: 8.0 - z: -25.0 - color: '#dcf8ab' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_12: - name: 17Networks_LH_LimbicA_TempPole_12 - lookupLabel: 186 - originalLookupLabel: 186 - center: - x: -45.0 - y: 6.0 - z: -16.0 - color: '#dcf9a4' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_ContA_Temp_1: - name: 17Networks_LH_ContA_Temp_1 - lookupLabel: 187 - originalLookupLabel: 187 - center: - x: -54.0 - y: -55.0 - z: -18.0 - color: '#e69423' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_Temp_2: - name: 17Networks_LH_ContA_Temp_2 - lookupLabel: 188 - originalLookupLabel: 188 - center: - x: -58.0 - y: -59.0 - z: -2.0 - color: '#e69424' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_1: - name: 17Networks_LH_ContA_IPS_1 - lookupLabel: 189 - originalLookupLabel: 189 - center: - x: -29.0 - y: -75.0 - z: 44.0 - color: '#e69422' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_2: - name: 17Networks_LH_ContA_IPS_2 - lookupLabel: 190 - originalLookupLabel: 190 - center: - x: -59.0 - y: -42.0 - z: 45.0 - color: '#e69425' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_3: - name: 17Networks_LH_ContA_IPS_3 - lookupLabel: 191 - originalLookupLabel: 191 - center: - x: -45.0 - y: -42.0 - z: 47.0 - color: '#e69426' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_4: - name: 17Networks_LH_ContA_IPS_4 - lookupLabel: 192 - originalLookupLabel: 192 - center: - x: -31.0 - y: -60.0 - z: 46.0 - color: '#e69427' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_5: - name: 17Networks_LH_ContA_IPS_5 - lookupLabel: 193 - originalLookupLabel: 193 - center: - x: -34.0 - y: -50.0 - z: 40.0 - color: '#e69428' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_6: - name: 17Networks_LH_ContA_IPS_6 - lookupLabel: 194 - originalLookupLabel: 194 - center: - x: -34.0 - y: -43.0 - z: 41.0 - color: '#e69429' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCd_1: - name: 17Networks_LH_ContA_PFCd_1 - lookupLabel: 195 - originalLookupLabel: 195 - center: - x: -30.0 - y: 3.0 - z: 59.0 - color: '#e69523' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCd_2: - name: 17Networks_LH_ContA_PFCd_2 - lookupLabel: 196 - originalLookupLabel: 196 - center: - x: -22.0 - y: 8.0 - z: 60.0 - color: '#e69524' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_1: - name: 17Networks_LH_ContA_PFCl_1 - lookupLabel: 197 - originalLookupLabel: 197 - center: - x: -49.0 - y: 10.0 - z: 14.0 - color: '#e69522' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_2: - name: 17Networks_LH_ContA_PFCl_2 - lookupLabel: 198 - originalLookupLabel: 198 - center: - x: -48.0 - y: 18.0 - z: 24.0 - color: '#e69525' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_3: - name: 17Networks_LH_ContA_PFCl_3 - lookupLabel: 199 - originalLookupLabel: 199 - center: - x: -44.0 - y: 6.0 - z: 25.0 - color: '#e69526' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_4: - name: 17Networks_LH_ContA_PFCl_4 - lookupLabel: 200 - originalLookupLabel: 200 - center: - x: -44.0 - y: 25.0 - z: 27.0 - color: '#e69527' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_5: - name: 17Networks_LH_ContA_PFCl_5 - lookupLabel: 201 - originalLookupLabel: 201 - center: - x: -37.0 - y: 9.0 - z: 32.0 - color: '#e69528' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_6: - name: 17Networks_LH_ContA_PFCl_6 - lookupLabel: 202 - originalLookupLabel: 202 - center: - x: -46.0 - y: 2.0 - z: 37.0 - color: '#e69529' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFClv_1: - name: 17Networks_LH_ContA_PFClv_1 - lookupLabel: 203 - originalLookupLabel: 203 - center: - x: -39.0 - y: 49.0 - z: 7.0 - color: '#e79423' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFClv_2: - name: 17Networks_LH_ContA_PFClv_2 - lookupLabel: 204 - originalLookupLabel: 204 - center: - x: -46.0 - y: 35.0 - z: 13.0 - color: '#e79424' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_Cingm_1: - name: 17Networks_LH_ContA_Cingm_1 - lookupLabel: 205 - originalLookupLabel: 205 - center: - x: -4.0 - y: 1.0 - z: 30.0 - color: '#e79425' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContB_Temp_1: - name: 17Networks_LH_ContB_Temp_1 - lookupLabel: 206 - originalLookupLabel: 206 - center: - x: -61.0 - y: -36.0 - z: -16.0 - color: '#87324b' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_Temp_2: - name: 17Networks_LH_ContB_Temp_2 - lookupLabel: 207 - originalLookupLabel: 207 - center: - x: -61.0 - y: -48.0 - z: -11.0 - color: '#87324c' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_1: - name: 17Networks_LH_ContB_IPL_1 - lookupLabel: 208 - originalLookupLabel: 208 - center: - x: -56.0 - y: -51.0 - z: 38.0 - color: '#87324a' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_2: - name: 17Networks_LH_ContB_IPL_2 - lookupLabel: 209 - originalLookupLabel: 209 - center: - x: -51.0 - y: -53.0 - z: 49.0 - color: '#87324d' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_3: - name: 17Networks_LH_ContB_IPL_3 - lookupLabel: 210 - originalLookupLabel: 210 - center: - x: -53.0 - y: -46.0 - z: 53.0 - color: '#87324e' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_4: - name: 17Networks_LH_ContB_IPL_4 - lookupLabel: 211 - originalLookupLabel: 211 - center: - x: -37.0 - y: -62.0 - z: 51.0 - color: '#87324f' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_5: - name: 17Networks_LH_ContB_IPL_5 - lookupLabel: 212 - originalLookupLabel: 212 - center: - x: -43.0 - y: -53.0 - z: 49.0 - color: '#873250' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCd_1: - name: 17Networks_LH_ContB_PFCd_1 - lookupLabel: 213 - originalLookupLabel: 213 - center: - x: -29.0 - y: 16.0 - z: 55.0 - color: '#87334b' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCl_1: - name: 17Networks_LH_ContB_PFCl_1 - lookupLabel: 214 - originalLookupLabel: 214 - center: - x: -45.0 - y: 20.0 - z: 36.0 - color: '#87334c' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCl_2: - name: 17Networks_LH_ContB_PFCl_2 - lookupLabel: 215 - originalLookupLabel: 215 - center: - x: -45.0 - y: 12.0 - z: 40.0 - color: '#87334d' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_1: - name: 17Networks_LH_ContB_PFClv_1 - lookupLabel: 216 - originalLookupLabel: 216 - center: - x: -41.0 - y: 50.0 - z: -7.0 - color: '#88324b' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_2: - name: 17Networks_LH_ContB_PFClv_2 - lookupLabel: 217 - originalLookupLabel: 217 - center: - x: -29.0 - y: 58.0 - z: -1.0 - color: '#88324c' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_3: - name: 17Networks_LH_ContB_PFClv_3 - lookupLabel: 218 - originalLookupLabel: 218 - center: - x: -30.0 - y: 56.0 - z: 11.0 - color: '#88324d' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCmp_1: - name: 17Networks_LH_ContB_PFCmp_1 - lookupLabel: 219 - originalLookupLabel: 219 - center: - x: -4.0 - y: 27.0 - z: 46.0 - color: '#88324e' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContC_pCun_1: - name: 17Networks_LH_ContC_pCun_1 - lookupLabel: 220 - originalLookupLabel: 220 - center: - x: -10.0 - y: -70.0 - z: 31.0 - color: '#778caf' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_2: - name: 17Networks_LH_ContC_pCun_2 - lookupLabel: 221 - originalLookupLabel: 221 - center: - x: -9.0 - y: -76.0 - z: 43.0 - color: '#778cb1' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_3: - name: 17Networks_LH_ContC_pCun_3 - lookupLabel: 222 - originalLookupLabel: 222 - center: - x: -3.0 - y: -68.0 - z: 42.0 - color: '#778cb2' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_4: - name: 17Networks_LH_ContC_pCun_4 - lookupLabel: 223 - originalLookupLabel: 223 - center: - x: -5.0 - y: -71.0 - z: 54.0 - color: '#778cb3' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_5: - name: 17Networks_LH_ContC_pCun_5 - lookupLabel: 224 - originalLookupLabel: 224 - center: - x: -6.0 - y: -62.0 - z: 51.0 - color: '#778cb4' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_6: - name: 17Networks_LH_ContC_pCun_6 - lookupLabel: 225 - originalLookupLabel: 225 - center: - x: -4.0 - y: -51.0 - z: 53.0 - color: '#778cb5' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_Cingp_1: - name: 17Networks_LH_ContC_Cingp_1 - lookupLabel: 226 - originalLookupLabel: 226 - center: - x: -6.0 - y: -40.0 - z: 24.0 - color: '#778cb6' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_Cingp_2: - name: 17Networks_LH_ContC_Cingp_2 - lookupLabel: 227 - originalLookupLabel: 227 - center: - x: -4.0 - y: -22.0 - z: 29.0 - color: '#778cb7' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_DefaultA_IPL_1: - name: 17Networks_LH_DefaultA_IPL_1 - lookupLabel: 228 - originalLookupLabel: 228 - center: - x: -45.0 - y: -63.0 - z: 24.0 - color: '#ffff01' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_IPL_2: - name: 17Networks_LH_DefaultA_IPL_2 - lookupLabel: 229 - originalLookupLabel: 229 - center: - x: -48.0 - y: -68.0 - z: 34.0 - color: '#ffff02' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_IPL_3: - name: 17Networks_LH_DefaultA_IPL_3 - lookupLabel: 230 - originalLookupLabel: 230 - center: - x: -39.0 - y: -74.0 - z: 44.0 - color: '#ffff03' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_IPL_4: - name: 17Networks_LH_DefaultA_IPL_4 - lookupLabel: 231 - originalLookupLabel: 231 - center: - x: -45.0 - y: -64.0 - z: 49.0 - color: '#ffff04' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_1: - name: 17Networks_LH_DefaultA_PFCd_1 - lookupLabel: 232 - originalLookupLabel: 232 - center: - x: -20.0 - y: 40.0 - z: 42.0 - color: '#ffff05' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_2: - name: 17Networks_LH_DefaultA_PFCd_2 - lookupLabel: 233 - originalLookupLabel: 233 - center: - x: -25.0 - y: 27.0 - z: 44.0 - color: '#ffff06' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_3: - name: 17Networks_LH_DefaultA_PFCd_3 - lookupLabel: 234 - originalLookupLabel: 234 - center: - x: -22.0 - y: 24.0 - z: 52.0 - color: '#ffff07' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_1: - name: 17Networks_LH_DefaultA_pCunPCC_1 - lookupLabel: 235 - originalLookupLabel: 235 - center: - x: -6.0 - y: -47.0 - z: 15.0 - color: '#fffe01' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_2: - name: 17Networks_LH_DefaultA_pCunPCC_2 - lookupLabel: 236 - originalLookupLabel: 236 - center: - x: -4.0 - y: -53.0 - z: 19.0 - color: '#fffe02' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_3: - name: 17Networks_LH_DefaultA_pCunPCC_3 - lookupLabel: 237 - originalLookupLabel: 237 - center: - x: -4.0 - y: -66.0 - z: 24.0 - color: '#fffe03' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_4: - name: 17Networks_LH_DefaultA_pCunPCC_4 - lookupLabel: 238 - originalLookupLabel: 238 - center: - x: -7.0 - y: -56.0 - z: 27.0 - color: '#fffe04' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_5: - name: 17Networks_LH_DefaultA_pCunPCC_5 - lookupLabel: 239 - originalLookupLabel: 239 - center: - x: -4.0 - y: -43.0 - z: 30.0 - color: '#fffe05' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_6: - name: 17Networks_LH_DefaultA_pCunPCC_6 - lookupLabel: 240 - originalLookupLabel: 240 - center: - x: -5.0 - y: -62.0 - z: 33.0 - color: '#fffe06' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_7: - name: 17Networks_LH_DefaultA_pCunPCC_7 - lookupLabel: 241 - originalLookupLabel: 241 - center: - x: -4.0 - y: -31.0 - z: 36.0 - color: '#fffe07' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_8: - name: 17Networks_LH_DefaultA_pCunPCC_8 - lookupLabel: 242 - originalLookupLabel: 242 - center: - x: -2.0 - y: -15.0 - z: 37.0 - color: '#ffff00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_9: - name: 17Networks_LH_DefaultA_pCunPCC_9 - lookupLabel: 243 - originalLookupLabel: 243 - center: - x: -12.0 - y: -49.0 - z: 35.0 - color: '#fcf900' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_10: - name: 17Networks_LH_DefaultA_pCunPCC_10 - lookupLabel: 244 - originalLookupLabel: 244 - center: - x: -5.0 - y: -39.0 - z: 40.0 - color: '#fcfa00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_11: - name: 17Networks_LH_DefaultA_pCunPCC_11 - lookupLabel: 245 - originalLookupLabel: 245 - center: - x: -5.0 - y: -57.0 - z: 43.0 - color: '#fcfb00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_12: - name: 17Networks_LH_DefaultA_pCunPCC_12 - lookupLabel: 246 - originalLookupLabel: 246 - center: - x: -7.0 - y: -48.0 - z: 43.0 - color: '#fcfc00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_1: - name: 17Networks_LH_DefaultA_PFCm_1 - lookupLabel: 247 - originalLookupLabel: 247 - center: - x: -5.0 - y: 55.0 - z: -10.0 - color: '#feff01' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_2: - name: 17Networks_LH_DefaultA_PFCm_2 - lookupLabel: 248 - originalLookupLabel: 248 - center: - x: -6.0 - y: 39.0 - z: -7.0 - color: '#feff02' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_3: - name: 17Networks_LH_DefaultA_PFCm_3 - lookupLabel: 249 - originalLookupLabel: 249 - center: - x: -12.0 - y: 69.0 - z: 5.0 - color: '#feff03' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_4: - name: 17Networks_LH_DefaultA_PFCm_4 - lookupLabel: 250 - originalLookupLabel: 250 - center: - x: -6.0 - y: 45.0 - z: 6.0 - color: '#feff04' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_5: - name: 17Networks_LH_DefaultA_PFCm_5 - lookupLabel: 251 - originalLookupLabel: 251 - center: - x: -22.0 - y: 63.0 - z: 11.0 - color: '#feff05' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_6: - name: 17Networks_LH_DefaultA_PFCm_6 - lookupLabel: 252 - originalLookupLabel: 252 - center: - x: -6.0 - y: 57.0 - z: 15.0 - color: '#feff06' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_7: - name: 17Networks_LH_DefaultA_PFCm_7 - lookupLabel: 253 - originalLookupLabel: 253 - center: - x: -3.0 - y: 30.0 - z: 16.0 - color: '#feff07' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_8: - name: 17Networks_LH_DefaultA_PFCm_8 - lookupLabel: 254 - originalLookupLabel: 254 - center: - x: -7.0 - y: 36.0 - z: 22.0 - color: '#fbf900' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultB_Temp_1: - name: 17Networks_LH_DefaultB_Temp_1 - lookupLabel: 255 - originalLookupLabel: 255 - center: - x: -55.0 - y: 0.0 - z: -29.0 - color: '#cd3e4c' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_2: - name: 17Networks_LH_DefaultB_Temp_2 - lookupLabel: 256 - originalLookupLabel: 256 - center: - x: -60.0 - y: -19.0 - z: -23.0 - color: '#cd3e4d' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_3: - name: 17Networks_LH_DefaultB_Temp_3 - lookupLabel: 257 - originalLookupLabel: 257 - center: - x: -52.0 - y: 8.0 - z: -19.0 - color: '#cd3e4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_4: - name: 17Networks_LH_DefaultB_Temp_4 - lookupLabel: 258 - originalLookupLabel: 258 - center: - x: -61.0 - y: -10.0 - z: -15.0 - color: '#cd3e50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_5: - name: 17Networks_LH_DefaultB_Temp_5 - lookupLabel: 259 - originalLookupLabel: 259 - center: - x: -63.0 - y: -33.0 - z: -4.0 - color: '#cd3e51' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_6: - name: 17Networks_LH_DefaultB_Temp_6 - lookupLabel: 260 - originalLookupLabel: 260 - center: - x: -51.0 - y: -22.0 - z: -8.0 - color: '#cd3e52' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_7: - name: 17Networks_LH_DefaultB_Temp_7 - lookupLabel: 261 - originalLookupLabel: 261 - center: - x: -51.0 - y: -34.0 - z: 0.0 - color: '#cd3e53' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_1: - name: 17Networks_LH_DefaultB_IPL_1 - lookupLabel: 262 - originalLookupLabel: 262 - center: - x: -45.0 - y: -56.0 - z: 19.0 - color: '#cd3e54' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_2: - name: 17Networks_LH_DefaultB_IPL_2 - lookupLabel: 263 - originalLookupLabel: 263 - center: - x: -49.0 - y: -54.0 - z: 26.0 - color: '#cd3e55' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_3: - name: 17Networks_LH_DefaultB_IPL_3 - lookupLabel: 264 - originalLookupLabel: 264 - center: - x: -61.0 - y: -53.0 - z: 28.0 - color: '#cd3e56' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_4: - name: 17Networks_LH_DefaultB_IPL_4 - lookupLabel: 265 - originalLookupLabel: 265 - center: - x: -49.0 - y: -59.0 - z: 38.0 - color: '#cd3f4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_1: - name: 17Networks_LH_DefaultB_PFCd_1 - lookupLabel: 266 - originalLookupLabel: 266 - center: - x: -14.0 - y: 62.0 - z: 24.0 - color: '#cd3f4c' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_2: - name: 17Networks_LH_DefaultB_PFCd_2 - lookupLabel: 267 - originalLookupLabel: 267 - center: - x: -22.0 - y: 54.0 - z: 27.0 - color: '#cd3f4d' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_3: - name: 17Networks_LH_DefaultB_PFCd_3 - lookupLabel: 268 - originalLookupLabel: 268 - center: - x: -4.0 - y: 47.0 - z: 35.0 - color: '#cd3f50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_4: - name: 17Networks_LH_DefaultB_PFCd_4 - lookupLabel: 269 - originalLookupLabel: 269 - center: - x: -13.0 - y: 47.0 - z: 44.0 - color: '#cd3f51' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_5: - name: 17Networks_LH_DefaultB_PFCd_5 - lookupLabel: 270 - originalLookupLabel: 270 - center: - x: -6.0 - y: 37.0 - z: 54.0 - color: '#cd3f52' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_6: - name: 17Networks_LH_DefaultB_PFCd_6 - lookupLabel: 271 - originalLookupLabel: 271 - center: - x: -14.0 - y: 23.0 - z: 61.0 - color: '#cd3f53' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_7: - name: 17Networks_LH_DefaultB_PFCd_7 - lookupLabel: 272 - originalLookupLabel: 272 - center: - x: -5.0 - y: 13.0 - z: 64.0 - color: '#cd3f54' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCl_1: - name: 17Networks_LH_DefaultB_PFCl_1 - lookupLabel: 273 - originalLookupLabel: 273 - center: - x: -39.0 - y: 19.0 - z: 50.0 - color: '#cd3f55' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCl_2: - name: 17Networks_LH_DefaultB_PFCl_2 - lookupLabel: 274 - originalLookupLabel: 274 - center: - x: -42.0 - y: 7.0 - z: 49.0 - color: '#cd3f56' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_1: - name: 17Networks_LH_DefaultB_PFCv_1 - lookupLabel: 275 - originalLookupLabel: 275 - center: - x: -28.0 - y: 17.0 - z: -16.0 - color: '#ce3e4c' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_2: - name: 17Networks_LH_DefaultB_PFCv_2 - lookupLabel: 276 - originalLookupLabel: 276 - center: - x: -36.0 - y: 37.0 - z: -13.0 - color: '#ce3e4d' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_3: - name: 17Networks_LH_DefaultB_PFCv_3 - lookupLabel: 277 - originalLookupLabel: 277 - center: - x: -37.0 - y: 24.0 - z: -15.0 - color: '#ce3e4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_4: - name: 17Networks_LH_DefaultB_PFCv_4 - lookupLabel: 278 - originalLookupLabel: 278 - center: - x: -47.0 - y: 32.0 - z: -10.0 - color: '#ce3e50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_5: - name: 17Networks_LH_DefaultB_PFCv_5 - lookupLabel: 279 - originalLookupLabel: 279 - center: - x: -48.0 - y: 27.0 - z: 1.0 - color: '#ce3e51' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_6: - name: 17Networks_LH_DefaultB_PFCv_6 - lookupLabel: 280 - originalLookupLabel: 280 - center: - x: -49.0 - y: 40.0 - z: -1.0 - color: '#ce3e52' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_7: - name: 17Networks_LH_DefaultB_PFCv_7 - lookupLabel: 281 - originalLookupLabel: 281 - center: - x: -53.0 - y: 19.0 - z: 10.0 - color: '#ce3e53' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultC_IPL_1: - name: 17Networks_LH_DefaultC_IPL_1 - lookupLabel: 282 - originalLookupLabel: 282 - center: - x: -43.0 - y: -72.0 - z: 24.0 - color: '#000083' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_IPL_2: - name: 17Networks_LH_DefaultC_IPL_2 - lookupLabel: 283 - originalLookupLabel: 283 - center: - x: -39.0 - y: -81.0 - z: 33.0 - color: '#000084' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_1: - name: 17Networks_LH_DefaultC_Rsp_1 - lookupLabel: 284 - originalLookupLabel: 284 - center: - x: -12.0 - y: -46.0 - z: 3.0 - color: '#000085' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_2: - name: 17Networks_LH_DefaultC_Rsp_2 - lookupLabel: 285 - originalLookupLabel: 285 - center: - x: -10.0 - y: -53.0 - z: 8.0 - color: '#000086' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_3: - name: 17Networks_LH_DefaultC_Rsp_3 - lookupLabel: 286 - originalLookupLabel: 286 - center: - x: -12.0 - y: -59.0 - z: 17.0 - color: '#000087' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_4: - name: 17Networks_LH_DefaultC_Rsp_4 - lookupLabel: 287 - originalLookupLabel: 287 - center: - x: -15.0 - y: -65.0 - z: 24.0 - color: '#000088' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_1: - name: 17Networks_LH_DefaultC_PHC_1 - lookupLabel: 288 - originalLookupLabel: 288 - center: - x: -21.0 - y: -19.0 - z: -27.0 - color: '#000181' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_2: - name: 17Networks_LH_DefaultC_PHC_2 - lookupLabel: 289 - originalLookupLabel: 289 - center: - x: -31.0 - y: -28.0 - z: -22.0 - color: '#000183' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_3: - name: 17Networks_LH_DefaultC_PHC_3 - lookupLabel: 290 - originalLookupLabel: 290 - center: - x: -31.0 - y: -41.0 - z: -10.0 - color: '#000184' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_4: - name: 17Networks_LH_DefaultC_PHC_4 - lookupLabel: 291 - originalLookupLabel: 291 - center: - x: -21.0 - y: -35.0 - z: -15.0 - color: '#000185' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_5: - name: 17Networks_LH_DefaultC_PHC_5 - lookupLabel: 292 - originalLookupLabel: 292 - center: - x: -15.0 - y: -37.0 - z: -11.0 - color: '#000186' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_TempPar_1: - name: 17Networks_LH_TempPar_1 - lookupLabel: 293 - originalLookupLabel: 293 - center: - x: -53.0 - y: -4.0 - z: -11.0 - color: '#0c30fd' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_2: - name: 17Networks_LH_TempPar_2 - lookupLabel: 294 - originalLookupLabel: 294 - center: - x: -60.0 - y: -18.0 - z: -2.0 - color: '#0c30fe' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_3: - name: 17Networks_LH_TempPar_3 - lookupLabel: 295 - originalLookupLabel: 295 - center: - x: -63.0 - y: -50.0 - z: 4.0 - color: '#0929f9' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_4: - name: 17Networks_LH_TempPar_4 - lookupLabel: 296 - originalLookupLabel: 296 - center: - x: -52.0 - y: -44.0 - z: 6.0 - color: '#0929fa' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_5: - name: 17Networks_LH_TempPar_5 - lookupLabel: 297 - originalLookupLabel: 297 - center: - x: -63.0 - y: -35.0 - z: 7.0 - color: '#0929fb' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_6: - name: 17Networks_LH_TempPar_6 - lookupLabel: 298 - originalLookupLabel: 298 - center: - x: -56.0 - y: -56.0 - z: 13.0 - color: '#0929fc' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_7: - name: 17Networks_LH_TempPar_7 - lookupLabel: 299 - originalLookupLabel: 299 - center: - x: -47.0 - y: -49.0 - z: 14.0 - color: '#0929fd' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_8: - name: 17Networks_LH_TempPar_8 - lookupLabel: 300 - originalLookupLabel: 300 - center: - x: -60.0 - y: -49.0 - z: 16.0 - color: '#0929fe' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_RH_VisCent_Striate_1: - name: 17Networks_RH_VisCent_Striate_1 - lookupLabel: 301 - originalLookupLabel: 301 - center: - x: 9.0 - y: -92.0 - z: -11.0 - color: '#781387' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_Striate_2: - name: 17Networks_RH_VisCent_Striate_2 - lookupLabel: 302 - originalLookupLabel: 302 - center: - x: 8.0 - y: -89.0 - z: 3.0 - color: '#781388' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_Striate_3: - name: 17Networks_RH_VisCent_Striate_3 - lookupLabel: 303 - originalLookupLabel: 303 - center: - x: 12.0 - y: -99.0 - z: 2.0 - color: '#781389' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_1: - name: 17Networks_RH_VisCent_ExStr_1 - lookupLabel: 304 - originalLookupLabel: 304 - center: - x: 36.0 - y: -51.0 - z: -18.0 - color: '#781380' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_2: - name: 17Networks_RH_VisCent_ExStr_2 - lookupLabel: 305 - originalLookupLabel: 305 - center: - x: 29.0 - y: -50.0 - z: -12.0 - color: '#781381' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_3: - name: 17Networks_RH_VisCent_ExStr_3 - lookupLabel: 306 - originalLookupLabel: 306 - center: - x: 37.0 - y: -73.0 - z: -15.0 - color: '#781382' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_4: - name: 17Networks_RH_VisCent_ExStr_4 - lookupLabel: 307 - originalLookupLabel: 307 - center: - x: 26.0 - y: -75.0 - z: -11.0 - color: '#781383' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_5: - name: 17Networks_RH_VisCent_ExStr_5 - lookupLabel: 308 - originalLookupLabel: 308 - center: - x: 22.0 - y: -66.0 - z: -8.0 - color: '#781384' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_6: - name: 17Networks_RH_VisCent_ExStr_6 - lookupLabel: 309 - originalLookupLabel: 309 - center: - x: 20.0 - y: -88.0 - z: -12.0 - color: '#781385' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_7: - name: 17Networks_RH_VisCent_ExStr_7 - lookupLabel: 310 - originalLookupLabel: 310 - center: - x: 41.0 - y: -84.0 - z: -16.0 - color: '#781386' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_8: - name: 17Networks_RH_VisCent_ExStr_8 - lookupLabel: 311 - originalLookupLabel: 311 - center: - x: 12.0 - y: -80.0 - z: -13.0 - color: '#78138a' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_9: - name: 17Networks_RH_VisCent_ExStr_9 - lookupLabel: 312 - originalLookupLabel: 312 - center: - x: 28.0 - y: -95.0 - z: -10.0 - color: '#78138b' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_10: - name: 17Networks_RH_VisCent_ExStr_10 - lookupLabel: 313 - originalLookupLabel: 313 - center: - x: 43.0 - y: -85.0 - z: -5.0 - color: '#78138c' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_11: - name: 17Networks_RH_VisCent_ExStr_11 - lookupLabel: 314 - originalLookupLabel: 314 - center: - x: 23.0 - y: -100.0 - z: 2.0 - color: '#78138d' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_12: - name: 17Networks_RH_VisCent_ExStr_12 - lookupLabel: 315 - originalLookupLabel: 315 - center: - x: 33.0 - y: -91.0 - z: 4.0 - color: '#78138e' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_13: - name: 17Networks_RH_VisCent_ExStr_13 - lookupLabel: 316 - originalLookupLabel: 316 - center: - x: 23.0 - y: -97.0 - z: 14.0 - color: '#781487' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_14: - name: 17Networks_RH_VisCent_ExStr_14 - lookupLabel: 317 - originalLookupLabel: 317 - center: - x: 43.0 - y: -79.0 - z: 10.0 - color: '#781488' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_15: - name: 17Networks_RH_VisCent_ExStr_15 - lookupLabel: 318 - originalLookupLabel: 318 - center: - x: 12.0 - y: -94.0 - z: 19.0 - color: '#781489' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_16: - name: 17Networks_RH_VisCent_ExStr_16 - lookupLabel: 319 - originalLookupLabel: 319 - center: - x: 29.0 - y: -88.0 - z: 17.0 - color: '#78148a' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_17: - name: 17Networks_RH_VisCent_ExStr_17 - lookupLabel: 320 - originalLookupLabel: 320 - center: - x: 22.0 - y: -87.0 - z: 30.0 - color: '#78148b' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_18: - name: 17Networks_RH_VisCent_ExStr_18 - lookupLabel: 321 - originalLookupLabel: 321 - center: - x: 30.0 - y: -77.0 - z: 25.0 - color: '#78148c' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisPeri_StriCal_1: - name: 17Networks_RH_VisPeri_StriCal_1 - lookupLabel: 322 - originalLookupLabel: 322 - center: - x: 4.0 - y: -81.0 - z: -3.0 - color: '#ff0102' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_2: - name: 17Networks_RH_VisPeri_StriCal_2 - lookupLabel: 323 - originalLookupLabel: 323 - center: - x: 11.0 - y: -60.0 - z: 5.0 - color: '#ff0103' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_3: - name: 17Networks_RH_VisPeri_StriCal_3 - lookupLabel: 324 - originalLookupLabel: 324 - center: - x: 10.0 - y: -73.0 - z: 9.0 - color: '#ff0104' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_4: - name: 17Networks_RH_VisPeri_StriCal_4 - lookupLabel: 325 - originalLookupLabel: 325 - center: - x: 23.0 - y: -59.0 - z: 7.0 - color: '#ff0105' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_1: - name: 17Networks_RH_VisPeri_ExStrInf_1 - lookupLabel: 326 - originalLookupLabel: 326 - center: - x: 24.0 - y: -46.0 - z: -8.0 - color: '#fe0001' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_2: - name: 17Networks_RH_VisPeri_ExStrInf_2 - lookupLabel: 327 - originalLookupLabel: 327 - center: - x: 14.0 - y: -58.0 - z: -5.0 - color: '#fe0002' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_3: - name: 17Networks_RH_VisPeri_ExStrInf_3 - lookupLabel: 328 - originalLookupLabel: 328 - center: - x: 9.0 - y: -71.0 - z: -4.0 - color: '#fe0003' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_4: - name: 17Networks_RH_VisPeri_ExStrInf_4 - lookupLabel: 329 - originalLookupLabel: 329 - center: - x: 15.0 - y: -39.0 - z: -6.0 - color: '#fe0004' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_5: - name: 17Networks_RH_VisPeri_ExStrInf_5 - lookupLabel: 330 - originalLookupLabel: 330 - center: - x: 18.0 - y: -50.0 - z: 0.0 - color: '#fe0005' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_1: - name: 17Networks_RH_VisPeri_ExStrSup_1 - lookupLabel: 331 - originalLookupLabel: 331 - center: - x: 5.0 - y: -85.0 - z: 12.0 - color: '#fe0000' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_2: - name: 17Networks_RH_VisPeri_ExStrSup_2 - lookupLabel: 332 - originalLookupLabel: 332 - center: - x: 16.0 - y: -66.0 - z: 19.0 - color: '#fe0006' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_3: - name: 17Networks_RH_VisPeri_ExStrSup_3 - lookupLabel: 333 - originalLookupLabel: 333 - center: - x: 5.0 - y: -79.0 - z: 24.0 - color: '#fe0007' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_4: - name: 17Networks_RH_VisPeri_ExStrSup_4 - lookupLabel: 334 - originalLookupLabel: 334 - center: - x: 8.0 - y: -87.0 - z: 34.0 - color: '#fe0008' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_5: - name: 17Networks_RH_VisPeri_ExStrSup_5 - lookupLabel: 335 - originalLookupLabel: 335 - center: - x: 14.0 - y: -77.0 - z: 31.0 - color: '#fe0101' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_6: - name: 17Networks_RH_VisPeri_ExStrSup_6 - lookupLabel: 336 - originalLookupLabel: 336 - center: - x: 18.0 - y: -83.0 - z: 42.0 - color: '#fe0102' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_SomMotA_1: - name: 17Networks_RH_SomMotA_1 - lookupLabel: 337 - originalLookupLabel: 337 - center: - x: 53.0 - y: -19.0 - z: 47.0 - color: '#4682b1' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_2: - name: 17Networks_RH_SomMotA_2 - lookupLabel: 338 - originalLookupLabel: 338 - center: - x: 51.0 - y: -13.0 - z: 50.0 - color: '#4682b2' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_3: - name: 17Networks_RH_SomMotA_3 - lookupLabel: 339 - originalLookupLabel: 339 - center: - x: 46.0 - y: -9.0 - z: 51.0 - color: '#4682b3' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_4: - name: 17Networks_RH_SomMotA_4 - lookupLabel: 340 - originalLookupLabel: 340 - center: - x: 49.0 - y: -26.0 - z: 57.0 - color: '#4682b4' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_5: - name: 17Networks_RH_SomMotA_5 - lookupLabel: 341 - originalLookupLabel: 341 - center: - x: 7.0 - y: -13.0 - z: 50.0 - color: '#4682b5' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_6: - name: 17Networks_RH_SomMotA_6 - lookupLabel: 342 - originalLookupLabel: 342 - center: - x: 43.0 - y: -21.0 - z: 54.0 - color: '#4683ae' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_7: - name: 17Networks_RH_SomMotA_7 - lookupLabel: 343 - originalLookupLabel: 343 - center: - x: 41.0 - y: -17.0 - z: 57.0 - color: '#4683af' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_8: - name: 17Networks_RH_SomMotA_8 - lookupLabel: 344 - originalLookupLabel: 344 - center: - x: 34.0 - y: -34.0 - z: 60.0 - color: '#4683b0' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_9: - name: 17Networks_RH_SomMotA_9 - lookupLabel: 345 - originalLookupLabel: 345 - center: - x: 5.0 - y: -23.0 - z: 57.0 - color: '#4683b1' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_10: - name: 17Networks_RH_SomMotA_10 - lookupLabel: 346 - originalLookupLabel: 346 - center: - x: 35.0 - y: -27.0 - z: 61.0 - color: '#4683b2' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_11: - name: 17Networks_RH_SomMotA_11 - lookupLabel: 347 - originalLookupLabel: 347 - center: - x: 36.0 - y: -16.0 - z: 68.0 - color: '#4683b3' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_12: - name: 17Networks_RH_SomMotA_12 - lookupLabel: 348 - originalLookupLabel: 348 - center: - x: 30.0 - y: -41.0 - z: 65.0 - color: '#4683b4' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_13: - name: 17Networks_RH_SomMotA_13 - lookupLabel: 349 - originalLookupLabel: 349 - center: - x: 31.0 - y: -23.0 - z: 61.0 - color: '#4683b6' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_14: - name: 17Networks_RH_SomMotA_14 - lookupLabel: 350 - originalLookupLabel: 350 - center: - x: 28.0 - y: -11.0 - z: 65.0 - color: '#4683b7' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_15: - name: 17Networks_RH_SomMotA_15 - lookupLabel: 351 - originalLookupLabel: 351 - center: - x: 9.0 - y: -41.0 - z: 65.0 - color: '#4683b8' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_16: - name: 17Networks_RH_SomMotA_16 - lookupLabel: 352 - originalLookupLabel: 352 - center: - x: 3.0 - y: -32.0 - z: 63.0 - color: '#4683b9' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_17: - name: 17Networks_RH_SomMotA_17 - lookupLabel: 353 - originalLookupLabel: 353 - center: - x: 25.0 - y: -34.0 - z: 69.0 - color: '#4683ba' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_18: - name: 17Networks_RH_SomMotA_18 - lookupLabel: 354 - originalLookupLabel: 354 - center: - x: 24.0 - y: -28.0 - z: 68.0 - color: '#4683bb' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_19: - name: 17Networks_RH_SomMotA_19 - lookupLabel: 355 - originalLookupLabel: 355 - center: - x: 19.0 - y: -27.0 - z: 62.0 - color: '#4683bc' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_20: - name: 17Networks_RH_SomMotA_20 - lookupLabel: 356 - originalLookupLabel: 356 - center: - x: 23.0 - y: -22.0 - z: 71.0 - color: '#4684b5' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_21: - name: 17Networks_RH_SomMotA_21 - lookupLabel: 357 - originalLookupLabel: 357 - center: - x: 19.0 - y: -14.0 - z: 72.0 - color: '#4684b6' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_22: - name: 17Networks_RH_SomMotA_22 - lookupLabel: 358 - originalLookupLabel: 358 - center: - x: 7.0 - y: -16.0 - z: 73.0 - color: '#4684b7' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_23: - name: 17Networks_RH_SomMotA_23 - lookupLabel: 359 - originalLookupLabel: 359 - center: - x: 21.0 - y: -37.0 - z: 75.0 - color: '#4684b8' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_24: - name: 17Networks_RH_SomMotA_24 - lookupLabel: 360 - originalLookupLabel: 360 - center: - x: 5.0 - y: -31.0 - z: 73.0 - color: '#4684b9' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_25: - name: 17Networks_RH_SomMotA_25 - lookupLabel: 361 - originalLookupLabel: 361 - center: - x: 11.0 - y: -38.0 - z: 77.0 - color: '#4684ba' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_26: - name: 17Networks_RH_SomMotA_26 - lookupLabel: 362 - originalLookupLabel: 362 - center: - x: 14.0 - y: -26.0 - z: 72.0 - color: '#4684bb' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_27: - name: 17Networks_RH_SomMotA_27 - lookupLabel: 363 - originalLookupLabel: 363 - center: - x: 14.0 - y: -32.0 - z: 74.0 - color: '#4684bc' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotB_Cent_1: - name: 17Networks_RH_SomMotB_Cent_1 - lookupLabel: 364 - originalLookupLabel: 364 - center: - x: 61.0 - y: -4.0 - z: 24.0 - color: '#2bcca4' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_2: - name: 17Networks_RH_SomMotB_Cent_2 - lookupLabel: 365 - originalLookupLabel: 365 - center: - x: 63.0 - y: -12.0 - z: 28.0 - color: '#2bcca6' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_3: - name: 17Networks_RH_SomMotB_Cent_3 - lookupLabel: 366 - originalLookupLabel: 366 - center: - x: 61.0 - y: 7.0 - z: 31.0 - color: '#2bcca7' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_4: - name: 17Networks_RH_SomMotB_Cent_4 - lookupLabel: 367 - originalLookupLabel: 367 - center: - x: 53.0 - y: -5.0 - z: 38.0 - color: '#2bcca8' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_5: - name: 17Networks_RH_SomMotB_Cent_5 - lookupLabel: 368 - originalLookupLabel: 368 - center: - x: 52.0 - y: -11.0 - z: 38.0 - color: '#2bcca9' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_6: - name: 17Networks_RH_SomMotB_Cent_6 - lookupLabel: 369 - originalLookupLabel: 369 - center: - x: 39.0 - y: -16.0 - z: 41.0 - color: '#2bccaa' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_1: - name: 17Networks_RH_SomMotB_S2_1 - lookupLabel: 370 - originalLookupLabel: 370 - center: - x: 37.0 - y: -9.0 - z: 12.0 - color: '#2bcda2' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_2: - name: 17Networks_RH_SomMotB_S2_2 - lookupLabel: 371 - originalLookupLabel: 371 - center: - x: 35.0 - y: -21.0 - z: 13.0 - color: '#2bcda3' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_3: - name: 17Networks_RH_SomMotB_S2_3 - lookupLabel: 372 - originalLookupLabel: 372 - center: - x: 41.0 - y: -12.0 - z: 18.0 - color: '#2bcda5' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_4: - name: 17Networks_RH_SomMotB_S2_4 - lookupLabel: 373 - originalLookupLabel: 373 - center: - x: 41.0 - y: -29.0 - z: 18.0 - color: '#2bcda6' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_5: - name: 17Networks_RH_SomMotB_S2_5 - lookupLabel: 374 - originalLookupLabel: 374 - center: - x: 50.0 - y: -9.0 - z: 13.0 - color: '#2bcda7' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_6: - name: 17Networks_RH_SomMotB_S2_6 - lookupLabel: 375 - originalLookupLabel: 375 - center: - x: 60.0 - y: 0.0 - z: 11.0 - color: '#2bcda8' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_7: - name: 17Networks_RH_SomMotB_S2_7 - lookupLabel: 376 - originalLookupLabel: 376 - center: - x: 49.0 - y: -20.0 - z: 18.0 - color: '#2bcda9' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_8: - name: 17Networks_RH_SomMotB_S2_8 - lookupLabel: 377 - originalLookupLabel: 377 - center: - x: 61.0 - y: -12.0 - z: 15.0 - color: '#2bcdaa' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Ins_1: - name: 17Networks_RH_SomMotB_Ins_1 - lookupLabel: 378 - originalLookupLabel: 378 - center: - x: 40.0 - y: -19.0 - z: 4.0 - color: '#2bcdab' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_1: - name: 17Networks_RH_SomMotB_Aud_1 - lookupLabel: 379 - originalLookupLabel: 379 - center: - x: 54.0 - y: 4.0 - z: -5.0 - color: '#2acca4' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_2: - name: 17Networks_RH_SomMotB_Aud_2 - lookupLabel: 380 - originalLookupLabel: 380 - center: - x: 56.0 - y: -11.0 - z: 4.0 - color: '#2acca5' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_3: - name: 17Networks_RH_SomMotB_Aud_3 - lookupLabel: 381 - originalLookupLabel: 381 - center: - x: 47.0 - y: -22.0 - z: 10.0 - color: '#2acca6' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_4: - name: 17Networks_RH_SomMotB_Aud_4 - lookupLabel: 382 - originalLookupLabel: 382 - center: - x: 61.0 - y: -24.0 - z: 11.0 - color: '#2acca7' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_DorsAttnA_TempOcc_1: - name: 17Networks_RH_DorsAttnA_TempOcc_1 - lookupLabel: 383 - originalLookupLabel: 383 - center: - x: 47.0 - y: -37.0 - z: -22.0 - color: '#4a9c3e' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_2: - name: 17Networks_RH_DorsAttnA_TempOcc_2 - lookupLabel: 384 - originalLookupLabel: 384 - center: - x: 50.0 - y: -53.0 - z: -17.0 - color: '#4a9c3f' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_3: - name: 17Networks_RH_DorsAttnA_TempOcc_3 - lookupLabel: 385 - originalLookupLabel: 385 - center: - x: 51.0 - y: -65.0 - z: -8.0 - color: '#4a9c40' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_1: - name: 17Networks_RH_DorsAttnA_ParOcc_1 - lookupLabel: 386 - originalLookupLabel: 386 - center: - x: 48.0 - y: -67.0 - z: 4.0 - color: '#4b9b3d' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_2: - name: 17Networks_RH_DorsAttnA_ParOcc_2 - lookupLabel: 387 - originalLookupLabel: 387 - center: - x: 51.0 - y: -59.0 - z: 14.0 - color: '#4b9b3e' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_3: - name: 17Networks_RH_DorsAttnA_ParOcc_3 - lookupLabel: 388 - originalLookupLabel: 388 - center: - x: 43.0 - y: -81.0 - z: 20.0 - color: '#4b9b3f' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_4: - name: 17Networks_RH_DorsAttnA_ParOcc_4 - lookupLabel: 389 - originalLookupLabel: 389 - center: - x: 36.0 - y: -80.0 - z: 25.0 - color: '#4b9b40' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_1: - name: 17Networks_RH_DorsAttnA_SPL_1 - lookupLabel: 390 - originalLookupLabel: 390 - center: - x: 30.0 - y: -66.0 - z: 34.0 - color: '#4b9b39' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_2: - name: 17Networks_RH_DorsAttnA_SPL_2 - lookupLabel: 391 - originalLookupLabel: 391 - center: - x: 29.0 - y: -78.0 - z: 41.0 - color: '#4b9b3a' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_3: - name: 17Networks_RH_DorsAttnA_SPL_3 - lookupLabel: 392 - originalLookupLabel: 392 - center: - x: 16.0 - y: -79.0 - z: 52.0 - color: '#4b9b3b' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_4: - name: 17Networks_RH_DorsAttnA_SPL_4 - lookupLabel: 393 - originalLookupLabel: 393 - center: - x: 28.0 - y: -63.0 - z: 52.0 - color: '#4b9b3c' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_5: - name: 17Networks_RH_DorsAttnA_SPL_5 - lookupLabel: 394 - originalLookupLabel: 394 - center: - x: 34.0 - y: -56.0 - z: 52.0 - color: '#4b9b41' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_6: - name: 17Networks_RH_DorsAttnA_SPL_6 - lookupLabel: 395 - originalLookupLabel: 395 - center: - x: 21.0 - y: -69.0 - z: 54.0 - color: '#4b9b42' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_7: - name: 17Networks_RH_DorsAttnA_SPL_7 - lookupLabel: 396 - originalLookupLabel: 396 - center: - x: 35.0 - y: -46.0 - z: 54.0 - color: '#4b9b43' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_8: - name: 17Networks_RH_DorsAttnA_SPL_8 - lookupLabel: 397 - originalLookupLabel: 397 - center: - x: 11.0 - y: -71.0 - z: 54.0 - color: '#4b9b44' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_9: - name: 17Networks_RH_DorsAttnA_SPL_9 - lookupLabel: 398 - originalLookupLabel: 398 - center: - x: 27.0 - y: -56.0 - z: 60.0 - color: '#4b9c3d' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_10: - name: 17Networks_RH_DorsAttnA_SPL_10 - lookupLabel: 399 - originalLookupLabel: 399 - center: - x: 8.0 - y: -64.0 - z: 59.0 - color: '#4b9c3e' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_11: - name: 17Networks_RH_DorsAttnA_SPL_11 - lookupLabel: 400 - originalLookupLabel: 400 - center: - x: 22.0 - y: -63.0 - z: 65.0 - color: '#4b9c3f' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_12: - name: 17Networks_RH_DorsAttnA_SPL_12 - lookupLabel: 401 - originalLookupLabel: 401 - center: - x: 14.0 - y: -61.0 - z: 66.0 - color: '#4b9c40' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnB_TempOcc_1: - name: 17Networks_RH_DorsAttnB_TempOcc_1 - lookupLabel: 402 - originalLookupLabel: 402 - center: - x: 59.0 - y: -55.0 - z: -1.0 - color: '#01760f' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_1: - name: 17Networks_RH_DorsAttnB_PostC_1 - lookupLabel: 403 - originalLookupLabel: 403 - center: - x: 62.0 - y: -18.0 - z: 32.0 - color: '#01760b' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_2: - name: 17Networks_RH_DorsAttnB_PostC_2 - lookupLabel: 404 - originalLookupLabel: 404 - center: - x: 63.0 - y: -25.0 - z: 44.0 - color: '#01760c' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_3: - name: 17Networks_RH_DorsAttnB_PostC_3 - lookupLabel: 405 - originalLookupLabel: 405 - center: - x: 58.0 - y: -14.0 - z: 39.0 - color: '#01760d' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_4: - name: 17Networks_RH_DorsAttnB_PostC_4 - lookupLabel: 406 - originalLookupLabel: 406 - center: - x: 56.0 - y: -22.0 - z: 42.0 - color: '#01760e' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_5: - name: 17Networks_RH_DorsAttnB_PostC_5 - lookupLabel: 407 - originalLookupLabel: 407 - center: - x: 46.0 - y: -28.0 - z: 43.0 - color: '#017610' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_6: - name: 17Networks_RH_DorsAttnB_PostC_6 - lookupLabel: 408 - originalLookupLabel: 408 - center: - x: 39.0 - y: -40.0 - z: 46.0 - color: '#017611' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_7: - name: 17Networks_RH_DorsAttnB_PostC_7 - lookupLabel: 409 - originalLookupLabel: 409 - center: - x: 36.0 - y: -33.0 - z: 47.0 - color: '#017612' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_8: - name: 17Networks_RH_DorsAttnB_PostC_8 - lookupLabel: 410 - originalLookupLabel: 410 - center: - x: 36.0 - y: -40.0 - z: 58.0 - color: '#017613' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_9: - name: 17Networks_RH_DorsAttnB_PostC_9 - lookupLabel: 411 - originalLookupLabel: 411 - center: - x: 36.0 - y: -49.0 - z: 66.0 - color: '#017614' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_10: - name: 17Networks_RH_DorsAttnB_PostC_10 - lookupLabel: 412 - originalLookupLabel: 412 - center: - x: 8.0 - y: -51.0 - z: 65.0 - color: '#017615' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_11: - name: 17Networks_RH_DorsAttnB_PostC_11 - lookupLabel: 413 - originalLookupLabel: 413 - center: - x: 23.0 - y: -49.0 - z: 69.0 - color: '#017616' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_12: - name: 17Networks_RH_DorsAttnB_PostC_12 - lookupLabel: 414 - originalLookupLabel: 414 - center: - x: 15.0 - y: -47.0 - z: 75.0 - color: '#01770f' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_1: - name: 17Networks_RH_DorsAttnB_FEF_1 - lookupLabel: 415 - originalLookupLabel: 415 - center: - x: 40.0 - y: -3.0 - z: 51.0 - color: '#017710' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_2: - name: 17Networks_RH_DorsAttnB_FEF_2 - lookupLabel: 416 - originalLookupLabel: 416 - center: - x: 30.0 - y: -7.0 - z: 53.0 - color: '#017711' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_3: - name: 17Networks_RH_DorsAttnB_FEF_3 - lookupLabel: 417 - originalLookupLabel: 417 - center: - x: 25.0 - y: -1.0 - z: 59.0 - color: '#017712' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_4: - name: 17Networks_RH_DorsAttnB_FEF_4 - lookupLabel: 418 - originalLookupLabel: 418 - center: - x: 19.0 - y: -4.0 - z: 69.0 - color: '#017713' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PrCv_1: - name: 17Networks_RH_DorsAttnB_PrCv_1 - lookupLabel: 419 - originalLookupLabel: 419 - center: - x: 52.0 - y: 8.0 - z: 30.0 - color: '#017714' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_SalVentAttnA_ParOper_1: - name: 17Networks_RH_SalVentAttnA_ParOper_1 - lookupLabel: 420 - originalLookupLabel: 420 - center: - x: 64.0 - y: -31.0 - z: 22.0 - color: '#c43af8' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_2: - name: 17Networks_RH_SalVentAttnA_ParOper_2 - lookupLabel: 421 - originalLookupLabel: 421 - center: - x: 51.0 - y: -30.0 - z: 25.0 - color: '#c43afa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_3: - name: 17Networks_RH_SalVentAttnA_ParOper_3 - lookupLabel: 422 - originalLookupLabel: 422 - center: - x: 60.0 - y: -21.0 - z: 21.0 - color: '#c43afb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_4: - name: 17Networks_RH_SalVentAttnA_ParOper_4 - lookupLabel: 423 - originalLookupLabel: 423 - center: - x: 59.0 - y: -27.0 - z: 33.0 - color: '#c43afc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_5: - name: 17Networks_RH_SalVentAttnA_ParOper_5 - lookupLabel: 424 - originalLookupLabel: 424 - center: - x: 65.0 - y: -30.0 - z: 34.0 - color: '#c43afd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_PrC_1: - name: 17Networks_RH_SalVentAttnA_PrC_1 - lookupLabel: 425 - originalLookupLabel: 425 - center: - x: 50.0 - y: 3.0 - z: 41.0 - color: '#c439fb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_1: - name: 17Networks_RH_SalVentAttnA_FrOper_1 - lookupLabel: 426 - originalLookupLabel: 426 - center: - x: 43.0 - y: 13.0 - z: 5.0 - color: '#c439f8' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_2: - name: 17Networks_RH_SalVentAttnA_FrOper_2 - lookupLabel: 427 - originalLookupLabel: 427 - center: - x: 42.0 - y: -1.0 - z: 14.0 - color: '#c439fa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_3: - name: 17Networks_RH_SalVentAttnA_FrOper_3 - lookupLabel: 428 - originalLookupLabel: 428 - center: - x: 50.0 - y: 4.0 - z: 4.0 - color: '#c439fc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_4: - name: 17Networks_RH_SalVentAttnA_FrOper_4 - lookupLabel: 429 - originalLookupLabel: 429 - center: - x: 53.0 - y: 11.0 - z: 13.0 - color: '#c439fd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_5: - name: 17Networks_RH_SalVentAttnA_FrOper_5 - lookupLabel: 430 - originalLookupLabel: 430 - center: - x: 59.0 - y: 9.0 - z: 19.0 - color: '#c439fe' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_1: - name: 17Networks_RH_SalVentAttnA_Ins_1 - lookupLabel: 431 - originalLookupLabel: 431 - center: - x: 39.0 - y: 7.0 - z: -16.0 - color: '#c33af9' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_2: - name: 17Networks_RH_SalVentAttnA_Ins_2 - lookupLabel: 432 - originalLookupLabel: 432 - center: - x: 46.0 - y: 7.0 - z: -15.0 - color: '#c33afb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_3: - name: 17Networks_RH_SalVentAttnA_Ins_3 - lookupLabel: 433 - originalLookupLabel: 433 - center: - x: 41.0 - y: 6.0 - z: -5.0 - color: '#c33afc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_4: - name: 17Networks_RH_SalVentAttnA_Ins_4 - lookupLabel: 434 - originalLookupLabel: 434 - center: - x: 41.0 - y: -10.0 - z: -3.0 - color: '#c33afd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_5: - name: 17Networks_RH_SalVentAttnA_Ins_5 - lookupLabel: 435 - originalLookupLabel: 435 - center: - x: 38.0 - y: 2.0 - z: 5.0 - color: '#c33afe' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_6: - name: 17Networks_RH_SalVentAttnA_Ins_6 - lookupLabel: 436 - originalLookupLabel: 436 - center: - x: 36.0 - y: 6.0 - z: 12.0 - color: '#c33aff' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_1: - name: 17Networks_RH_SalVentAttnA_ParMed_1 - lookupLabel: 437 - originalLookupLabel: 437 - center: - x: 10.0 - y: -29.0 - z: 41.0 - color: '#c33af8' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_2: - name: 17Networks_RH_SalVentAttnA_ParMed_2 - lookupLabel: 438 - originalLookupLabel: 438 - center: - x: 11.0 - y: -16.0 - z: 41.0 - color: '#c33afa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_3: - name: 17Networks_RH_SalVentAttnA_ParMed_3 - lookupLabel: 439 - originalLookupLabel: 439 - center: - x: 12.0 - y: -38.0 - z: 45.0 - color: '#c033f9' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_4: - name: 17Networks_RH_SalVentAttnA_ParMed_4 - lookupLabel: 440 - originalLookupLabel: 440 - center: - x: 13.0 - y: -26.0 - z: 45.0 - color: '#c034f2' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_5: - name: 17Networks_RH_SalVentAttnA_ParMed_5 - lookupLabel: 441 - originalLookupLabel: 441 - center: - x: 10.0 - y: -43.0 - z: 53.0 - color: '#c034f3' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_6: - name: 17Networks_RH_SalVentAttnA_ParMed_6 - lookupLabel: 442 - originalLookupLabel: 442 - center: - x: 10.0 - y: -34.0 - z: 52.0 - color: '#c034f4' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_1: - name: 17Networks_RH_SalVentAttnA_FrMed_1 - lookupLabel: 443 - originalLookupLabel: 443 - center: - x: 7.0 - y: 12.0 - z: 37.0 - color: '#c339f8' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_2: - name: 17Networks_RH_SalVentAttnA_FrMed_2 - lookupLabel: 444 - originalLookupLabel: 444 - center: - x: 4.0 - y: -8.0 - z: 37.0 - color: '#c339f9' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_3: - name: 17Networks_RH_SalVentAttnA_FrMed_3 - lookupLabel: 445 - originalLookupLabel: 445 - center: - x: 8.0 - y: 0.0 - z: 44.0 - color: '#c339fb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_4: - name: 17Networks_RH_SalVentAttnA_FrMed_4 - lookupLabel: 446 - originalLookupLabel: 446 - center: - x: 8.0 - y: 14.0 - z: 48.0 - color: '#c339fc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_5: - name: 17Networks_RH_SalVentAttnA_FrMed_5 - lookupLabel: 447 - originalLookupLabel: 447 - center: - x: 6.0 - y: 0.0 - z: 55.0 - color: '#c339fd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_6: - name: 17Networks_RH_SalVentAttnA_FrMed_6 - lookupLabel: 448 - originalLookupLabel: 448 - center: - x: 7.0 - y: -2.0 - z: 67.0 - color: '#c339fe' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_7: - name: 17Networks_RH_SalVentAttnA_FrMed_7 - lookupLabel: 449 - originalLookupLabel: 449 - center: - x: 16.0 - y: 6.0 - z: 70.0 - color: '#c339ff' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnB_IPL_1: - name: 17Networks_RH_SalVentAttnB_IPL_1 - lookupLabel: 450 - originalLookupLabel: 450 - center: - x: 63.0 - y: -39.0 - z: 30.0 - color: '#fe98d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_IPL_2: - name: 17Networks_RH_SalVentAttnB_IPL_2 - lookupLabel: 451 - originalLookupLabel: 451 - center: - x: 61.0 - y: -35.0 - z: 44.0 - color: '#fe98d7' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCd_1: - name: 17Networks_RH_SalVentAttnB_PFCd_1 - lookupLabel: 452 - originalLookupLabel: 452 - center: - x: 24.0 - y: 9.0 - z: 64.0 - color: '#fe98d5' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCd_2: - name: 17Networks_RH_SalVentAttnB_PFCd_2 - lookupLabel: 453 - originalLookupLabel: 453 - center: - x: 14.0 - y: 16.0 - z: 64.0 - color: '#fe98d8' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_1: - name: 17Networks_RH_SalVentAttnB_PFCl_1 - lookupLabel: 454 - originalLookupLabel: 454 - center: - x: 32.0 - y: 48.0 - z: 20.0 - color: '#fe97d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_2: - name: 17Networks_RH_SalVentAttnB_PFCl_2 - lookupLabel: 455 - originalLookupLabel: 455 - center: - x: 25.0 - y: 54.0 - z: 26.0 - color: '#fe97d7' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_3: - name: 17Networks_RH_SalVentAttnB_PFCl_3 - lookupLabel: 456 - originalLookupLabel: 456 - center: - x: 33.0 - y: 43.0 - z: 31.0 - color: '#fe97d8' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFClv_1: - name: 17Networks_RH_SalVentAttnB_PFClv_1 - lookupLabel: 457 - originalLookupLabel: 457 - center: - x: 50.0 - y: 40.0 - z: 5.0 - color: '#fe97d5' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFClv_2: - name: 17Networks_RH_SalVentAttnB_PFClv_2 - lookupLabel: 458 - originalLookupLabel: 458 - center: - x: 41.0 - y: 50.0 - z: 7.0 - color: '#fe97d9' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_1: - name: 17Networks_RH_SalVentAttnB_Ins_1 - lookupLabel: 459 - originalLookupLabel: 459 - center: - x: 34.0 - y: 20.0 - z: -8.0 - color: '#fe98d9' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_2: - name: 17Networks_RH_SalVentAttnB_Ins_2 - lookupLabel: 460 - originalLookupLabel: 460 - center: - x: 34.0 - y: 26.0 - z: 1.0 - color: '#fe98da' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_3: - name: 17Networks_RH_SalVentAttnB_Ins_3 - lookupLabel: 461 - originalLookupLabel: 461 - center: - x: 38.0 - y: 23.0 - z: 7.0 - color: '#fe98db' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_4: - name: 17Networks_RH_SalVentAttnB_Ins_4 - lookupLabel: 462 - originalLookupLabel: 462 - center: - x: 54.0 - y: 15.0 - z: 6.0 - color: '#fe98dc' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCmp_1: - name: 17Networks_RH_SalVentAttnB_PFCmp_1 - lookupLabel: 463 - originalLookupLabel: 463 - center: - x: 7.0 - y: 35.0 - z: 24.0 - color: '#fe99d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCmp_2: - name: 17Networks_RH_SalVentAttnB_PFCmp_2 - lookupLabel: 464 - originalLookupLabel: 464 - center: - x: 9.0 - y: 25.0 - z: 32.0 - color: '#fe99d7' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCmp_3: - name: 17Networks_RH_SalVentAttnB_PFCmp_3 - lookupLabel: 465 - originalLookupLabel: 465 - center: - x: 5.0 - y: 25.0 - z: 48.0 - color: '#fe99d8' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCmp_4: - name: 17Networks_RH_SalVentAttnB_PFCmp_4 - lookupLabel: 466 - originalLookupLabel: 466 - center: - x: 5.0 - y: 12.0 - z: 61.0 - color: '#fe99d9' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Cinga_1: - name: 17Networks_RH_SalVentAttnB_Cinga_1 - lookupLabel: 467 - originalLookupLabel: 467 - center: - x: 5.0 - y: 21.0 - z: 24.0 - color: '#ff97d5' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_LimbicB_OFC_1: - name: 17Networks_RH_LimbicB_OFC_1 - lookupLabel: 468 - originalLookupLabel: 468 - center: - x: 20.0 - y: 14.0 - z: -22.0 - color: '#7a872f' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_2: - name: 17Networks_RH_LimbicB_OFC_2 - lookupLabel: 469 - originalLookupLabel: 469 - center: - x: 15.0 - y: 28.0 - z: -24.0 - color: '#7a8730' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_3: - name: 17Networks_RH_LimbicB_OFC_3 - lookupLabel: 470 - originalLookupLabel: 470 - center: - x: 11.0 - y: 23.0 - z: -18.0 - color: '#7a8731' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_4: - name: 17Networks_RH_LimbicB_OFC_4 - lookupLabel: 471 - originalLookupLabel: 471 - center: - x: 10.0 - y: 42.0 - z: -23.0 - color: '#7a8732' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_5: - name: 17Networks_RH_LimbicB_OFC_5 - lookupLabel: 472 - originalLookupLabel: 472 - center: - x: 23.0 - y: 28.0 - z: -19.0 - color: '#7a8734' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_6: - name: 17Networks_RH_LimbicB_OFC_6 - lookupLabel: 473 - originalLookupLabel: 473 - center: - x: 23.0 - y: 42.0 - z: -17.0 - color: '#7a8735' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_7: - name: 17Networks_RH_LimbicB_OFC_7 - lookupLabel: 474 - originalLookupLabel: 474 - center: - x: 5.0 - y: 21.0 - z: -21.0 - color: '#7a8736' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_8: - name: 17Networks_RH_LimbicB_OFC_8 - lookupLabel: 475 - originalLookupLabel: 475 - center: - x: 4.0 - y: 50.0 - z: -23.0 - color: '#7a8737' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_9: - name: 17Networks_RH_LimbicB_OFC_9 - lookupLabel: 476 - originalLookupLabel: 476 - center: - x: 14.0 - y: 58.0 - z: -19.0 - color: '#7a8738' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_10: - name: 17Networks_RH_LimbicB_OFC_10 - lookupLabel: 477 - originalLookupLabel: 477 - center: - x: 4.0 - y: 27.0 - z: -11.0 - color: '#7a8739' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_11: - name: 17Networks_RH_LimbicB_OFC_11 - lookupLabel: 478 - originalLookupLabel: 478 - center: - x: 6.0 - y: 63.0 - z: -11.0 - color: '#7a873a' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicA_TempPole_1: - name: 17Networks_RH_LimbicA_TempPole_1 - lookupLabel: 479 - originalLookupLabel: 479 - center: - x: 37.0 - y: 0.0 - z: -44.0 - color: '#dcf8a2' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_2: - name: 17Networks_RH_LimbicA_TempPole_2 - lookupLabel: 480 - originalLookupLabel: 480 - center: - x: 33.0 - y: 14.0 - z: -40.0 - color: '#dcf8a3' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_3: - name: 17Networks_RH_LimbicA_TempPole_3 - lookupLabel: 481 - originalLookupLabel: 481 - center: - x: 28.0 - y: -6.0 - z: -36.0 - color: '#dcf8a4' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_4: - name: 17Networks_RH_LimbicA_TempPole_4 - lookupLabel: 482 - originalLookupLabel: 482 - center: - x: 39.0 - y: -12.0 - z: -34.0 - color: '#dcf8a6' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_5: - name: 17Networks_RH_LimbicA_TempPole_5 - lookupLabel: 483 - originalLookupLabel: 483 - center: - x: 24.0 - y: 6.0 - z: -37.0 - color: '#dcf8a7' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_6: - name: 17Networks_RH_LimbicA_TempPole_6 - lookupLabel: 484 - originalLookupLabel: 484 - center: - x: 52.0 - y: -18.0 - z: -32.0 - color: '#dcf8a8' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_7: - name: 17Networks_RH_LimbicA_TempPole_7 - lookupLabel: 485 - originalLookupLabel: 485 - center: - x: 31.0 - y: 14.0 - z: -30.0 - color: '#dcf8a9' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_8: - name: 17Networks_RH_LimbicA_TempPole_8 - lookupLabel: 486 - originalLookupLabel: 486 - center: - x: 37.0 - y: -31.0 - z: -24.0 - color: '#dcf8aa' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_9: - name: 17Networks_RH_LimbicA_TempPole_9 - lookupLabel: 487 - originalLookupLabel: 487 - center: - x: 44.0 - y: 19.0 - z: -26.0 - color: '#dcf8ab' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_ContA_IPS_1: - name: 17Networks_RH_ContA_IPS_1 - lookupLabel: 488 - originalLookupLabel: 488 - center: - x: 34.0 - y: -72.0 - z: 41.0 - color: '#e69320' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_2: - name: 17Networks_RH_ContA_IPS_2 - lookupLabel: 489 - originalLookupLabel: 489 - center: - x: 54.0 - y: -39.0 - z: 48.0 - color: '#e69321' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_3: - name: 17Networks_RH_ContA_IPS_3 - lookupLabel: 490 - originalLookupLabel: 490 - center: - x: 55.0 - y: -30.0 - z: 52.0 - color: '#e69323' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_4: - name: 17Networks_RH_ContA_IPS_4 - lookupLabel: 491 - originalLookupLabel: 491 - center: - x: 48.0 - y: -37.0 - z: 53.0 - color: '#e69324' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_5: - name: 17Networks_RH_ContA_IPS_5 - lookupLabel: 492 - originalLookupLabel: 492 - center: - x: 40.0 - y: -62.0 - z: 49.0 - color: '#e69325' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_6: - name: 17Networks_RH_ContA_IPS_6 - lookupLabel: 493 - originalLookupLabel: 493 - center: - x: 44.0 - y: -45.0 - z: 45.0 - color: '#e69326' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_7: - name: 17Networks_RH_ContA_IPS_7 - lookupLabel: 494 - originalLookupLabel: 494 - center: - x: 33.0 - y: -66.0 - z: 50.0 - color: '#e69327' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_8: - name: 17Networks_RH_ContA_IPS_8 - lookupLabel: 495 - originalLookupLabel: 495 - center: - x: 37.0 - y: -51.0 - z: 42.0 - color: '#e69328' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCd_1: - name: 17Networks_RH_ContA_PFCd_1 - lookupLabel: 496 - originalLookupLabel: 496 - center: - x: 29.0 - y: 2.0 - z: 53.0 - color: '#e69322' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCd_2: - name: 17Networks_RH_ContA_PFCd_2 - lookupLabel: 497 - originalLookupLabel: 497 - center: - x: 24.0 - y: 12.0 - z: 51.0 - color: '#e69421' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_1: - name: 17Networks_RH_ContA_PFCl_1 - lookupLabel: 498 - originalLookupLabel: 498 - center: - x: 50.0 - y: 30.0 - z: 18.0 - color: '#e59420' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_2: - name: 17Networks_RH_ContA_PFCl_2 - lookupLabel: 499 - originalLookupLabel: 499 - center: - x: 54.0 - y: 18.0 - z: 20.0 - color: '#e59421' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_3: - name: 17Networks_RH_ContA_PFCl_3 - lookupLabel: 500 - originalLookupLabel: 500 - center: - x: 42.0 - y: 43.0 - z: 16.0 - color: '#e59423' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_4: - name: 17Networks_RH_ContA_PFCl_4 - lookupLabel: 501 - originalLookupLabel: 501 - center: - x: 43.0 - y: 18.0 - z: 27.0 - color: '#e59424' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_5: - name: 17Networks_RH_ContA_PFCl_5 - lookupLabel: 502 - originalLookupLabel: 502 - center: - x: 47.0 - y: 30.0 - z: 28.0 - color: '#e59425' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_6: - name: 17Networks_RH_ContA_PFCl_6 - lookupLabel: 503 - originalLookupLabel: 503 - center: - x: 43.0 - y: 8.0 - z: 25.0 - color: '#e59426' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_7: - name: 17Networks_RH_ContA_PFCl_7 - lookupLabel: 504 - originalLookupLabel: 504 - center: - x: 38.0 - y: 10.0 - z: 35.0 - color: '#e59427' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_Cingm_1: - name: 17Networks_RH_ContA_Cingm_1 - lookupLabel: 505 - originalLookupLabel: 505 - center: - x: 5.0 - y: 4.0 - z: 29.0 - color: '#e59422' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContB_Temp_1: - name: 17Networks_RH_ContB_Temp_1 - lookupLabel: 506 - originalLookupLabel: 506 - center: - x: 59.0 - y: -30.0 - z: -23.0 - color: '#88334c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_Temp_2: - name: 17Networks_RH_ContB_Temp_2 - lookupLabel: 507 - originalLookupLabel: 507 - center: - x: 65.0 - y: -24.0 - z: -16.0 - color: '#88334d' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_Temp_3: - name: 17Networks_RH_ContB_Temp_3 - lookupLabel: 508 - originalLookupLabel: 508 - center: - x: 63.0 - y: -41.0 - z: -11.0 - color: '#88334e' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_1: - name: 17Networks_RH_ContB_IPL_1 - lookupLabel: 509 - originalLookupLabel: 509 - center: - x: 58.0 - y: -45.0 - z: 35.0 - color: '#873248' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_2: - name: 17Networks_RH_ContB_IPL_2 - lookupLabel: 510 - originalLookupLabel: 510 - center: - x: 42.0 - y: -71.0 - z: 44.0 - color: '#87324a' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_3: - name: 17Networks_RH_ContB_IPL_3 - lookupLabel: 511 - originalLookupLabel: 511 - center: - x: 56.0 - y: -52.0 - z: 43.0 - color: '#87324b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_4: - name: 17Networks_RH_ContB_IPL_4 - lookupLabel: 512 - originalLookupLabel: 512 - center: - x: 47.0 - y: -56.0 - z: 51.0 - color: '#87324c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_5: - name: 17Networks_RH_ContB_IPL_5 - lookupLabel: 513 - originalLookupLabel: 513 - center: - x: 50.0 - y: -45.0 - z: 51.0 - color: '#87324d' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_1: - name: 17Networks_RH_ContB_PFCld_1 - lookupLabel: 514 - originalLookupLabel: 514 - center: - x: 38.0 - y: 33.0 - z: 39.0 - color: '#873148' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_2: - name: 17Networks_RH_ContB_PFCld_2 - lookupLabel: 515 - originalLookupLabel: 515 - center: - x: 47.0 - y: 18.0 - z: 39.0 - color: '#873149' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_3: - name: 17Networks_RH_ContB_PFCld_3 - lookupLabel: 516 - originalLookupLabel: 516 - center: - x: 42.0 - y: 12.0 - z: 45.0 - color: '#87314b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_4: - name: 17Networks_RH_ContB_PFCld_4 - lookupLabel: 517 - originalLookupLabel: 517 - center: - x: 40.0 - y: 23.0 - z: 50.0 - color: '#87314c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_5: - name: 17Networks_RH_ContB_PFCld_5 - lookupLabel: 518 - originalLookupLabel: 518 - center: - x: 41.0 - y: 7.0 - z: 55.0 - color: '#87314d' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_6: - name: 17Networks_RH_ContB_PFCld_6 - lookupLabel: 519 - originalLookupLabel: 519 - center: - x: 31.0 - y: 16.0 - z: 53.0 - color: '#87314e' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_7: - name: 17Networks_RH_ContB_PFCld_7 - lookupLabel: 520 - originalLookupLabel: 520 - center: - x: 23.0 - y: 25.0 - z: 54.0 - color: '#87314f' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_1: - name: 17Networks_RH_ContB_PFClv_1 - lookupLabel: 521 - originalLookupLabel: 521 - center: - x: 35.0 - y: 37.0 - z: -13.0 - color: '#87314a' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_2: - name: 17Networks_RH_ContB_PFClv_2 - lookupLabel: 522 - originalLookupLabel: 522 - center: - x: 28.0 - y: 56.0 - z: -13.0 - color: '#873150' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_3: - name: 17Networks_RH_ContB_PFClv_3 - lookupLabel: 523 - originalLookupLabel: 523 - center: - x: 42.0 - y: 51.0 - z: -8.0 - color: '#873249' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_4: - name: 17Networks_RH_ContB_PFClv_4 - lookupLabel: 524 - originalLookupLabel: 524 - center: - x: 30.0 - y: 58.0 - z: -3.0 - color: '#87324e' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_5: - name: 17Networks_RH_ContB_PFClv_5 - lookupLabel: 525 - originalLookupLabel: 525 - center: - x: 19.0 - y: 65.0 - z: -3.0 - color: '#87324f' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_6: - name: 17Networks_RH_ContB_PFClv_6 - lookupLabel: 526 - originalLookupLabel: 526 - center: - x: 30.0 - y: 57.0 - z: 9.0 - color: '#873250' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCmp_1: - name: 17Networks_RH_ContB_PFCmp_1 - lookupLabel: 527 - originalLookupLabel: 527 - center: - x: 5.0 - y: 37.0 - z: 48.0 - color: '#86324b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContC_pCun_1: - name: 17Networks_RH_ContC_pCun_1 - lookupLabel: 528 - originalLookupLabel: 528 - center: - x: 17.0 - y: -64.0 - z: 28.0 - color: '#778daf' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_2: - name: 17Networks_RH_ContC_pCun_2 - lookupLabel: 529 - originalLookupLabel: 529 - center: - x: 14.0 - y: -72.0 - z: 40.0 - color: '#778db1' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_3: - name: 17Networks_RH_ContC_pCun_3 - lookupLabel: 530 - originalLookupLabel: 530 - center: - x: 8.0 - y: -50.0 - z: 44.0 - color: '#778db2' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_4: - name: 17Networks_RH_ContC_pCun_4 - lookupLabel: 531 - originalLookupLabel: 531 - center: - x: 7.0 - y: -61.0 - z: 45.0 - color: '#778db3' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_5: - name: 17Networks_RH_ContC_pCun_5 - lookupLabel: 532 - originalLookupLabel: 532 - center: - x: 5.0 - y: -71.0 - z: 48.0 - color: '#778db4' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_6: - name: 17Networks_RH_ContC_pCun_6 - lookupLabel: 533 - originalLookupLabel: 533 - center: - x: 6.0 - y: -54.0 - z: 53.0 - color: '#778db5' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_Cingp_1: - name: 17Networks_RH_ContC_Cingp_1 - lookupLabel: 534 - originalLookupLabel: 534 - center: - x: 7.0 - y: -38.0 - z: 25.0 - color: '#778db6' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_Cingp_2: - name: 17Networks_RH_ContC_Cingp_2 - lookupLabel: 535 - originalLookupLabel: 535 - center: - x: 6.0 - y: -23.0 - z: 29.0 - color: '#778db7' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_Cingp_3: - name: 17Networks_RH_ContC_Cingp_3 - lookupLabel: 536 - originalLookupLabel: 536 - center: - x: 5.0 - y: -10.0 - z: 31.0 - color: '#778db8' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_DefaultA_Temp_1: - name: 17Networks_RH_DefaultA_Temp_1 - lookupLabel: 537 - originalLookupLabel: 537 - center: - x: 60.0 - y: -5.0 - z: -16.0 - color: '#feff02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_1: - name: 17Networks_RH_DefaultA_IPL_1 - lookupLabel: 538 - originalLookupLabel: 538 - center: - x: 50.0 - y: -50.0 - z: 18.0 - color: '#fffe02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_2: - name: 17Networks_RH_DefaultA_IPL_2 - lookupLabel: 539 - originalLookupLabel: 539 - center: - x: 47.0 - y: -59.0 - z: 25.0 - color: '#fffe03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_3: - name: 17Networks_RH_DefaultA_IPL_3 - lookupLabel: 540 - originalLookupLabel: 540 - center: - x: 55.0 - y: -53.0 - z: 28.0 - color: '#fffe04' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_4: - name: 17Networks_RH_DefaultA_IPL_4 - lookupLabel: 541 - originalLookupLabel: 541 - center: - x: 50.0 - y: -62.0 - z: 37.0 - color: '#fffe05' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCd_1: - name: 17Networks_RH_DefaultA_PFCd_1 - lookupLabel: 542 - originalLookupLabel: 542 - center: - x: 24.0 - y: 37.0 - z: 34.0 - color: '#ffff03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCd_2: - name: 17Networks_RH_DefaultA_PFCd_2 - lookupLabel: 543 - originalLookupLabel: 543 - center: - x: 22.0 - y: 41.0 - z: 45.0 - color: '#ffff04' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCd_3: - name: 17Networks_RH_DefaultA_PFCd_3 - lookupLabel: 544 - originalLookupLabel: 544 - center: - x: 29.0 - y: 29.0 - z: 41.0 - color: '#ffff05' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_1: - name: 17Networks_RH_DefaultA_pCunPCC_1 - lookupLabel: 545 - originalLookupLabel: 545 - center: - x: 7.0 - y: -46.0 - z: 15.0 - color: '#fffd01' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_2: - name: 17Networks_RH_DefaultA_pCunPCC_2 - lookupLabel: 546 - originalLookupLabel: 546 - center: - x: 5.0 - y: -53.0 - z: 20.0 - color: '#fffd02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_3: - name: 17Networks_RH_DefaultA_pCunPCC_3 - lookupLabel: 547 - originalLookupLabel: 547 - center: - x: 4.0 - y: -45.0 - z: 29.0 - color: '#fffd03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_4: - name: 17Networks_RH_DefaultA_pCunPCC_4 - lookupLabel: 548 - originalLookupLabel: 548 - center: - x: 5.0 - y: -63.0 - z: 28.0 - color: '#fffd04' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_5: - name: 17Networks_RH_DefaultA_pCunPCC_5 - lookupLabel: 549 - originalLookupLabel: 549 - center: - x: 11.0 - y: -49.0 - z: 29.0 - color: '#fffd05' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_6: - name: 17Networks_RH_DefaultA_pCunPCC_6 - lookupLabel: 550 - originalLookupLabel: 550 - center: - x: 6.0 - y: -36.0 - z: 34.0 - color: '#fffd06' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_7: - name: 17Networks_RH_DefaultA_pCunPCC_7 - lookupLabel: 551 - originalLookupLabel: 551 - center: - x: 4.0 - y: -24.0 - z: 37.0 - color: '#fffd07' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_8: - name: 17Networks_RH_DefaultA_pCunPCC_8 - lookupLabel: 552 - originalLookupLabel: 552 - center: - x: 5.0 - y: -67.0 - z: 36.0 - color: '#fffe00' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_9: - name: 17Networks_RH_DefaultA_pCunPCC_9 - lookupLabel: 553 - originalLookupLabel: 553 - center: - x: 9.0 - y: -54.0 - z: 35.0 - color: '#fffe01' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_10: - name: 17Networks_RH_DefaultA_pCunPCC_10 - lookupLabel: 554 - originalLookupLabel: 554 - center: - x: 10.0 - y: -43.0 - z: 38.0 - color: '#fffe06' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_1: - name: 17Networks_RH_DefaultA_PFCm_1 - lookupLabel: 555 - originalLookupLabel: 555 - center: - x: 6.0 - y: 46.0 - z: -11.0 - color: '#fdff01' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_2: - name: 17Networks_RH_DefaultA_PFCm_2 - lookupLabel: 556 - originalLookupLabel: 556 - center: - x: 8.0 - y: 53.0 - z: -2.0 - color: '#fdff02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_3: - name: 17Networks_RH_DefaultA_PFCm_3 - lookupLabel: 557 - originalLookupLabel: 557 - center: - x: 6.0 - y: 39.0 - z: -1.0 - color: '#fdff03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_4: - name: 17Networks_RH_DefaultA_PFCm_4 - lookupLabel: 558 - originalLookupLabel: 558 - center: - x: 8.0 - y: 67.0 - z: 3.0 - color: '#fdff04' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_5: - name: 17Networks_RH_DefaultA_PFCm_5 - lookupLabel: 559 - originalLookupLabel: 559 - center: - x: 7.0 - y: 56.0 - z: 11.0 - color: '#fdff05' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_6: - name: 17Networks_RH_DefaultA_PFCm_6 - lookupLabel: 560 - originalLookupLabel: 560 - center: - x: 9.0 - y: 43.0 - z: 10.0 - color: '#fdff06' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_7: - name: 17Networks_RH_DefaultA_PFCm_7 - lookupLabel: 561 - originalLookupLabel: 561 - center: - x: 18.0 - y: 65.0 - z: 15.0 - color: '#fdff07' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_8: - name: 17Networks_RH_DefaultA_PFCm_8 - lookupLabel: 562 - originalLookupLabel: 562 - center: - x: 6.0 - y: 30.0 - z: 13.0 - color: '#faf900' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultB_Temp_1: - name: 17Networks_RH_DefaultB_Temp_1 - lookupLabel: 563 - originalLookupLabel: 563 - center: - x: 63.0 - y: -24.0 - z: -7.0 - color: '#ce3e50' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_Temp_2: - name: 17Networks_RH_DefaultB_Temp_2 - lookupLabel: 564 - originalLookupLabel: 564 - center: - x: 63.0 - y: -37.0 - z: 0.0 - color: '#ce3e51' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_AntTemp_1: - name: 17Networks_RH_DefaultB_AntTemp_1 - lookupLabel: 565 - originalLookupLabel: 565 - center: - x: 48.0 - y: 10.0 - z: -35.0 - color: '#ce3f4f' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_AntTemp_2: - name: 17Networks_RH_DefaultB_AntTemp_2 - lookupLabel: 566 - originalLookupLabel: 566 - center: - x: 58.0 - y: -8.0 - z: -27.0 - color: '#ce3f50' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_AntTemp_3: - name: 17Networks_RH_DefaultB_AntTemp_3 - lookupLabel: 567 - originalLookupLabel: 567 - center: - x: 52.0 - y: 8.0 - z: -22.0 - color: '#ce3f51' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_1: - name: 17Networks_RH_DefaultB_PFCd_1 - lookupLabel: 568 - originalLookupLabel: 568 - center: - x: 7.0 - y: 61.0 - z: 27.0 - color: '#ce3f4e' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_2: - name: 17Networks_RH_DefaultB_PFCd_2 - lookupLabel: 569 - originalLookupLabel: 569 - center: - x: 5.0 - y: 48.0 - z: 30.0 - color: '#ce3f52' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_3: - name: 17Networks_RH_DefaultB_PFCd_3 - lookupLabel: 570 - originalLookupLabel: 570 - center: - x: 16.0 - y: 54.0 - z: 34.0 - color: '#ce3f53' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_4: - name: 17Networks_RH_DefaultB_PFCd_4 - lookupLabel: 571 - originalLookupLabel: 571 - center: - x: 10.0 - y: 50.0 - z: 46.0 - color: '#ce3f54' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_5: - name: 17Networks_RH_DefaultB_PFCd_5 - lookupLabel: 572 - originalLookupLabel: 572 - center: - x: 15.0 - y: 37.0 - z: 53.0 - color: '#ce3f55' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_6: - name: 17Networks_RH_DefaultB_PFCd_6 - lookupLabel: 573 - originalLookupLabel: 573 - center: - x: 9.0 - y: 26.0 - z: 60.0 - color: '#ce3f56' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_1: - name: 17Networks_RH_DefaultB_PFCv_1 - lookupLabel: 574 - originalLookupLabel: 574 - center: - x: 29.0 - y: 19.0 - z: -20.0 - color: '#cd3e4c' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_2: - name: 17Networks_RH_DefaultB_PFCv_2 - lookupLabel: 575 - originalLookupLabel: 575 - center: - x: 39.0 - y: 25.0 - z: -16.0 - color: '#cd3e4e' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_3: - name: 17Networks_RH_DefaultB_PFCv_3 - lookupLabel: 576 - originalLookupLabel: 576 - center: - x: 47.0 - y: 31.0 - z: -11.0 - color: '#cd3e4f' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_4: - name: 17Networks_RH_DefaultB_PFCv_4 - lookupLabel: 577 - originalLookupLabel: 577 - center: - x: 50.0 - y: 32.0 - z: -2.0 - color: '#cd3e50' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_5: - name: 17Networks_RH_DefaultB_PFCv_5 - lookupLabel: 578 - originalLookupLabel: 578 - center: - x: 54.0 - y: 23.0 - z: 7.0 - color: '#cd3e51' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultC_IPL_1: - name: 17Networks_RH_DefaultC_IPL_1 - lookupLabel: 579 - originalLookupLabel: 579 - center: - x: 47.0 - y: -67.0 - z: 20.0 - color: '#000184' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_IPL_2: - name: 17Networks_RH_DefaultC_IPL_2 - lookupLabel: 580 - originalLookupLabel: 580 - center: - x: 45.0 - y: -77.0 - z: 27.0 - color: '#000185' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_IPL_3: - name: 17Networks_RH_DefaultC_IPL_3 - lookupLabel: 581 - originalLookupLabel: 581 - center: - x: 50.0 - y: -69.0 - z: 31.0 - color: '#000186' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_Rsp_1: - name: 17Networks_RH_DefaultC_Rsp_1 - lookupLabel: 582 - originalLookupLabel: 582 - center: - x: 13.0 - y: -45.0 - z: 3.0 - color: '#010083' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_Rsp_2: - name: 17Networks_RH_DefaultC_Rsp_2 - lookupLabel: 583 - originalLookupLabel: 583 - center: - x: 10.0 - y: -51.0 - z: 9.0 - color: '#010084' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_Rsp_3: - name: 17Networks_RH_DefaultC_Rsp_3 - lookupLabel: 584 - originalLookupLabel: 584 - center: - x: 15.0 - y: -57.0 - z: 20.0 - color: '#010085' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_PHC_1: - name: 17Networks_RH_DefaultC_PHC_1 - lookupLabel: 585 - originalLookupLabel: 585 - center: - x: 22.0 - y: -17.0 - z: -27.0 - color: '#010086' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_PHC_2: - name: 17Networks_RH_DefaultC_PHC_2 - lookupLabel: 586 - originalLookupLabel: 586 - center: - x: 30.0 - y: -30.0 - z: -19.0 - color: '#010087' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_PHC_3: - name: 17Networks_RH_DefaultC_PHC_3 - lookupLabel: 587 - originalLookupLabel: 587 - center: - x: 18.0 - y: -31.0 - z: -14.0 - color: '#010088' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_TempPar_1: - name: 17Networks_RH_TempPar_1 - lookupLabel: 588 - originalLookupLabel: 588 - center: - x: 55.0 - y: -2.0 - z: -11.0 - color: '#0c30f9' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_2: - name: 17Networks_RH_TempPar_2 - lookupLabel: 589 - originalLookupLabel: 589 - center: - x: 49.0 - y: -17.0 - z: -10.0 - color: '#0c30fa' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_3: - name: 17Networks_RH_TempPar_3 - lookupLabel: 590 - originalLookupLabel: 590 - center: - x: 49.0 - y: -25.0 - z: -5.0 - color: '#0c30fb' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_4: - name: 17Networks_RH_TempPar_4 - lookupLabel: 591 - originalLookupLabel: 591 - center: - x: 60.0 - y: -14.0 - z: -4.0 - color: '#0c30fc' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_5: - name: 17Networks_RH_TempPar_5 - lookupLabel: 592 - originalLookupLabel: 592 - center: - x: 50.0 - y: -35.0 - z: 3.0 - color: '#0c30fd' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_6: - name: 17Networks_RH_TempPar_6 - lookupLabel: 593 - originalLookupLabel: 593 - center: - x: 61.0 - y: -25.0 - z: 2.0 - color: '#0c30ff' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_7: - name: 17Networks_RH_TempPar_7 - lookupLabel: 594 - originalLookupLabel: 594 - center: - x: 60.0 - y: -45.0 - z: 6.0 - color: '#0929fa' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_8: - name: 17Networks_RH_TempPar_8 - lookupLabel: 595 - originalLookupLabel: 595 - center: - x: 56.0 - y: -54.0 - z: 10.0 - color: '#0929fb' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_9: - name: 17Networks_RH_TempPar_9 - lookupLabel: 596 - originalLookupLabel: 596 - center: - x: 51.0 - y: -41.0 - z: 12.0 - color: '#0929fc' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_10: - name: 17Networks_RH_TempPar_10 - lookupLabel: 597 - originalLookupLabel: 597 - center: - x: 57.0 - y: -47.0 - z: 13.0 - color: '#0929fd' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_11: - name: 17Networks_RH_TempPar_11 - lookupLabel: 598 - originalLookupLabel: 598 - center: - x: 64.0 - y: -35.0 - z: 11.0 - color: '#0929fe' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_12: - name: 17Networks_RH_TempPar_12 - lookupLabel: 599 - originalLookupLabel: 599 - center: - x: 62.0 - y: -40.0 - z: 20.0 - color: '#092af7' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_13: - name: 17Networks_RH_TempPar_13 - lookupLabel: 600 - originalLookupLabel: 600 - center: - x: 54.0 - y: -44.0 - z: 23.0 - color: '#092af8' - hemisphere: right - hasParent: - - RH_TempPar - versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_600Parcels_17Networks_order_FSLMNI152_1mm.nii.gz diff --git a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-600_res-1_desc-ordered_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-600_res-1_desc-ordered_dseg.yaml similarity index 99% rename from tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-600_res-1_desc-ordered_dseg.yaml rename to tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-600_res-1_desc-ordered_dseg.yaml index ba2170c74..a7a93743a 100644 --- a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-600_res-1_desc-ordered_dseg.yaml +++ b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-600_res-1_desc-ordered_dseg.yaml @@ -1,14 +1,12 @@ name: Schaefer2018 abbreviation: Schaefer2018 versionIdentifier: '2018' -coordinateSpace: - name: MNI152 - abbreviation: FSLMNI152 - nativeUnit: mm +coordinateSpace: FSLMNI152 terminology: label: Schaefer2018_600Parcels_17Networks_order versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_600Parcels_17Networks_order_FSLMNI152_1mm.nii.gz + dataLocation: + schaefer2018_original_mni/Schaefer2018_600Parcels_17Networks_order_FSLMNI152_1mm.nii.gz entities: 17Networks_LH_VisCent_Striate_1: name: 17Networks_LH_VisCent_Striate_1 diff --git a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-700_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-700_dseg.yaml deleted file mode 100644 index 5dce1c66c..000000000 --- a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-700_dseg.yaml +++ /dev/null @@ -1,8681 +0,0 @@ -name: Schaefer2018 -abbreviation: Schaefer2018 -versionIdentifier: '2018' -coordinateSpace: MNI152NLin6Asym -terminology: - label: Schaefer2018_700Parcels_17Networks_order - entities: - LH_VisCent: - name: LH_VisCent - lookupLabel: -1 - hemisphere: left - center: - x: -25.2 - y: -86.0 - z: -1.7 - LH_VisPeri: - name: LH_VisPeri - lookupLabel: -2 - hemisphere: left - center: - x: -12.3 - y: -69.0 - z: 11.2 - LH_SomMotA: - name: LH_SomMotA - lookupLabel: -3 - hemisphere: left - center: - x: -24.6 - y: -24.8 - z: 61.7 - LH_SomMotB: - name: LH_SomMotB - lookupLabel: -4 - hemisphere: left - center: - x: -50.8 - y: -15.0 - z: 18.9 - LH_DorsAttnA: - name: LH_DorsAttnA - lookupLabel: -5 - hemisphere: left - center: - x: -32.9 - y: -65.1 - z: 24.4 - LH_DorsAttnB: - name: LH_DorsAttnB - lookupLabel: -6 - hemisphere: left - center: - x: -37.1 - y: -29.0 - z: 49.5 - LH_SalVentAttnA: - name: LH_SalVentAttnA - lookupLabel: -7 - hemisphere: left - center: - x: -28.0 - y: -13.0 - z: 30.8 - LH_SalVentAttnB: - name: LH_SalVentAttnB - lookupLabel: -8 - hemisphere: left - center: - x: -29.1 - y: 17.1 - z: 20.5 - LH_LimbicB: - name: LH_LimbicB - lookupLabel: -9 - hemisphere: left - center: - x: -13.1 - y: 33.0 - z: -18.7 - LH_LimbicA: - name: LH_LimbicA - lookupLabel: -10 - hemisphere: left - center: - x: -35.6 - y: -7.2 - z: -30.6 - LH_ContA: - name: LH_ContA - lookupLabel: -11 - hemisphere: left - center: - x: -39.5 - y: -12.5 - z: 30.2 - LH_ContB: - name: LH_ContB - lookupLabel: -12 - hemisphere: left - center: - x: -40.8 - y: -7.2 - z: 25.1 - LH_ContC: - name: LH_ContC - lookupLabel: -13 - hemisphere: left - center: - x: -5.8 - y: -53.0 - z: 39.4 - LH_DefaultA: - name: LH_DefaultA - lookupLabel: -14 - hemisphere: left - center: - x: -12.7 - y: -8.1 - z: 26.5 - LH_DefaultB: - name: LH_DefaultB - lookupLabel: -15 - hemisphere: left - center: - x: -37.7 - y: 5.3 - z: 14.6 - LH_DefaultC: - name: LH_DefaultC - lookupLabel: -16 - hemisphere: left - center: - x: -20.2 - y: -50.2 - z: 3.8 - LH_TempPar: - name: LH_TempPar - lookupLabel: -17 - hemisphere: left - center: - x: -57.1 - y: -37.2 - z: 7.0 - RH_VisCent: - name: RH_VisCent - lookupLabel: -18 - hemisphere: right - center: - x: 28.3 - y: -81.1 - z: -3.3 - RH_VisPeri: - name: RH_VisPeri - lookupLabel: -19 - hemisphere: right - center: - x: 14.3 - y: -66.5 - z: 11.4 - RH_SomMotA: - name: RH_SomMotA - lookupLabel: -20 - hemisphere: right - center: - x: 24.4 - y: -24.1 - z: 63.6 - RH_SomMotB: - name: RH_SomMotB - lookupLabel: -21 - hemisphere: right - center: - x: 51.3 - y: -11.2 - z: 17.7 - RH_DorsAttnA: - name: RH_DorsAttnA - lookupLabel: -22 - hemisphere: right - center: - x: 37.5 - y: -62.6 - z: 23.1 - RH_DorsAttnB: - name: RH_DorsAttnB - lookupLabel: -23 - hemisphere: right - center: - x: 40.3 - y: -27.3 - z: 48.7 - RH_SalVentAttnA: - name: RH_SalVentAttnA - lookupLabel: -24 - hemisphere: right - center: - x: 32.3 - y: -9.5 - z: 28.8 - RH_SalVentAttnB: - name: RH_SalVentAttnB - lookupLabel: -25 - hemisphere: right - center: - x: 32.8 - y: 24.4 - z: 19.9 - RH_LimbicB: - name: RH_LimbicB - lookupLabel: -26 - hemisphere: right - center: - x: 12.3 - y: 38.1 - z: -18.5 - RH_LimbicA: - name: RH_LimbicA - lookupLabel: -27 - hemisphere: right - center: - x: 35.1 - y: -3.9 - z: -32.2 - RH_ContA: - name: RH_ContA - lookupLabel: -28 - hemisphere: right - center: - x: 40.4 - y: -10.7 - z: 32.1 - RH_ContB: - name: RH_ContB - lookupLabel: -29 - hemisphere: right - center: - x: 42.0 - y: 3.0 - z: 23.3 - RH_ContC: - name: RH_ContC - lookupLabel: -30 - hemisphere: right - center: - x: 8.2 - y: -57.4 - z: 41.3 - RH_DefaultA: - name: RH_DefaultA - lookupLabel: -31 - hemisphere: right - center: - x: 20.5 - y: -12.2 - z: 20.9 - RH_DefaultB: - name: RH_DefaultB - lookupLabel: -32 - hemisphere: right - center: - x: 36.5 - y: 21.4 - z: 2.1 - RH_DefaultC: - name: RH_DefaultC - lookupLabel: -33 - hemisphere: right - center: - x: 23.9 - y: -46.0 - z: 2.9 - RH_TempPar: - name: RH_TempPar - lookupLabel: -34 - hemisphere: right - center: - x: 56.4 - y: -29.1 - z: 3.4 - 17Networks_LH_VisCent_Striate_1: - name: 17Networks_LH_VisCent_Striate_1 - lookupLabel: 1 - originalLookupLabel: 1 - center: - x: -4.0 - y: -88.0 - z: -12.0 - color: '#781287' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_Striate_2: - name: 17Networks_LH_VisCent_Striate_2 - lookupLabel: 2 - originalLookupLabel: 2 - center: - x: -9.0 - y: -98.0 - z: -12.0 - color: '#781288' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_Striate_3: - name: 17Networks_LH_VisCent_Striate_3 - lookupLabel: 3 - originalLookupLabel: 3 - center: - x: -6.0 - y: -93.0 - z: 1.0 - color: '#781289' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_Striate_4: - name: 17Networks_LH_VisCent_Striate_4 - lookupLabel: 4 - originalLookupLabel: 4 - center: - x: -5.0 - y: -102.0 - z: 2.0 - color: '#78128a' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_1: - name: 17Networks_LH_VisCent_ExStr_1 - lookupLabel: 5 - originalLookupLabel: 5 - center: - x: -35.0 - y: -59.0 - z: -17.0 - color: '#781187' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_2: - name: 17Networks_LH_VisCent_ExStr_2 - lookupLabel: 6 - originalLookupLabel: 6 - center: - x: -27.0 - y: -68.0 - z: -11.0 - color: '#781280' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_3: - name: 17Networks_LH_VisCent_ExStr_3 - lookupLabel: 7 - originalLookupLabel: 7 - center: - x: -34.0 - y: -78.0 - z: -15.0 - color: '#781281' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_4: - name: 17Networks_LH_VisCent_ExStr_4 - lookupLabel: 8 - originalLookupLabel: 8 - center: - x: -24.0 - y: -58.0 - z: -9.0 - color: '#781282' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_5: - name: 17Networks_LH_VisCent_ExStr_5 - lookupLabel: 9 - originalLookupLabel: 9 - center: - x: -44.0 - y: -77.0 - z: -12.0 - color: '#781283' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_6: - name: 17Networks_LH_VisCent_ExStr_6 - lookupLabel: 10 - originalLookupLabel: 10 - center: - x: -18.0 - y: -77.0 - z: -11.0 - color: '#781284' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_7: - name: 17Networks_LH_VisCent_ExStr_7 - lookupLabel: 11 - originalLookupLabel: 11 - center: - x: -19.0 - y: -88.0 - z: -16.0 - color: '#781285' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_8: - name: 17Networks_LH_VisCent_ExStr_8 - lookupLabel: 12 - originalLookupLabel: 12 - center: - x: -33.0 - y: -91.0 - z: -15.0 - color: '#781286' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_9: - name: 17Networks_LH_VisCent_ExStr_9 - lookupLabel: 13 - originalLookupLabel: 13 - center: - x: -44.0 - y: -85.0 - z: -4.0 - color: '#78128b' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_10: - name: 17Networks_LH_VisCent_ExStr_10 - lookupLabel: 14 - originalLookupLabel: 14 - center: - x: -20.0 - y: -99.0 - z: -12.0 - color: '#78128c' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_11: - name: 17Networks_LH_VisCent_ExStr_11 - lookupLabel: 15 - originalLookupLabel: 15 - center: - x: -32.0 - y: -94.0 - z: -3.0 - color: '#78128d' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_12: - name: 17Networks_LH_VisCent_ExStr_12 - lookupLabel: 16 - originalLookupLabel: 16 - center: - x: -46.0 - y: -75.0 - z: 5.0 - color: '#78128e' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_13: - name: 17Networks_LH_VisCent_ExStr_13 - lookupLabel: 17 - originalLookupLabel: 17 - center: - x: -40.0 - y: -88.0 - z: 5.0 - color: '#781387' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_14: - name: 17Networks_LH_VisCent_ExStr_14 - lookupLabel: 18 - originalLookupLabel: 18 - center: - x: -18.0 - y: -102.0 - z: 3.0 - color: '#781388' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_15: - name: 17Networks_LH_VisCent_ExStr_15 - lookupLabel: 19 - originalLookupLabel: 19 - center: - x: -31.0 - y: -89.0 - z: 7.0 - color: '#781389' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_16: - name: 17Networks_LH_VisCent_ExStr_16 - lookupLabel: 20 - originalLookupLabel: 20 - center: - x: -25.0 - y: -95.0 - z: 9.0 - color: '#78138a' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_17: - name: 17Networks_LH_VisCent_ExStr_17 - lookupLabel: 21 - originalLookupLabel: 21 - center: - x: -12.0 - y: -99.0 - z: 15.0 - color: '#78138b' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_18: - name: 17Networks_LH_VisCent_ExStr_18 - lookupLabel: 22 - originalLookupLabel: 22 - center: - x: -32.0 - y: -90.0 - z: 15.0 - color: '#78138c' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_19: - name: 17Networks_LH_VisCent_ExStr_19 - lookupLabel: 23 - originalLookupLabel: 23 - center: - x: -21.0 - y: -90.0 - z: 21.0 - color: '#78138d' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_20: - name: 17Networks_LH_VisCent_ExStr_20 - lookupLabel: 24 - originalLookupLabel: 24 - center: - x: -25.0 - y: -80.0 - z: 25.0 - color: '#78138e' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisPeri_StriCal_1: - name: 17Networks_LH_VisPeri_StriCal_1 - lookupLabel: 25 - originalLookupLabel: 25 - center: - x: -11.0 - y: -61.0 - z: 3.0 - color: '#ff0001' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_2: - name: 17Networks_LH_VisPeri_StriCal_2 - lookupLabel: 26 - originalLookupLabel: 26 - center: - x: -6.0 - y: -69.0 - z: 6.0 - color: '#ff0002' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_3: - name: 17Networks_LH_VisPeri_StriCal_3 - lookupLabel: 27 - originalLookupLabel: 27 - center: - x: -7.0 - y: -83.0 - z: 3.0 - color: '#ff0003' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_4: - name: 17Networks_LH_VisPeri_StriCal_4 - lookupLabel: 28 - originalLookupLabel: 28 - center: - x: -19.0 - y: -66.0 - z: 6.0 - color: '#ff0004' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_5: - name: 17Networks_LH_VisPeri_StriCal_5 - lookupLabel: 29 - originalLookupLabel: 29 - center: - x: -10.0 - y: -73.0 - z: 11.0 - color: '#ff0005' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_6: - name: 17Networks_LH_VisPeri_StriCal_6 - lookupLabel: 30 - originalLookupLabel: 30 - center: - x: -2.0 - y: -79.0 - z: 12.0 - color: '#ff0006' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_1: - name: 17Networks_LH_VisPeri_ExStrInf_1 - lookupLabel: 31 - originalLookupLabel: 31 - center: - x: -29.0 - y: -47.0 - z: -5.0 - color: '#ff0000' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_2: - name: 17Networks_LH_VisPeri_ExStrInf_2 - lookupLabel: 32 - originalLookupLabel: 32 - center: - x: -21.0 - y: -51.0 - z: -6.0 - color: '#ff0007' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_3: - name: 17Networks_LH_VisPeri_ExStrInf_3 - lookupLabel: 33 - originalLookupLabel: 33 - center: - x: -12.0 - y: -64.0 - z: -4.0 - color: '#ff0008' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_4: - name: 17Networks_LH_VisPeri_ExStrInf_4 - lookupLabel: 34 - originalLookupLabel: 34 - center: - x: -13.0 - y: -50.0 - z: -7.0 - color: '#ff0101' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_5: - name: 17Networks_LH_VisPeri_ExStrInf_5 - lookupLabel: 35 - originalLookupLabel: 35 - center: - x: -7.0 - y: -75.0 - z: -5.0 - color: '#ff0102' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_6: - name: 17Networks_LH_VisPeri_ExStrInf_6 - lookupLabel: 36 - originalLookupLabel: 36 - center: - x: -13.0 - y: -41.0 - z: -5.0 - color: '#ff0103' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_7: - name: 17Networks_LH_VisPeri_ExStrInf_7 - lookupLabel: 37 - originalLookupLabel: 37 - center: - x: -18.0 - y: -52.0 - z: -1.0 - color: '#ff0104' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_8: - name: 17Networks_LH_VisPeri_ExStrInf_8 - lookupLabel: 38 - originalLookupLabel: 38 - center: - x: -21.0 - y: -56.0 - z: 5.0 - color: '#ff0105' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_1: - name: 17Networks_LH_VisPeri_ExStrSup_1 - lookupLabel: 39 - originalLookupLabel: 39 - center: - x: -3.0 - y: -92.0 - z: 17.0 - color: '#ff0106' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_2: - name: 17Networks_LH_VisPeri_ExStrSup_2 - lookupLabel: 40 - originalLookupLabel: 40 - center: - x: -16.0 - y: -65.0 - z: 15.0 - color: '#ff0107' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_3: - name: 17Networks_LH_VisPeri_ExStrSup_3 - lookupLabel: 41 - originalLookupLabel: 41 - center: - x: -7.0 - y: -68.0 - z: 16.0 - color: '#ff0200' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_4: - name: 17Networks_LH_VisPeri_ExStrSup_4 - lookupLabel: 42 - originalLookupLabel: 42 - center: - x: -2.0 - y: -80.0 - z: 24.0 - color: '#ff0201' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_5: - name: 17Networks_LH_VisPeri_ExStrSup_5 - lookupLabel: 43 - originalLookupLabel: 43 - center: - x: -13.0 - y: -75.0 - z: 24.0 - color: '#ff0202' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_6: - name: 17Networks_LH_VisPeri_ExStrSup_6 - lookupLabel: 44 - originalLookupLabel: 44 - center: - x: -17.0 - y: -90.0 - z: 30.0 - color: '#ff0203' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_7: - name: 17Networks_LH_VisPeri_ExStrSup_7 - lookupLabel: 45 - originalLookupLabel: 45 - center: - x: -8.0 - y: -89.0 - z: 35.0 - color: '#ff0204' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_8: - name: 17Networks_LH_VisPeri_ExStrSup_8 - lookupLabel: 46 - originalLookupLabel: 46 - center: - x: -12.0 - y: -81.0 - z: 37.0 - color: '#ff0205' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_9: - name: 17Networks_LH_VisPeri_ExStrSup_9 - lookupLabel: 47 - originalLookupLabel: 47 - center: - x: -16.0 - y: -81.0 - z: 47.0 - color: '#ff0206' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_SomMotA_1: - name: 17Networks_LH_SomMotA_1 - lookupLabel: 48 - originalLookupLabel: 48 - center: - x: -57.0 - y: -17.0 - z: 41.0 - color: '#4680b4' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_2: - name: 17Networks_LH_SomMotA_2 - lookupLabel: 49 - originalLookupLabel: 49 - center: - x: -9.0 - y: -7.0 - z: 43.0 - color: '#4681ad' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_3: - name: 17Networks_LH_SomMotA_3 - lookupLabel: 50 - originalLookupLabel: 50 - center: - x: -53.0 - y: -23.0 - z: 48.0 - color: '#4681ae' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_4: - name: 17Networks_LH_SomMotA_4 - lookupLabel: 51 - originalLookupLabel: 51 - center: - x: -52.0 - y: -15.0 - z: 52.0 - color: '#4681af' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_5: - name: 17Networks_LH_SomMotA_5 - lookupLabel: 52 - originalLookupLabel: 52 - center: - x: -43.0 - y: -12.0 - z: 50.0 - color: '#4681b0' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_6: - name: 17Networks_LH_SomMotA_6 - lookupLabel: 53 - originalLookupLabel: 53 - center: - x: -51.0 - y: -23.0 - z: 57.0 - color: '#4681b1' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_7: - name: 17Networks_LH_SomMotA_7 - lookupLabel: 54 - originalLookupLabel: 54 - center: - x: -46.0 - y: -32.0 - z: 54.0 - color: '#4681b2' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_8: - name: 17Networks_LH_SomMotA_8 - lookupLabel: 55 - originalLookupLabel: 55 - center: - x: -7.0 - y: -14.0 - z: 49.0 - color: '#4681b3' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_9: - name: 17Networks_LH_SomMotA_9 - lookupLabel: 56 - originalLookupLabel: 56 - center: - x: -40.0 - y: -20.0 - z: 49.0 - color: '#4681b4' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_10: - name: 17Networks_LH_SomMotA_10 - lookupLabel: 57 - originalLookupLabel: 57 - center: - x: -42.0 - y: -9.0 - z: 61.0 - color: '#4682ad' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_11: - name: 17Networks_LH_SomMotA_11 - lookupLabel: 58 - originalLookupLabel: 58 - center: - x: -39.0 - y: -18.0 - z: 56.0 - color: '#4682ae' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_12: - name: 17Networks_LH_SomMotA_12 - lookupLabel: 59 - originalLookupLabel: 59 - center: - x: -43.0 - y: -35.0 - z: 63.0 - color: '#4682af' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_13: - name: 17Networks_LH_SomMotA_13 - lookupLabel: 60 - originalLookupLabel: 60 - center: - x: -32.0 - y: -42.0 - z: 56.0 - color: '#4682b0' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_14: - name: 17Networks_LH_SomMotA_14 - lookupLabel: 61 - originalLookupLabel: 61 - center: - x: -5.0 - y: -26.0 - z: 54.0 - color: '#4682b1' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_15: - name: 17Networks_LH_SomMotA_15 - lookupLabel: 62 - originalLookupLabel: 62 - center: - x: -39.0 - y: -27.0 - z: 58.0 - color: '#4682b2' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_16: - name: 17Networks_LH_SomMotA_16 - lookupLabel: 63 - originalLookupLabel: 63 - center: - x: -4.0 - y: -9.0 - z: 60.0 - color: '#4682b3' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_17: - name: 17Networks_LH_SomMotA_17 - lookupLabel: 64 - originalLookupLabel: 64 - center: - x: -8.0 - y: -41.0 - z: 58.0 - color: '#4682b5' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_18: - name: 17Networks_LH_SomMotA_18 - lookupLabel: 65 - originalLookupLabel: 65 - center: - x: -33.0 - y: -18.0 - z: 69.0 - color: '#4682b6' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_19: - name: 17Networks_LH_SomMotA_19 - lookupLabel: 66 - originalLookupLabel: 66 - center: - x: -29.0 - y: -39.0 - z: 65.0 - color: '#4682b7' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_20: - name: 17Networks_LH_SomMotA_20 - lookupLabel: 67 - originalLookupLabel: 67 - center: - x: -29.0 - y: -24.0 - z: 61.0 - color: '#4682b8' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_21: - name: 17Networks_LH_SomMotA_21 - lookupLabel: 68 - originalLookupLabel: 68 - center: - x: -29.0 - y: -29.0 - z: 65.0 - color: '#4682b9' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_22: - name: 17Networks_LH_SomMotA_22 - lookupLabel: 69 - originalLookupLabel: 69 - center: - x: -24.0 - y: -12.0 - z: 68.0 - color: '#4682ba' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_23: - name: 17Networks_LH_SomMotA_23 - lookupLabel: 70 - originalLookupLabel: 70 - center: - x: -4.0 - y: -20.0 - z: 65.0 - color: '#4682bb' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_24: - name: 17Networks_LH_SomMotA_24 - lookupLabel: 71 - originalLookupLabel: 71 - center: - x: -3.0 - y: -32.0 - z: 62.0 - color: '#4683b4' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_25: - name: 17Networks_LH_SomMotA_25 - lookupLabel: 72 - originalLookupLabel: 72 - center: - x: -8.0 - y: -43.0 - z: 70.0 - color: '#4683b5' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_26: - name: 17Networks_LH_SomMotA_26 - lookupLabel: 73 - originalLookupLabel: 73 - center: - x: -19.0 - y: -24.0 - z: 68.0 - color: '#4683b6' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_27: - name: 17Networks_LH_SomMotA_27 - lookupLabel: 74 - originalLookupLabel: 74 - center: - x: -19.0 - y: -46.0 - z: 67.0 - color: '#4683b7' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_28: - name: 17Networks_LH_SomMotA_28 - lookupLabel: 75 - originalLookupLabel: 75 - center: - x: -13.0 - y: -6.0 - z: 71.0 - color: '#4683b8' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_29: - name: 17Networks_LH_SomMotA_29 - lookupLabel: 76 - originalLookupLabel: 76 - center: - x: -20.0 - y: -31.0 - z: 67.0 - color: '#4683b9' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_30: - name: 17Networks_LH_SomMotA_30 - lookupLabel: 77 - originalLookupLabel: 77 - center: - x: -22.0 - y: -36.0 - z: 73.0 - color: '#4683ba' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_31: - name: 17Networks_LH_SomMotA_31 - lookupLabel: 78 - originalLookupLabel: 78 - center: - x: -16.0 - y: -14.0 - z: 74.0 - color: '#4683bb' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_32: - name: 17Networks_LH_SomMotA_32 - lookupLabel: 79 - originalLookupLabel: 79 - center: - x: -7.0 - y: -18.0 - z: 75.0 - color: '#4684b4' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_33: - name: 17Networks_LH_SomMotA_33 - lookupLabel: 80 - originalLookupLabel: 80 - center: - x: -3.0 - y: -33.0 - z: 71.0 - color: '#4684b5' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_34: - name: 17Networks_LH_SomMotA_34 - lookupLabel: 81 - originalLookupLabel: 81 - center: - x: -15.0 - y: -38.0 - z: 77.0 - color: '#4684b6' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_35: - name: 17Networks_LH_SomMotA_35 - lookupLabel: 82 - originalLookupLabel: 82 - center: - x: -12.0 - y: -27.0 - z: 73.0 - color: '#4684b7' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_36: - name: 17Networks_LH_SomMotA_36 - lookupLabel: 83 - originalLookupLabel: 83 - center: - x: -12.0 - y: -33.0 - z: 72.0 - color: '#4684b8' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotB_Cent_1: - name: 17Networks_LH_SomMotB_Cent_1 - lookupLabel: 84 - originalLookupLabel: 84 - center: - x: -60.0 - y: -3.0 - z: 19.0 - color: '#2acca2' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_2: - name: 17Networks_LH_SomMotB_Cent_2 - lookupLabel: 85 - originalLookupLabel: 85 - center: - x: -56.0 - y: -8.0 - z: 27.0 - color: '#2acca3' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_3: - name: 17Networks_LH_SomMotB_Cent_3 - lookupLabel: 86 - originalLookupLabel: 86 - center: - x: -62.0 - y: -11.0 - z: 35.0 - color: '#2acca5' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_4: - name: 17Networks_LH_SomMotB_Cent_4 - lookupLabel: 87 - originalLookupLabel: 87 - center: - x: -56.0 - y: -3.0 - z: 32.0 - color: '#2acca6' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_5: - name: 17Networks_LH_SomMotB_Cent_5 - lookupLabel: 88 - originalLookupLabel: 88 - center: - x: -51.0 - y: -14.0 - z: 39.0 - color: '#2acca7' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_6: - name: 17Networks_LH_SomMotB_Cent_6 - lookupLabel: 89 - originalLookupLabel: 89 - center: - x: -44.0 - y: -13.0 - z: 38.0 - color: '#2acca8' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_7: - name: 17Networks_LH_SomMotB_Cent_7 - lookupLabel: 90 - originalLookupLabel: 90 - center: - x: -52.0 - y: -3.0 - z: 47.0 - color: '#2acca9' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_8: - name: 17Networks_LH_SomMotB_Cent_8 - lookupLabel: 91 - originalLookupLabel: 91 - center: - x: -38.0 - y: -19.0 - z: 41.0 - color: '#2accaa' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_1: - name: 17Networks_LH_SomMotB_S2_1 - lookupLabel: 92 - originalLookupLabel: 92 - center: - x: -36.0 - y: -13.0 - z: 13.0 - color: '#2acca4' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_2: - name: 17Networks_LH_SomMotB_S2_2 - lookupLabel: 93 - originalLookupLabel: 93 - center: - x: -39.0 - y: -14.0 - z: 18.0 - color: '#2accab' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_3: - name: 17Networks_LH_SomMotB_S2_3 - lookupLabel: 94 - originalLookupLabel: 94 - center: - x: -37.0 - y: -26.0 - z: 20.0 - color: '#2accac' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_4: - name: 17Networks_LH_SomMotB_S2_4 - lookupLabel: 95 - originalLookupLabel: 95 - center: - x: -49.0 - y: -13.0 - z: 13.0 - color: '#2acda5' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_5: - name: 17Networks_LH_SomMotB_S2_5 - lookupLabel: 96 - originalLookupLabel: 96 - center: - x: -59.0 - y: -2.0 - z: 10.0 - color: '#2acda6' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_6: - name: 17Networks_LH_SomMotB_S2_6 - lookupLabel: 97 - originalLookupLabel: 97 - center: - x: -61.0 - y: -14.0 - z: 15.0 - color: '#2acda7' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_7: - name: 17Networks_LH_SomMotB_S2_7 - lookupLabel: 98 - originalLookupLabel: 98 - center: - x: -49.0 - y: -24.0 - z: 18.0 - color: '#2acda8' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_8: - name: 17Networks_LH_SomMotB_S2_8 - lookupLabel: 99 - originalLookupLabel: 99 - center: - x: -62.0 - y: -18.0 - z: 22.0 - color: '#2acda9' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_9: - name: 17Networks_LH_SomMotB_S2_9 - lookupLabel: 100 - originalLookupLabel: 100 - center: - x: -64.0 - y: -9.0 - z: 24.0 - color: '#2acdaa' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Ins_1: - name: 17Networks_LH_SomMotB_Ins_1 - lookupLabel: 101 - originalLookupLabel: 101 - center: - x: -35.0 - y: -26.0 - z: 12.0 - color: '#2acdab' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_1: - name: 17Networks_LH_SomMotB_Aud_1 - lookupLabel: 102 - originalLookupLabel: 102 - center: - x: -50.0 - y: 6.0 - z: -8.0 - color: '#2bcca2' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_2: - name: 17Networks_LH_SomMotB_Aud_2 - lookupLabel: 103 - originalLookupLabel: 103 - center: - x: -56.0 - y: -4.0 - z: 0.0 - color: '#2bcca3' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_3: - name: 17Networks_LH_SomMotB_Aud_3 - lookupLabel: 104 - originalLookupLabel: 104 - center: - x: -57.0 - y: -16.0 - z: 6.0 - color: '#2bcca5' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_4: - name: 17Networks_LH_SomMotB_Aud_4 - lookupLabel: 105 - originalLookupLabel: 105 - center: - x: -43.0 - y: -19.0 - z: 4.0 - color: '#2bcca6' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_5: - name: 17Networks_LH_SomMotB_Aud_5 - lookupLabel: 106 - originalLookupLabel: 106 - center: - x: -61.0 - y: -26.0 - z: 10.0 - color: '#2bcca7' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_6: - name: 17Networks_LH_SomMotB_Aud_6 - lookupLabel: 107 - originalLookupLabel: 107 - center: - x: -46.0 - y: -26.0 - z: 8.0 - color: '#2bcca8' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_7: - name: 17Networks_LH_SomMotB_Aud_7 - lookupLabel: 108 - originalLookupLabel: 108 - center: - x: -58.0 - y: -36.0 - z: 15.0 - color: '#2bcca9' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_8: - name: 17Networks_LH_SomMotB_Aud_8 - lookupLabel: 109 - originalLookupLabel: 109 - center: - x: -41.0 - y: -35.0 - z: 14.0 - color: '#2bccaa' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_DorsAttnA_TempOcc_1: - name: 17Networks_LH_DorsAttnA_TempOcc_1 - lookupLabel: 110 - originalLookupLabel: 110 - center: - x: -35.0 - y: -39.0 - z: -23.0 - color: '#4a9b3a' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_2: - name: 17Networks_LH_DorsAttnA_TempOcc_2 - lookupLabel: 111 - originalLookupLabel: 111 - center: - x: -45.0 - y: -45.0 - z: -20.0 - color: '#4a9b3b' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_3: - name: 17Networks_LH_DorsAttnA_TempOcc_3 - lookupLabel: 112 - originalLookupLabel: 112 - center: - x: -26.0 - y: -46.0 - z: -14.0 - color: '#4a9b3d' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_4: - name: 17Networks_LH_DorsAttnA_TempOcc_4 - lookupLabel: 113 - originalLookupLabel: 113 - center: - x: -45.0 - y: -63.0 - z: -16.0 - color: '#4a9b3e' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_5: - name: 17Networks_LH_DorsAttnA_TempOcc_5 - lookupLabel: 114 - originalLookupLabel: 114 - center: - x: -45.0 - y: -66.0 - z: -5.0 - color: '#4a9b3f' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_6: - name: 17Networks_LH_DorsAttnA_TempOcc_6 - lookupLabel: 115 - originalLookupLabel: 115 - center: - x: -50.0 - y: -67.0 - z: 3.0 - color: '#4a9b40' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_7: - name: 17Networks_LH_DorsAttnA_TempOcc_7 - lookupLabel: 116 - originalLookupLabel: 116 - center: - x: -48.0 - y: -64.0 - z: 10.0 - color: '#4a9b41' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_1: - name: 17Networks_LH_DorsAttnA_ParOcc_1 - lookupLabel: 117 - originalLookupLabel: 117 - center: - x: -50.0 - y: -72.0 - z: 16.0 - color: '#4a9b42' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_2: - name: 17Networks_LH_DorsAttnA_ParOcc_2 - lookupLabel: 118 - originalLookupLabel: 118 - center: - x: -41.0 - y: -81.0 - z: 16.0 - color: '#4a9b43' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_3: - name: 17Networks_LH_DorsAttnA_ParOcc_3 - lookupLabel: 119 - originalLookupLabel: 119 - center: - x: -44.0 - y: -64.0 - z: 16.0 - color: '#4a9b44' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_4: - name: 17Networks_LH_DorsAttnA_ParOcc_4 - lookupLabel: 120 - originalLookupLabel: 120 - center: - x: -32.0 - y: -84.0 - z: 24.0 - color: '#4a9c3d' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_1: - name: 17Networks_LH_DorsAttnA_SPL_1 - lookupLabel: 121 - originalLookupLabel: 121 - center: - x: -28.0 - y: -71.0 - z: 30.0 - color: '#4a9c39' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_2: - name: 17Networks_LH_DorsAttnA_SPL_2 - lookupLabel: 122 - originalLookupLabel: 122 - center: - x: -22.0 - y: -83.0 - z: 41.0 - color: '#4a9c3a' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_3: - name: 17Networks_LH_DorsAttnA_SPL_3 - lookupLabel: 123 - originalLookupLabel: 123 - center: - x: -22.0 - y: -72.0 - z: 37.0 - color: '#4a9c3b' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_4: - name: 17Networks_LH_DorsAttnA_SPL_4 - lookupLabel: 124 - originalLookupLabel: 124 - center: - x: -16.0 - y: -74.0 - z: 51.0 - color: '#4a9c3e' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_5: - name: 17Networks_LH_DorsAttnA_SPL_5 - lookupLabel: 125 - originalLookupLabel: 125 - center: - x: -22.0 - y: -66.0 - z: 51.0 - color: '#4a9c3f' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_6: - name: 17Networks_LH_DorsAttnA_SPL_6 - lookupLabel: 126 - originalLookupLabel: 126 - center: - x: -27.0 - y: -58.0 - z: 54.0 - color: '#4a9c40' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_7: - name: 17Networks_LH_DorsAttnA_SPL_7 - lookupLabel: 127 - originalLookupLabel: 127 - center: - x: -34.0 - y: -54.0 - z: 57.0 - color: '#4a9c41' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_8: - name: 17Networks_LH_DorsAttnA_SPL_8 - lookupLabel: 128 - originalLookupLabel: 128 - center: - x: -19.0 - y: -70.0 - z: 61.0 - color: '#4a9c42' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_9: - name: 17Networks_LH_DorsAttnA_SPL_9 - lookupLabel: 129 - originalLookupLabel: 129 - center: - x: -29.0 - y: -61.0 - z: 63.0 - color: '#4a9c43' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_10: - name: 17Networks_LH_DorsAttnA_SPL_10 - lookupLabel: 130 - originalLookupLabel: 130 - center: - x: -10.0 - y: -67.0 - z: 60.0 - color: '#4a9d3c' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnB_TempOcc_1: - name: 17Networks_LH_DorsAttnB_TempOcc_1 - lookupLabel: 131 - originalLookupLabel: 131 - center: - x: -57.0 - y: -61.0 - z: 6.0 - color: '#00760f' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_1: - name: 17Networks_LH_DorsAttnB_PostC_1 - lookupLabel: 132 - originalLookupLabel: 132 - center: - x: -61.0 - y: -23.0 - z: 33.0 - color: '#00760b' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_2: - name: 17Networks_LH_DorsAttnB_PostC_2 - lookupLabel: 133 - originalLookupLabel: 133 - center: - x: -54.0 - y: -24.0 - z: 39.0 - color: '#00760c' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_3: - name: 17Networks_LH_DorsAttnB_PostC_3 - lookupLabel: 134 - originalLookupLabel: 134 - center: - x: -56.0 - y: -32.0 - z: 45.0 - color: '#00760d' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_4: - name: 17Networks_LH_DorsAttnB_PostC_4 - lookupLabel: 135 - originalLookupLabel: 135 - center: - x: -49.0 - y: -28.0 - z: 42.0 - color: '#00760e' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_5: - name: 17Networks_LH_DorsAttnB_PostC_5 - lookupLabel: 136 - originalLookupLabel: 136 - center: - x: -44.0 - y: -31.0 - z: 44.0 - color: '#007610' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_6: - name: 17Networks_LH_DorsAttnB_PostC_6 - lookupLabel: 137 - originalLookupLabel: 137 - center: - x: -37.0 - y: -36.0 - z: 46.0 - color: '#007611' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_7: - name: 17Networks_LH_DorsAttnB_PostC_7 - lookupLabel: 138 - originalLookupLabel: 138 - center: - x: -36.0 - y: -47.0 - z: 51.0 - color: '#007612' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_8: - name: 17Networks_LH_DorsAttnB_PostC_8 - lookupLabel: 139 - originalLookupLabel: 139 - center: - x: -39.0 - y: -40.0 - z: 55.0 - color: '#007613' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_9: - name: 17Networks_LH_DorsAttnB_PostC_9 - lookupLabel: 140 - originalLookupLabel: 140 - center: - x: -30.0 - y: -47.0 - z: 64.0 - color: '#007614' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_10: - name: 17Networks_LH_DorsAttnB_PostC_10 - lookupLabel: 141 - originalLookupLabel: 141 - center: - x: -7.0 - y: -57.0 - z: 64.0 - color: '#007615' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_11: - name: 17Networks_LH_DorsAttnB_PostC_11 - lookupLabel: 142 - originalLookupLabel: 142 - center: - x: -20.0 - y: -58.0 - z: 66.0 - color: '#007616' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_12: - name: 17Networks_LH_DorsAttnB_PostC_12 - lookupLabel: 143 - originalLookupLabel: 143 - center: - x: -14.0 - y: -51.0 - z: 72.0 - color: '#00770f' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_1: - name: 17Networks_LH_DorsAttnB_FEF_1 - lookupLabel: 144 - originalLookupLabel: 144 - center: - x: -41.0 - y: -3.0 - z: 50.0 - color: '#00770d' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_2: - name: 17Networks_LH_DorsAttnB_FEF_2 - lookupLabel: 145 - originalLookupLabel: 145 - center: - x: -32.0 - y: 0.0 - z: 56.0 - color: '#007710' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_3: - name: 17Networks_LH_DorsAttnB_FEF_3 - lookupLabel: 146 - originalLookupLabel: 146 - center: - x: -31.0 - y: -9.0 - z: 57.0 - color: '#007711' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_4: - name: 17Networks_LH_DorsAttnB_FEF_4 - lookupLabel: 147 - originalLookupLabel: 147 - center: - x: -23.0 - y: -6.0 - z: 55.0 - color: '#007712' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_5: - name: 17Networks_LH_DorsAttnB_FEF_5 - lookupLabel: 148 - originalLookupLabel: 148 - center: - x: -16.0 - y: -6.0 - z: 64.0 - color: '#007713' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PrCv_1: - name: 17Networks_LH_DorsAttnB_PrCv_1 - lookupLabel: 149 - originalLookupLabel: 149 - center: - x: -58.0 - y: 8.0 - z: 31.0 - color: '#007714' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_SalVentAttnA_ParOper_1: - name: 17Networks_LH_SalVentAttnA_ParOper_1 - lookupLabel: 150 - originalLookupLabel: 150 - center: - x: -47.0 - y: -38.0 - z: 24.0 - color: '#c43afb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_2: - name: 17Networks_LH_SalVentAttnA_ParOper_2 - lookupLabel: 151 - originalLookupLabel: 151 - center: - x: -53.0 - y: -40.0 - z: 30.0 - color: '#c43afc' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_3: - name: 17Networks_LH_SalVentAttnA_ParOper_3 - lookupLabel: 152 - originalLookupLabel: 152 - center: - x: -59.0 - y: -29.0 - z: 22.0 - color: '#c43afd' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_4: - name: 17Networks_LH_SalVentAttnA_ParOper_4 - lookupLabel: 153 - originalLookupLabel: 153 - center: - x: -61.0 - y: -36.0 - z: 35.0 - color: '#c43afe' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_1: - name: 17Networks_LH_SalVentAttnA_FrOper_1 - lookupLabel: 154 - originalLookupLabel: 154 - center: - x: -39.0 - y: 2.0 - z: 12.0 - color: '#c43aff' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_2: - name: 17Networks_LH_SalVentAttnA_FrOper_2 - lookupLabel: 155 - originalLookupLabel: 155 - center: - x: -50.0 - y: 1.0 - z: 4.0 - color: '#c133fa' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_3: - name: 17Networks_LH_SalVentAttnA_FrOper_3 - lookupLabel: 156 - originalLookupLabel: 156 - center: - x: -56.0 - y: 8.0 - z: 11.0 - color: '#c133fb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_4: - name: 17Networks_LH_SalVentAttnA_FrOper_4 - lookupLabel: 157 - originalLookupLabel: 157 - center: - x: -58.0 - y: 6.0 - z: 20.0 - color: '#c134f4' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_1: - name: 17Networks_LH_SalVentAttnA_Ins_1 - lookupLabel: 158 - originalLookupLabel: 158 - center: - x: -39.0 - y: 1.0 - z: -5.0 - color: '#c43bfb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_2: - name: 17Networks_LH_SalVentAttnA_Ins_2 - lookupLabel: 159 - originalLookupLabel: 159 - center: - x: -41.0 - y: -14.0 - z: -2.0 - color: '#c43bfc' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_3: - name: 17Networks_LH_SalVentAttnA_Ins_3 - lookupLabel: 160 - originalLookupLabel: 160 - center: - x: -33.0 - y: 19.0 - z: 8.0 - color: '#c43bfd' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_4: - name: 17Networks_LH_SalVentAttnA_Ins_4 - lookupLabel: 161 - originalLookupLabel: 161 - center: - x: -37.0 - y: -3.0 - z: 9.0 - color: '#c43bfe' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_1: - name: 17Networks_LH_SalVentAttnA_ParMed_1 - lookupLabel: 162 - originalLookupLabel: 162 - center: - x: -9.0 - y: -19.0 - z: 39.0 - color: '#c43bfa' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_2: - name: 17Networks_LH_SalVentAttnA_ParMed_2 - lookupLabel: 163 - originalLookupLabel: 163 - center: - x: -12.0 - y: -35.0 - z: 42.0 - color: '#c43bff' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_3: - name: 17Networks_LH_SalVentAttnA_ParMed_3 - lookupLabel: 164 - originalLookupLabel: 164 - center: - x: -13.0 - y: -26.0 - z: 42.0 - color: '#c134fa' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_4: - name: 17Networks_LH_SalVentAttnA_ParMed_4 - lookupLabel: 165 - originalLookupLabel: 165 - center: - x: -11.0 - y: -45.0 - z: 51.0 - color: '#c134fb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_5: - name: 17Networks_LH_SalVentAttnA_ParMed_5 - lookupLabel: 166 - originalLookupLabel: 166 - center: - x: -12.0 - y: -35.0 - z: 48.0 - color: '#c135f4' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_6: - name: 17Networks_LH_SalVentAttnA_ParMed_6 - lookupLabel: 167 - originalLookupLabel: 167 - center: - x: -9.0 - y: -49.0 - z: 61.0 - color: '#c135f5' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_1: - name: 17Networks_LH_SalVentAttnA_FrMed_1 - lookupLabel: 168 - originalLookupLabel: 168 - center: - x: -6.0 - y: 17.0 - z: 31.0 - color: '#c53af9' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_2: - name: 17Networks_LH_SalVentAttnA_FrMed_2 - lookupLabel: 169 - originalLookupLabel: 169 - center: - x: -3.0 - y: -4.0 - z: 38.0 - color: '#c53afb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_3: - name: 17Networks_LH_SalVentAttnA_FrMed_3 - lookupLabel: 170 - originalLookupLabel: 170 - center: - x: -7.0 - y: 5.0 - z: 39.0 - color: '#c53afc' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_4: - name: 17Networks_LH_SalVentAttnA_FrMed_4 - lookupLabel: 171 - originalLookupLabel: 171 - center: - x: -6.0 - y: 3.0 - z: 50.0 - color: '#c53afd' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_5: - name: 17Networks_LH_SalVentAttnA_FrMed_5 - lookupLabel: 172 - originalLookupLabel: 172 - center: - x: -4.0 - y: 3.0 - z: 60.0 - color: '#c53afe' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_6: - name: 17Networks_LH_SalVentAttnA_FrMed_6 - lookupLabel: 173 - originalLookupLabel: 173 - center: - x: -8.0 - y: -3.0 - z: 71.0 - color: '#c53aff' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnB_IPL_1: - name: 17Networks_LH_SalVentAttnB_IPL_1 - lookupLabel: 174 - originalLookupLabel: 174 - center: - x: -61.0 - y: -44.0 - z: 30.0 - color: '#ff98d6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_IPL_2: - name: 17Networks_LH_SalVentAttnB_IPL_2 - lookupLabel: 175 - originalLookupLabel: 175 - center: - x: -59.0 - y: -43.0 - z: 42.0 - color: '#ff98d7' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCd_1: - name: 17Networks_LH_SalVentAttnB_PFCd_1 - lookupLabel: 176 - originalLookupLabel: 176 - center: - x: -17.0 - y: 4.0 - z: 70.0 - color: '#ff98d8' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_1: - name: 17Networks_LH_SalVentAttnB_PFCl_1 - lookupLabel: 177 - originalLookupLabel: 177 - center: - x: -30.0 - y: 46.0 - z: 27.0 - color: '#ff99d6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_2: - name: 17Networks_LH_SalVentAttnB_PFCl_2 - lookupLabel: 178 - originalLookupLabel: 178 - center: - x: -26.0 - y: 37.0 - z: 37.0 - color: '#ff99d7' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_3: - name: 17Networks_LH_SalVentAttnB_PFCl_3 - lookupLabel: 179 - originalLookupLabel: 179 - center: - x: -35.0 - y: 32.0 - z: 38.0 - color: '#ff99d8' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_1: - name: 17Networks_LH_SalVentAttnB_Ins_1 - lookupLabel: 180 - originalLookupLabel: 180 - center: - x: -36.0 - y: 14.0 - z: -9.0 - color: '#ff99d5' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_2: - name: 17Networks_LH_SalVentAttnB_Ins_2 - lookupLabel: 181 - originalLookupLabel: 181 - center: - x: -28.0 - y: 22.0 - z: -7.0 - color: '#ff99d9' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_3: - name: 17Networks_LH_SalVentAttnB_Ins_3 - lookupLabel: 182 - originalLookupLabel: 182 - center: - x: -33.0 - y: 21.0 - z: -1.0 - color: '#ff99da' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_4: - name: 17Networks_LH_SalVentAttnB_Ins_4 - lookupLabel: 183 - originalLookupLabel: 183 - center: - x: -35.0 - y: 30.0 - z: -1.0 - color: '#ff99db' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_5: - name: 17Networks_LH_SalVentAttnB_Ins_5 - lookupLabel: 184 - originalLookupLabel: 184 - center: - x: -42.0 - y: 17.0 - z: 6.0 - color: '#ff99dc' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_6: - name: 17Networks_LH_SalVentAttnB_Ins_6 - lookupLabel: 185 - originalLookupLabel: 185 - center: - x: -45.0 - y: 10.0 - z: 1.0 - color: '#ff99dd' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_OFC_1: - name: 17Networks_LH_SalVentAttnB_OFC_1 - lookupLabel: 186 - originalLookupLabel: 186 - center: - x: -28.0 - y: 49.0 - z: -13.0 - color: '#ff98d5' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCmp_1: - name: 17Networks_LH_SalVentAttnB_PFCmp_1 - lookupLabel: 187 - originalLookupLabel: 187 - center: - x: -3.0 - y: 17.0 - z: 24.0 - color: '#ff97d6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCmp_2: - name: 17Networks_LH_SalVentAttnB_PFCmp_2 - lookupLabel: 188 - originalLookupLabel: 188 - center: - x: -7.0 - y: 31.0 - z: 25.0 - color: '#ff97d7' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCmp_3: - name: 17Networks_LH_SalVentAttnB_PFCmp_3 - lookupLabel: 189 - originalLookupLabel: 189 - center: - x: -4.0 - y: 32.0 - z: 35.0 - color: '#ff97d8' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCmp_4: - name: 17Networks_LH_SalVentAttnB_PFCmp_4 - lookupLabel: 190 - originalLookupLabel: 190 - center: - x: -5.0 - y: 15.0 - z: 44.0 - color: '#ff97d9' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_LimbicB_OFC_1: - name: 17Networks_LH_LimbicB_OFC_1 - lookupLabel: 191 - originalLookupLabel: 191 - center: - x: -13.0 - y: 20.0 - z: -19.0 - color: '#7a872f' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_2: - name: 17Networks_LH_LimbicB_OFC_2 - lookupLabel: 192 - originalLookupLabel: 192 - center: - x: -23.0 - y: 14.0 - z: -23.0 - color: '#7a8730' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_3: - name: 17Networks_LH_LimbicB_OFC_3 - lookupLabel: 193 - originalLookupLabel: 193 - center: - x: -11.0 - y: 32.0 - z: -23.0 - color: '#7a8731' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_4: - name: 17Networks_LH_LimbicB_OFC_4 - lookupLabel: 194 - originalLookupLabel: 194 - center: - x: -24.0 - y: 29.0 - z: -18.0 - color: '#7a8733' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_5: - name: 17Networks_LH_LimbicB_OFC_5 - lookupLabel: 195 - originalLookupLabel: 195 - center: - x: -4.0 - y: 23.0 - z: -21.0 - color: '#7a8734' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_6: - name: 17Networks_LH_LimbicB_OFC_6 - lookupLabel: 196 - originalLookupLabel: 196 - center: - x: -5.0 - y: 46.0 - z: -23.0 - color: '#7a8735' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_7: - name: 17Networks_LH_LimbicB_OFC_7 - lookupLabel: 197 - originalLookupLabel: 197 - center: - x: -17.0 - y: 47.0 - z: -19.0 - color: '#7a8736' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_8: - name: 17Networks_LH_LimbicB_OFC_8 - lookupLabel: 198 - originalLookupLabel: 198 - center: - x: -5.0 - y: 23.0 - z: -12.0 - color: '#7a8737' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_9: - name: 17Networks_LH_LimbicB_OFC_9 - lookupLabel: 199 - originalLookupLabel: 199 - center: - x: -16.0 - y: 63.0 - z: -10.0 - color: '#7a8738' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicA_TempPole_1: - name: 17Networks_LH_LimbicA_TempPole_1 - lookupLabel: 200 - originalLookupLabel: 200 - center: - x: -31.0 - y: -2.0 - z: -44.0 - color: '#dcf8a0' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_2: - name: 17Networks_LH_LimbicA_TempPole_2 - lookupLabel: 201 - originalLookupLabel: 201 - center: - x: -49.0 - y: -11.0 - z: -39.0 - color: '#dcf8a1' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_3: - name: 17Networks_LH_LimbicA_TempPole_3 - lookupLabel: 202 - originalLookupLabel: 202 - center: - x: -29.0 - y: 11.0 - z: -40.0 - color: '#dcf8a2' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_4: - name: 17Networks_LH_LimbicA_TempPole_4 - lookupLabel: 203 - originalLookupLabel: 203 - center: - x: -28.0 - y: -8.0 - z: -34.0 - color: '#dcf8a3' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_5: - name: 17Networks_LH_LimbicA_TempPole_5 - lookupLabel: 204 - originalLookupLabel: 204 - center: - x: -38.0 - y: -16.0 - z: -31.0 - color: '#dcf8a5' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_6: - name: 17Networks_LH_LimbicA_TempPole_6 - lookupLabel: 205 - originalLookupLabel: 205 - center: - x: -19.0 - y: -1.0 - z: -30.0 - color: '#dcf8a6' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_7: - name: 17Networks_LH_LimbicA_TempPole_7 - lookupLabel: 206 - originalLookupLabel: 206 - center: - x: -47.0 - y: -29.0 - z: -25.0 - color: '#dcf8a7' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_8: - name: 17Networks_LH_LimbicA_TempPole_8 - lookupLabel: 207 - originalLookupLabel: 207 - center: - x: -27.0 - y: 7.0 - z: -29.0 - color: '#dcf8a8' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_9: - name: 17Networks_LH_LimbicA_TempPole_9 - lookupLabel: 208 - originalLookupLabel: 208 - center: - x: -21.0 - y: -15.0 - z: -29.0 - color: '#dcf8a9' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_10: - name: 17Networks_LH_LimbicA_TempPole_10 - lookupLabel: 209 - originalLookupLabel: 209 - center: - x: -55.0 - y: -38.0 - z: -25.0 - color: '#dcf8aa' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_11: - name: 17Networks_LH_LimbicA_TempPole_11 - lookupLabel: 210 - originalLookupLabel: 210 - center: - x: -38.0 - y: 9.0 - z: -25.0 - color: '#dcf8ab' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_12: - name: 17Networks_LH_LimbicA_TempPole_12 - lookupLabel: 211 - originalLookupLabel: 211 - center: - x: -45.0 - y: 6.0 - z: -16.0 - color: '#dcf9a4' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_ContA_Temp_1: - name: 17Networks_LH_ContA_Temp_1 - lookupLabel: 212 - originalLookupLabel: 212 - center: - x: -52.0 - y: -55.0 - z: -16.0 - color: '#e69423' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_Temp_2: - name: 17Networks_LH_ContA_Temp_2 - lookupLabel: 213 - originalLookupLabel: 213 - center: - x: -57.0 - y: -59.0 - z: -5.0 - color: '#e69424' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_1: - name: 17Networks_LH_ContA_IPS_1 - lookupLabel: 214 - originalLookupLabel: 214 - center: - x: -29.0 - y: -77.0 - z: 39.0 - color: '#e69420' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_2: - name: 17Networks_LH_ContA_IPS_2 - lookupLabel: 215 - originalLookupLabel: 215 - center: - x: -55.0 - y: -40.0 - z: 50.0 - color: '#e69421' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_3: - name: 17Networks_LH_ContA_IPS_3 - lookupLabel: 216 - originalLookupLabel: 216 - center: - x: -26.0 - y: -66.0 - z: 42.0 - color: '#e69422' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_4: - name: 17Networks_LH_ContA_IPS_4 - lookupLabel: 217 - originalLookupLabel: 217 - center: - x: -45.0 - y: -44.0 - z: 49.0 - color: '#e69425' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_5: - name: 17Networks_LH_ContA_IPS_5 - lookupLabel: 218 - originalLookupLabel: 218 - center: - x: -45.0 - y: -38.0 - z: 41.0 - color: '#e69426' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_6: - name: 17Networks_LH_ContA_IPS_6 - lookupLabel: 219 - originalLookupLabel: 219 - center: - x: -40.0 - y: -50.0 - z: 43.0 - color: '#e69427' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_7: - name: 17Networks_LH_ContA_IPS_7 - lookupLabel: 220 - originalLookupLabel: 220 - center: - x: -31.0 - y: -60.0 - z: 46.0 - color: '#e69428' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_8: - name: 17Networks_LH_ContA_IPS_8 - lookupLabel: 221 - originalLookupLabel: 221 - center: - x: -35.0 - y: -43.0 - z: 40.0 - color: '#e69429' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_9: - name: 17Networks_LH_ContA_IPS_9 - lookupLabel: 222 - originalLookupLabel: 222 - center: - x: -30.0 - y: -52.0 - z: 41.0 - color: '#e6942a' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCd_1: - name: 17Networks_LH_ContA_PFCd_1 - lookupLabel: 223 - originalLookupLabel: 223 - center: - x: -24.0 - y: 7.0 - z: 52.0 - color: '#e69523' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCd_2: - name: 17Networks_LH_ContA_PFCd_2 - lookupLabel: 224 - originalLookupLabel: 224 - center: - x: -22.0 - y: 6.0 - z: 64.0 - color: '#e69524' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_1: - name: 17Networks_LH_ContA_PFCl_1 - lookupLabel: 225 - originalLookupLabel: 225 - center: - x: -49.0 - y: 10.0 - z: 13.0 - color: '#e69520' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_2: - name: 17Networks_LH_ContA_PFCl_2 - lookupLabel: 226 - originalLookupLabel: 226 - center: - x: -49.0 - y: 19.0 - z: 23.0 - color: '#e69521' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_3: - name: 17Networks_LH_ContA_PFCl_3 - lookupLabel: 227 - originalLookupLabel: 227 - center: - x: -48.0 - y: 6.0 - z: 22.0 - color: '#e69522' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_4: - name: 17Networks_LH_ContA_PFCl_4 - lookupLabel: 228 - originalLookupLabel: 228 - center: - x: -44.0 - y: 26.0 - z: 26.0 - color: '#e69525' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_5: - name: 17Networks_LH_ContA_PFCl_5 - lookupLabel: 229 - originalLookupLabel: 229 - center: - x: -43.0 - y: 37.0 - z: 29.0 - color: '#e69526' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_6: - name: 17Networks_LH_ContA_PFCl_6 - lookupLabel: 230 - originalLookupLabel: 230 - center: - x: -37.0 - y: 15.0 - z: 28.0 - color: '#e69527' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_7: - name: 17Networks_LH_ContA_PFCl_7 - lookupLabel: 231 - originalLookupLabel: 231 - center: - x: -42.0 - y: 5.0 - z: 28.0 - color: '#e69528' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_8: - name: 17Networks_LH_ContA_PFCl_8 - lookupLabel: 232 - originalLookupLabel: 232 - center: - x: -40.0 - y: 7.0 - z: 34.0 - color: '#e69529' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_9: - name: 17Networks_LH_ContA_PFCl_9 - lookupLabel: 233 - originalLookupLabel: 233 - center: - x: -48.0 - y: 2.0 - z: 38.0 - color: '#e6952a' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFClv_1: - name: 17Networks_LH_ContA_PFClv_1 - lookupLabel: 234 - originalLookupLabel: 234 - center: - x: -45.0 - y: 43.0 - z: 0.0 - color: '#e79423' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFClv_2: - name: 17Networks_LH_ContA_PFClv_2 - lookupLabel: 235 - originalLookupLabel: 235 - center: - x: -49.0 - y: 33.0 - z: 12.0 - color: '#e79424' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFClv_3: - name: 17Networks_LH_ContA_PFClv_3 - lookupLabel: 236 - originalLookupLabel: 236 - center: - x: -40.0 - y: 40.0 - z: 17.0 - color: '#e79425' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_Cingm_1: - name: 17Networks_LH_ContA_Cingm_1 - lookupLabel: 237 - originalLookupLabel: 237 - center: - x: -3.0 - y: 3.0 - z: 30.0 - color: '#e79426' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContB_Temp_1: - name: 17Networks_LH_ContB_Temp_1 - lookupLabel: 238 - originalLookupLabel: 238 - center: - x: -61.0 - y: -36.0 - z: -16.0 - color: '#87324b' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_Temp_2: - name: 17Networks_LH_ContB_Temp_2 - lookupLabel: 239 - originalLookupLabel: 239 - center: - x: -59.0 - y: -48.0 - z: -14.0 - color: '#87324c' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_Temp_3: - name: 17Networks_LH_ContB_Temp_3 - lookupLabel: 240 - originalLookupLabel: 240 - center: - x: -63.0 - y: -44.0 - z: -7.0 - color: '#87324d' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_1: - name: 17Networks_LH_ContB_IPL_1 - lookupLabel: 241 - originalLookupLabel: 241 - center: - x: -51.0 - y: -58.0 - z: 47.0 - color: '#87324a' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_2: - name: 17Networks_LH_ContB_IPL_2 - lookupLabel: 242 - originalLookupLabel: 242 - center: - x: -53.0 - y: -49.0 - z: 45.0 - color: '#87324e' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_3: - name: 17Networks_LH_ContB_IPL_3 - lookupLabel: 243 - originalLookupLabel: 243 - center: - x: -31.0 - y: -71.0 - z: 50.0 - color: '#87324f' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_4: - name: 17Networks_LH_ContB_IPL_4 - lookupLabel: 244 - originalLookupLabel: 244 - center: - x: -43.0 - y: -54.0 - z: 52.0 - color: '#873250' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_5: - name: 17Networks_LH_ContB_IPL_5 - lookupLabel: 245 - originalLookupLabel: 245 - center: - x: -38.0 - y: -61.0 - z: 51.0 - color: '#873251' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCd_1: - name: 17Networks_LH_ContB_PFCd_1 - lookupLabel: 246 - originalLookupLabel: 246 - center: - x: -29.0 - y: 17.0 - z: 55.0 - color: '#87334b' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCl_1: - name: 17Networks_LH_ContB_PFCl_1 - lookupLabel: 247 - originalLookupLabel: 247 - center: - x: -45.0 - y: 21.0 - z: 35.0 - color: '#87334c' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCl_2: - name: 17Networks_LH_ContB_PFCl_2 - lookupLabel: 248 - originalLookupLabel: 248 - center: - x: -41.0 - y: 22.0 - z: 46.0 - color: '#87334d' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_1: - name: 17Networks_LH_ContB_PFClv_1 - lookupLabel: 249 - originalLookupLabel: 249 - center: - x: -40.0 - y: 52.0 - z: -8.0 - color: '#88324b' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_2: - name: 17Networks_LH_ContB_PFClv_2 - lookupLabel: 250 - originalLookupLabel: 250 - center: - x: -28.0 - y: 58.0 - z: -2.0 - color: '#88324c' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_3: - name: 17Networks_LH_ContB_PFClv_3 - lookupLabel: 251 - originalLookupLabel: 251 - center: - x: -38.0 - y: 51.0 - z: 9.0 - color: '#88324d' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_4: - name: 17Networks_LH_ContB_PFClv_4 - lookupLabel: 252 - originalLookupLabel: 252 - center: - x: -29.0 - y: 56.0 - z: 11.0 - color: '#88324e' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCmp_1: - name: 17Networks_LH_ContB_PFCmp_1 - lookupLabel: 253 - originalLookupLabel: 253 - center: - x: -4.0 - y: 28.0 - z: 47.0 - color: '#88324f' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContC_pCun_1: - name: 17Networks_LH_ContC_pCun_1 - lookupLabel: 254 - originalLookupLabel: 254 - center: - x: -11.0 - y: -70.0 - z: 31.0 - color: '#778caf' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_2: - name: 17Networks_LH_ContC_pCun_2 - lookupLabel: 255 - originalLookupLabel: 255 - center: - x: -9.0 - y: -75.0 - z: 42.0 - color: '#778cb1' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_3: - name: 17Networks_LH_ContC_pCun_3 - lookupLabel: 256 - originalLookupLabel: 256 - center: - x: -3.0 - y: -68.0 - z: 42.0 - color: '#778cb2' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_4: - name: 17Networks_LH_ContC_pCun_4 - lookupLabel: 257 - originalLookupLabel: 257 - center: - x: -4.0 - y: -73.0 - z: 52.0 - color: '#778cb3' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_5: - name: 17Networks_LH_ContC_pCun_5 - lookupLabel: 258 - originalLookupLabel: 258 - center: - x: -5.0 - y: -62.0 - z: 52.0 - color: '#778cb4' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_6: - name: 17Networks_LH_ContC_pCun_6 - lookupLabel: 259 - originalLookupLabel: 259 - center: - x: -4.0 - y: -51.0 - z: 54.0 - color: '#778cb5' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_Cingp_1: - name: 17Networks_LH_ContC_Cingp_1 - lookupLabel: 260 - originalLookupLabel: 260 - center: - x: -7.0 - y: -40.0 - z: 24.0 - color: '#778cb6' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_Cingp_2: - name: 17Networks_LH_ContC_Cingp_2 - lookupLabel: 261 - originalLookupLabel: 261 - center: - x: -5.0 - y: -26.0 - z: 28.0 - color: '#778cb7' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_Cingp_3: - name: 17Networks_LH_ContC_Cingp_3 - lookupLabel: 262 - originalLookupLabel: 262 - center: - x: -4.0 - y: -12.0 - z: 30.0 - color: '#778cb8' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_DefaultA_IPL_1: - name: 17Networks_LH_DefaultA_IPL_1 - lookupLabel: 263 - originalLookupLabel: 263 - center: - x: -48.0 - y: -69.0 - z: 32.0 - color: '#ffff01' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_IPL_2: - name: 17Networks_LH_DefaultA_IPL_2 - lookupLabel: 264 - originalLookupLabel: 264 - center: - x: -38.0 - y: -76.0 - z: 43.0 - color: '#ffff02' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_IPL_3: - name: 17Networks_LH_DefaultA_IPL_3 - lookupLabel: 265 - originalLookupLabel: 265 - center: - x: -44.0 - y: -66.0 - z: 46.0 - color: '#ffff03' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_1: - name: 17Networks_LH_DefaultA_PFCd_1 - lookupLabel: 266 - originalLookupLabel: 266 - center: - x: -20.0 - y: 42.0 - z: 42.0 - color: '#ffff00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_2: - name: 17Networks_LH_DefaultA_PFCd_2 - lookupLabel: 267 - originalLookupLabel: 267 - center: - x: -28.0 - y: 29.0 - z: 47.0 - color: '#ffff04' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_3: - name: 17Networks_LH_DefaultA_PFCd_3 - lookupLabel: 268 - originalLookupLabel: 268 - center: - x: -23.0 - y: 25.0 - z: 41.0 - color: '#ffff05' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_4: - name: 17Networks_LH_DefaultA_PFCd_4 - lookupLabel: 269 - originalLookupLabel: 269 - center: - x: -19.0 - y: 33.0 - z: 51.0 - color: '#ffff06' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_5: - name: 17Networks_LH_DefaultA_PFCd_5 - lookupLabel: 270 - originalLookupLabel: 270 - center: - x: -23.0 - y: 17.0 - z: 52.0 - color: '#ffff07' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_1: - name: 17Networks_LH_DefaultA_pCunPCC_1 - lookupLabel: 271 - originalLookupLabel: 271 - center: - x: -6.0 - y: -47.0 - z: 15.0 - color: '#fffe01' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_2: - name: 17Networks_LH_DefaultA_pCunPCC_2 - lookupLabel: 272 - originalLookupLabel: 272 - center: - x: -4.0 - y: -53.0 - z: 20.0 - color: '#fffe02' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_3: - name: 17Networks_LH_DefaultA_pCunPCC_3 - lookupLabel: 273 - originalLookupLabel: 273 - center: - x: -4.0 - y: -66.0 - z: 24.0 - color: '#fffe03' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_4: - name: 17Networks_LH_DefaultA_pCunPCC_4 - lookupLabel: 274 - originalLookupLabel: 274 - center: - x: -7.0 - y: -56.0 - z: 27.0 - color: '#fffe04' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_5: - name: 17Networks_LH_DefaultA_pCunPCC_5 - lookupLabel: 275 - originalLookupLabel: 275 - center: - x: -5.0 - y: -43.0 - z: 30.0 - color: '#fffe05' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_6: - name: 17Networks_LH_DefaultA_pCunPCC_6 - lookupLabel: 276 - originalLookupLabel: 276 - center: - x: -3.0 - y: -33.0 - z: 30.0 - color: '#fffe06' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_7: - name: 17Networks_LH_DefaultA_pCunPCC_7 - lookupLabel: 277 - originalLookupLabel: 277 - center: - x: -4.0 - y: -62.0 - z: 33.0 - color: '#fffe07' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_8: - name: 17Networks_LH_DefaultA_pCunPCC_8 - lookupLabel: 278 - originalLookupLabel: 278 - center: - x: -2.0 - y: -17.0 - z: 36.0 - color: '#fcf900' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_9: - name: 17Networks_LH_DefaultA_pCunPCC_9 - lookupLabel: 279 - originalLookupLabel: 279 - center: - x: -4.0 - y: -32.0 - z: 38.0 - color: '#fcfa00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_10: - name: 17Networks_LH_DefaultA_pCunPCC_10 - lookupLabel: 280 - originalLookupLabel: 280 - center: - x: -12.0 - y: -50.0 - z: 35.0 - color: '#fcfb00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_11: - name: 17Networks_LH_DefaultA_pCunPCC_11 - lookupLabel: 281 - originalLookupLabel: 281 - center: - x: -6.0 - y: -41.0 - z: 39.0 - color: '#fcfc00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_12: - name: 17Networks_LH_DefaultA_pCunPCC_12 - lookupLabel: 282 - originalLookupLabel: 282 - center: - x: -5.0 - y: -57.0 - z: 43.0 - color: '#fcfd00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_13: - name: 17Networks_LH_DefaultA_pCunPCC_13 - lookupLabel: 283 - originalLookupLabel: 283 - center: - x: -7.0 - y: -49.0 - z: 44.0 - color: '#fcfe00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_1: - name: 17Networks_LH_DefaultA_PFCm_1 - lookupLabel: 284 - originalLookupLabel: 284 - center: - x: -5.0 - y: 55.0 - z: -11.0 - color: '#feff01' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_2: - name: 17Networks_LH_DefaultA_PFCm_2 - lookupLabel: 285 - originalLookupLabel: 285 - center: - x: -6.0 - y: 38.0 - z: -8.0 - color: '#feff02' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_3: - name: 17Networks_LH_DefaultA_PFCm_3 - lookupLabel: 286 - originalLookupLabel: 286 - center: - x: -4.0 - y: 24.0 - z: -5.0 - color: '#feff03' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_4: - name: 17Networks_LH_DefaultA_PFCm_4 - lookupLabel: 287 - originalLookupLabel: 287 - center: - x: -14.0 - y: 68.0 - z: 1.0 - color: '#feff04' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_5: - name: 17Networks_LH_DefaultA_PFCm_5 - lookupLabel: 288 - originalLookupLabel: 288 - center: - x: -6.0 - y: 45.0 - z: 3.0 - color: '#feff05' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_6: - name: 17Networks_LH_DefaultA_PFCm_6 - lookupLabel: 289 - originalLookupLabel: 289 - center: - x: -6.0 - y: 59.0 - z: 7.0 - color: '#feff06' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_7: - name: 17Networks_LH_DefaultA_PFCm_7 - lookupLabel: 290 - originalLookupLabel: 290 - center: - x: -19.0 - y: 65.0 - z: 11.0 - color: '#feff07' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_8: - name: 17Networks_LH_DefaultA_PFCm_8 - lookupLabel: 291 - originalLookupLabel: 291 - center: - x: -3.0 - y: 32.0 - z: 14.0 - color: '#fbf900' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_9: - name: 17Networks_LH_DefaultA_PFCm_9 - lookupLabel: 292 - originalLookupLabel: 292 - center: - x: -7.0 - y: 42.0 - z: 15.0 - color: '#fbfa00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultB_Temp_1: - name: 17Networks_LH_DefaultB_Temp_1 - lookupLabel: 293 - originalLookupLabel: 293 - center: - x: -49.0 - y: 2.0 - z: -35.0 - color: '#cd3e4b' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_2: - name: 17Networks_LH_DefaultB_Temp_2 - lookupLabel: 294 - originalLookupLabel: 294 - center: - x: -59.0 - y: -23.0 - z: -27.0 - color: '#cd3e4c' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_3: - name: 17Networks_LH_DefaultB_Temp_3 - lookupLabel: 295 - originalLookupLabel: 295 - center: - x: -42.0 - y: 18.0 - z: -29.0 - color: '#cd3e4d' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_4: - name: 17Networks_LH_DefaultB_Temp_4 - lookupLabel: 296 - originalLookupLabel: 296 - center: - x: -61.0 - y: -16.0 - z: -21.0 - color: '#cd3e4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_5: - name: 17Networks_LH_DefaultB_Temp_5 - lookupLabel: 297 - originalLookupLabel: 297 - center: - x: -52.0 - y: 6.0 - z: -22.0 - color: '#cd3e50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_6: - name: 17Networks_LH_DefaultB_Temp_6 - lookupLabel: 298 - originalLookupLabel: 298 - center: - x: -59.0 - y: -9.0 - z: -14.0 - color: '#cd3e51' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_7: - name: 17Networks_LH_DefaultB_Temp_7 - lookupLabel: 299 - originalLookupLabel: 299 - center: - x: -65.0 - y: -26.0 - z: -9.0 - color: '#cd3e52' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_8: - name: 17Networks_LH_DefaultB_Temp_8 - lookupLabel: 300 - originalLookupLabel: 300 - center: - x: -52.0 - y: -22.0 - z: -7.0 - color: '#cd3e53' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_9: - name: 17Networks_LH_DefaultB_Temp_9 - lookupLabel: 301 - originalLookupLabel: 301 - center: - x: -61.0 - y: -35.0 - z: -2.0 - color: '#cd3e54' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_10: - name: 17Networks_LH_DefaultB_Temp_10 - lookupLabel: 302 - originalLookupLabel: 302 - center: - x: -51.0 - y: -35.0 - z: 0.0 - color: '#cd3e55' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_1: - name: 17Networks_LH_DefaultB_IPL_1 - lookupLabel: 303 - originalLookupLabel: 303 - center: - x: -45.0 - y: -62.0 - z: 22.0 - color: '#cd3e4e' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_2: - name: 17Networks_LH_DefaultB_IPL_2 - lookupLabel: 304 - originalLookupLabel: 304 - center: - x: -48.0 - y: -53.0 - z: 24.0 - color: '#cd3e56' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_3: - name: 17Networks_LH_DefaultB_IPL_3 - lookupLabel: 305 - originalLookupLabel: 305 - center: - x: -60.0 - y: -53.0 - z: 29.0 - color: '#cd3f4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_4: - name: 17Networks_LH_DefaultB_IPL_4 - lookupLabel: 306 - originalLookupLabel: 306 - center: - x: -47.0 - y: -60.0 - z: 33.0 - color: '#cd3f50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_5: - name: 17Networks_LH_DefaultB_IPL_5 - lookupLabel: 307 - originalLookupLabel: 307 - center: - x: -55.0 - y: -56.0 - z: 34.0 - color: '#cd3f51' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_1: - name: 17Networks_LH_DefaultB_PFCd_1 - lookupLabel: 308 - originalLookupLabel: 308 - center: - x: -6.0 - y: 65.0 - z: 19.0 - color: '#cd3f4b' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_2: - name: 17Networks_LH_DefaultB_PFCd_2 - lookupLabel: 309 - originalLookupLabel: 309 - center: - x: -5.0 - y: 51.0 - z: 22.0 - color: '#cd3f4c' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_3: - name: 17Networks_LH_DefaultB_PFCd_3 - lookupLabel: 310 - originalLookupLabel: 310 - center: - x: -22.0 - y: 54.0 - z: 27.0 - color: '#cd3f4d' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_4: - name: 17Networks_LH_DefaultB_PFCd_4 - lookupLabel: 311 - originalLookupLabel: 311 - center: - x: -14.0 - y: 56.0 - z: 33.0 - color: '#cd3f52' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_5: - name: 17Networks_LH_DefaultB_PFCd_5 - lookupLabel: 312 - originalLookupLabel: 312 - center: - x: -4.0 - y: 50.0 - z: 37.0 - color: '#cd3f53' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_6: - name: 17Networks_LH_DefaultB_PFCd_6 - lookupLabel: 313 - originalLookupLabel: 313 - center: - x: -8.0 - y: 43.0 - z: 52.0 - color: '#cd3f54' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_7: - name: 17Networks_LH_DefaultB_PFCd_7 - lookupLabel: 314 - originalLookupLabel: 314 - center: - x: -10.0 - y: 27.0 - z: 60.0 - color: '#cd3f55' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_8: - name: 17Networks_LH_DefaultB_PFCd_8 - lookupLabel: 315 - originalLookupLabel: 315 - center: - x: -4.0 - y: 13.0 - z: 61.0 - color: '#cd404e' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_9: - name: 17Networks_LH_DefaultB_PFCd_9 - lookupLabel: 316 - originalLookupLabel: 316 - center: - x: -17.0 - y: 17.0 - z: 64.0 - color: '#cd404f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_10: - name: 17Networks_LH_DefaultB_PFCd_10 - lookupLabel: 317 - originalLookupLabel: 317 - center: - x: -9.0 - y: 10.0 - z: 68.0 - color: '#cd4050' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCl_1: - name: 17Networks_LH_DefaultB_PFCl_1 - lookupLabel: 318 - originalLookupLabel: 318 - center: - x: -43.0 - y: 12.0 - z: 42.0 - color: '#cd3f56' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCl_2: - name: 17Networks_LH_DefaultB_PFCl_2 - lookupLabel: 319 - originalLookupLabel: 319 - center: - x: -42.0 - y: 6.0 - z: 49.0 - color: '#cd4051' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCl_3: - name: 17Networks_LH_DefaultB_PFCl_3 - lookupLabel: 320 - originalLookupLabel: 320 - center: - x: -37.0 - y: 12.0 - z: 57.0 - color: '#cd4052' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_1: - name: 17Networks_LH_DefaultB_PFCv_1 - lookupLabel: 321 - originalLookupLabel: 321 - center: - x: -28.0 - y: 17.0 - z: -16.0 - color: '#ce3e4c' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_2: - name: 17Networks_LH_DefaultB_PFCv_2 - lookupLabel: 322 - originalLookupLabel: 322 - center: - x: -35.0 - y: 36.0 - z: -12.0 - color: '#ce3e4d' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_3: - name: 17Networks_LH_DefaultB_PFCv_3 - lookupLabel: 323 - originalLookupLabel: 323 - center: - x: -38.0 - y: 24.0 - z: -15.0 - color: '#ce3e4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_4: - name: 17Networks_LH_DefaultB_PFCv_4 - lookupLabel: 324 - originalLookupLabel: 324 - center: - x: -44.0 - y: 37.0 - z: -17.0 - color: '#ce3e50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_5: - name: 17Networks_LH_DefaultB_PFCv_5 - lookupLabel: 325 - originalLookupLabel: 325 - center: - x: -47.0 - y: 32.0 - z: -8.0 - color: '#ce3e51' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_6: - name: 17Networks_LH_DefaultB_PFCv_6 - lookupLabel: 326 - originalLookupLabel: 326 - center: - x: -48.0 - y: 27.0 - z: 1.0 - color: '#ce3e52' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_7: - name: 17Networks_LH_DefaultB_PFCv_7 - lookupLabel: 327 - originalLookupLabel: 327 - center: - x: -54.0 - y: 19.0 - z: 11.0 - color: '#ce3e53' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultC_IPL_1: - name: 17Networks_LH_DefaultC_IPL_1 - lookupLabel: 328 - originalLookupLabel: 328 - center: - x: -43.0 - y: -73.0 - z: 24.0 - color: '#000083' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_IPL_2: - name: 17Networks_LH_DefaultC_IPL_2 - lookupLabel: 329 - originalLookupLabel: 329 - center: - x: -38.0 - y: -82.0 - z: 32.0 - color: '#000084' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_1: - name: 17Networks_LH_DefaultC_Rsp_1 - lookupLabel: 330 - originalLookupLabel: 330 - center: - x: -12.0 - y: -46.0 - z: 3.0 - color: '#000082' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_2: - name: 17Networks_LH_DefaultC_Rsp_2 - lookupLabel: 331 - originalLookupLabel: 331 - center: - x: -10.0 - y: -52.0 - z: 8.0 - color: '#000085' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_3: - name: 17Networks_LH_DefaultC_Rsp_3 - lookupLabel: 332 - originalLookupLabel: 332 - center: - x: -14.0 - y: -58.0 - z: 16.0 - color: '#000086' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_4: - name: 17Networks_LH_DefaultC_Rsp_4 - lookupLabel: 333 - originalLookupLabel: 333 - center: - x: -5.0 - y: -58.0 - z: 12.0 - color: '#000087' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_5: - name: 17Networks_LH_DefaultC_Rsp_5 - lookupLabel: 334 - originalLookupLabel: 334 - center: - x: -8.0 - y: -62.0 - z: 19.0 - color: '#000088' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_6: - name: 17Networks_LH_DefaultC_Rsp_6 - lookupLabel: 335 - originalLookupLabel: 335 - center: - x: -16.0 - y: -64.0 - z: 23.0 - color: '#000089' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_1: - name: 17Networks_LH_DefaultC_PHC_1 - lookupLabel: 336 - originalLookupLabel: 336 - center: - x: -32.0 - y: -24.0 - z: -25.0 - color: '#000181' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_2: - name: 17Networks_LH_DefaultC_PHC_2 - lookupLabel: 337 - originalLookupLabel: 337 - center: - x: -20.0 - y: -24.0 - z: -22.0 - color: '#000183' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_3: - name: 17Networks_LH_DefaultC_PHC_3 - lookupLabel: 338 - originalLookupLabel: 338 - center: - x: -29.0 - y: -35.0 - z: -16.0 - color: '#000184' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_4: - name: 17Networks_LH_DefaultC_PHC_4 - lookupLabel: 339 - originalLookupLabel: 339 - center: - x: -20.0 - y: -36.0 - z: -14.0 - color: '#000185' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_5: - name: 17Networks_LH_DefaultC_PHC_5 - lookupLabel: 340 - originalLookupLabel: 340 - center: - x: -16.0 - y: -38.0 - z: -11.0 - color: '#000186' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_TempPar_1: - name: 17Networks_LH_TempPar_1 - lookupLabel: 341 - originalLookupLabel: 341 - center: - x: -53.0 - y: -3.0 - z: -11.0 - color: '#0c30fc' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_2: - name: 17Networks_LH_TempPar_2 - lookupLabel: 342 - originalLookupLabel: 342 - center: - x: -59.0 - y: -13.0 - z: -4.0 - color: '#0c30fd' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_3: - name: 17Networks_LH_TempPar_3 - lookupLabel: 343 - originalLookupLabel: 343 - center: - x: -63.0 - y: -50.0 - z: 4.0 - color: '#0c30fe' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_4: - name: 17Networks_LH_TempPar_4 - lookupLabel: 344 - originalLookupLabel: 344 - center: - x: -62.0 - y: -25.0 - z: 2.0 - color: '#0929f9' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_5: - name: 17Networks_LH_TempPar_5 - lookupLabel: 345 - originalLookupLabel: 345 - center: - x: -52.0 - y: -44.0 - z: 6.0 - color: '#0929fa' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_6: - name: 17Networks_LH_TempPar_6 - lookupLabel: 346 - originalLookupLabel: 346 - center: - x: -63.0 - y: -37.0 - z: 8.0 - color: '#0929fb' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_7: - name: 17Networks_LH_TempPar_7 - lookupLabel: 347 - originalLookupLabel: 347 - center: - x: -55.0 - y: -56.0 - z: 14.0 - color: '#0929fc' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_8: - name: 17Networks_LH_TempPar_8 - lookupLabel: 348 - originalLookupLabel: 348 - center: - x: -46.0 - y: -50.0 - z: 14.0 - color: '#0929fd' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_9: - name: 17Networks_LH_TempPar_9 - lookupLabel: 349 - originalLookupLabel: 349 - center: - x: -59.0 - y: -49.0 - z: 15.0 - color: '#0929fe' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_10: - name: 17Networks_LH_TempPar_10 - lookupLabel: 350 - originalLookupLabel: 350 - center: - x: -59.0 - y: -45.0 - z: 22.0 - color: '#0929ff' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_RH_VisCent_Striate_1: - name: 17Networks_RH_VisCent_Striate_1 - lookupLabel: 351 - originalLookupLabel: 351 - center: - x: 13.0 - y: -96.0 - z: -9.0 - color: '#781387' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_Striate_2: - name: 17Networks_RH_VisCent_Striate_2 - lookupLabel: 352 - originalLookupLabel: 352 - center: - x: 13.0 - y: -102.0 - z: 4.0 - color: '#781388' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_Striate_3: - name: 17Networks_RH_VisCent_Striate_3 - lookupLabel: 353 - originalLookupLabel: 353 - center: - x: 9.0 - y: -93.0 - z: 2.0 - color: '#781389' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_1: - name: 17Networks_RH_VisCent_ExStr_1 - lookupLabel: 354 - originalLookupLabel: 354 - center: - x: 39.0 - y: -46.0 - z: -21.0 - color: '#781285' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_2: - name: 17Networks_RH_VisCent_ExStr_2 - lookupLabel: 355 - originalLookupLabel: 355 - center: - x: 30.0 - y: -53.0 - z: -16.0 - color: '#781286' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_3: - name: 17Networks_RH_VisCent_ExStr_3 - lookupLabel: 356 - originalLookupLabel: 356 - center: - x: 37.0 - y: -60.0 - z: -16.0 - color: '#781287' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_4: - name: 17Networks_RH_VisCent_ExStr_4 - lookupLabel: 357 - originalLookupLabel: 357 - center: - x: 29.0 - y: -54.0 - z: -9.0 - color: '#781380' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_5: - name: 17Networks_RH_VisCent_ExStr_5 - lookupLabel: 358 - originalLookupLabel: 358 - center: - x: 27.0 - y: -75.0 - z: -11.0 - color: '#781381' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_6: - name: 17Networks_RH_VisCent_ExStr_6 - lookupLabel: 359 - originalLookupLabel: 359 - center: - x: 38.0 - y: -75.0 - z: -16.0 - color: '#781382' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_7: - name: 17Networks_RH_VisCent_ExStr_7 - lookupLabel: 360 - originalLookupLabel: 360 - center: - x: 20.0 - y: -71.0 - z: -9.0 - color: '#781383' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_8: - name: 17Networks_RH_VisCent_ExStr_8 - lookupLabel: 361 - originalLookupLabel: 361 - center: - x: 20.0 - y: -88.0 - z: -12.0 - color: '#781384' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_9: - name: 17Networks_RH_VisCent_ExStr_9 - lookupLabel: 362 - originalLookupLabel: 362 - center: - x: 41.0 - y: -83.0 - z: -16.0 - color: '#781385' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_10: - name: 17Networks_RH_VisCent_ExStr_10 - lookupLabel: 363 - originalLookupLabel: 363 - center: - x: 13.0 - y: -81.0 - z: -14.0 - color: '#781386' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_11: - name: 17Networks_RH_VisCent_ExStr_11 - lookupLabel: 364 - originalLookupLabel: 364 - center: - x: 50.0 - y: -72.0 - z: -7.0 - color: '#78138a' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_12: - name: 17Networks_RH_VisCent_ExStr_12 - lookupLabel: 365 - originalLookupLabel: 365 - center: - x: 26.0 - y: -96.0 - z: -12.0 - color: '#78138b' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_13: - name: 17Networks_RH_VisCent_ExStr_13 - lookupLabel: 366 - originalLookupLabel: 366 - center: - x: 5.0 - y: -87.0 - z: -9.0 - color: '#78138c' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_14: - name: 17Networks_RH_VisCent_ExStr_14 - lookupLabel: 367 - originalLookupLabel: 367 - center: - x: 40.0 - y: -88.0 - z: -6.0 - color: '#78138d' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_15: - name: 17Networks_RH_VisCent_ExStr_15 - lookupLabel: 368 - originalLookupLabel: 368 - center: - x: 51.0 - y: -72.0 - z: 1.0 - color: '#78138e' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_16: - name: 17Networks_RH_VisCent_ExStr_16 - lookupLabel: 369 - originalLookupLabel: 369 - center: - x: 26.0 - y: -98.0 - z: 1.0 - color: '#781487' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_17: - name: 17Networks_RH_VisCent_ExStr_17 - lookupLabel: 370 - originalLookupLabel: 370 - center: - x: 35.0 - y: -89.0 - z: 0.0 - color: '#781488' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_18: - name: 17Networks_RH_VisCent_ExStr_18 - lookupLabel: 371 - originalLookupLabel: 371 - center: - x: 44.0 - y: -80.0 - z: 3.0 - color: '#781489' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_19: - name: 17Networks_RH_VisCent_ExStr_19 - lookupLabel: 372 - originalLookupLabel: 372 - center: - x: 24.0 - y: -97.0 - z: 13.0 - color: '#78148a' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_20: - name: 17Networks_RH_VisCent_ExStr_20 - lookupLabel: 373 - originalLookupLabel: 373 - center: - x: 34.0 - y: -88.0 - z: 7.0 - color: '#78148b' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_21: - name: 17Networks_RH_VisCent_ExStr_21 - lookupLabel: 374 - originalLookupLabel: 374 - center: - x: 14.0 - y: -95.0 - z: 18.0 - color: '#78148c' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_22: - name: 17Networks_RH_VisCent_ExStr_22 - lookupLabel: 375 - originalLookupLabel: 375 - center: - x: 29.0 - y: -88.0 - z: 18.0 - color: '#78148d' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_23: - name: 17Networks_RH_VisCent_ExStr_23 - lookupLabel: 376 - originalLookupLabel: 376 - center: - x: 28.0 - y: -82.0 - z: 29.0 - color: '#78148e' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisPeri_StriCal_1: - name: 17Networks_RH_VisPeri_StriCal_1 - lookupLabel: 377 - originalLookupLabel: 377 - center: - x: 3.0 - y: -72.0 - z: 5.0 - color: '#ff0102' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_2: - name: 17Networks_RH_VisPeri_StriCal_2 - lookupLabel: 378 - originalLookupLabel: 378 - center: - x: 14.0 - y: -62.0 - z: 5.0 - color: '#ff0103' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_3: - name: 17Networks_RH_VisPeri_StriCal_3 - lookupLabel: 379 - originalLookupLabel: 379 - center: - x: 8.0 - y: -81.0 - z: 7.0 - color: '#ff0104' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_4: - name: 17Networks_RH_VisPeri_StriCal_4 - lookupLabel: 380 - originalLookupLabel: 380 - center: - x: 12.0 - y: -70.0 - z: 11.0 - color: '#ff0105' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_1: - name: 17Networks_RH_VisPeri_ExStrInf_1 - lookupLabel: 381 - originalLookupLabel: 381 - center: - x: 25.0 - y: -47.0 - z: -7.0 - color: '#fe0001' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_2: - name: 17Networks_RH_VisPeri_ExStrInf_2 - lookupLabel: 382 - originalLookupLabel: 382 - center: - x: 18.0 - y: -64.0 - z: -7.0 - color: '#fe0002' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_3: - name: 17Networks_RH_VisPeri_ExStrInf_3 - lookupLabel: 383 - originalLookupLabel: 383 - center: - x: 18.0 - y: -38.0 - z: -12.0 - color: '#fe0003' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_4: - name: 17Networks_RH_VisPeri_ExStrInf_4 - lookupLabel: 384 - originalLookupLabel: 384 - center: - x: 14.0 - y: -56.0 - z: -5.0 - color: '#fe0004' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_5: - name: 17Networks_RH_VisPeri_ExStrInf_5 - lookupLabel: 385 - originalLookupLabel: 385 - center: - x: 8.0 - y: -72.0 - z: -4.0 - color: '#fe0005' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_6: - name: 17Networks_RH_VisPeri_ExStrInf_6 - lookupLabel: 386 - originalLookupLabel: 386 - center: - x: 16.0 - y: -40.0 - z: -5.0 - color: '#fe0006' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_7: - name: 17Networks_RH_VisPeri_ExStrInf_7 - lookupLabel: 387 - originalLookupLabel: 387 - center: - x: 8.0 - y: -59.0 - z: 4.0 - color: '#fe0007' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_8: - name: 17Networks_RH_VisPeri_ExStrInf_8 - lookupLabel: 388 - originalLookupLabel: 388 - center: - x: 19.0 - y: -50.0 - z: 0.0 - color: '#fe0100' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_9: - name: 17Networks_RH_VisPeri_ExStrInf_9 - lookupLabel: 389 - originalLookupLabel: 389 - center: - x: 13.0 - y: -44.0 - z: 3.0 - color: '#fe0101' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_10: - name: 17Networks_RH_VisPeri_ExStrInf_10 - lookupLabel: 390 - originalLookupLabel: 390 - center: - x: 24.0 - y: -55.0 - z: 5.0 - color: '#fe0102' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_1: - name: 17Networks_RH_VisPeri_ExStrSup_1 - lookupLabel: 391 - originalLookupLabel: 391 - center: - x: 22.0 - y: -62.0 - z: 9.0 - color: '#fe0000' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_2: - name: 17Networks_RH_VisPeri_ExStrSup_2 - lookupLabel: 392 - originalLookupLabel: 392 - center: - x: 6.0 - y: -91.0 - z: 16.0 - color: '#fe0008' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_3: - name: 17Networks_RH_VisPeri_ExStrSup_3 - lookupLabel: 393 - originalLookupLabel: 393 - center: - x: 15.0 - y: -64.0 - z: 17.0 - color: '#fe0103' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_4: - name: 17Networks_RH_VisPeri_ExStrSup_4 - lookupLabel: 394 - originalLookupLabel: 394 - center: - x: 5.0 - y: -77.0 - z: 24.0 - color: '#fe0104' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_5: - name: 17Networks_RH_VisPeri_ExStrSup_5 - lookupLabel: 395 - originalLookupLabel: 395 - center: - x: 16.0 - y: -72.0 - z: 25.0 - color: '#fe0105' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_6: - name: 17Networks_RH_VisPeri_ExStrSup_6 - lookupLabel: 396 - originalLookupLabel: 396 - center: - x: 7.0 - y: -87.0 - z: 33.0 - color: '#fe0106' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_7: - name: 17Networks_RH_VisPeri_ExStrSup_7 - lookupLabel: 397 - originalLookupLabel: 397 - center: - x: 18.0 - y: -89.0 - z: 27.0 - color: '#fe0107' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_8: - name: 17Networks_RH_VisPeri_ExStrSup_8 - lookupLabel: 398 - originalLookupLabel: 398 - center: - x: 14.0 - y: -79.0 - z: 36.0 - color: '#fe0108' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_9: - name: 17Networks_RH_VisPeri_ExStrSup_9 - lookupLabel: 399 - originalLookupLabel: 399 - center: - x: 19.0 - y: -86.0 - z: 40.0 - color: '#fe0201' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_10: - name: 17Networks_RH_VisPeri_ExStrSup_10 - lookupLabel: 400 - originalLookupLabel: 400 - center: - x: 21.0 - y: -80.0 - z: 47.0 - color: '#fe0202' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_SomMotA_1: - name: 17Networks_RH_SomMotA_1 - lookupLabel: 401 - originalLookupLabel: 401 - center: - x: 54.0 - y: -17.0 - z: 42.0 - color: '#4682af' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_2: - name: 17Networks_RH_SomMotA_2 - lookupLabel: 402 - originalLookupLabel: 402 - center: - x: 51.0 - y: -13.0 - z: 50.0 - color: '#4682b0' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_3: - name: 17Networks_RH_SomMotA_3 - lookupLabel: 403 - originalLookupLabel: 403 - center: - x: 45.0 - y: -10.0 - z: 50.0 - color: '#4682b1' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_4: - name: 17Networks_RH_SomMotA_4 - lookupLabel: 404 - originalLookupLabel: 404 - center: - x: 7.0 - y: -5.0 - z: 51.0 - color: '#4682b2' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_5: - name: 17Networks_RH_SomMotA_5 - lookupLabel: 405 - originalLookupLabel: 405 - center: - x: 49.0 - y: -26.0 - z: 56.0 - color: '#4682b3' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_6: - name: 17Networks_RH_SomMotA_6 - lookupLabel: 406 - originalLookupLabel: 406 - center: - x: 41.0 - y: -21.0 - z: 50.0 - color: '#4682b4' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_7: - name: 17Networks_RH_SomMotA_7 - lookupLabel: 407 - originalLookupLabel: 407 - center: - x: 6.0 - y: -16.0 - z: 52.0 - color: '#4682b5' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_8: - name: 17Networks_RH_SomMotA_8 - lookupLabel: 408 - originalLookupLabel: 408 - center: - x: 44.0 - y: -24.0 - z: 63.0 - color: '#4683ae' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_9: - name: 17Networks_RH_SomMotA_9 - lookupLabel: 409 - originalLookupLabel: 409 - center: - x: 41.0 - y: -15.0 - z: 58.0 - color: '#4683af' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_10: - name: 17Networks_RH_SomMotA_10 - lookupLabel: 410 - originalLookupLabel: 410 - center: - x: 28.0 - y: -35.0 - z: 58.0 - color: '#4683b0' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_11: - name: 17Networks_RH_SomMotA_11 - lookupLabel: 411 - originalLookupLabel: 411 - center: - x: 31.0 - y: -41.0 - z: 65.0 - color: '#4683b1' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_12: - name: 17Networks_RH_SomMotA_12 - lookupLabel: 412 - originalLookupLabel: 412 - center: - x: 32.0 - y: -27.0 - z: 58.0 - color: '#4683b2' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_13: - name: 17Networks_RH_SomMotA_13 - lookupLabel: 413 - originalLookupLabel: 413 - center: - x: 34.0 - y: -33.0 - z: 67.0 - color: '#4683b3' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_14: - name: 17Networks_RH_SomMotA_14 - lookupLabel: 414 - originalLookupLabel: 414 - center: - x: 8.0 - y: -39.0 - z: 60.0 - color: '#4683b4' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_15: - name: 17Networks_RH_SomMotA_15 - lookupLabel: 415 - originalLookupLabel: 415 - center: - x: 33.0 - y: -21.0 - z: 66.0 - color: '#4683b6' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_16: - name: 17Networks_RH_SomMotA_16 - lookupLabel: 416 - originalLookupLabel: 416 - center: - x: 29.0 - y: -12.0 - z: 65.0 - color: '#4683b7' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_17: - name: 17Networks_RH_SomMotA_17 - lookupLabel: 417 - originalLookupLabel: 417 - center: - x: 4.0 - y: -24.0 - z: 61.0 - color: '#4683b8' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_18: - name: 17Networks_RH_SomMotA_18 - lookupLabel: 418 - originalLookupLabel: 418 - center: - x: 24.0 - y: -28.0 - z: 67.0 - color: '#4683b9' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_19: - name: 17Networks_RH_SomMotA_19 - lookupLabel: 419 - originalLookupLabel: 419 - center: - x: 23.0 - y: -34.0 - z: 70.0 - color: '#4683ba' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_20: - name: 17Networks_RH_SomMotA_20 - lookupLabel: 420 - originalLookupLabel: 420 - center: - x: 22.0 - y: -42.0 - z: 67.0 - color: '#4683bb' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_21: - name: 17Networks_RH_SomMotA_21 - lookupLabel: 421 - originalLookupLabel: 421 - center: - x: 9.0 - y: -7.0 - z: 72.0 - color: '#4683bc' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_22: - name: 17Networks_RH_SomMotA_22 - lookupLabel: 422 - originalLookupLabel: 422 - center: - x: 18.0 - y: -5.0 - z: 69.0 - color: '#4684b5' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_23: - name: 17Networks_RH_SomMotA_23 - lookupLabel: 423 - originalLookupLabel: 423 - center: - x: 21.0 - y: -24.0 - z: 67.0 - color: '#4684b6' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_24: - name: 17Networks_RH_SomMotA_24 - lookupLabel: 424 - originalLookupLabel: 424 - center: - x: 11.0 - y: -40.0 - z: 71.0 - color: '#4684b7' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_25: - name: 17Networks_RH_SomMotA_25 - lookupLabel: 425 - originalLookupLabel: 425 - center: - x: 20.0 - y: -13.0 - z: 71.0 - color: '#4684b8' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_26: - name: 17Networks_RH_SomMotA_26 - lookupLabel: 426 - originalLookupLabel: 426 - center: - x: 5.0 - y: -28.0 - z: 73.0 - color: '#4684b9' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_27: - name: 17Networks_RH_SomMotA_27 - lookupLabel: 427 - originalLookupLabel: 427 - center: - x: 21.0 - y: -40.0 - z: 75.0 - color: '#4684ba' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_28: - name: 17Networks_RH_SomMotA_28 - lookupLabel: 428 - originalLookupLabel: 428 - center: - x: 10.0 - y: -16.0 - z: 75.0 - color: '#4684bb' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_29: - name: 17Networks_RH_SomMotA_29 - lookupLabel: 429 - originalLookupLabel: 429 - center: - x: 14.0 - y: -26.0 - z: 73.0 - color: '#4684bc' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_30: - name: 17Networks_RH_SomMotA_30 - lookupLabel: 430 - originalLookupLabel: 430 - center: - x: 14.0 - y: -32.0 - z: 74.0 - color: '#4685b5' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_31: - name: 17Networks_RH_SomMotA_31 - lookupLabel: 431 - originalLookupLabel: 431 - center: - x: 7.0 - y: -34.0 - z: 77.0 - color: '#4685b6' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotB_Cent_1: - name: 17Networks_RH_SomMotB_Cent_1 - lookupLabel: 432 - originalLookupLabel: 432 - center: - x: 61.0 - y: 2.0 - z: 23.0 - color: '#2bcca2' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_2: - name: 17Networks_RH_SomMotB_Cent_2 - lookupLabel: 433 - originalLookupLabel: 433 - center: - x: 65.0 - y: -6.0 - z: 24.0 - color: '#2bcca3' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_3: - name: 17Networks_RH_SomMotB_Cent_3 - lookupLabel: 434 - originalLookupLabel: 434 - center: - x: 56.0 - y: -6.0 - z: 26.0 - color: '#2bcca4' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_4: - name: 17Networks_RH_SomMotB_Cent_4 - lookupLabel: 435 - originalLookupLabel: 435 - center: - x: 62.0 - y: -10.0 - z: 39.0 - color: '#2bcca6' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_5: - name: 17Networks_RH_SomMotB_Cent_5 - lookupLabel: 436 - originalLookupLabel: 436 - center: - x: 59.0 - y: 1.0 - z: 36.0 - color: '#2bcca7' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_6: - name: 17Networks_RH_SomMotB_Cent_6 - lookupLabel: 437 - originalLookupLabel: 437 - center: - x: 54.0 - y: -10.0 - z: 38.0 - color: '#2bcca8' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_7: - name: 17Networks_RH_SomMotB_Cent_7 - lookupLabel: 438 - originalLookupLabel: 438 - center: - x: 49.0 - y: -8.0 - z: 35.0 - color: '#2bcca9' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_8: - name: 17Networks_RH_SomMotB_Cent_8 - lookupLabel: 439 - originalLookupLabel: 439 - center: - x: 54.0 - y: -4.0 - z: 46.0 - color: '#2bccaa' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_9: - name: 17Networks_RH_SomMotB_Cent_9 - lookupLabel: 440 - originalLookupLabel: 440 - center: - x: 39.0 - y: -16.0 - z: 41.0 - color: '#2bccab' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_1: - name: 17Networks_RH_SomMotB_S2_1 - lookupLabel: 441 - originalLookupLabel: 441 - center: - x: 37.0 - y: -10.0 - z: 12.0 - color: '#2bcda1' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_2: - name: 17Networks_RH_SomMotB_S2_2 - lookupLabel: 442 - originalLookupLabel: 442 - center: - x: 40.0 - y: -4.0 - z: 15.0 - color: '#2bcda2' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_3: - name: 17Networks_RH_SomMotB_S2_3 - lookupLabel: 443 - originalLookupLabel: 443 - center: - x: 35.0 - y: -20.0 - z: 19.0 - color: '#2bcda3' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_4: - name: 17Networks_RH_SomMotB_S2_4 - lookupLabel: 444 - originalLookupLabel: 444 - center: - x: 43.0 - y: -12.0 - z: 17.0 - color: '#2bcda5' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_5: - name: 17Networks_RH_SomMotB_S2_5 - lookupLabel: 445 - originalLookupLabel: 445 - center: - x: 51.0 - y: -10.0 - z: 13.0 - color: '#2bcda6' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_6: - name: 17Networks_RH_SomMotB_S2_6 - lookupLabel: 446 - originalLookupLabel: 446 - center: - x: 41.0 - y: -29.0 - z: 20.0 - color: '#2bcda7' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_7: - name: 17Networks_RH_SomMotB_S2_7 - lookupLabel: 447 - originalLookupLabel: 447 - center: - x: 57.0 - y: 1.0 - z: 9.0 - color: '#2bcda8' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_8: - name: 17Networks_RH_SomMotB_S2_8 - lookupLabel: 448 - originalLookupLabel: 448 - center: - x: 49.0 - y: -21.0 - z: 18.0 - color: '#2bcda9' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_9: - name: 17Networks_RH_SomMotB_S2_9 - lookupLabel: 449 - originalLookupLabel: 449 - center: - x: 62.0 - y: -2.0 - z: 11.0 - color: '#2bcdaa' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_10: - name: 17Networks_RH_SomMotB_S2_10 - lookupLabel: 450 - originalLookupLabel: 450 - center: - x: 61.0 - y: -12.0 - z: 16.0 - color: '#2bcdab' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Ins_1: - name: 17Networks_RH_SomMotB_Ins_1 - lookupLabel: 451 - originalLookupLabel: 451 - center: - x: 39.0 - y: -20.0 - z: 3.0 - color: '#2bcdac' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_1: - name: 17Networks_RH_SomMotB_Aud_1 - lookupLabel: 452 - originalLookupLabel: 452 - center: - x: 53.0 - y: 5.0 - z: -6.0 - color: '#2acca1' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_2: - name: 17Networks_RH_SomMotB_Aud_2 - lookupLabel: 453 - originalLookupLabel: 453 - center: - x: 48.0 - y: -11.0 - z: -4.0 - color: '#2acca2' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_3: - name: 17Networks_RH_SomMotB_Aud_3 - lookupLabel: 454 - originalLookupLabel: 454 - center: - x: 66.0 - y: -9.0 - z: -3.0 - color: '#2acca4' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_4: - name: 17Networks_RH_SomMotB_Aud_4 - lookupLabel: 455 - originalLookupLabel: 455 - center: - x: 53.0 - y: -14.0 - z: 5.0 - color: '#2acca5' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_5: - name: 17Networks_RH_SomMotB_Aud_5 - lookupLabel: 456 - originalLookupLabel: 456 - center: - x: 67.0 - y: -16.0 - z: 6.0 - color: '#2acca6' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_6: - name: 17Networks_RH_SomMotB_Aud_6 - lookupLabel: 457 - originalLookupLabel: 457 - center: - x: 35.0 - y: -21.0 - z: 12.0 - color: '#2acca7' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_7: - name: 17Networks_RH_SomMotB_Aud_7 - lookupLabel: 458 - originalLookupLabel: 458 - center: - x: 60.0 - y: -25.0 - z: 11.0 - color: '#2acca8' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_8: - name: 17Networks_RH_SomMotB_Aud_8 - lookupLabel: 459 - originalLookupLabel: 459 - center: - x: 40.0 - y: -28.0 - z: 13.0 - color: '#2acca9' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_DorsAttnA_TempOcc_1: - name: 17Networks_RH_DorsAttnA_TempOcc_1 - lookupLabel: 460 - originalLookupLabel: 460 - center: - x: 47.0 - y: -37.0 - z: -21.0 - color: '#4a9c3b' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_2: - name: 17Networks_RH_DorsAttnA_TempOcc_2 - lookupLabel: 461 - originalLookupLabel: 461 - center: - x: 32.0 - y: -36.0 - z: -22.0 - color: '#4a9c3c' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_3: - name: 17Networks_RH_DorsAttnA_TempOcc_3 - lookupLabel: 462 - originalLookupLabel: 462 - center: - x: 54.0 - y: -43.0 - z: -22.0 - color: '#4a9c3e' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_4: - name: 17Networks_RH_DorsAttnA_TempOcc_4 - lookupLabel: 463 - originalLookupLabel: 463 - center: - x: 47.0 - y: -52.0 - z: -17.0 - color: '#4a9c3f' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_5: - name: 17Networks_RH_DorsAttnA_TempOcc_5 - lookupLabel: 464 - originalLookupLabel: 464 - center: - x: 57.0 - y: -53.0 - z: -16.0 - color: '#4a9c40' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_6: - name: 17Networks_RH_DorsAttnA_TempOcc_6 - lookupLabel: 465 - originalLookupLabel: 465 - center: - x: 48.0 - y: -64.0 - z: -12.0 - color: '#4a9c41' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_7: - name: 17Networks_RH_DorsAttnA_TempOcc_7 - lookupLabel: 466 - originalLookupLabel: 466 - center: - x: 52.0 - y: -58.0 - z: -5.0 - color: '#4a9c42' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_8: - name: 17Networks_RH_DorsAttnA_TempOcc_8 - lookupLabel: 467 - originalLookupLabel: 467 - center: - x: 46.0 - y: -63.0 - z: 2.0 - color: '#4a9c43' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_1: - name: 17Networks_RH_DorsAttnA_ParOcc_1 - lookupLabel: 468 - originalLookupLabel: 468 - center: - x: 51.0 - y: -59.0 - z: 10.0 - color: '#4b9b3a' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_2: - name: 17Networks_RH_DorsAttnA_ParOcc_2 - lookupLabel: 469 - originalLookupLabel: 469 - center: - x: 50.0 - y: -66.0 - z: 10.0 - color: '#4b9b3b' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_3: - name: 17Networks_RH_DorsAttnA_ParOcc_3 - lookupLabel: 470 - originalLookupLabel: 470 - center: - x: 44.0 - y: -78.0 - z: 12.0 - color: '#4b9b3d' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_4: - name: 17Networks_RH_DorsAttnA_ParOcc_4 - lookupLabel: 471 - originalLookupLabel: 471 - center: - x: 50.0 - y: -58.0 - z: 18.0 - color: '#4b9b3e' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_5: - name: 17Networks_RH_DorsAttnA_ParOcc_5 - lookupLabel: 472 - originalLookupLabel: 472 - center: - x: 46.0 - y: -67.0 - z: 20.0 - color: '#4b9b3f' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_6: - name: 17Networks_RH_DorsAttnA_ParOcc_6 - lookupLabel: 473 - originalLookupLabel: 473 - center: - x: 43.0 - y: -81.0 - z: 23.0 - color: '#4b9b40' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_7: - name: 17Networks_RH_DorsAttnA_ParOcc_7 - lookupLabel: 474 - originalLookupLabel: 474 - center: - x: 36.0 - y: -82.0 - z: 22.0 - color: '#4b9b41' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_8: - name: 17Networks_RH_DorsAttnA_ParOcc_8 - lookupLabel: 475 - originalLookupLabel: 475 - center: - x: 38.0 - y: -77.0 - z: 34.0 - color: '#4b9b42' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_1: - name: 17Networks_RH_DorsAttnA_SPL_1 - lookupLabel: 476 - originalLookupLabel: 476 - center: - x: 33.0 - y: -72.0 - z: 24.0 - color: '#4b9b39' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_2: - name: 17Networks_RH_DorsAttnA_SPL_2 - lookupLabel: 477 - originalLookupLabel: 477 - center: - x: 30.0 - y: -67.0 - z: 33.0 - color: '#4b9b3c' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_3: - name: 17Networks_RH_DorsAttnA_SPL_3 - lookupLabel: 478 - originalLookupLabel: 478 - center: - x: 29.0 - y: -78.0 - z: 42.0 - color: '#4b9b43' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_4: - name: 17Networks_RH_DorsAttnA_SPL_4 - lookupLabel: 479 - originalLookupLabel: 479 - center: - x: 33.0 - y: -64.0 - z: 54.0 - color: '#4b9b44' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_5: - name: 17Networks_RH_DorsAttnA_SPL_5 - lookupLabel: 480 - originalLookupLabel: 480 - center: - x: 26.0 - y: -65.0 - z: 51.0 - color: '#4b9c3d' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_6: - name: 17Networks_RH_DorsAttnA_SPL_6 - lookupLabel: 481 - originalLookupLabel: 481 - center: - x: 17.0 - y: -73.0 - z: 52.0 - color: '#4b9c3e' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_7: - name: 17Networks_RH_DorsAttnA_SPL_7 - lookupLabel: 482 - originalLookupLabel: 482 - center: - x: 33.0 - y: -55.0 - z: 51.0 - color: '#4b9c3f' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_8: - name: 17Networks_RH_DorsAttnA_SPL_8 - lookupLabel: 483 - originalLookupLabel: 483 - center: - x: 36.0 - y: -48.0 - z: 60.0 - color: '#4b9c40' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_9: - name: 17Networks_RH_DorsAttnA_SPL_9 - lookupLabel: 484 - originalLookupLabel: 484 - center: - x: 11.0 - y: -71.0 - z: 56.0 - color: '#4b9c41' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_10: - name: 17Networks_RH_DorsAttnA_SPL_10 - lookupLabel: 485 - originalLookupLabel: 485 - center: - x: 28.0 - y: -57.0 - z: 61.0 - color: '#4b9c42' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_11: - name: 17Networks_RH_DorsAttnA_SPL_11 - lookupLabel: 486 - originalLookupLabel: 486 - center: - x: 20.0 - y: -67.0 - z: 61.0 - color: '#4b9c43' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_12: - name: 17Networks_RH_DorsAttnA_SPL_12 - lookupLabel: 487 - originalLookupLabel: 487 - center: - x: 13.0 - y: -62.0 - z: 65.0 - color: '#4b9c44' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnB_TempOcc_1: - name: 17Networks_RH_DorsAttnB_TempOcc_1 - lookupLabel: 488 - originalLookupLabel: 488 - center: - x: 59.0 - y: -57.0 - z: 1.0 - color: '#01760f' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_1: - name: 17Networks_RH_DorsAttnB_PostC_1 - lookupLabel: 489 - originalLookupLabel: 489 - center: - x: 64.0 - y: -20.0 - z: 35.0 - color: '#01760a' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_2: - name: 17Networks_RH_DorsAttnB_PostC_2 - lookupLabel: 490 - originalLookupLabel: 490 - center: - x: 62.0 - y: -28.0 - z: 47.0 - color: '#01760b' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_3: - name: 17Networks_RH_DorsAttnB_PostC_3 - lookupLabel: 491 - originalLookupLabel: 491 - center: - x: 57.0 - y: -15.0 - z: 33.0 - color: '#01760c' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_4: - name: 17Networks_RH_DorsAttnB_PostC_4 - lookupLabel: 492 - originalLookupLabel: 492 - center: - x: 57.0 - y: -23.0 - z: 44.0 - color: '#01760d' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_5: - name: 17Networks_RH_DorsAttnB_PostC_5 - lookupLabel: 493 - originalLookupLabel: 493 - center: - x: 48.0 - y: -29.0 - z: 43.0 - color: '#01760e' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_6: - name: 17Networks_RH_DorsAttnB_PostC_6 - lookupLabel: 494 - originalLookupLabel: 494 - center: - x: 40.0 - y: -39.0 - z: 48.0 - color: '#017610' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_7: - name: 17Networks_RH_DorsAttnB_PostC_7 - lookupLabel: 495 - originalLookupLabel: 495 - center: - x: 44.0 - y: -26.0 - z: 43.0 - color: '#017611' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_8: - name: 17Networks_RH_DorsAttnB_PostC_8 - lookupLabel: 496 - originalLookupLabel: 496 - center: - x: 36.0 - y: -33.0 - z: 47.0 - color: '#017612' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_9: - name: 17Networks_RH_DorsAttnB_PostC_9 - lookupLabel: 497 - originalLookupLabel: 497 - center: - x: 37.0 - y: -40.0 - z: 58.0 - color: '#017613' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_10: - name: 17Networks_RH_DorsAttnB_PostC_10 - lookupLabel: 498 - originalLookupLabel: 498 - center: - x: 36.0 - y: -49.0 - z: 67.0 - color: '#017614' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_11: - name: 17Networks_RH_DorsAttnB_PostC_11 - lookupLabel: 499 - originalLookupLabel: 499 - center: - x: 7.0 - y: -51.0 - z: 63.0 - color: '#017615' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_12: - name: 17Networks_RH_DorsAttnB_PostC_12 - lookupLabel: 500 - originalLookupLabel: 500 - center: - x: 23.0 - y: -51.0 - z: 69.0 - color: '#017616' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_13: - name: 17Networks_RH_DorsAttnB_PostC_13 - lookupLabel: 501 - originalLookupLabel: 501 - center: - x: 13.0 - y: -49.0 - z: 73.0 - color: '#01770f' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_1: - name: 17Networks_RH_DorsAttnB_FEF_1 - lookupLabel: 502 - originalLookupLabel: 502 - center: - x: 43.0 - y: -3.0 - z: 50.0 - color: '#017710' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_2: - name: 17Networks_RH_DorsAttnB_FEF_2 - lookupLabel: 503 - originalLookupLabel: 503 - center: - x: 36.0 - y: -6.0 - z: 59.0 - color: '#017711' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_3: - name: 17Networks_RH_DorsAttnB_FEF_3 - lookupLabel: 504 - originalLookupLabel: 504 - center: - x: 26.0 - y: -6.0 - z: 52.0 - color: '#017712' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_4: - name: 17Networks_RH_DorsAttnB_FEF_4 - lookupLabel: 505 - originalLookupLabel: 505 - center: - x: 25.0 - y: -2.0 - z: 63.0 - color: '#017713' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PrCv_1: - name: 17Networks_RH_DorsAttnB_PrCv_1 - lookupLabel: 506 - originalLookupLabel: 506 - center: - x: 53.0 - y: 8.0 - z: 30.0 - color: '#017714' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_SalVentAttnA_ParOper_1: - name: 17Networks_RH_SalVentAttnA_ParOper_1 - lookupLabel: 507 - originalLookupLabel: 507 - center: - x: 64.0 - y: -32.0 - z: 21.0 - color: '#c43af8' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_2: - name: 17Networks_RH_SalVentAttnA_ParOper_2 - lookupLabel: 508 - originalLookupLabel: 508 - center: - x: 51.0 - y: -31.0 - z: 25.0 - color: '#c43afa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_3: - name: 17Networks_RH_SalVentAttnA_ParOper_3 - lookupLabel: 509 - originalLookupLabel: 509 - center: - x: 59.0 - y: -23.0 - z: 22.0 - color: '#c43afb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_4: - name: 17Networks_RH_SalVentAttnA_ParOper_4 - lookupLabel: 510 - originalLookupLabel: 510 - center: - x: 61.0 - y: -29.0 - z: 35.0 - color: '#c43afc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_5: - name: 17Networks_RH_SalVentAttnA_ParOper_5 - lookupLabel: 511 - originalLookupLabel: 511 - center: - x: 63.0 - y: -14.0 - z: 27.0 - color: '#c43afd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_PrC_1: - name: 17Networks_RH_SalVentAttnA_PrC_1 - lookupLabel: 512 - originalLookupLabel: 512 - center: - x: 50.0 - y: 4.0 - z: 41.0 - color: '#c439fb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_1: - name: 17Networks_RH_SalVentAttnA_FrOper_1 - lookupLabel: 513 - originalLookupLabel: 513 - center: - x: 43.0 - y: 13.0 - z: 5.0 - color: '#c439fa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_2: - name: 17Networks_RH_SalVentAttnA_FrOper_2 - lookupLabel: 514 - originalLookupLabel: 514 - center: - x: 50.0 - y: 4.0 - z: 4.0 - color: '#c439fc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_3: - name: 17Networks_RH_SalVentAttnA_FrOper_3 - lookupLabel: 515 - originalLookupLabel: 515 - center: - x: 59.0 - y: 8.0 - z: 18.0 - color: '#c439fd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_1: - name: 17Networks_RH_SalVentAttnA_Ins_1 - lookupLabel: 516 - originalLookupLabel: 516 - center: - x: 39.0 - y: 5.0 - z: -12.0 - color: '#c33af9' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_2: - name: 17Networks_RH_SalVentAttnA_Ins_2 - lookupLabel: 517 - originalLookupLabel: 517 - center: - x: 43.0 - y: -6.0 - z: -9.0 - color: '#c33afb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_3: - name: 17Networks_RH_SalVentAttnA_Ins_3 - lookupLabel: 518 - originalLookupLabel: 518 - center: - x: 40.0 - y: 9.0 - z: -2.0 - color: '#c33afc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_4: - name: 17Networks_RH_SalVentAttnA_Ins_4 - lookupLabel: 519 - originalLookupLabel: 519 - center: - x: 40.0 - y: -13.0 - z: 1.0 - color: '#c33afd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_5: - name: 17Networks_RH_SalVentAttnA_Ins_5 - lookupLabel: 520 - originalLookupLabel: 520 - center: - x: 39.0 - y: 0.0 - z: 6.0 - color: '#c33afe' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_6: - name: 17Networks_RH_SalVentAttnA_Ins_6 - lookupLabel: 521 - originalLookupLabel: 521 - center: - x: 36.0 - y: 7.0 - z: 11.0 - color: '#c33aff' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_1: - name: 17Networks_RH_SalVentAttnA_ParMed_1 - lookupLabel: 522 - originalLookupLabel: 522 - center: - x: 11.0 - y: -17.0 - z: 41.0 - color: '#c33af8' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_2: - name: 17Networks_RH_SalVentAttnA_ParMed_2 - lookupLabel: 523 - originalLookupLabel: 523 - center: - x: 12.0 - y: -32.0 - z: 42.0 - color: '#c33afa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_3: - name: 17Networks_RH_SalVentAttnA_ParMed_3 - lookupLabel: 524 - originalLookupLabel: 524 - center: - x: 11.0 - y: -42.0 - z: 51.0 - color: '#c033f9' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_4: - name: 17Networks_RH_SalVentAttnA_ParMed_4 - lookupLabel: 525 - originalLookupLabel: 525 - center: - x: 11.0 - y: -31.0 - z: 50.0 - color: '#c034f2' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_5: - name: 17Networks_RH_SalVentAttnA_ParMed_5 - lookupLabel: 526 - originalLookupLabel: 526 - center: - x: 12.0 - y: -45.0 - z: 60.0 - color: '#c034f3' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_1: - name: 17Networks_RH_SalVentAttnA_FrMed_1 - lookupLabel: 527 - originalLookupLabel: 527 - center: - x: 4.0 - y: -15.0 - z: 37.0 - color: '#c339f9' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_2: - name: 17Networks_RH_SalVentAttnA_FrMed_2 - lookupLabel: 528 - originalLookupLabel: 528 - center: - x: 7.0 - y: 2.0 - z: 41.0 - color: '#c339fb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_3: - name: 17Networks_RH_SalVentAttnA_FrMed_3 - lookupLabel: 529 - originalLookupLabel: 529 - center: - x: 8.0 - y: 14.0 - z: 42.0 - color: '#c339fc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_4: - name: 17Networks_RH_SalVentAttnA_FrMed_4 - lookupLabel: 530 - originalLookupLabel: 530 - center: - x: 6.0 - y: 11.0 - z: 57.0 - color: '#c339fd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_5: - name: 17Networks_RH_SalVentAttnA_FrMed_5 - lookupLabel: 531 - originalLookupLabel: 531 - center: - x: 6.0 - y: -1.0 - z: 65.0 - color: '#c339fe' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_6: - name: 17Networks_RH_SalVentAttnA_FrMed_6 - lookupLabel: 532 - originalLookupLabel: 532 - center: - x: 15.0 - y: 6.0 - z: 70.0 - color: '#c339ff' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnB_IPL_1: - name: 17Networks_RH_SalVentAttnB_IPL_1 - lookupLabel: 533 - originalLookupLabel: 533 - center: - x: 65.0 - y: -39.0 - z: 27.0 - color: '#fe98d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_IPL_2: - name: 17Networks_RH_SalVentAttnB_IPL_2 - lookupLabel: 534 - originalLookupLabel: 534 - center: - x: 61.0 - y: -37.0 - z: 39.0 - color: '#fe98d7' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCd_1: - name: 17Networks_RH_SalVentAttnB_PFCd_1 - lookupLabel: 535 - originalLookupLabel: 535 - center: - x: 11.0 - y: 19.0 - z: 63.0 - color: '#fe98d5' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_1: - name: 17Networks_RH_SalVentAttnB_PFCl_1 - lookupLabel: 536 - originalLookupLabel: 536 - center: - x: 42.0 - y: 47.0 - z: 15.0 - color: '#fe97d4' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_2: - name: 17Networks_RH_SalVentAttnB_PFCl_2 - lookupLabel: 537 - originalLookupLabel: 537 - center: - x: 32.0 - y: 48.0 - z: 20.0 - color: '#fe97d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_3: - name: 17Networks_RH_SalVentAttnB_PFCl_3 - lookupLabel: 538 - originalLookupLabel: 538 - center: - x: 25.0 - y: 56.0 - z: 24.0 - color: '#fe97d7' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_4: - name: 17Networks_RH_SalVentAttnB_PFCl_4 - lookupLabel: 539 - originalLookupLabel: 539 - center: - x: 38.0 - y: 42.0 - z: 29.0 - color: '#fe97d8' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_5: - name: 17Networks_RH_SalVentAttnB_PFCl_5 - lookupLabel: 540 - originalLookupLabel: 540 - center: - x: 28.0 - y: 45.0 - z: 33.0 - color: '#fe97d9' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFClv_1: - name: 17Networks_RH_SalVentAttnB_PFClv_1 - lookupLabel: 541 - originalLookupLabel: 541 - center: - x: 51.0 - y: 41.0 - z: 0.0 - color: '#fe97d5' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_1: - name: 17Networks_RH_SalVentAttnB_Ins_1 - lookupLabel: 542 - originalLookupLabel: 542 - center: - x: 34.0 - y: 19.0 - z: -9.0 - color: '#fe98d8' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_2: - name: 17Networks_RH_SalVentAttnB_Ins_2 - lookupLabel: 543 - originalLookupLabel: 543 - center: - x: 34.0 - y: 26.0 - z: -2.0 - color: '#fe98d9' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_3: - name: 17Networks_RH_SalVentAttnB_Ins_3 - lookupLabel: 544 - originalLookupLabel: 544 - center: - x: 36.0 - y: 23.0 - z: 6.0 - color: '#fe98da' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_4: - name: 17Networks_RH_SalVentAttnB_Ins_4 - lookupLabel: 545 - originalLookupLabel: 545 - center: - x: 53.0 - y: 21.0 - z: 6.0 - color: '#fe98db' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_5: - name: 17Networks_RH_SalVentAttnB_Ins_5 - lookupLabel: 546 - originalLookupLabel: 546 - center: - x: 53.0 - y: 14.0 - z: 6.0 - color: '#fe98dc' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCmp_1: - name: 17Networks_RH_SalVentAttnB_PFCmp_1 - lookupLabel: 547 - originalLookupLabel: 547 - center: - x: 8.0 - y: 35.0 - z: 20.0 - color: '#fe99d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCmp_2: - name: 17Networks_RH_SalVentAttnB_PFCmp_2 - lookupLabel: 548 - originalLookupLabel: 548 - center: - x: 7.0 - y: 24.0 - z: 28.0 - color: '#fe99d7' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCmp_3: - name: 17Networks_RH_SalVentAttnB_PFCmp_3 - lookupLabel: 549 - originalLookupLabel: 549 - center: - x: 7.0 - y: 32.0 - z: 34.0 - color: '#fe99d8' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Cinga_1: - name: 17Networks_RH_SalVentAttnB_Cinga_1 - lookupLabel: 550 - originalLookupLabel: 550 - center: - x: 6.0 - y: 23.0 - z: 20.0 - color: '#ff97d5' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_LimbicB_OFC_1: - name: 17Networks_RH_LimbicB_OFC_1 - lookupLabel: 551 - originalLookupLabel: 551 - center: - x: 20.0 - y: 13.0 - z: -22.0 - color: '#7a872f' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_2: - name: 17Networks_RH_LimbicB_OFC_2 - lookupLabel: 552 - originalLookupLabel: 552 - center: - x: 15.0 - y: 28.0 - z: -24.0 - color: '#7a8730' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_3: - name: 17Networks_RH_LimbicB_OFC_3 - lookupLabel: 553 - originalLookupLabel: 553 - center: - x: 11.0 - y: 23.0 - z: -18.0 - color: '#7a8731' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_4: - name: 17Networks_RH_LimbicB_OFC_4 - lookupLabel: 554 - originalLookupLabel: 554 - center: - x: 10.0 - y: 42.0 - z: -23.0 - color: '#7a8732' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_5: - name: 17Networks_RH_LimbicB_OFC_5 - lookupLabel: 555 - originalLookupLabel: 555 - center: - x: 23.0 - y: 32.0 - z: -18.0 - color: '#7a8734' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_6: - name: 17Networks_RH_LimbicB_OFC_6 - lookupLabel: 556 - originalLookupLabel: 556 - center: - x: 16.0 - y: 50.0 - z: -19.0 - color: '#7a8735' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_7: - name: 17Networks_RH_LimbicB_OFC_7 - lookupLabel: 557 - originalLookupLabel: 557 - center: - x: 4.0 - y: 24.0 - z: -22.0 - color: '#7a8736' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_8: - name: 17Networks_RH_LimbicB_OFC_8 - lookupLabel: 558 - originalLookupLabel: 558 - center: - x: 7.0 - y: 56.0 - z: -22.0 - color: '#7a8737' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_9: - name: 17Networks_RH_LimbicB_OFC_9 - lookupLabel: 559 - originalLookupLabel: 559 - center: - x: 19.0 - y: 62.0 - z: -14.0 - color: '#7a8738' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_10: - name: 17Networks_RH_LimbicB_OFC_10 - lookupLabel: 560 - originalLookupLabel: 560 - center: - x: 4.0 - y: 25.0 - z: -11.0 - color: '#7a8739' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_11: - name: 17Networks_RH_LimbicB_OFC_11 - lookupLabel: 561 - originalLookupLabel: 561 - center: - x: 6.0 - y: 64.0 - z: -11.0 - color: '#7a873a' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicA_TempPole_1: - name: 17Networks_RH_LimbicA_TempPole_1 - lookupLabel: 562 - originalLookupLabel: 562 - center: - x: 31.0 - y: 3.0 - z: -44.0 - color: '#dcf8a0' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_2: - name: 17Networks_RH_LimbicA_TempPole_2 - lookupLabel: 563 - originalLookupLabel: 563 - center: - x: 33.0 - y: 15.0 - z: -40.0 - color: '#dcf8a1' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_3: - name: 17Networks_RH_LimbicA_TempPole_3 - lookupLabel: 564 - originalLookupLabel: 564 - center: - x: 40.0 - y: -10.0 - z: -35.0 - color: '#dcf8a2' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_4: - name: 17Networks_RH_LimbicA_TempPole_4 - lookupLabel: 565 - originalLookupLabel: 565 - center: - x: 29.0 - y: -7.0 - z: -36.0 - color: '#dcf8a3' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_5: - name: 17Networks_RH_LimbicA_TempPole_5 - lookupLabel: 566 - originalLookupLabel: 566 - center: - x: 51.0 - y: -7.0 - z: -39.0 - color: '#dcf8a4' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_6: - name: 17Networks_RH_LimbicA_TempPole_6 - lookupLabel: 567 - originalLookupLabel: 567 - center: - x: 20.0 - y: 0.0 - z: -31.0 - color: '#dcf8a6' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_7: - name: 17Networks_RH_LimbicA_TempPole_7 - lookupLabel: 568 - originalLookupLabel: 568 - center: - x: 24.0 - y: 6.0 - z: -30.0 - color: '#dcf8a7' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_8: - name: 17Networks_RH_LimbicA_TempPole_8 - lookupLabel: 569 - originalLookupLabel: 569 - center: - x: 52.0 - y: -21.0 - z: -30.0 - color: '#dcf8a8' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_9: - name: 17Networks_RH_LimbicA_TempPole_9 - lookupLabel: 570 - originalLookupLabel: 570 - center: - x: 43.0 - y: -25.0 - z: -24.0 - color: '#dcf8a9' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_10: - name: 17Networks_RH_LimbicA_TempPole_10 - lookupLabel: 571 - originalLookupLabel: 571 - center: - x: 35.0 - y: -18.0 - z: -30.0 - color: '#dcf8aa' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_11: - name: 17Networks_RH_LimbicA_TempPole_11 - lookupLabel: 572 - originalLookupLabel: 572 - center: - x: 32.0 - y: 15.0 - z: -30.0 - color: '#dcf8ab' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_12: - name: 17Networks_RH_LimbicA_TempPole_12 - lookupLabel: 573 - originalLookupLabel: 573 - center: - x: 22.0 - y: -13.0 - z: -30.0 - color: '#dcf8ac' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_13: - name: 17Networks_RH_LimbicA_TempPole_13 - lookupLabel: 574 - originalLookupLabel: 574 - center: - x: 44.0 - y: 11.0 - z: -19.0 - color: '#dcf9a5' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_ContA_Temp_1: - name: 17Networks_RH_ContA_Temp_1 - lookupLabel: 575 - originalLookupLabel: 575 - center: - x: 60.0 - y: -51.0 - z: -7.0 - color: '#e69422' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_Temp_2: - name: 17Networks_RH_ContA_Temp_2 - lookupLabel: 576 - originalLookupLabel: 576 - center: - x: 66.0 - y: -46.0 - z: 0.0 - color: '#e69423' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_1: - name: 17Networks_RH_ContA_IPS_1 - lookupLabel: 577 - originalLookupLabel: 577 - center: - x: 33.0 - y: -69.0 - z: 42.0 - color: '#e69320' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_2: - name: 17Networks_RH_ContA_IPS_2 - lookupLabel: 578 - originalLookupLabel: 578 - center: - x: 55.0 - y: -32.0 - z: 52.0 - color: '#e69321' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_3: - name: 17Networks_RH_ContA_IPS_3 - lookupLabel: 579 - originalLookupLabel: 579 - center: - x: 48.0 - y: -37.0 - z: 51.0 - color: '#e69323' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_4: - name: 17Networks_RH_ContA_IPS_4 - lookupLabel: 580 - originalLookupLabel: 580 - center: - x: 37.0 - y: -66.0 - z: 49.0 - color: '#e69324' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_5: - name: 17Networks_RH_ContA_IPS_5 - lookupLabel: 581 - originalLookupLabel: 581 - center: - x: 43.0 - y: -47.0 - z: 45.0 - color: '#e69325' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_6: - name: 17Networks_RH_ContA_IPS_6 - lookupLabel: 582 - originalLookupLabel: 582 - center: - x: 40.0 - y: -56.0 - z: 46.0 - color: '#e69326' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_7: - name: 17Networks_RH_ContA_IPS_7 - lookupLabel: 583 - originalLookupLabel: 583 - center: - x: 34.0 - y: -46.0 - z: 46.0 - color: '#e69327' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCd_1: - name: 17Networks_RH_ContA_PFCd_1 - lookupLabel: 584 - originalLookupLabel: 584 - center: - x: 33.0 - y: 0.0 - z: 52.0 - color: '#e69322' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCd_2: - name: 17Networks_RH_ContA_PFCd_2 - lookupLabel: 585 - originalLookupLabel: 585 - center: - x: 25.0 - y: 7.0 - z: 53.0 - color: '#e69328' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCd_3: - name: 17Networks_RH_ContA_PFCd_3 - lookupLabel: 586 - originalLookupLabel: 586 - center: - x: 24.0 - y: 10.0 - z: 63.0 - color: '#e69421' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_1: - name: 17Networks_RH_ContA_PFCl_1 - lookupLabel: 587 - originalLookupLabel: 587 - center: - x: 55.0 - y: 30.0 - z: 11.0 - color: '#e5941f' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_2: - name: 17Networks_RH_ContA_PFCl_2 - lookupLabel: 588 - originalLookupLabel: 588 - center: - x: 46.0 - y: 39.0 - z: 9.0 - color: '#e59420' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_3: - name: 17Networks_RH_ContA_PFCl_3 - lookupLabel: 589 - originalLookupLabel: 589 - center: - x: 54.0 - y: 18.0 - z: 19.0 - color: '#e59421' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_4: - name: 17Networks_RH_ContA_PFCl_4 - lookupLabel: 590 - originalLookupLabel: 590 - center: - x: 53.0 - y: 10.0 - z: 14.0 - color: '#e59423' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_5: - name: 17Networks_RH_ContA_PFCl_5 - lookupLabel: 591 - originalLookupLabel: 591 - center: - x: 47.0 - y: 30.0 - z: 20.0 - color: '#e59424' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_6: - name: 17Networks_RH_ContA_PFCl_6 - lookupLabel: 592 - originalLookupLabel: 592 - center: - x: 44.0 - y: 18.0 - z: 24.0 - color: '#e59425' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_7: - name: 17Networks_RH_ContA_PFCl_7 - lookupLabel: 593 - originalLookupLabel: 593 - center: - x: 43.0 - y: 9.0 - z: 24.0 - color: '#e59426' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_8: - name: 17Networks_RH_ContA_PFCl_8 - lookupLabel: 594 - originalLookupLabel: 594 - center: - x: 41.0 - y: 17.0 - z: 31.0 - color: '#e59427' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_9: - name: 17Networks_RH_ContA_PFCl_9 - lookupLabel: 595 - originalLookupLabel: 595 - center: - x: 38.0 - y: 8.0 - z: 36.0 - color: '#e59428' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_Cingm_1: - name: 17Networks_RH_ContA_Cingm_1 - lookupLabel: 596 - originalLookupLabel: 596 - center: - x: 5.0 - y: 9.0 - z: 28.0 - color: '#e59422' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_Cingm_2: - name: 17Networks_RH_ContA_Cingm_2 - lookupLabel: 597 - originalLookupLabel: 597 - center: - x: 5.0 - y: -2.0 - z: 31.0 - color: '#e59521' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContB_Temp_1: - name: 17Networks_RH_ContB_Temp_1 - lookupLabel: 598 - originalLookupLabel: 598 - center: - x: 60.0 - y: -26.0 - z: -24.0 - color: '#88334c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_Temp_2: - name: 17Networks_RH_ContB_Temp_2 - lookupLabel: 599 - originalLookupLabel: 599 - center: - x: 65.0 - y: -23.0 - z: -16.0 - color: '#88334d' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_Temp_3: - name: 17Networks_RH_ContB_Temp_3 - lookupLabel: 600 - originalLookupLabel: 600 - center: - x: 61.0 - y: -36.0 - z: -18.0 - color: '#88334e' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_Temp_4: - name: 17Networks_RH_ContB_Temp_4 - lookupLabel: 601 - originalLookupLabel: 601 - center: - x: 64.0 - y: -40.0 - z: -10.0 - color: '#88334f' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_1: - name: 17Networks_RH_ContB_IPL_1 - lookupLabel: 602 - originalLookupLabel: 602 - center: - x: 55.0 - y: -43.0 - z: 30.0 - color: '#873247' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_2: - name: 17Networks_RH_ContB_IPL_2 - lookupLabel: 603 - originalLookupLabel: 603 - center: - x: 57.0 - y: -48.0 - z: 38.0 - color: '#873248' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_3: - name: 17Networks_RH_ContB_IPL_3 - lookupLabel: 604 - originalLookupLabel: 604 - center: - x: 55.0 - y: -54.0 - z: 44.0 - color: '#87324a' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_4: - name: 17Networks_RH_ContB_IPL_4 - lookupLabel: 605 - originalLookupLabel: 605 - center: - x: 41.0 - y: -70.0 - z: 48.0 - color: '#87324b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_5: - name: 17Networks_RH_ContB_IPL_5 - lookupLabel: 606 - originalLookupLabel: 606 - center: - x: 55.0 - y: -40.0 - z: 48.0 - color: '#87324c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_6: - name: 17Networks_RH_ContB_IPL_6 - lookupLabel: 607 - originalLookupLabel: 607 - center: - x: 50.0 - y: -45.0 - z: 51.0 - color: '#87324d' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_7: - name: 17Networks_RH_ContB_IPL_7 - lookupLabel: 608 - originalLookupLabel: 608 - center: - x: 47.0 - y: -55.0 - z: 54.0 - color: '#87324e' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_1: - name: 17Networks_RH_ContB_PFCld_1 - lookupLabel: 609 - originalLookupLabel: 609 - center: - x: 48.0 - y: 30.0 - z: 30.0 - color: '#873148' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_2: - name: 17Networks_RH_ContB_PFCld_2 - lookupLabel: 610 - originalLookupLabel: 610 - center: - x: 38.0 - y: 33.0 - z: 39.0 - color: '#873149' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_3: - name: 17Networks_RH_ContB_PFCld_3 - lookupLabel: 611 - originalLookupLabel: 611 - center: - x: 46.0 - y: 17.0 - z: 41.0 - color: '#87314b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_4: - name: 17Networks_RH_ContB_PFCld_4 - lookupLabel: 612 - originalLookupLabel: 612 - center: - x: 44.0 - y: 6.0 - z: 50.0 - color: '#87314c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_5: - name: 17Networks_RH_ContB_PFCld_5 - lookupLabel: 613 - originalLookupLabel: 613 - center: - x: 39.0 - y: 16.0 - z: 55.0 - color: '#87314d' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_6: - name: 17Networks_RH_ContB_PFCld_6 - lookupLabel: 614 - originalLookupLabel: 614 - center: - x: 31.0 - y: 16.0 - z: 53.0 - color: '#87314e' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_7: - name: 17Networks_RH_ContB_PFCld_7 - lookupLabel: 615 - originalLookupLabel: 615 - center: - x: 24.0 - y: 20.0 - z: 46.0 - color: '#87314f' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_8: - name: 17Networks_RH_ContB_PFCld_8 - lookupLabel: 616 - originalLookupLabel: 616 - center: - x: 23.0 - y: 25.0 - z: 57.0 - color: '#873150' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_1: - name: 17Networks_RH_ContB_PFClv_1 - lookupLabel: 617 - originalLookupLabel: 617 - center: - x: 28.0 - y: 50.0 - z: -14.0 - color: '#873147' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_2: - name: 17Networks_RH_ContB_PFClv_2 - lookupLabel: 618 - originalLookupLabel: 618 - center: - x: 35.0 - y: 37.0 - z: -13.0 - color: '#87314a' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_3: - name: 17Networks_RH_ContB_PFClv_3 - lookupLabel: 619 - originalLookupLabel: 619 - center: - x: 42.0 - y: 51.0 - z: -10.0 - color: '#873249' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_4: - name: 17Networks_RH_ContB_PFClv_4 - lookupLabel: 620 - originalLookupLabel: 620 - center: - x: 31.0 - y: 60.0 - z: -5.0 - color: '#87324f' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_5: - name: 17Networks_RH_ContB_PFClv_5 - lookupLabel: 621 - originalLookupLabel: 621 - center: - x: 19.0 - y: 65.0 - z: -3.0 - color: '#873250' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_6: - name: 17Networks_RH_ContB_PFClv_6 - lookupLabel: 622 - originalLookupLabel: 622 - center: - x: 42.0 - y: 49.0 - z: 1.0 - color: '#873349' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_7: - name: 17Networks_RH_ContB_PFClv_7 - lookupLabel: 623 - originalLookupLabel: 623 - center: - x: 30.0 - y: 57.0 - z: 8.0 - color: '#87334a' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCmp_1: - name: 17Networks_RH_ContB_PFCmp_1 - lookupLabel: 624 - originalLookupLabel: 624 - center: - x: 5.0 - y: 29.0 - z: 49.0 - color: '#86324b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContC_pCun_1: - name: 17Networks_RH_ContC_pCun_1 - lookupLabel: 625 - originalLookupLabel: 625 - center: - x: 16.0 - y: -64.0 - z: 28.0 - color: '#778dad' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_2: - name: 17Networks_RH_ContC_pCun_2 - lookupLabel: 626 - originalLookupLabel: 626 - center: - x: 14.0 - y: -70.0 - z: 38.0 - color: '#778dae' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_3: - name: 17Networks_RH_ContC_pCun_3 - lookupLabel: 627 - originalLookupLabel: 627 - center: - x: 4.0 - y: -69.0 - z: 40.0 - color: '#778daf' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_4: - name: 17Networks_RH_ContC_pCun_4 - lookupLabel: 628 - originalLookupLabel: 628 - center: - x: 5.0 - y: -42.0 - z: 43.0 - color: '#778db1' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_5: - name: 17Networks_RH_ContC_pCun_5 - lookupLabel: 629 - originalLookupLabel: 629 - center: - x: 13.0 - y: -78.0 - z: 46.0 - color: '#778db2' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_6: - name: 17Networks_RH_ContC_pCun_6 - lookupLabel: 630 - originalLookupLabel: 630 - center: - x: 8.0 - y: -50.0 - z: 44.0 - color: '#778db3' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_7: - name: 17Networks_RH_ContC_pCun_7 - lookupLabel: 631 - originalLookupLabel: 631 - center: - x: 7.0 - y: -62.0 - z: 47.0 - color: '#778db4' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_8: - name: 17Networks_RH_ContC_pCun_8 - lookupLabel: 632 - originalLookupLabel: 632 - center: - x: 5.0 - y: -72.0 - z: 49.0 - color: '#778db5' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_9: - name: 17Networks_RH_ContC_pCun_9 - lookupLabel: 633 - originalLookupLabel: 633 - center: - x: 6.0 - y: -53.0 - z: 52.0 - color: '#778db6' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_10: - name: 17Networks_RH_ContC_pCun_10 - lookupLabel: 634 - originalLookupLabel: 634 - center: - x: 7.0 - y: -63.0 - z: 57.0 - color: '#778db7' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_Cingp_1: - name: 17Networks_RH_ContC_Cingp_1 - lookupLabel: 635 - originalLookupLabel: 635 - center: - x: 8.0 - y: -42.0 - z: 23.0 - color: '#778db8' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_Cingp_2: - name: 17Networks_RH_ContC_Cingp_2 - lookupLabel: 636 - originalLookupLabel: 636 - center: - x: 6.0 - y: -24.0 - z: 29.0 - color: '#778eb1' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_DefaultA_Temp_1: - name: 17Networks_RH_DefaultA_Temp_1 - lookupLabel: 637 - originalLookupLabel: 637 - center: - x: 60.0 - y: -6.0 - z: -16.0 - color: '#feff02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_1: - name: 17Networks_RH_DefaultA_IPL_1 - lookupLabel: 638 - originalLookupLabel: 638 - center: - x: 51.0 - y: -49.0 - z: 16.0 - color: '#fffe00' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_2: - name: 17Networks_RH_DefaultA_IPL_2 - lookupLabel: 639 - originalLookupLabel: 639 - center: - x: 46.0 - y: -53.0 - z: 25.0 - color: '#fffe02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_3: - name: 17Networks_RH_DefaultA_IPL_3 - lookupLabel: 640 - originalLookupLabel: 640 - center: - x: 57.0 - y: -50.0 - z: 23.0 - color: '#fffe03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_4: - name: 17Networks_RH_DefaultA_IPL_4 - lookupLabel: 641 - originalLookupLabel: 641 - center: - x: 50.0 - y: -61.0 - z: 26.0 - color: '#fffe04' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_5: - name: 17Networks_RH_DefaultA_IPL_5 - lookupLabel: 642 - originalLookupLabel: 642 - center: - x: 55.0 - y: -56.0 - z: 30.0 - color: '#fffe05' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_6: - name: 17Networks_RH_DefaultA_IPL_6 - lookupLabel: 643 - originalLookupLabel: 643 - center: - x: 49.0 - y: -63.0 - z: 40.0 - color: '#fffe06' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCd_1: - name: 17Networks_RH_DefaultA_PFCd_1 - lookupLabel: 644 - originalLookupLabel: 644 - center: - x: 24.0 - y: 36.0 - z: 34.0 - color: '#ffff03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCd_2: - name: 17Networks_RH_DefaultA_PFCd_2 - lookupLabel: 645 - originalLookupLabel: 645 - center: - x: 29.0 - y: 30.0 - z: 41.0 - color: '#ffff04' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCd_3: - name: 17Networks_RH_DefaultA_PFCd_3 - lookupLabel: 646 - originalLookupLabel: 646 - center: - x: 24.0 - y: 39.0 - z: 46.0 - color: '#ffff05' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_1: - name: 17Networks_RH_DefaultA_pCunPCC_1 - lookupLabel: 647 - originalLookupLabel: 647 - center: - x: 7.0 - y: -46.0 - z: 14.0 - color: '#fffd01' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_2: - name: 17Networks_RH_DefaultA_pCunPCC_2 - lookupLabel: 648 - originalLookupLabel: 648 - center: - x: 5.0 - y: -52.0 - z: 19.0 - color: '#fffd02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_3: - name: 17Networks_RH_DefaultA_pCunPCC_3 - lookupLabel: 649 - originalLookupLabel: 649 - center: - x: 5.0 - y: -62.0 - z: 24.0 - color: '#fffd03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_4: - name: 17Networks_RH_DefaultA_pCunPCC_4 - lookupLabel: 650 - originalLookupLabel: 650 - center: - x: 7.0 - y: -49.0 - z: 28.0 - color: '#fffd04' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_5: - name: 17Networks_RH_DefaultA_pCunPCC_5 - lookupLabel: 651 - originalLookupLabel: 651 - center: - x: 4.0 - y: -39.0 - z: 29.0 - color: '#fffd05' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_6: - name: 17Networks_RH_DefaultA_pCunPCC_6 - lookupLabel: 652 - originalLookupLabel: 652 - center: - x: 5.0 - y: -63.0 - z: 31.0 - color: '#fffd06' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_7: - name: 17Networks_RH_DefaultA_pCunPCC_7 - lookupLabel: 653 - originalLookupLabel: 653 - center: - x: 4.0 - y: -30.0 - z: 37.0 - color: '#fffd07' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_8: - name: 17Networks_RH_DefaultA_pCunPCC_8 - lookupLabel: 654 - originalLookupLabel: 654 - center: - x: 9.0 - y: -41.0 - z: 36.0 - color: '#fffe01' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_9: - name: 17Networks_RH_DefaultA_pCunPCC_9 - lookupLabel: 655 - originalLookupLabel: 655 - center: - x: 12.0 - y: -50.0 - z: 34.0 - color: '#fffe07' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_10: - name: 17Networks_RH_DefaultA_pCunPCC_10 - lookupLabel: 656 - originalLookupLabel: 656 - center: - x: 7.0 - y: -57.0 - z: 38.0 - color: '#ffff00' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_1: - name: 17Networks_RH_DefaultA_PFCm_1 - lookupLabel: 657 - originalLookupLabel: 657 - center: - x: 5.0 - y: 40.0 - z: -14.0 - color: '#fdff01' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_2: - name: 17Networks_RH_DefaultA_PFCm_2 - lookupLabel: 658 - originalLookupLabel: 658 - center: - x: 7.0 - y: 52.0 - z: -7.0 - color: '#fdff02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_3: - name: 17Networks_RH_DefaultA_PFCm_3 - lookupLabel: 659 - originalLookupLabel: 659 - center: - x: 5.0 - y: 34.0 - z: -5.0 - color: '#fdff03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_4: - name: 17Networks_RH_DefaultA_PFCm_4 - lookupLabel: 660 - originalLookupLabel: 660 - center: - x: 9.0 - y: 43.0 - z: 1.0 - color: '#fdff04' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_5: - name: 17Networks_RH_DefaultA_PFCm_5 - lookupLabel: 661 - originalLookupLabel: 661 - center: - x: 7.0 - y: 59.0 - z: 9.0 - color: '#fdff05' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_6: - name: 17Networks_RH_DefaultA_PFCm_6 - lookupLabel: 662 - originalLookupLabel: 662 - center: - x: 7.0 - y: 41.0 - z: 10.0 - color: '#fdff06' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_7: - name: 17Networks_RH_DefaultA_PFCm_7 - lookupLabel: 663 - originalLookupLabel: 663 - center: - x: 17.0 - y: 66.0 - z: 14.0 - color: '#fdff07' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_8: - name: 17Networks_RH_DefaultA_PFCm_8 - lookupLabel: 664 - originalLookupLabel: 664 - center: - x: 7.0 - y: 46.0 - z: 22.0 - color: '#faf900' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultB_Temp_1: - name: 17Networks_RH_DefaultB_Temp_1 - lookupLabel: 665 - originalLookupLabel: 665 - center: - x: 63.0 - y: -20.0 - z: -9.0 - color: '#ce3e50' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_Temp_2: - name: 17Networks_RH_DefaultB_Temp_2 - lookupLabel: 666 - originalLookupLabel: 666 - center: - x: 63.0 - y: -31.0 - z: -3.0 - color: '#ce3e51' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_AntTemp_1: - name: 17Networks_RH_DefaultB_AntTemp_1 - lookupLabel: 667 - originalLookupLabel: 667 - center: - x: 47.0 - y: 9.0 - z: -37.0 - color: '#ce3f4f' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_AntTemp_2: - name: 17Networks_RH_DefaultB_AntTemp_2 - lookupLabel: 668 - originalLookupLabel: 668 - center: - x: 59.0 - y: -7.0 - z: -26.0 - color: '#ce3f50' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_AntTemp_3: - name: 17Networks_RH_DefaultB_AntTemp_3 - lookupLabel: 669 - originalLookupLabel: 669 - center: - x: 45.0 - y: 20.0 - z: -27.0 - color: '#ce3f51' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_AntTemp_4: - name: 17Networks_RH_DefaultB_AntTemp_4 - lookupLabel: 670 - originalLookupLabel: 670 - center: - x: 52.0 - y: 8.0 - z: -27.0 - color: '#ce3f52' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_1: - name: 17Networks_RH_DefaultB_PFCd_1 - lookupLabel: 671 - originalLookupLabel: 671 - center: - x: 6.0 - y: 58.0 - z: 29.0 - color: '#ce3f4e' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_2: - name: 17Networks_RH_DefaultB_PFCd_2 - lookupLabel: 672 - originalLookupLabel: 672 - center: - x: 17.0 - y: 52.0 - z: 35.0 - color: '#ce3f53' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_3: - name: 17Networks_RH_DefaultB_PFCd_3 - lookupLabel: 673 - originalLookupLabel: 673 - center: - x: 5.0 - y: 46.0 - z: 39.0 - color: '#ce3f54' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_4: - name: 17Networks_RH_DefaultB_PFCd_4 - lookupLabel: 674 - originalLookupLabel: 674 - center: - x: 12.0 - y: 46.0 - z: 48.0 - color: '#ce3f55' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_5: - name: 17Networks_RH_DefaultB_PFCd_5 - lookupLabel: 675 - originalLookupLabel: 675 - center: - x: 13.0 - y: 34.0 - z: 55.0 - color: '#ce3f56' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_1: - name: 17Networks_RH_DefaultB_PFCv_1 - lookupLabel: 676 - originalLookupLabel: 676 - center: - x: 29.0 - y: 19.0 - z: -20.0 - color: '#cd3e4e' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_2: - name: 17Networks_RH_DefaultB_PFCv_2 - lookupLabel: 677 - originalLookupLabel: 677 - center: - x: 39.0 - y: 26.0 - z: -16.0 - color: '#cd3e4f' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_3: - name: 17Networks_RH_DefaultB_PFCv_3 - lookupLabel: 678 - originalLookupLabel: 678 - center: - x: 48.0 - y: 32.0 - z: -9.0 - color: '#cd3e50' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_4: - name: 17Networks_RH_DefaultB_PFCv_4 - lookupLabel: 679 - originalLookupLabel: 679 - center: - x: 50.0 - y: 29.0 - z: 0.0 - color: '#cd3e51' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultC_IPL_1: - name: 17Networks_RH_DefaultC_IPL_1 - lookupLabel: 680 - originalLookupLabel: 680 - center: - x: 47.0 - y: -72.0 - z: 31.0 - color: '#000184' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_Rsp_1: - name: 17Networks_RH_DefaultC_Rsp_1 - lookupLabel: 681 - originalLookupLabel: 681 - center: - x: 11.0 - y: -49.0 - z: 7.0 - color: '#010083' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_Rsp_2: - name: 17Networks_RH_DefaultC_Rsp_2 - lookupLabel: 682 - originalLookupLabel: 682 - center: - x: 12.0 - y: -56.0 - z: 17.0 - color: '#010084' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_Rsp_3: - name: 17Networks_RH_DefaultC_Rsp_3 - lookupLabel: 683 - originalLookupLabel: 683 - center: - x: 21.0 - y: -60.0 - z: 22.0 - color: '#010085' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_PHC_1: - name: 17Networks_RH_DefaultC_PHC_1 - lookupLabel: 684 - originalLookupLabel: 684 - center: - x: 22.0 - y: -23.0 - z: -23.0 - color: '#010086' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_PHC_2: - name: 17Networks_RH_DefaultC_PHC_2 - lookupLabel: 685 - originalLookupLabel: 685 - center: - x: 32.0 - y: -30.0 - z: -18.0 - color: '#010087' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_PHC_3: - name: 17Networks_RH_DefaultC_PHC_3 - lookupLabel: 686 - originalLookupLabel: 686 - center: - x: 22.0 - y: -32.0 - z: -16.0 - color: '#010088' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_TempPar_1: - name: 17Networks_RH_TempPar_1 - lookupLabel: 687 - originalLookupLabel: 687 - center: - x: 53.0 - y: 4.0 - z: -16.0 - color: '#0c30f9' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_2: - name: 17Networks_RH_TempPar_2 - lookupLabel: 688 - originalLookupLabel: 688 - center: - x: 51.0 - y: -9.0 - z: -12.0 - color: '#0c30fa' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_3: - name: 17Networks_RH_TempPar_3 - lookupLabel: 689 - originalLookupLabel: 689 - center: - x: 49.0 - y: -19.0 - z: -9.0 - color: '#0c30fb' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_4: - name: 17Networks_RH_TempPar_4 - lookupLabel: 690 - originalLookupLabel: 690 - center: - x: 60.0 - y: -3.0 - z: -6.0 - color: '#0c30fc' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_5: - name: 17Networks_RH_TempPar_5 - lookupLabel: 691 - originalLookupLabel: 691 - center: - x: 60.0 - y: -18.0 - z: -2.0 - color: '#0c30fd' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_6: - name: 17Networks_RH_TempPar_6 - lookupLabel: 692 - originalLookupLabel: 692 - center: - x: 51.0 - y: -32.0 - z: 1.0 - color: '#0c30ff' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_7: - name: 17Networks_RH_TempPar_7 - lookupLabel: 693 - originalLookupLabel: 693 - center: - x: 61.0 - y: -43.0 - z: 4.0 - color: '#0929fa' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_8: - name: 17Networks_RH_TempPar_8 - lookupLabel: 694 - originalLookupLabel: 694 - center: - x: 65.0 - y: -28.0 - z: 4.0 - color: '#0929fb' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_9: - name: 17Networks_RH_TempPar_9 - lookupLabel: 695 - originalLookupLabel: 695 - center: - x: 58.0 - y: -46.0 - z: 10.0 - color: '#0929fc' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_10: - name: 17Networks_RH_TempPar_10 - lookupLabel: 696 - originalLookupLabel: 696 - center: - x: 51.0 - y: -40.0 - z: 12.0 - color: '#0929fd' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_11: - name: 17Networks_RH_TempPar_11 - lookupLabel: 697 - originalLookupLabel: 697 - center: - x: 55.0 - y: -53.0 - z: 11.0 - color: '#0929fe' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_12: - name: 17Networks_RH_TempPar_12 - lookupLabel: 698 - originalLookupLabel: 698 - center: - x: 65.0 - y: -35.0 - z: 11.0 - color: '#092af7' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_13: - name: 17Networks_RH_TempPar_13 - lookupLabel: 699 - originalLookupLabel: 699 - center: - x: 53.0 - y: -45.0 - z: 20.0 - color: '#092af8' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_14: - name: 17Networks_RH_TempPar_14 - lookupLabel: 700 - originalLookupLabel: 700 - center: - x: 57.0 - y: -40.0 - z: 20.0 - color: '#092af9' - hemisphere: right - hasParent: - - RH_TempPar - versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_700Parcels_17Networks_order_FSLMNI152_1mm.nii.gz diff --git a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-700_res-1_desc-ordered_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-700_res-1_desc-ordered_dseg.yaml similarity index 99% rename from tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-700_res-1_desc-ordered_dseg.yaml rename to tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-700_res-1_desc-ordered_dseg.yaml index b5d76551b..ad7de0849 100644 --- a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-700_res-1_desc-ordered_dseg.yaml +++ b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-700_res-1_desc-ordered_dseg.yaml @@ -1,14 +1,12 @@ name: Schaefer2018 abbreviation: Schaefer2018 versionIdentifier: '2018' -coordinateSpace: - name: MNI152 - abbreviation: FSLMNI152 - nativeUnit: mm +coordinateSpace: FSLMNI152 terminology: label: Schaefer2018_700Parcels_17Networks_order versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_700Parcels_17Networks_order_FSLMNI152_1mm.nii.gz + dataLocation: + schaefer2018_original_mni/Schaefer2018_700Parcels_17Networks_order_FSLMNI152_1mm.nii.gz entities: 17Networks_LH_VisCent_Striate_1: name: 17Networks_LH_VisCent_Striate_1 diff --git a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-800_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-800_dseg.yaml deleted file mode 100644 index 5be736f9c..000000000 --- a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-800_dseg.yaml +++ /dev/null @@ -1,9881 +0,0 @@ -name: Schaefer2018 -abbreviation: Schaefer2018 -versionIdentifier: '2018' -coordinateSpace: MNI152NLin6Asym -terminology: - label: Schaefer2018_800Parcels_17Networks_order - entities: - LH_VisCent: - name: LH_VisCent - lookupLabel: -1 - hemisphere: left - center: - x: -25.8 - y: -84.6 - z: -0.9 - LH_VisPeri: - name: LH_VisPeri - lookupLabel: -2 - hemisphere: left - center: - x: -11.3 - y: -69.9 - z: 10.8 - LH_SomMotA: - name: LH_SomMotA - lookupLabel: -3 - hemisphere: left - center: - x: -20.6 - y: -26.0 - z: 63.3 - LH_SomMotB: - name: LH_SomMotB - lookupLabel: -4 - hemisphere: left - center: - x: -50.0 - y: -15.8 - z: 20.4 - LH_DorsAttnA: - name: LH_DorsAttnA - lookupLabel: -5 - hemisphere: left - center: - x: -31.7 - y: -65.0 - z: 28.0 - LH_DorsAttnB: - name: LH_DorsAttnB - lookupLabel: -6 - hemisphere: left - center: - x: -34.2 - y: -31.4 - z: 52.2 - LH_SalVentAttnA: - name: LH_SalVentAttnA - lookupLabel: -7 - hemisphere: left - center: - x: -29.1 - y: -13.6 - z: 30.8 - LH_SalVentAttnB: - name: LH_SalVentAttnB - lookupLabel: -8 - hemisphere: left - center: - x: -28.4 - y: 22.4 - z: 24.4 - LH_LimbicB: - name: LH_LimbicB - lookupLabel: -9 - hemisphere: left - center: - x: -14.2 - y: 35.5 - z: -18.2 - LH_LimbicA: - name: LH_LimbicA - lookupLabel: -10 - hemisphere: left - center: - x: -36.7 - y: -7.1 - z: -31.3 - LH_ContA: - name: LH_ContA - lookupLabel: -11 - hemisphere: left - center: - x: -39.2 - y: -17.6 - z: 34.3 - LH_ContB: - name: LH_ContB - lookupLabel: -12 - hemisphere: left - center: - x: -40.7 - y: -9.1 - z: 27.1 - LH_ContC: - name: LH_ContC - lookupLabel: -13 - hemisphere: left - center: - x: -6.5 - y: -52.6 - z: 38.5 - LH_DefaultA: - name: LH_DefaultA - lookupLabel: -14 - hemisphere: left - center: - x: -14.0 - y: -17.3 - z: 28.7 - LH_DefaultB: - name: LH_DefaultB - lookupLabel: -15 - hemisphere: left - center: - x: -36.6 - y: 7.1 - z: 14.7 - LH_DefaultC: - name: LH_DefaultC - lookupLabel: -16 - hemisphere: left - center: - x: -22.7 - y: -47.2 - z: 0.6 - LH_TempPar: - name: LH_TempPar - lookupLabel: -17 - hemisphere: left - center: - x: -56.8 - y: -33.9 - z: 5.6 - RH_VisCent: - name: RH_VisCent - lookupLabel: -18 - hemisphere: right - center: - x: 29.3 - y: -80.5 - z: -2.4 - RH_VisPeri: - name: RH_VisPeri - lookupLabel: -19 - hemisphere: right - center: - x: 13.5 - y: -67.6 - z: 11.1 - RH_SomMotA: - name: RH_SomMotA - lookupLabel: -20 - hemisphere: right - center: - x: 26.0 - y: -24.9 - z: 62.7 - RH_SomMotB: - name: RH_SomMotB - lookupLabel: -21 - hemisphere: right - center: - x: 49.7 - y: -12.3 - z: 17.2 - RH_DorsAttnA: - name: RH_DorsAttnA - lookupLabel: -22 - hemisphere: right - center: - x: 35.9 - y: -61.8 - z: 26.4 - RH_DorsAttnB: - name: RH_DorsAttnB - lookupLabel: -23 - hemisphere: right - center: - x: 35.6 - y: -26.1 - z: 50.3 - RH_SalVentAttnA: - name: RH_SalVentAttnA - lookupLabel: -24 - hemisphere: right - center: - x: 32.3 - y: -10.8 - z: 29.5 - RH_SalVentAttnB: - name: RH_SalVentAttnB - lookupLabel: -25 - hemisphere: right - center: - x: 33.6 - y: 20.4 - z: 22.1 - RH_LimbicB: - name: RH_LimbicB - lookupLabel: -26 - hemisphere: right - center: - x: 14.5 - y: 33.4 - z: -18.9 - RH_LimbicA: - name: RH_LimbicA - lookupLabel: -27 - hemisphere: right - center: - x: 34.8 - y: -1.4 - z: -32.7 - RH_ContA: - name: RH_ContA - lookupLabel: -28 - hemisphere: right - center: - x: 44.3 - y: -13.8 - z: 29.0 - RH_ContB: - name: RH_ContB - lookupLabel: -29 - hemisphere: right - center: - x: 39.6 - y: 6.5 - z: 26.0 - RH_ContC: - name: RH_ContC - lookupLabel: -30 - hemisphere: right - center: - x: 8.1 - y: -55.9 - z: 39.7 - RH_DefaultA: - name: RH_DefaultA - lookupLabel: -31 - hemisphere: right - center: - x: 18.0 - y: -9.1 - z: 21.0 - RH_DefaultB: - name: RH_DefaultB - lookupLabel: -32 - hemisphere: right - center: - x: 34.5 - y: 22.2 - z: 11.8 - RH_DefaultC: - name: RH_DefaultC - lookupLabel: -33 - hemisphere: right - center: - x: 26.3 - y: -46.2 - z: 2.9 - RH_TempPar: - name: RH_TempPar - lookupLabel: -34 - hemisphere: right - center: - x: 56.2 - y: -25.4 - z: 1.4 - 17Networks_LH_VisCent_Striate_1: - name: 17Networks_LH_VisCent_Striate_1 - lookupLabel: 1 - originalLookupLabel: 1 - center: - x: -9.0 - y: -96.0 - z: -16.0 - color: '#781287' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_Striate_2: - name: 17Networks_LH_VisCent_Striate_2 - lookupLabel: 2 - originalLookupLabel: 2 - center: - x: -4.0 - y: -88.0 - z: -10.0 - color: '#781288' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_Striate_3: - name: 17Networks_LH_VisCent_Striate_3 - lookupLabel: 3 - originalLookupLabel: 3 - center: - x: -7.0 - y: -97.0 - z: -4.0 - color: '#781289' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_1: - name: 17Networks_LH_VisCent_ExStr_1 - lookupLabel: 4 - originalLookupLabel: 4 - center: - x: -37.0 - y: -55.0 - z: -18.0 - color: '#781185' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_2: - name: 17Networks_LH_VisCent_ExStr_2 - lookupLabel: 5 - originalLookupLabel: 5 - center: - x: -29.0 - y: -63.0 - z: -13.0 - color: '#781186' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_3: - name: 17Networks_LH_VisCent_ExStr_3 - lookupLabel: 6 - originalLookupLabel: 6 - center: - x: -36.0 - y: -71.0 - z: -16.0 - color: '#781187' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_4: - name: 17Networks_LH_VisCent_ExStr_4 - lookupLabel: 7 - originalLookupLabel: 7 - center: - x: -24.0 - y: -58.0 - z: -9.0 - color: '#781280' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_5: - name: 17Networks_LH_VisCent_ExStr_5 - lookupLabel: 8 - originalLookupLabel: 8 - center: - x: -23.0 - y: -75.0 - z: -9.0 - color: '#781281' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_6: - name: 17Networks_LH_VisCent_ExStr_6 - lookupLabel: 9 - originalLookupLabel: 9 - center: - x: -41.0 - y: -79.0 - z: -14.0 - color: '#781282' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_7: - name: 17Networks_LH_VisCent_ExStr_7 - lookupLabel: 10 - originalLookupLabel: 10 - center: - x: -24.0 - y: -86.0 - z: -16.0 - color: '#781283' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_8: - name: 17Networks_LH_VisCent_ExStr_8 - lookupLabel: 11 - originalLookupLabel: 11 - center: - x: -39.0 - y: -87.0 - z: -16.0 - color: '#781284' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_9: - name: 17Networks_LH_VisCent_ExStr_9 - lookupLabel: 12 - originalLookupLabel: 12 - center: - x: -13.0 - y: -83.0 - z: -14.0 - color: '#781285' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_10: - name: 17Networks_LH_VisCent_ExStr_10 - lookupLabel: 13 - originalLookupLabel: 13 - center: - x: -24.0 - y: -97.0 - z: -12.0 - color: '#781286' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_11: - name: 17Networks_LH_VisCent_ExStr_11 - lookupLabel: 14 - originalLookupLabel: 14 - center: - x: -44.0 - y: -85.0 - z: -3.0 - color: '#78128a' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_12: - name: 17Networks_LH_VisCent_ExStr_12 - lookupLabel: 15 - originalLookupLabel: 15 - center: - x: -32.0 - y: -93.0 - z: -3.0 - color: '#78128b' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_13: - name: 17Networks_LH_VisCent_ExStr_13 - lookupLabel: 16 - originalLookupLabel: 16 - center: - x: -46.0 - y: -75.0 - z: 6.0 - color: '#78128c' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_14: - name: 17Networks_LH_VisCent_ExStr_14 - lookupLabel: 17 - originalLookupLabel: 17 - center: - x: -39.0 - y: -88.0 - z: 5.0 - color: '#78128d' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_15: - name: 17Networks_LH_VisCent_ExStr_15 - lookupLabel: 18 - originalLookupLabel: 18 - center: - x: -9.0 - y: -103.0 - z: 1.0 - color: '#78128e' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_16: - name: 17Networks_LH_VisCent_ExStr_16 - lookupLabel: 19 - originalLookupLabel: 19 - center: - x: -20.0 - y: -101.0 - z: 3.0 - color: '#781387' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_17: - name: 17Networks_LH_VisCent_ExStr_17 - lookupLabel: 20 - originalLookupLabel: 20 - center: - x: -27.0 - y: -93.0 - z: 8.0 - color: '#781388' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_18: - name: 17Networks_LH_VisCent_ExStr_18 - lookupLabel: 21 - originalLookupLabel: 21 - center: - x: -13.0 - y: -99.0 - z: 14.0 - color: '#781389' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_19: - name: 17Networks_LH_VisCent_ExStr_19 - lookupLabel: 22 - originalLookupLabel: 22 - center: - x: -40.0 - y: -83.0 - z: 16.0 - color: '#78138a' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_20: - name: 17Networks_LH_VisCent_ExStr_20 - lookupLabel: 23 - originalLookupLabel: 23 - center: - x: -23.0 - y: -92.0 - z: 20.0 - color: '#78138b' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_21: - name: 17Networks_LH_VisCent_ExStr_21 - lookupLabel: 24 - originalLookupLabel: 24 - center: - x: -17.0 - y: -90.0 - z: 26.0 - color: '#78138c' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_22: - name: 17Networks_LH_VisCent_ExStr_22 - lookupLabel: 25 - originalLookupLabel: 25 - center: - x: -27.0 - y: -81.0 - z: 20.0 - color: '#78138d' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_23: - name: 17Networks_LH_VisCent_ExStr_23 - lookupLabel: 26 - originalLookupLabel: 26 - center: - x: -24.0 - y: -82.0 - z: 31.0 - color: '#78138e' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisPeri_StriCal_1: - name: 17Networks_LH_VisPeri_StriCal_1 - lookupLabel: 27 - originalLookupLabel: 27 - center: - x: -7.0 - y: -61.0 - z: 3.0 - color: '#ff0001' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_2: - name: 17Networks_LH_VisPeri_StriCal_2 - lookupLabel: 28 - originalLookupLabel: 28 - center: - x: -7.0 - y: -70.0 - z: 6.0 - color: '#ff0002' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_3: - name: 17Networks_LH_VisPeri_StriCal_3 - lookupLabel: 29 - originalLookupLabel: 29 - center: - x: -17.0 - y: -60.0 - z: 2.0 - color: '#ff0003' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_4: - name: 17Networks_LH_VisPeri_StriCal_4 - lookupLabel: 30 - originalLookupLabel: 30 - center: - x: -7.0 - y: -81.0 - z: 4.0 - color: '#ff0004' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_5: - name: 17Networks_LH_VisPeri_StriCal_5 - lookupLabel: 31 - originalLookupLabel: 31 - center: - x: -6.0 - y: -89.0 - z: 4.0 - color: '#ff0005' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_6: - name: 17Networks_LH_VisPeri_StriCal_6 - lookupLabel: 32 - originalLookupLabel: 32 - center: - x: -18.0 - y: -70.0 - z: 6.0 - color: '#ff0006' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_7: - name: 17Networks_LH_VisPeri_StriCal_7 - lookupLabel: 33 - originalLookupLabel: 33 - center: - x: -8.0 - y: -74.0 - z: 11.0 - color: '#ff0007' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_1: - name: 17Networks_LH_VisPeri_ExStrInf_1 - lookupLabel: 34 - originalLookupLabel: 34 - center: - x: -21.0 - y: -49.0 - z: -6.0 - color: '#ff0000' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_2: - name: 17Networks_LH_VisPeri_ExStrInf_2 - lookupLabel: 35 - originalLookupLabel: 35 - center: - x: -9.0 - y: -76.0 - z: -8.0 - color: '#ff0008' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_3: - name: 17Networks_LH_VisPeri_ExStrInf_3 - lookupLabel: 36 - originalLookupLabel: 36 - center: - x: -11.0 - y: -64.0 - z: -4.0 - color: '#ff0101' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_4: - name: 17Networks_LH_VisPeri_ExStrInf_4 - lookupLabel: 37 - originalLookupLabel: 37 - center: - x: -13.0 - y: -51.0 - z: -6.0 - color: '#ff0102' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_5: - name: 17Networks_LH_VisPeri_ExStrInf_5 - lookupLabel: 38 - originalLookupLabel: 38 - center: - x: -14.0 - y: -40.0 - z: -7.0 - color: '#ff0103' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_6: - name: 17Networks_LH_VisPeri_ExStrInf_6 - lookupLabel: 39 - originalLookupLabel: 39 - center: - x: -4.0 - y: -73.0 - z: 0.0 - color: '#ff0104' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_7: - name: 17Networks_LH_VisPeri_ExStrInf_7 - lookupLabel: 40 - originalLookupLabel: 40 - center: - x: -17.0 - y: -51.0 - z: -1.0 - color: '#ff0105' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_8: - name: 17Networks_LH_VisPeri_ExStrInf_8 - lookupLabel: 41 - originalLookupLabel: 41 - center: - x: -11.0 - y: -43.0 - z: 1.0 - color: '#ff0106' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_9: - name: 17Networks_LH_VisPeri_ExStrInf_9 - lookupLabel: 42 - originalLookupLabel: 42 - center: - x: -19.0 - y: -54.0 - z: 5.0 - color: '#ff0107' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_1: - name: 17Networks_LH_VisPeri_ExStrSup_1 - lookupLabel: 43 - originalLookupLabel: 43 - center: - x: -23.0 - y: -61.0 - z: 5.0 - color: '#ff0200' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_2: - name: 17Networks_LH_VisPeri_ExStrSup_2 - lookupLabel: 44 - originalLookupLabel: 44 - center: - x: -18.0 - y: -61.0 - z: 9.0 - color: '#ff0201' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_3: - name: 17Networks_LH_VisPeri_ExStrSup_3 - lookupLabel: 45 - originalLookupLabel: 45 - center: - x: -2.0 - y: -96.0 - z: 12.0 - color: '#ff0202' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_4: - name: 17Networks_LH_VisPeri_ExStrSup_4 - lookupLabel: 46 - originalLookupLabel: 46 - center: - x: -1.0 - y: -80.0 - z: 13.0 - color: '#ff0203' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_5: - name: 17Networks_LH_VisPeri_ExStrSup_5 - lookupLabel: 47 - originalLookupLabel: 47 - center: - x: -16.0 - y: -64.0 - z: 13.0 - color: '#ff0204' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_6: - name: 17Networks_LH_VisPeri_ExStrSup_6 - lookupLabel: 48 - originalLookupLabel: 48 - center: - x: -7.0 - y: -68.0 - z: 16.0 - color: '#ff0205' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_7: - name: 17Networks_LH_VisPeri_ExStrSup_7 - lookupLabel: 49 - originalLookupLabel: 49 - center: - x: -2.0 - y: -83.0 - z: 21.0 - color: '#ff0206' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_8: - name: 17Networks_LH_VisPeri_ExStrSup_8 - lookupLabel: 50 - originalLookupLabel: 50 - center: - x: -7.0 - y: -93.0 - z: 25.0 - color: '#ff0207' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_9: - name: 17Networks_LH_VisPeri_ExStrSup_9 - lookupLabel: 51 - originalLookupLabel: 51 - center: - x: -15.0 - y: -71.0 - z: 19.0 - color: '#ff0300' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_10: - name: 17Networks_LH_VisPeri_ExStrSup_10 - lookupLabel: 52 - originalLookupLabel: 52 - center: - x: -8.0 - y: -76.0 - z: 26.0 - color: '#ff0301' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_11: - name: 17Networks_LH_VisPeri_ExStrSup_11 - lookupLabel: 53 - originalLookupLabel: 53 - center: - x: -5.0 - y: -87.0 - z: 33.0 - color: '#ff0302' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_12: - name: 17Networks_LH_VisPeri_ExStrSup_12 - lookupLabel: 54 - originalLookupLabel: 54 - center: - x: -16.0 - y: -88.0 - z: 37.0 - color: '#ff0303' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_13: - name: 17Networks_LH_VisPeri_ExStrSup_13 - lookupLabel: 55 - originalLookupLabel: 55 - center: - x: -12.0 - y: -81.0 - z: 37.0 - color: '#ff0304' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_14: - name: 17Networks_LH_VisPeri_ExStrSup_14 - lookupLabel: 56 - originalLookupLabel: 56 - center: - x: -17.0 - y: -82.0 - z: 47.0 - color: '#ff0305' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_SomMotA_1: - name: 17Networks_LH_SomMotA_1 - lookupLabel: 57 - originalLookupLabel: 57 - center: - x: -8.0 - y: -8.0 - z: 41.0 - color: '#4680b0' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_2: - name: 17Networks_LH_SomMotA_2 - lookupLabel: 58 - originalLookupLabel: 58 - center: - x: -56.0 - y: -16.0 - z: 51.0 - color: '#4680b1' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_3: - name: 17Networks_LH_SomMotA_3 - lookupLabel: 59 - originalLookupLabel: 59 - center: - x: -9.0 - y: -10.0 - z: 47.0 - color: '#4680b2' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_4: - name: 17Networks_LH_SomMotA_4 - lookupLabel: 60 - originalLookupLabel: 60 - center: - x: -52.0 - y: -25.0 - z: 55.0 - color: '#4680b3' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_5: - name: 17Networks_LH_SomMotA_5 - lookupLabel: 61 - originalLookupLabel: 61 - center: - x: -44.0 - y: -12.0 - z: 50.0 - color: '#4680b4' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_6: - name: 17Networks_LH_SomMotA_6 - lookupLabel: 62 - originalLookupLabel: 62 - center: - x: -35.0 - y: -19.0 - z: 47.0 - color: '#4681ad' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_7: - name: 17Networks_LH_SomMotA_7 - lookupLabel: 63 - originalLookupLabel: 63 - center: - x: -5.0 - y: -16.0 - z: 50.0 - color: '#4681ae' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_8: - name: 17Networks_LH_SomMotA_8 - lookupLabel: 64 - originalLookupLabel: 64 - center: - x: -45.0 - y: -20.0 - z: 55.0 - color: '#4681af' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_9: - name: 17Networks_LH_SomMotA_9 - lookupLabel: 65 - originalLookupLabel: 65 - center: - x: -5.0 - y: -27.0 - z: 52.0 - color: '#4681b0' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_10: - name: 17Networks_LH_SomMotA_10 - lookupLabel: 66 - originalLookupLabel: 66 - center: - x: -44.0 - y: -34.0 - z: 62.0 - color: '#4681b1' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_11: - name: 17Networks_LH_SomMotA_11 - lookupLabel: 67 - originalLookupLabel: 67 - center: - x: -39.0 - y: -15.0 - z: 61.0 - color: '#4681b2' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_12: - name: 17Networks_LH_SomMotA_12 - lookupLabel: 68 - originalLookupLabel: 68 - center: - x: -8.0 - y: -39.0 - z: 55.0 - color: '#4681b3' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_13: - name: 17Networks_LH_SomMotA_13 - lookupLabel: 69 - originalLookupLabel: 69 - center: - x: -32.0 - y: -46.0 - z: 62.0 - color: '#4681b4' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_14: - name: 17Networks_LH_SomMotA_14 - lookupLabel: 70 - originalLookupLabel: 70 - center: - x: -5.0 - y: -8.0 - z: 60.0 - color: '#4682ad' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_15: - name: 17Networks_LH_SomMotA_15 - lookupLabel: 71 - originalLookupLabel: 71 - center: - x: -34.0 - y: -28.0 - z: 54.0 - color: '#4682ae' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_16: - name: 17Networks_LH_SomMotA_16 - lookupLabel: 72 - originalLookupLabel: 72 - center: - x: -33.0 - y: -38.0 - z: 62.0 - color: '#4682af' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_17: - name: 17Networks_LH_SomMotA_17 - lookupLabel: 73 - originalLookupLabel: 73 - center: - x: -30.0 - y: -11.0 - z: 66.0 - color: '#4682b0' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_18: - name: 17Networks_LH_SomMotA_18 - lookupLabel: 74 - originalLookupLabel: 74 - center: - x: -4.0 - y: -20.0 - z: 61.0 - color: '#4682b1' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_19: - name: 17Networks_LH_SomMotA_19 - lookupLabel: 75 - originalLookupLabel: 75 - center: - x: -33.0 - y: -29.0 - z: 65.0 - color: '#4682b2' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_20: - name: 17Networks_LH_SomMotA_20 - lookupLabel: 76 - originalLookupLabel: 76 - center: - x: -30.0 - y: -22.0 - z: 67.0 - color: '#4682b3' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_21: - name: 17Networks_LH_SomMotA_21 - lookupLabel: 77 - originalLookupLabel: 77 - center: - x: -25.0 - y: -29.0 - z: 56.0 - color: '#4682b5' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_22: - name: 17Networks_LH_SomMotA_22 - lookupLabel: 78 - originalLookupLabel: 78 - center: - x: -3.0 - y: -31.0 - z: 62.0 - color: '#4682b6' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_23: - name: 17Networks_LH_SomMotA_23 - lookupLabel: 79 - originalLookupLabel: 79 - center: - x: -27.0 - y: -40.0 - z: 66.0 - color: '#4682b7' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_24: - name: 17Networks_LH_SomMotA_24 - lookupLabel: 80 - originalLookupLabel: 80 - center: - x: -8.0 - y: -43.0 - z: 64.0 - color: '#4682b8' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_25: - name: 17Networks_LH_SomMotA_25 - lookupLabel: 81 - originalLookupLabel: 81 - center: - x: -9.0 - y: -48.0 - z: 68.0 - color: '#4682b9' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_26: - name: 17Networks_LH_SomMotA_26 - lookupLabel: 82 - originalLookupLabel: 82 - center: - x: -28.0 - y: -30.0 - z: 72.0 - color: '#4682ba' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_27: - name: 17Networks_LH_SomMotA_27 - lookupLabel: 83 - originalLookupLabel: 83 - center: - x: -23.0 - y: -47.0 - z: 64.0 - color: '#4682bb' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_28: - name: 17Networks_LH_SomMotA_28 - lookupLabel: 84 - originalLookupLabel: 84 - center: - x: -21.0 - y: -12.0 - z: 71.0 - color: '#4683b4' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_29: - name: 17Networks_LH_SomMotA_29 - lookupLabel: 85 - originalLookupLabel: 85 - center: - x: -14.0 - y: -7.0 - z: 65.0 - color: '#4683b5' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_30: - name: 17Networks_LH_SomMotA_30 - lookupLabel: 86 - originalLookupLabel: 86 - center: - x: -4.0 - y: -14.0 - z: 70.0 - color: '#4683b6' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_31: - name: 17Networks_LH_SomMotA_31 - lookupLabel: 87 - originalLookupLabel: 87 - center: - x: -19.0 - y: -24.0 - z: 68.0 - color: '#4683b7' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_32: - name: 17Networks_LH_SomMotA_32 - lookupLabel: 88 - originalLookupLabel: 88 - center: - x: -20.0 - y: -31.0 - z: 67.0 - color: '#4683b8' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_33: - name: 17Networks_LH_SomMotA_33 - lookupLabel: 89 - originalLookupLabel: 89 - center: - x: -22.0 - y: -37.0 - z: 73.0 - color: '#4683b9' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_34: - name: 17Networks_LH_SomMotA_34 - lookupLabel: 90 - originalLookupLabel: 90 - center: - x: -19.0 - y: -44.0 - z: 69.0 - color: '#4683ba' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_35: - name: 17Networks_LH_SomMotA_35 - lookupLabel: 91 - originalLookupLabel: 91 - center: - x: -12.0 - y: -8.0 - z: 73.0 - color: '#4683bb' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_36: - name: 17Networks_LH_SomMotA_36 - lookupLabel: 92 - originalLookupLabel: 92 - center: - x: -16.0 - y: -15.0 - z: 75.0 - color: '#4684b4' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_37: - name: 17Networks_LH_SomMotA_37 - lookupLabel: 93 - originalLookupLabel: 93 - center: - x: -9.0 - y: -41.0 - z: 75.0 - color: '#4684b5' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_38: - name: 17Networks_LH_SomMotA_38 - lookupLabel: 94 - originalLookupLabel: 94 - center: - x: -5.0 - y: -23.0 - z: 74.0 - color: '#4684b6' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_39: - name: 17Networks_LH_SomMotA_39 - lookupLabel: 95 - originalLookupLabel: 95 - center: - x: -3.0 - y: -34.0 - z: 70.0 - color: '#4684b7' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_40: - name: 17Networks_LH_SomMotA_40 - lookupLabel: 96 - originalLookupLabel: 96 - center: - x: -10.0 - y: -16.0 - z: 76.0 - color: '#4684b8' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_41: - name: 17Networks_LH_SomMotA_41 - lookupLabel: 97 - originalLookupLabel: 97 - center: - x: -16.0 - y: -38.0 - z: 77.0 - color: '#4684b9' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_42: - name: 17Networks_LH_SomMotA_42 - lookupLabel: 98 - originalLookupLabel: 98 - center: - x: -12.0 - y: -27.0 - z: 73.0 - color: '#4684ba' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_43: - name: 17Networks_LH_SomMotA_43 - lookupLabel: 99 - originalLookupLabel: 99 - center: - x: -11.0 - y: -34.0 - z: 73.0 - color: '#4684bb' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotB_Cent_1: - name: 17Networks_LH_SomMotB_Cent_1 - lookupLabel: 100 - originalLookupLabel: 100 - center: - x: -60.0 - y: -2.0 - z: 19.0 - color: '#2acca1' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_2: - name: 17Networks_LH_SomMotB_Cent_2 - lookupLabel: 101 - originalLookupLabel: 101 - center: - x: -56.0 - y: -8.0 - z: 25.0 - color: '#2acca2' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_3: - name: 17Networks_LH_SomMotB_Cent_3 - lookupLabel: 102 - originalLookupLabel: 102 - center: - x: -58.0 - y: 0.0 - z: 30.0 - color: '#2acca3' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_4: - name: 17Networks_LH_SomMotB_Cent_4 - lookupLabel: 103 - originalLookupLabel: 103 - center: - x: -62.0 - y: -10.0 - z: 33.0 - color: '#2acca5' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_5: - name: 17Networks_LH_SomMotB_Cent_5 - lookupLabel: 104 - originalLookupLabel: 104 - center: - x: -50.0 - y: -9.0 - z: 31.0 - color: '#2acca6' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_6: - name: 17Networks_LH_SomMotB_Cent_6 - lookupLabel: 105 - originalLookupLabel: 105 - center: - x: -55.0 - y: -3.0 - z: 41.0 - color: '#2acca7' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_7: - name: 17Networks_LH_SomMotB_Cent_7 - lookupLabel: 106 - originalLookupLabel: 106 - center: - x: -51.0 - y: -14.0 - z: 39.0 - color: '#2acca8' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_8: - name: 17Networks_LH_SomMotB_Cent_8 - lookupLabel: 107 - originalLookupLabel: 107 - center: - x: -46.0 - y: -12.0 - z: 39.0 - color: '#2acca9' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_9: - name: 17Networks_LH_SomMotB_Cent_9 - lookupLabel: 108 - originalLookupLabel: 108 - center: - x: -51.0 - y: -1.0 - z: 49.0 - color: '#2accaa' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_10: - name: 17Networks_LH_SomMotB_Cent_10 - lookupLabel: 109 - originalLookupLabel: 109 - center: - x: -40.0 - y: -19.0 - z: 41.0 - color: '#2accab' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_1: - name: 17Networks_LH_SomMotB_S2_1 - lookupLabel: 110 - originalLookupLabel: 110 - center: - x: -36.0 - y: -12.0 - z: 13.0 - color: '#2acca4' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_2: - name: 17Networks_LH_SomMotB_S2_2 - lookupLabel: 111 - originalLookupLabel: 111 - center: - x: -36.0 - y: -14.0 - z: 18.0 - color: '#2accac' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_3: - name: 17Networks_LH_SomMotB_S2_3 - lookupLabel: 112 - originalLookupLabel: 112 - center: - x: -43.0 - y: -14.0 - z: 16.0 - color: '#2acda5' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_4: - name: 17Networks_LH_SomMotB_S2_4 - lookupLabel: 113 - originalLookupLabel: 113 - center: - x: -36.0 - y: -27.0 - z: 19.0 - color: '#2acda6' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_5: - name: 17Networks_LH_SomMotB_S2_5 - lookupLabel: 114 - originalLookupLabel: 114 - center: - x: -51.0 - y: -12.0 - z: 13.0 - color: '#2acda7' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_6: - name: 17Networks_LH_SomMotB_S2_6 - lookupLabel: 115 - originalLookupLabel: 115 - center: - x: -41.0 - y: -36.0 - z: 17.0 - color: '#2acda8' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_7: - name: 17Networks_LH_SomMotB_S2_7 - lookupLabel: 116 - originalLookupLabel: 116 - center: - x: -59.0 - y: -3.0 - z: 11.0 - color: '#2acda9' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_8: - name: 17Networks_LH_SomMotB_S2_8 - lookupLabel: 117 - originalLookupLabel: 117 - center: - x: -45.0 - y: -22.0 - z: 19.0 - color: '#2acdaa' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_9: - name: 17Networks_LH_SomMotB_S2_9 - lookupLabel: 118 - originalLookupLabel: 118 - center: - x: -60.0 - y: -17.0 - z: 19.0 - color: '#2acdab' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_10: - name: 17Networks_LH_SomMotB_S2_10 - lookupLabel: 119 - originalLookupLabel: 119 - center: - x: -51.0 - y: -27.0 - z: 17.0 - color: '#2acdac' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_11: - name: 17Networks_LH_SomMotB_S2_11 - lookupLabel: 120 - originalLookupLabel: 120 - center: - x: -65.0 - y: -9.0 - z: 21.0 - color: '#2acea5' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Ins_1: - name: 17Networks_LH_SomMotB_Ins_1 - lookupLabel: 121 - originalLookupLabel: 121 - center: - x: -35.0 - y: -24.0 - z: 11.0 - color: '#2acea6' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_1: - name: 17Networks_LH_SomMotB_Aud_1 - lookupLabel: 122 - originalLookupLabel: 122 - center: - x: -53.0 - y: -1.0 - z: -3.0 - color: '#2bcca2' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_2: - name: 17Networks_LH_SomMotB_Aud_2 - lookupLabel: 123 - originalLookupLabel: 123 - center: - x: -56.0 - y: -17.0 - z: 6.0 - color: '#2bcca3' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_3: - name: 17Networks_LH_SomMotB_Aud_3 - lookupLabel: 124 - originalLookupLabel: 124 - center: - x: -43.0 - y: -19.0 - z: 3.0 - color: '#2bcca5' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_4: - name: 17Networks_LH_SomMotB_Aud_4 - lookupLabel: 125 - originalLookupLabel: 125 - center: - x: -61.0 - y: -26.0 - z: 10.0 - color: '#2bcca6' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_5: - name: 17Networks_LH_SomMotB_Aud_5 - lookupLabel: 126 - originalLookupLabel: 126 - center: - x: -43.0 - y: -29.0 - z: 9.0 - color: '#2bcca7' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_6: - name: 17Networks_LH_SomMotB_Aud_6 - lookupLabel: 127 - originalLookupLabel: 127 - center: - x: -49.0 - y: -33.0 - z: 11.0 - color: '#2bcca8' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_7: - name: 17Networks_LH_SomMotB_Aud_7 - lookupLabel: 128 - originalLookupLabel: 128 - center: - x: -59.0 - y: -37.0 - z: 16.0 - color: '#2bcca9' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_DorsAttnA_TempOcc_1: - name: 17Networks_LH_DorsAttnA_TempOcc_1 - lookupLabel: 129 - originalLookupLabel: 129 - center: - x: -34.0 - y: -40.0 - z: -22.0 - color: '#4a9b3a' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_2: - name: 17Networks_LH_DorsAttnA_TempOcc_2 - lookupLabel: 130 - originalLookupLabel: 130 - center: - x: -48.0 - y: -51.0 - z: -18.0 - color: '#4a9b3b' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_3: - name: 17Networks_LH_DorsAttnA_TempOcc_3 - lookupLabel: 131 - originalLookupLabel: 131 - center: - x: -26.0 - y: -45.0 - z: -14.0 - color: '#4a9b3d' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_4: - name: 17Networks_LH_DorsAttnA_TempOcc_4 - lookupLabel: 132 - originalLookupLabel: 132 - center: - x: -45.0 - y: -70.0 - z: -14.0 - color: '#4a9b3e' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_5: - name: 17Networks_LH_DorsAttnA_TempOcc_5 - lookupLabel: 133 - originalLookupLabel: 133 - center: - x: -47.0 - y: -62.0 - z: -7.0 - color: '#4a9b3f' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_6: - name: 17Networks_LH_DorsAttnA_TempOcc_6 - lookupLabel: 134 - originalLookupLabel: 134 - center: - x: -46.0 - y: -72.0 - z: -5.0 - color: '#4a9b40' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_7: - name: 17Networks_LH_DorsAttnA_TempOcc_7 - lookupLabel: 135 - originalLookupLabel: 135 - center: - x: -49.0 - y: -65.0 - z: 2.0 - color: '#4a9b41' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_1: - name: 17Networks_LH_DorsAttnA_ParOcc_1 - lookupLabel: 136 - originalLookupLabel: 136 - center: - x: -48.0 - y: -63.0 - z: 12.0 - color: '#4a9b42' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_2: - name: 17Networks_LH_DorsAttnA_ParOcc_2 - lookupLabel: 137 - originalLookupLabel: 137 - center: - x: -49.0 - y: -71.0 - z: 18.0 - color: '#4a9b43' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_3: - name: 17Networks_LH_DorsAttnA_ParOcc_3 - lookupLabel: 138 - originalLookupLabel: 138 - center: - x: -32.0 - y: -84.0 - z: 26.0 - color: '#4a9b44' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_4: - name: 17Networks_LH_DorsAttnA_ParOcc_4 - lookupLabel: 139 - originalLookupLabel: 139 - center: - x: -29.0 - y: -73.0 - z: 27.0 - color: '#4a9c3d' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_1: - name: 17Networks_LH_DorsAttnA_SPL_1 - lookupLabel: 140 - originalLookupLabel: 140 - center: - x: -23.0 - y: -70.0 - z: 33.0 - color: '#4a9c38' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_2: - name: 17Networks_LH_DorsAttnA_SPL_2 - lookupLabel: 141 - originalLookupLabel: 141 - center: - x: -23.0 - y: -81.0 - z: 42.0 - color: '#4a9c39' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_3: - name: 17Networks_LH_DorsAttnA_SPL_3 - lookupLabel: 142 - originalLookupLabel: 142 - center: - x: -22.0 - y: -64.0 - z: 47.0 - color: '#4a9c3a' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_4: - name: 17Networks_LH_DorsAttnA_SPL_4 - lookupLabel: 143 - originalLookupLabel: 143 - center: - x: -20.0 - y: -73.0 - z: 47.0 - color: '#4a9c3b' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_5: - name: 17Networks_LH_DorsAttnA_SPL_5 - lookupLabel: 144 - originalLookupLabel: 144 - center: - x: -12.0 - y: -76.0 - z: 53.0 - color: '#4a9c3e' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_6: - name: 17Networks_LH_DorsAttnA_SPL_6 - lookupLabel: 145 - originalLookupLabel: 145 - center: - x: -28.0 - y: -57.0 - z: 53.0 - color: '#4a9c3f' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_7: - name: 17Networks_LH_DorsAttnA_SPL_7 - lookupLabel: 146 - originalLookupLabel: 146 - center: - x: -28.0 - y: -64.0 - z: 57.0 - color: '#4a9c40' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_8: - name: 17Networks_LH_DorsAttnA_SPL_8 - lookupLabel: 147 - originalLookupLabel: 147 - center: - x: -20.0 - y: -70.0 - z: 58.0 - color: '#4a9c41' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_9: - name: 17Networks_LH_DorsAttnA_SPL_9 - lookupLabel: 148 - originalLookupLabel: 148 - center: - x: -38.0 - y: -53.0 - z: 59.0 - color: '#4a9c42' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_10: - name: 17Networks_LH_DorsAttnA_SPL_10 - lookupLabel: 149 - originalLookupLabel: 149 - center: - x: -29.0 - y: -61.0 - z: 63.0 - color: '#4a9c43' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_11: - name: 17Networks_LH_DorsAttnA_SPL_11 - lookupLabel: 150 - originalLookupLabel: 150 - center: - x: -12.0 - y: -69.0 - z: 63.0 - color: '#4a9d3c' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_12: - name: 17Networks_LH_DorsAttnA_SPL_12 - lookupLabel: 151 - originalLookupLabel: 151 - center: - x: -21.0 - y: -61.0 - z: 63.0 - color: '#4a9d3d' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnB_TempOcc_1: - name: 17Networks_LH_DorsAttnB_TempOcc_1 - lookupLabel: 152 - originalLookupLabel: 152 - center: - x: -57.0 - y: -62.0 - z: 6.0 - color: '#00760f' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_1: - name: 17Networks_LH_DorsAttnB_PostC_1 - lookupLabel: 153 - originalLookupLabel: 153 - center: - x: -63.0 - y: -25.0 - z: 36.0 - color: '#00760a' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_2: - name: 17Networks_LH_DorsAttnB_PostC_2 - lookupLabel: 154 - originalLookupLabel: 154 - center: - x: -55.0 - y: -19.0 - z: 41.0 - color: '#00760b' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_3: - name: 17Networks_LH_DorsAttnB_PostC_3 - lookupLabel: 155 - originalLookupLabel: 155 - center: - x: -55.0 - y: -27.0 - z: 42.0 - color: '#00760c' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_4: - name: 17Networks_LH_DorsAttnB_PostC_4 - lookupLabel: 156 - originalLookupLabel: 156 - center: - x: -47.0 - y: -32.0 - z: 42.0 - color: '#00760d' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_5: - name: 17Networks_LH_DorsAttnB_PostC_5 - lookupLabel: 157 - originalLookupLabel: 157 - center: - x: -40.0 - y: -34.0 - z: 42.0 - color: '#00760e' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_6: - name: 17Networks_LH_DorsAttnB_PostC_6 - lookupLabel: 158 - originalLookupLabel: 158 - center: - x: -47.0 - y: -27.0 - z: 46.0 - color: '#007610' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_7: - name: 17Networks_LH_DorsAttnB_PostC_7 - lookupLabel: 159 - originalLookupLabel: 159 - center: - x: -41.0 - y: -35.0 - z: 51.0 - color: '#007611' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_8: - name: 17Networks_LH_DorsAttnB_PostC_8 - lookupLabel: 160 - originalLookupLabel: 160 - center: - x: -37.0 - y: -41.0 - z: 55.0 - color: '#007612' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_9: - name: 17Networks_LH_DorsAttnB_PostC_9 - lookupLabel: 161 - originalLookupLabel: 161 - center: - x: -10.0 - y: -63.0 - z: 59.0 - color: '#007613' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_10: - name: 17Networks_LH_DorsAttnB_PostC_10 - lookupLabel: 162 - originalLookupLabel: 162 - center: - x: -31.0 - y: -52.0 - z: 68.0 - color: '#007614' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_11: - name: 17Networks_LH_DorsAttnB_PostC_11 - lookupLabel: 163 - originalLookupLabel: 163 - center: - x: -6.0 - y: -56.0 - z: 66.0 - color: '#007615' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_12: - name: 17Networks_LH_DorsAttnB_PostC_12 - lookupLabel: 164 - originalLookupLabel: 164 - center: - x: -15.0 - y: -60.0 - z: 66.0 - color: '#007616' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_13: - name: 17Networks_LH_DorsAttnB_PostC_13 - lookupLabel: 165 - originalLookupLabel: 165 - center: - x: -22.0 - y: -53.0 - z: 69.0 - color: '#00770f' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_14: - name: 17Networks_LH_DorsAttnB_PostC_14 - lookupLabel: 166 - originalLookupLabel: 166 - center: - x: -14.0 - y: -51.0 - z: 72.0 - color: '#007710' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_1: - name: 17Networks_LH_DorsAttnB_FEF_1 - lookupLabel: 167 - originalLookupLabel: 167 - center: - x: -43.0 - y: -3.0 - z: 51.0 - color: '#00770d' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_2: - name: 17Networks_LH_DorsAttnB_FEF_2 - lookupLabel: 168 - originalLookupLabel: 168 - center: - x: -35.0 - y: 0.0 - z: 53.0 - color: '#007711' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_3: - name: 17Networks_LH_DorsAttnB_FEF_3 - lookupLabel: 169 - originalLookupLabel: 169 - center: - x: -33.0 - y: -8.0 - z: 54.0 - color: '#007712' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_4: - name: 17Networks_LH_DorsAttnB_FEF_4 - lookupLabel: 170 - originalLookupLabel: 170 - center: - x: -24.0 - y: -5.0 - z: 53.0 - color: '#007713' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_5: - name: 17Networks_LH_DorsAttnB_FEF_5 - lookupLabel: 171 - originalLookupLabel: 171 - center: - x: -23.0 - y: 4.0 - z: 64.0 - color: '#007714' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_6: - name: 17Networks_LH_DorsAttnB_FEF_6 - lookupLabel: 172 - originalLookupLabel: 172 - center: - x: -21.0 - y: -11.0 - z: 60.0 - color: '#007715' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_SalVentAttnA_ParOper_1: - name: 17Networks_LH_SalVentAttnA_ParOper_1 - lookupLabel: 173 - originalLookupLabel: 173 - center: - x: -48.0 - y: -39.0 - z: 24.0 - color: '#c43af9' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_2: - name: 17Networks_LH_SalVentAttnA_ParOper_2 - lookupLabel: 174 - originalLookupLabel: 174 - center: - x: -54.0 - y: -32.0 - z: 23.0 - color: '#c43afb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_3: - name: 17Networks_LH_SalVentAttnA_ParOper_3 - lookupLabel: 175 - originalLookupLabel: 175 - center: - x: -63.0 - y: -28.0 - z: 24.0 - color: '#c43afc' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_4: - name: 17Networks_LH_SalVentAttnA_ParOper_4 - lookupLabel: 176 - originalLookupLabel: 176 - center: - x: -60.0 - y: -41.0 - z: 30.0 - color: '#c43afd' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_5: - name: 17Networks_LH_SalVentAttnA_ParOper_5 - lookupLabel: 177 - originalLookupLabel: 177 - center: - x: -58.0 - y: -18.0 - z: 30.0 - color: '#c43afe' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_6: - name: 17Networks_LH_SalVentAttnA_ParOper_6 - lookupLabel: 178 - originalLookupLabel: 178 - center: - x: -61.0 - y: -34.0 - z: 37.0 - color: '#c43aff' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_1: - name: 17Networks_LH_SalVentAttnA_FrOper_1 - lookupLabel: 179 - originalLookupLabel: 179 - center: - x: -39.0 - y: 9.0 - z: 9.0 - color: '#c43afa' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_2: - name: 17Networks_LH_SalVentAttnA_FrOper_2 - lookupLabel: 180 - originalLookupLabel: 180 - center: - x: -42.0 - y: -3.0 - z: 14.0 - color: '#c133f9' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_3: - name: 17Networks_LH_SalVentAttnA_FrOper_3 - lookupLabel: 181 - originalLookupLabel: 181 - center: - x: -51.0 - y: 1.0 - z: 5.0 - color: '#c133fa' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_4: - name: 17Networks_LH_SalVentAttnA_FrOper_4 - lookupLabel: 182 - originalLookupLabel: 182 - center: - x: -55.0 - y: 9.0 - z: 8.0 - color: '#c133fb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_5: - name: 17Networks_LH_SalVentAttnA_FrOper_5 - lookupLabel: 183 - originalLookupLabel: 183 - center: - x: -58.0 - y: 6.0 - z: 17.0 - color: '#c134f4' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_1: - name: 17Networks_LH_SalVentAttnA_Ins_1 - lookupLabel: 184 - originalLookupLabel: 184 - center: - x: -39.0 - y: 2.0 - z: -8.0 - color: '#c43bf9' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_2: - name: 17Networks_LH_SalVentAttnA_Ins_2 - lookupLabel: 185 - originalLookupLabel: 185 - center: - x: -39.0 - y: -1.0 - z: 3.0 - color: '#c43bfb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_3: - name: 17Networks_LH_SalVentAttnA_Ins_3 - lookupLabel: 186 - originalLookupLabel: 186 - center: - x: -40.0 - y: -14.0 - z: -2.0 - color: '#c43bfc' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_4: - name: 17Networks_LH_SalVentAttnA_Ins_4 - lookupLabel: 187 - originalLookupLabel: 187 - center: - x: -33.0 - y: 19.0 - z: 8.0 - color: '#c43bfd' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_5: - name: 17Networks_LH_SalVentAttnA_Ins_5 - lookupLabel: 188 - originalLookupLabel: 188 - center: - x: -36.0 - y: 0.0 - z: 11.0 - color: '#c43bfe' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_1: - name: 17Networks_LH_SalVentAttnA_ParMed_1 - lookupLabel: 189 - originalLookupLabel: 189 - center: - x: -11.0 - y: -30.0 - z: 39.0 - color: '#c43bfa' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_2: - name: 17Networks_LH_SalVentAttnA_ParMed_2 - lookupLabel: 190 - originalLookupLabel: 190 - center: - x: -10.0 - y: -20.0 - z: 40.0 - color: '#c43bff' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_3: - name: 17Networks_LH_SalVentAttnA_ParMed_3 - lookupLabel: 191 - originalLookupLabel: 191 - center: - x: -14.0 - y: -41.0 - z: 45.0 - color: '#c134fa' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_4: - name: 17Networks_LH_SalVentAttnA_ParMed_4 - lookupLabel: 192 - originalLookupLabel: 192 - center: - x: -13.0 - y: -29.0 - z: 44.0 - color: '#c134fb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_5: - name: 17Networks_LH_SalVentAttnA_ParMed_5 - lookupLabel: 193 - originalLookupLabel: 193 - center: - x: -11.0 - y: -45.0 - z: 52.0 - color: '#c135f4' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_6: - name: 17Networks_LH_SalVentAttnA_ParMed_6 - lookupLabel: 194 - originalLookupLabel: 194 - center: - x: -12.0 - y: -36.0 - z: 50.0 - color: '#c135f5' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_7: - name: 17Networks_LH_SalVentAttnA_ParMed_7 - lookupLabel: 195 - originalLookupLabel: 195 - center: - x: -5.0 - y: -50.0 - z: 57.0 - color: '#c135f6' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_8: - name: 17Networks_LH_SalVentAttnA_ParMed_8 - lookupLabel: 196 - originalLookupLabel: 196 - center: - x: -12.0 - y: -47.0 - z: 59.0 - color: '#c135f7' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_1: - name: 17Networks_LH_SalVentAttnA_FrMed_1 - lookupLabel: 197 - originalLookupLabel: 197 - center: - x: -6.0 - y: 16.0 - z: 31.0 - color: '#c53af8' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_2: - name: 17Networks_LH_SalVentAttnA_FrMed_2 - lookupLabel: 198 - originalLookupLabel: 198 - center: - x: -2.0 - y: 1.0 - z: 35.0 - color: '#c53af9' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_3: - name: 17Networks_LH_SalVentAttnA_FrMed_3 - lookupLabel: 199 - originalLookupLabel: 199 - center: - x: -8.0 - y: 4.0 - z: 40.0 - color: '#c53afb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_4: - name: 17Networks_LH_SalVentAttnA_FrMed_4 - lookupLabel: 200 - originalLookupLabel: 200 - center: - x: -6.0 - y: 14.0 - z: 43.0 - color: '#c53afc' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_5: - name: 17Networks_LH_SalVentAttnA_FrMed_5 - lookupLabel: 201 - originalLookupLabel: 201 - center: - x: -5.0 - y: 2.0 - z: 52.0 - color: '#c53afd' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_6: - name: 17Networks_LH_SalVentAttnA_FrMed_6 - lookupLabel: 202 - originalLookupLabel: 202 - center: - x: -3.0 - y: 6.0 - z: 63.0 - color: '#c53afe' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_7: - name: 17Networks_LH_SalVentAttnA_FrMed_7 - lookupLabel: 203 - originalLookupLabel: 203 - center: - x: -8.0 - y: -2.0 - z: 71.0 - color: '#c53aff' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnB_IPL_1: - name: 17Networks_LH_SalVentAttnB_IPL_1 - lookupLabel: 204 - originalLookupLabel: 204 - center: - x: -59.0 - y: -42.0 - z: 44.0 - color: '#ff98d6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCd_1: - name: 17Networks_LH_SalVentAttnB_PFCd_1 - lookupLabel: 205 - originalLookupLabel: 205 - center: - x: -17.0 - y: 3.0 - z: 70.0 - color: '#ff98d7' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_1: - name: 17Networks_LH_SalVentAttnB_PFCl_1 - lookupLabel: 206 - originalLookupLabel: 206 - center: - x: -38.0 - y: 48.0 - z: 12.0 - color: '#ff99d4' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_2: - name: 17Networks_LH_SalVentAttnB_PFCl_2 - lookupLabel: 207 - originalLookupLabel: 207 - center: - x: -30.0 - y: 46.0 - z: 27.0 - color: '#ff99d6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_3: - name: 17Networks_LH_SalVentAttnB_PFCl_3 - lookupLabel: 208 - originalLookupLabel: 208 - center: - x: -42.0 - y: 38.0 - z: 28.0 - color: '#ff99d7' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_4: - name: 17Networks_LH_SalVentAttnB_PFCl_4 - lookupLabel: 209 - originalLookupLabel: 209 - center: - x: -21.0 - y: 48.0 - z: 32.0 - color: '#ff99d8' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_5: - name: 17Networks_LH_SalVentAttnB_PFCl_5 - lookupLabel: 210 - originalLookupLabel: 210 - center: - x: -26.0 - y: 37.0 - z: 37.0 - color: '#ff99d9' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_6: - name: 17Networks_LH_SalVentAttnB_PFCl_6 - lookupLabel: 211 - originalLookupLabel: 211 - center: - x: -35.0 - y: 32.0 - z: 38.0 - color: '#ff99da' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_1: - name: 17Networks_LH_SalVentAttnB_Ins_1 - lookupLabel: 212 - originalLookupLabel: 212 - center: - x: -35.0 - y: 14.0 - z: -9.0 - color: '#ff99d5' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_2: - name: 17Networks_LH_SalVentAttnB_Ins_2 - lookupLabel: 213 - originalLookupLabel: 213 - center: - x: -32.0 - y: 21.0 - z: -1.0 - color: '#ff99db' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_3: - name: 17Networks_LH_SalVentAttnB_Ins_3 - lookupLabel: 214 - originalLookupLabel: 214 - center: - x: -35.0 - y: 30.0 - z: -1.0 - color: '#ff99dc' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_4: - name: 17Networks_LH_SalVentAttnB_Ins_4 - lookupLabel: 215 - originalLookupLabel: 215 - center: - x: -44.0 - y: 10.0 - z: 1.0 - color: '#ff99dd' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_5: - name: 17Networks_LH_SalVentAttnB_Ins_5 - lookupLabel: 216 - originalLookupLabel: 216 - center: - x: -50.0 - y: 12.0 - z: 12.0 - color: '#ff9ad6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCmp_1: - name: 17Networks_LH_SalVentAttnB_PFCmp_1 - lookupLabel: 217 - originalLookupLabel: 217 - center: - x: -3.0 - y: 27.0 - z: 18.0 - color: '#ff97d6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCmp_2: - name: 17Networks_LH_SalVentAttnB_PFCmp_2 - lookupLabel: 218 - originalLookupLabel: 218 - center: - x: -4.0 - y: 15.0 - z: 25.0 - color: '#ff97d7' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCmp_3: - name: 17Networks_LH_SalVentAttnB_PFCmp_3 - lookupLabel: 219 - originalLookupLabel: 219 - center: - x: -7.0 - y: 27.0 - z: 29.0 - color: '#ff97d8' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCmp_4: - name: 17Networks_LH_SalVentAttnB_PFCmp_4 - lookupLabel: 220 - originalLookupLabel: 220 - center: - x: -5.0 - y: 14.0 - z: 53.0 - color: '#ff97d9' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_LimbicB_OFC_1: - name: 17Networks_LH_LimbicB_OFC_1 - lookupLabel: 221 - originalLookupLabel: 221 - center: - x: -19.0 - y: 13.0 - z: -22.0 - color: '#7a872d' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_2: - name: 17Networks_LH_LimbicB_OFC_2 - lookupLabel: 222 - originalLookupLabel: 222 - center: - x: -13.0 - y: 24.0 - z: -21.0 - color: '#7a872e' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_3: - name: 17Networks_LH_LimbicB_OFC_3 - lookupLabel: 223 - originalLookupLabel: 223 - center: - x: -27.0 - y: 15.0 - z: -23.0 - color: '#7a872f' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_4: - name: 17Networks_LH_LimbicB_OFC_4 - lookupLabel: 224 - originalLookupLabel: 224 - center: - x: -9.0 - y: 39.0 - z: -22.0 - color: '#7a8730' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_5: - name: 17Networks_LH_LimbicB_OFC_5 - lookupLabel: 225 - originalLookupLabel: 225 - center: - x: -18.0 - y: 37.0 - z: -21.0 - color: '#7a8731' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_6: - name: 17Networks_LH_LimbicB_OFC_6 - lookupLabel: 226 - originalLookupLabel: 226 - center: - x: -24.0 - y: 28.0 - z: -18.0 - color: '#7a8733' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_7: - name: 17Networks_LH_LimbicB_OFC_7 - lookupLabel: 227 - originalLookupLabel: 227 - center: - x: -5.0 - y: 21.0 - z: -20.0 - color: '#7a8734' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_8: - name: 17Networks_LH_LimbicB_OFC_8 - lookupLabel: 228 - originalLookupLabel: 228 - center: - x: -3.0 - y: 40.0 - z: -22.0 - color: '#7a8735' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_9: - name: 17Networks_LH_LimbicB_OFC_9 - lookupLabel: 229 - originalLookupLabel: 229 - center: - x: -10.0 - y: 54.0 - z: -21.0 - color: '#7a8736' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_10: - name: 17Networks_LH_LimbicB_OFC_10 - lookupLabel: 230 - originalLookupLabel: 230 - center: - x: -25.0 - y: 47.0 - z: -14.0 - color: '#7a8737' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_11: - name: 17Networks_LH_LimbicB_OFC_11 - lookupLabel: 231 - originalLookupLabel: 231 - center: - x: -4.0 - y: 15.0 - z: -10.0 - color: '#7a8738' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_12: - name: 17Networks_LH_LimbicB_OFC_12 - lookupLabel: 232 - originalLookupLabel: 232 - center: - x: -8.0 - y: 65.0 - z: -13.0 - color: '#7a8739' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_13: - name: 17Networks_LH_LimbicB_OFC_13 - lookupLabel: 233 - originalLookupLabel: 233 - center: - x: -19.0 - y: 63.0 - z: -9.0 - color: '#7a8832' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicA_TempPole_1: - name: 17Networks_LH_LimbicA_TempPole_1 - lookupLabel: 234 - originalLookupLabel: 234 - center: - x: -30.0 - y: -3.0 - z: -44.0 - color: '#dcf89f' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_2: - name: 17Networks_LH_LimbicA_TempPole_2 - lookupLabel: 235 - originalLookupLabel: 235 - center: - x: -45.0 - y: -4.0 - z: -42.0 - color: '#dcf8a0' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_3: - name: 17Networks_LH_LimbicA_TempPole_3 - lookupLabel: 236 - originalLookupLabel: 236 - center: - x: -34.0 - y: 10.0 - z: -41.0 - color: '#dcf8a1' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_4: - name: 17Networks_LH_LimbicA_TempPole_4 - lookupLabel: 237 - originalLookupLabel: 237 - center: - x: -28.0 - y: -8.0 - z: -34.0 - color: '#dcf8a2' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_5: - name: 17Networks_LH_LimbicA_TempPole_5 - lookupLabel: 238 - originalLookupLabel: 238 - center: - x: -39.0 - y: -14.0 - z: -32.0 - color: '#dcf8a3' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_6: - name: 17Networks_LH_LimbicA_TempPole_6 - lookupLabel: 239 - originalLookupLabel: 239 - center: - x: -22.0 - y: 5.0 - z: -36.0 - color: '#dcf8a5' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_7: - name: 17Networks_LH_LimbicA_TempPole_7 - lookupLabel: 240 - originalLookupLabel: 240 - center: - x: -51.0 - y: -19.0 - z: -33.0 - color: '#dcf8a6' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_8: - name: 17Networks_LH_LimbicA_TempPole_8 - lookupLabel: 241 - originalLookupLabel: 241 - center: - x: -17.0 - y: -7.0 - z: -30.0 - color: '#dcf8a7' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_9: - name: 17Networks_LH_LimbicA_TempPole_9 - lookupLabel: 242 - originalLookupLabel: 242 - center: - x: -37.0 - y: -22.0 - z: -28.0 - color: '#dcf8a8' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_10: - name: 17Networks_LH_LimbicA_TempPole_10 - lookupLabel: 243 - originalLookupLabel: 243 - center: - x: -29.0 - y: 11.0 - z: -31.0 - color: '#dcf8a9' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_11: - name: 17Networks_LH_LimbicA_TempPole_11 - lookupLabel: 244 - originalLookupLabel: 244 - center: - x: -43.0 - y: -31.0 - z: -22.0 - color: '#dcf8aa' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_12: - name: 17Networks_LH_LimbicA_TempPole_12 - lookupLabel: 245 - originalLookupLabel: 245 - center: - x: -57.0 - y: -33.0 - z: -24.0 - color: '#dcf8ab' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_13: - name: 17Networks_LH_LimbicA_TempPole_13 - lookupLabel: 246 - originalLookupLabel: 246 - center: - x: -37.0 - y: 9.0 - z: -25.0 - color: '#dcf9a4' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_14: - name: 17Networks_LH_LimbicA_TempPole_14 - lookupLabel: 247 - originalLookupLabel: 247 - center: - x: -45.0 - y: 6.0 - z: -16.0 - color: '#dcf9a5' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_ContA_Temp_1: - name: 17Networks_LH_ContA_Temp_1 - lookupLabel: 248 - originalLookupLabel: 248 - center: - x: -57.0 - y: -59.0 - z: -7.0 - color: '#e69423' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_1: - name: 17Networks_LH_ContA_IPS_1 - lookupLabel: 249 - originalLookupLabel: 249 - center: - x: -29.0 - y: -78.0 - z: 39.0 - color: '#e6941f' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_2: - name: 17Networks_LH_ContA_IPS_2 - lookupLabel: 250 - originalLookupLabel: 250 - center: - x: -27.0 - y: -67.0 - z: 39.0 - color: '#e69420' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_3: - name: 17Networks_LH_ContA_IPS_3 - lookupLabel: 251 - originalLookupLabel: 251 - center: - x: -55.0 - y: -34.0 - z: 47.0 - color: '#e69421' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_4: - name: 17Networks_LH_ContA_IPS_4 - lookupLabel: 252 - originalLookupLabel: 252 - center: - x: -52.0 - y: -43.0 - z: 54.0 - color: '#e69422' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_5: - name: 17Networks_LH_ContA_IPS_5 - lookupLabel: 253 - originalLookupLabel: 253 - center: - x: -47.0 - y: -40.0 - z: 46.0 - color: '#e69424' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_6: - name: 17Networks_LH_ContA_IPS_6 - lookupLabel: 254 - originalLookupLabel: 254 - center: - x: -29.0 - y: -65.0 - z: 49.0 - color: '#e69425' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_7: - name: 17Networks_LH_ContA_IPS_7 - lookupLabel: 255 - originalLookupLabel: 255 - center: - x: -40.0 - y: -44.0 - z: 43.0 - color: '#e69426' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_8: - name: 17Networks_LH_ContA_IPS_8 - lookupLabel: 256 - originalLookupLabel: 256 - center: - x: -33.0 - y: -59.0 - z: 43.0 - color: '#e69427' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_9: - name: 17Networks_LH_ContA_IPS_9 - lookupLabel: 257 - originalLookupLabel: 257 - center: - x: -35.0 - y: -51.0 - z: 40.0 - color: '#e69428' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_10: - name: 17Networks_LH_ContA_IPS_10 - lookupLabel: 258 - originalLookupLabel: 258 - center: - x: -33.0 - y: -43.0 - z: 41.0 - color: '#e69429' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_11: - name: 17Networks_LH_ContA_IPS_11 - lookupLabel: 259 - originalLookupLabel: 259 - center: - x: -32.0 - y: -50.0 - z: 48.0 - color: '#e6942a' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCd_1: - name: 17Networks_LH_ContA_PFCd_1 - lookupLabel: 260 - originalLookupLabel: 260 - center: - x: -30.0 - y: 3.0 - z: 59.0 - color: '#e69523' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCd_2: - name: 17Networks_LH_ContA_PFCd_2 - lookupLabel: 261 - originalLookupLabel: 261 - center: - x: -23.0 - y: 8.0 - z: 52.0 - color: '#e69524' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_1: - name: 17Networks_LH_ContA_PFCl_1 - lookupLabel: 262 - originalLookupLabel: 262 - center: - x: -49.0 - y: 7.0 - z: 20.0 - color: '#e69521' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_2: - name: 17Networks_LH_ContA_PFCl_2 - lookupLabel: 263 - originalLookupLabel: 263 - center: - x: -47.0 - y: 18.0 - z: 24.0 - color: '#e69522' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_3: - name: 17Networks_LH_ContA_PFCl_3 - lookupLabel: 264 - originalLookupLabel: 264 - center: - x: -45.0 - y: 25.0 - z: 28.0 - color: '#e69525' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_4: - name: 17Networks_LH_ContA_PFCl_4 - lookupLabel: 265 - originalLookupLabel: 265 - center: - x: -51.0 - y: 6.0 - z: 28.0 - color: '#e69526' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_5: - name: 17Networks_LH_ContA_PFCl_5 - lookupLabel: 266 - originalLookupLabel: 266 - center: - x: -37.0 - y: 9.0 - z: 27.0 - color: '#e69527' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_6: - name: 17Networks_LH_ContA_PFCl_6 - lookupLabel: 267 - originalLookupLabel: 267 - center: - x: -39.0 - y: 5.0 - z: 34.0 - color: '#e69528' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_7: - name: 17Networks_LH_ContA_PFCl_7 - lookupLabel: 268 - originalLookupLabel: 268 - center: - x: -48.0 - y: 2.0 - z: 38.0 - color: '#e69529' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFClv_1: - name: 17Networks_LH_ContA_PFClv_1 - lookupLabel: 269 - originalLookupLabel: 269 - center: - x: -46.0 - y: 41.0 - z: 6.0 - color: '#e79423' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFClv_2: - name: 17Networks_LH_ContA_PFClv_2 - lookupLabel: 270 - originalLookupLabel: 270 - center: - x: -50.0 - y: 31.0 - z: 14.0 - color: '#e79424' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFClv_3: - name: 17Networks_LH_ContA_PFClv_3 - lookupLabel: 271 - originalLookupLabel: 271 - center: - x: -42.0 - y: 36.0 - z: 17.0 - color: '#e79425' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_Cingm_1: - name: 17Networks_LH_ContA_Cingm_1 - lookupLabel: 272 - originalLookupLabel: 272 - center: - x: -4.0 - y: 2.0 - z: 29.0 - color: '#e79426' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContB_Temp_1: - name: 17Networks_LH_ContB_Temp_1 - lookupLabel: 273 - originalLookupLabel: 273 - center: - x: -60.0 - y: -41.0 - z: -19.0 - color: '#87324b' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_Temp_2: - name: 17Networks_LH_ContB_Temp_2 - lookupLabel: 274 - originalLookupLabel: 274 - center: - x: -61.0 - y: -46.0 - z: -12.0 - color: '#87324c' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_Temp_3: - name: 17Networks_LH_ContB_Temp_3 - lookupLabel: 275 - originalLookupLabel: 275 - center: - x: -62.0 - y: -49.0 - z: -3.0 - color: '#87324d' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_1: - name: 17Networks_LH_ContB_IPL_1 - lookupLabel: 276 - originalLookupLabel: 276 - center: - x: -53.0 - y: -50.0 - z: 44.0 - color: '#87324a' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_2: - name: 17Networks_LH_ContB_IPL_2 - lookupLabel: 277 - originalLookupLabel: 277 - center: - x: -50.0 - y: -57.0 - z: 48.0 - color: '#87324e' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_3: - name: 17Networks_LH_ContB_IPL_3 - lookupLabel: 278 - originalLookupLabel: 278 - center: - x: -31.0 - y: -72.0 - z: 50.0 - color: '#87324f' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_4: - name: 17Networks_LH_ContB_IPL_4 - lookupLabel: 279 - originalLookupLabel: 279 - center: - x: -38.0 - y: -61.0 - z: 52.0 - color: '#873250' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_5: - name: 17Networks_LH_ContB_IPL_5 - lookupLabel: 280 - originalLookupLabel: 280 - center: - x: -45.0 - y: -48.0 - z: 53.0 - color: '#873251' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_6: - name: 17Networks_LH_ContB_IPL_6 - lookupLabel: 281 - originalLookupLabel: 281 - center: - x: -43.0 - y: -54.0 - z: 50.0 - color: '#873252' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCd_1: - name: 17Networks_LH_ContB_PFCd_1 - lookupLabel: 282 - originalLookupLabel: 282 - center: - x: -20.0 - y: 17.0 - z: 64.0 - color: '#87334b' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCl_1: - name: 17Networks_LH_ContB_PFCl_1 - lookupLabel: 283 - originalLookupLabel: 283 - center: - x: -44.0 - y: 20.0 - z: 35.0 - color: '#87334c' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCl_2: - name: 17Networks_LH_ContB_PFCl_2 - lookupLabel: 284 - originalLookupLabel: 284 - center: - x: -39.0 - y: 24.0 - z: 46.0 - color: '#87334d' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCl_3: - name: 17Networks_LH_ContB_PFCl_3 - lookupLabel: 285 - originalLookupLabel: 285 - center: - x: -46.0 - y: 13.0 - z: 41.0 - color: '#87334e' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_1: - name: 17Networks_LH_ContB_PFClv_1 - lookupLabel: 286 - originalLookupLabel: 286 - center: - x: -38.0 - y: 51.0 - z: -13.0 - color: '#88324b' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_2: - name: 17Networks_LH_ContB_PFClv_2 - lookupLabel: 287 - originalLookupLabel: 287 - center: - x: -28.0 - y: 58.0 - z: -1.0 - color: '#88324c' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_3: - name: 17Networks_LH_ContB_PFClv_3 - lookupLabel: 288 - originalLookupLabel: 288 - center: - x: -42.0 - y: 49.0 - z: -3.0 - color: '#88324d' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_4: - name: 17Networks_LH_ContB_PFClv_4 - lookupLabel: 289 - originalLookupLabel: 289 - center: - x: -29.0 - y: 56.0 - z: 10.0 - color: '#88324e' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCmp_1: - name: 17Networks_LH_ContB_PFCmp_1 - lookupLabel: 290 - originalLookupLabel: 290 - center: - x: -4.0 - y: 27.0 - z: 45.0 - color: '#88324f' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContC_pCun_1: - name: 17Networks_LH_ContC_pCun_1 - lookupLabel: 291 - originalLookupLabel: 291 - center: - x: -12.0 - y: -66.0 - z: 25.0 - color: '#778cac' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_2: - name: 17Networks_LH_ContC_pCun_2 - lookupLabel: 292 - originalLookupLabel: 292 - center: - x: -12.0 - y: -69.0 - z: 30.0 - color: '#778cad' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_3: - name: 17Networks_LH_ContC_pCun_3 - lookupLabel: 293 - originalLookupLabel: 293 - center: - x: -8.0 - y: -73.0 - z: 37.0 - color: '#778cae' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_4: - name: 17Networks_LH_ContC_pCun_4 - lookupLabel: 294 - originalLookupLabel: 294 - center: - x: -5.0 - y: -35.0 - z: 42.0 - color: '#778caf' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_5: - name: 17Networks_LH_ContC_pCun_5 - lookupLabel: 295 - originalLookupLabel: 295 - center: - x: -9.0 - y: -77.0 - z: 45.0 - color: '#778cb1' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_6: - name: 17Networks_LH_ContC_pCun_6 - lookupLabel: 296 - originalLookupLabel: 296 - center: - x: -5.0 - y: -42.0 - z: 45.0 - color: '#778cb2' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_7: - name: 17Networks_LH_ContC_pCun_7 - lookupLabel: 297 - originalLookupLabel: 297 - center: - x: -3.0 - y: -68.0 - z: 45.0 - color: '#778cb3' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_8: - name: 17Networks_LH_ContC_pCun_8 - lookupLabel: 298 - originalLookupLabel: 298 - center: - x: -6.0 - y: -50.0 - z: 47.0 - color: '#778cb4' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_9: - name: 17Networks_LH_ContC_pCun_9 - lookupLabel: 299 - originalLookupLabel: 299 - center: - x: -5.0 - y: -58.0 - z: 49.0 - color: '#778cb5' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_10: - name: 17Networks_LH_ContC_pCun_10 - lookupLabel: 300 - originalLookupLabel: 300 - center: - x: -5.0 - y: -70.0 - z: 54.0 - color: '#778cb6' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_11: - name: 17Networks_LH_ContC_pCun_11 - lookupLabel: 301 - originalLookupLabel: 301 - center: - x: -5.0 - y: -61.0 - z: 54.0 - color: '#778cb7' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_Cingp_1: - name: 17Networks_LH_ContC_Cingp_1 - lookupLabel: 302 - originalLookupLabel: 302 - center: - x: -7.0 - y: -44.0 - z: 22.0 - color: '#778cb8' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_Cingp_2: - name: 17Networks_LH_ContC_Cingp_2 - lookupLabel: 303 - originalLookupLabel: 303 - center: - x: -7.0 - y: -38.0 - z: 25.0 - color: '#778db1' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_Cingp_3: - name: 17Networks_LH_ContC_Cingp_3 - lookupLabel: 304 - originalLookupLabel: 304 - center: - x: -5.0 - y: -26.0 - z: 28.0 - color: '#778db2' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_Cingp_4: - name: 17Networks_LH_ContC_Cingp_4 - lookupLabel: 305 - originalLookupLabel: 305 - center: - x: -4.0 - y: -12.0 - z: 30.0 - color: '#778db3' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_DefaultA_IPL_1: - name: 17Networks_LH_DefaultA_IPL_1 - lookupLabel: 306 - originalLookupLabel: 306 - center: - x: -43.0 - y: -66.0 - z: 23.0 - color: '#ffff01' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_IPL_2: - name: 17Networks_LH_DefaultA_IPL_2 - lookupLabel: 307 - originalLookupLabel: 307 - center: - x: -48.0 - y: -70.0 - z: 32.0 - color: '#ffff02' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_IPL_3: - name: 17Networks_LH_DefaultA_IPL_3 - lookupLabel: 308 - originalLookupLabel: 308 - center: - x: -46.0 - y: -63.0 - z: 34.0 - color: '#ffff03' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_IPL_4: - name: 17Networks_LH_DefaultA_IPL_4 - lookupLabel: 309 - originalLookupLabel: 309 - center: - x: -38.0 - y: -75.0 - z: 44.0 - color: '#ffff04' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_IPL_5: - name: 17Networks_LH_DefaultA_IPL_5 - lookupLabel: 310 - originalLookupLabel: 310 - center: - x: -45.0 - y: -65.0 - z: 47.0 - color: '#ffff05' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_1: - name: 17Networks_LH_DefaultA_PFCd_1 - lookupLabel: 311 - originalLookupLabel: 311 - center: - x: -20.0 - y: 39.0 - z: 41.0 - color: '#ffff00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_2: - name: 17Networks_LH_DefaultA_PFCd_2 - lookupLabel: 312 - originalLookupLabel: 312 - center: - x: -28.0 - y: 29.0 - z: 47.0 - color: '#ffff06' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_3: - name: 17Networks_LH_DefaultA_PFCd_3 - lookupLabel: 313 - originalLookupLabel: 313 - center: - x: -23.0 - y: 25.0 - z: 41.0 - color: '#ffff07' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_4: - name: 17Networks_LH_DefaultA_PFCd_4 - lookupLabel: 314 - originalLookupLabel: 314 - center: - x: -20.0 - y: 32.0 - z: 51.0 - color: '#ffff08' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_5: - name: 17Networks_LH_DefaultA_PFCd_5 - lookupLabel: 315 - originalLookupLabel: 315 - center: - x: -29.0 - y: 17.0 - z: 55.0 - color: '#fcf900' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_6: - name: 17Networks_LH_DefaultA_PFCd_6 - lookupLabel: 316 - originalLookupLabel: 316 - center: - x: -23.0 - y: 16.0 - z: 52.0 - color: '#fcf901' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_1: - name: 17Networks_LH_DefaultA_pCunPCC_1 - lookupLabel: 317 - originalLookupLabel: 317 - center: - x: -6.0 - y: -47.0 - z: 14.0 - color: '#fffe01' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_2: - name: 17Networks_LH_DefaultA_pCunPCC_2 - lookupLabel: 318 - originalLookupLabel: 318 - center: - x: -4.0 - y: -53.0 - z: 17.0 - color: '#fffe02' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_3: - name: 17Networks_LH_DefaultA_pCunPCC_3 - lookupLabel: 319 - originalLookupLabel: 319 - center: - x: -3.0 - y: -62.0 - z: 22.0 - color: '#fffe03' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_4: - name: 17Networks_LH_DefaultA_pCunPCC_4 - lookupLabel: 320 - originalLookupLabel: 320 - center: - x: -5.0 - y: -51.0 - z: 25.0 - color: '#fffe04' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_5: - name: 17Networks_LH_DefaultA_pCunPCC_5 - lookupLabel: 321 - originalLookupLabel: 321 - center: - x: -3.0 - y: -44.0 - z: 28.0 - color: '#fffe05' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_6: - name: 17Networks_LH_DefaultA_pCunPCC_6 - lookupLabel: 322 - originalLookupLabel: 322 - center: - x: -6.0 - y: -58.0 - z: 28.0 - color: '#fffe06' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_7: - name: 17Networks_LH_DefaultA_pCunPCC_7 - lookupLabel: 323 - originalLookupLabel: 323 - center: - x: -3.0 - y: -35.0 - z: 29.0 - color: '#fffe07' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_8: - name: 17Networks_LH_DefaultA_pCunPCC_8 - lookupLabel: 324 - originalLookupLabel: 324 - center: - x: -3.0 - y: -67.0 - z: 30.0 - color: '#fcfa00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_9: - name: 17Networks_LH_DefaultA_pCunPCC_9 - lookupLabel: 325 - originalLookupLabel: 325 - center: - x: -11.0 - y: -49.0 - z: 30.0 - color: '#fcfb00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_10: - name: 17Networks_LH_DefaultA_pCunPCC_10 - lookupLabel: 326 - originalLookupLabel: 326 - center: - x: -5.0 - y: -39.0 - z: 34.0 - color: '#fcfc00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_11: - name: 17Networks_LH_DefaultA_pCunPCC_11 - lookupLabel: 327 - originalLookupLabel: 327 - center: - x: -4.0 - y: -30.0 - z: 34.0 - color: '#fcfd00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_12: - name: 17Networks_LH_DefaultA_pCunPCC_12 - lookupLabel: 328 - originalLookupLabel: 328 - center: - x: -2.0 - y: -16.0 - z: 36.0 - color: '#fcfe00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_13: - name: 17Networks_LH_DefaultA_pCunPCC_13 - lookupLabel: 329 - originalLookupLabel: 329 - center: - x: -7.0 - y: -58.0 - z: 35.0 - color: '#fdf700' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_14: - name: 17Networks_LH_DefaultA_pCunPCC_14 - lookupLabel: 330 - originalLookupLabel: 330 - center: - x: -9.0 - y: -43.0 - z: 38.0 - color: '#fdf800' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_15: - name: 17Networks_LH_DefaultA_pCunPCC_15 - lookupLabel: 331 - originalLookupLabel: 331 - center: - x: -3.0 - y: -66.0 - z: 38.0 - color: '#fdf900' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_16: - name: 17Networks_LH_DefaultA_pCunPCC_16 - lookupLabel: 332 - originalLookupLabel: 332 - center: - x: -4.0 - y: -25.0 - z: 40.0 - color: '#fdfa00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_17: - name: 17Networks_LH_DefaultA_pCunPCC_17 - lookupLabel: 333 - originalLookupLabel: 333 - center: - x: -10.0 - y: -51.0 - z: 39.0 - color: '#fdfb00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_18: - name: 17Networks_LH_DefaultA_pCunPCC_18 - lookupLabel: 334 - originalLookupLabel: 334 - center: - x: -5.0 - y: -59.0 - z: 43.0 - color: '#fdfc00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_1: - name: 17Networks_LH_DefaultA_PFCm_1 - lookupLabel: 335 - originalLookupLabel: 335 - center: - x: -5.0 - y: 54.0 - z: -11.0 - color: '#feff01' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_2: - name: 17Networks_LH_DefaultA_PFCm_2 - lookupLabel: 336 - originalLookupLabel: 336 - center: - x: -6.0 - y: 34.0 - z: -9.0 - color: '#feff02' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_3: - name: 17Networks_LH_DefaultA_PFCm_3 - lookupLabel: 337 - originalLookupLabel: 337 - center: - x: -8.0 - y: 68.0 - z: 2.0 - color: '#feff03' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_4: - name: 17Networks_LH_DefaultA_PFCm_4 - lookupLabel: 338 - originalLookupLabel: 338 - center: - x: -7.0 - y: 58.0 - z: 6.0 - color: '#feff04' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_5: - name: 17Networks_LH_DefaultA_PFCm_5 - lookupLabel: 339 - originalLookupLabel: 339 - center: - x: -6.0 - y: 45.0 - z: 5.0 - color: '#feff05' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_6: - name: 17Networks_LH_DefaultA_PFCm_6 - lookupLabel: 340 - originalLookupLabel: 340 - center: - x: -20.0 - y: 65.0 - z: 8.0 - color: '#feff06' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_7: - name: 17Networks_LH_DefaultA_PFCm_7 - lookupLabel: 341 - originalLookupLabel: 341 - center: - x: -2.0 - y: 35.0 - z: 11.0 - color: '#feff07' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_8: - name: 17Networks_LH_DefaultA_PFCm_8 - lookupLabel: 342 - originalLookupLabel: 342 - center: - x: -7.0 - y: 36.0 - z: 22.0 - color: '#fbf900' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultB_Temp_1: - name: 17Networks_LH_DefaultB_Temp_1 - lookupLabel: 343 - originalLookupLabel: 343 - center: - x: -51.0 - y: 3.0 - z: -32.0 - color: '#cd3e4a' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_2: - name: 17Networks_LH_DefaultB_Temp_2 - lookupLabel: 344 - originalLookupLabel: 344 - center: - x: -58.0 - y: -16.0 - z: -28.0 - color: '#cd3e4b' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_3: - name: 17Networks_LH_DefaultB_Temp_3 - lookupLabel: 345 - originalLookupLabel: 345 - center: - x: -42.0 - y: 18.0 - z: -29.0 - color: '#cd3e4c' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_4: - name: 17Networks_LH_DefaultB_Temp_4 - lookupLabel: 346 - originalLookupLabel: 346 - center: - x: -62.0 - y: -26.0 - z: -17.0 - color: '#cd3e4d' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_5: - name: 17Networks_LH_DefaultB_Temp_5 - lookupLabel: 347 - originalLookupLabel: 347 - center: - x: -51.0 - y: 0.0 - z: -21.0 - color: '#cd3e4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_6: - name: 17Networks_LH_DefaultB_Temp_6 - lookupLabel: 348 - originalLookupLabel: 348 - center: - x: -61.0 - y: -10.0 - z: -15.0 - color: '#cd3e50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_7: - name: 17Networks_LH_DefaultB_Temp_7 - lookupLabel: 349 - originalLookupLabel: 349 - center: - x: -63.0 - y: -25.0 - z: -8.0 - color: '#cd3e51' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_8: - name: 17Networks_LH_DefaultB_Temp_8 - lookupLabel: 350 - originalLookupLabel: 350 - center: - x: -51.0 - y: -14.0 - z: -11.0 - color: '#cd3e52' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_9: - name: 17Networks_LH_DefaultB_Temp_9 - lookupLabel: 351 - originalLookupLabel: 351 - center: - x: -63.0 - y: -37.0 - z: -3.0 - color: '#cd3e53' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_10: - name: 17Networks_LH_DefaultB_Temp_10 - lookupLabel: 352 - originalLookupLabel: 352 - center: - x: -52.0 - y: -23.0 - z: -6.0 - color: '#cd3e54' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_11: - name: 17Networks_LH_DefaultB_Temp_11 - lookupLabel: 353 - originalLookupLabel: 353 - center: - x: -51.0 - y: -36.0 - z: 1.0 - color: '#cd3e55' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_1: - name: 17Networks_LH_DefaultB_IPL_1 - lookupLabel: 354 - originalLookupLabel: 354 - center: - x: -47.0 - y: -60.0 - z: 18.0 - color: '#cd3e4e' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_2: - name: 17Networks_LH_DefaultB_IPL_2 - lookupLabel: 355 - originalLookupLabel: 355 - center: - x: -43.0 - y: -57.0 - z: 25.0 - color: '#cd3e56' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_3: - name: 17Networks_LH_DefaultB_IPL_3 - lookupLabel: 356 - originalLookupLabel: 356 - center: - x: -51.0 - y: -54.0 - z: 25.0 - color: '#cd3f4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_4: - name: 17Networks_LH_DefaultB_IPL_4 - lookupLabel: 357 - originalLookupLabel: 357 - center: - x: -60.0 - y: -53.0 - z: 30.0 - color: '#cd3f50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_5: - name: 17Networks_LH_DefaultB_IPL_5 - lookupLabel: 358 - originalLookupLabel: 358 - center: - x: -53.0 - y: -58.0 - z: 35.0 - color: '#cd3f51' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_1: - name: 17Networks_LH_DefaultB_PFCd_1 - lookupLabel: 359 - originalLookupLabel: 359 - center: - x: -5.0 - y: 60.0 - z: 20.0 - color: '#cd3f4a' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_2: - name: 17Networks_LH_DefaultB_PFCd_2 - lookupLabel: 360 - originalLookupLabel: 360 - center: - x: -6.0 - y: 48.0 - z: 19.0 - color: '#cd3f4b' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_3: - name: 17Networks_LH_DefaultB_PFCd_3 - lookupLabel: 361 - originalLookupLabel: 361 - center: - x: -23.0 - y: 57.0 - z: 20.0 - color: '#cd3f4c' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_4: - name: 17Networks_LH_DefaultB_PFCd_4 - lookupLabel: 362 - originalLookupLabel: 362 - center: - x: -15.0 - y: 61.0 - z: 25.0 - color: '#cd3f4d' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_5: - name: 17Networks_LH_DefaultB_PFCd_5 - lookupLabel: 363 - originalLookupLabel: 363 - center: - x: -5.0 - y: 55.0 - z: 38.0 - color: '#cd3f52' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_6: - name: 17Networks_LH_DefaultB_PFCd_6 - lookupLabel: 364 - originalLookupLabel: 364 - center: - x: -3.0 - y: 41.0 - z: 35.0 - color: '#cd3f53' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_7: - name: 17Networks_LH_DefaultB_PFCd_7 - lookupLabel: 365 - originalLookupLabel: 365 - center: - x: -14.0 - y: 50.0 - z: 40.0 - color: '#cd3f54' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_8: - name: 17Networks_LH_DefaultB_PFCd_8 - lookupLabel: 366 - originalLookupLabel: 366 - center: - x: -11.0 - y: 43.0 - z: 51.0 - color: '#cd3f55' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_9: - name: 17Networks_LH_DefaultB_PFCd_9 - lookupLabel: 367 - originalLookupLabel: 367 - center: - x: -4.0 - y: 39.0 - z: 52.0 - color: '#cd404e' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_10: - name: 17Networks_LH_DefaultB_PFCd_10 - lookupLabel: 368 - originalLookupLabel: 368 - center: - x: -12.0 - y: 26.0 - z: 60.0 - color: '#cd404f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_11: - name: 17Networks_LH_DefaultB_PFCd_11 - lookupLabel: 369 - originalLookupLabel: 369 - center: - x: -4.0 - y: 19.0 - z: 61.0 - color: '#cd4050' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_12: - name: 17Networks_LH_DefaultB_PFCd_12 - lookupLabel: 370 - originalLookupLabel: 370 - center: - x: -12.0 - y: 12.0 - z: 67.0 - color: '#cd4051' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCl_1: - name: 17Networks_LH_DefaultB_PFCl_1 - lookupLabel: 371 - originalLookupLabel: 371 - center: - x: -41.0 - y: 7.0 - z: 49.0 - color: '#cd3f56' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCl_2: - name: 17Networks_LH_DefaultB_PFCl_2 - lookupLabel: 372 - originalLookupLabel: 372 - center: - x: -38.0 - y: 14.0 - z: 56.0 - color: '#cd4052' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_1: - name: 17Networks_LH_DefaultB_PFCv_1 - lookupLabel: 373 - originalLookupLabel: 373 - center: - x: -36.0 - y: 23.0 - z: -15.0 - color: '#ce3e4d' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_2: - name: 17Networks_LH_DefaultB_PFCv_2 - lookupLabel: 374 - originalLookupLabel: 374 - center: - x: -36.0 - y: 36.0 - z: -12.0 - color: '#ce3e4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_3: - name: 17Networks_LH_DefaultB_PFCv_3 - lookupLabel: 375 - originalLookupLabel: 375 - center: - x: -47.0 - y: 33.0 - z: -11.0 - color: '#ce3e50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_4: - name: 17Networks_LH_DefaultB_PFCv_4 - lookupLabel: 376 - originalLookupLabel: 376 - center: - x: -42.0 - y: 26.0 - z: 3.0 - color: '#ce3e51' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_5: - name: 17Networks_LH_DefaultB_PFCv_5 - lookupLabel: 377 - originalLookupLabel: 377 - center: - x: -51.0 - y: 33.0 - z: -2.0 - color: '#ce3e52' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_6: - name: 17Networks_LH_DefaultB_PFCv_6 - lookupLabel: 378 - originalLookupLabel: 378 - center: - x: -52.0 - y: 20.0 - z: 9.0 - color: '#ce3e53' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultC_IPL_1: - name: 17Networks_LH_DefaultC_IPL_1 - lookupLabel: 379 - originalLookupLabel: 379 - center: - x: -44.0 - y: -74.0 - z: 25.0 - color: '#000083' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_IPL_2: - name: 17Networks_LH_DefaultC_IPL_2 - lookupLabel: 380 - originalLookupLabel: 380 - center: - x: -38.0 - y: -82.0 - z: 32.0 - color: '#000084' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_1: - name: 17Networks_LH_DefaultC_Rsp_1 - lookupLabel: 381 - originalLookupLabel: 381 - center: - x: -11.0 - y: -47.0 - z: 4.0 - color: '#000085' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_2: - name: 17Networks_LH_DefaultC_Rsp_2 - lookupLabel: 382 - originalLookupLabel: 382 - center: - x: -10.0 - y: -53.0 - z: 8.0 - color: '#000086' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_3: - name: 17Networks_LH_DefaultC_Rsp_3 - lookupLabel: 383 - originalLookupLabel: 383 - center: - x: -11.0 - y: -59.0 - z: 16.0 - color: '#000087' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_4: - name: 17Networks_LH_DefaultC_Rsp_4 - lookupLabel: 384 - originalLookupLabel: 384 - center: - x: -17.0 - y: -63.0 - z: 22.0 - color: '#000088' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_1: - name: 17Networks_LH_DefaultC_PHC_1 - lookupLabel: 385 - originalLookupLabel: 385 - center: - x: -21.0 - y: -18.0 - z: -28.0 - color: '#000181' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_2: - name: 17Networks_LH_DefaultC_PHC_2 - lookupLabel: 386 - originalLookupLabel: 386 - center: - x: -32.0 - y: -25.0 - z: -24.0 - color: '#000183' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_3: - name: 17Networks_LH_DefaultC_PHC_3 - lookupLabel: 387 - originalLookupLabel: 387 - center: - x: -29.0 - y: -36.0 - z: -15.0 - color: '#000184' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_4: - name: 17Networks_LH_DefaultC_PHC_4 - lookupLabel: 388 - originalLookupLabel: 388 - center: - x: -19.0 - y: -26.0 - z: -20.0 - color: '#000185' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_5: - name: 17Networks_LH_DefaultC_PHC_5 - lookupLabel: 389 - originalLookupLabel: 389 - center: - x: -18.0 - y: -36.0 - z: -13.0 - color: '#000186' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_TempPar_1: - name: 17Networks_LH_TempPar_1 - lookupLabel: 390 - originalLookupLabel: 390 - center: - x: -52.0 - y: 8.0 - z: -17.0 - color: '#0c30fb' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_2: - name: 17Networks_LH_TempPar_2 - lookupLabel: 391 - originalLookupLabel: 391 - center: - x: -54.0 - y: -4.0 - z: -10.0 - color: '#0c30fc' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_3: - name: 17Networks_LH_TempPar_3 - lookupLabel: 392 - originalLookupLabel: 392 - center: - x: -60.0 - y: -14.0 - z: -3.0 - color: '#0c30fd' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_4: - name: 17Networks_LH_TempPar_4 - lookupLabel: 393 - originalLookupLabel: 393 - center: - x: -62.0 - y: -52.0 - z: 6.0 - color: '#0c30fe' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_5: - name: 17Networks_LH_TempPar_5 - lookupLabel: 394 - originalLookupLabel: 394 - center: - x: -63.0 - y: -27.0 - z: 3.0 - color: '#0929f9' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_6: - name: 17Networks_LH_TempPar_6 - lookupLabel: 395 - originalLookupLabel: 395 - center: - x: -52.0 - y: -45.0 - z: 6.0 - color: '#0929fa' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_7: - name: 17Networks_LH_TempPar_7 - lookupLabel: 396 - originalLookupLabel: 396 - center: - x: -55.0 - y: -55.0 - z: 13.0 - color: '#0929fb' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_8: - name: 17Networks_LH_TempPar_8 - lookupLabel: 397 - originalLookupLabel: 397 - center: - x: -62.0 - y: -39.0 - z: 9.0 - color: '#0929fc' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_9: - name: 17Networks_LH_TempPar_9 - lookupLabel: 398 - originalLookupLabel: 398 - center: - x: -46.0 - y: -50.0 - z: 17.0 - color: '#0929fd' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_10: - name: 17Networks_LH_TempPar_10 - lookupLabel: 399 - originalLookupLabel: 399 - center: - x: -60.0 - y: -50.0 - z: 16.0 - color: '#0929fe' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_11: - name: 17Networks_LH_TempPar_11 - lookupLabel: 400 - originalLookupLabel: 400 - center: - x: -59.0 - y: -45.0 - z: 22.0 - color: '#0929ff' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_RH_VisCent_Striate_1: - name: 17Networks_RH_VisCent_Striate_1 - lookupLabel: 401 - originalLookupLabel: 401 - center: - x: 15.0 - y: -96.0 - z: -12.0 - color: '#781387' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_Striate_2: - name: 17Networks_RH_VisCent_Striate_2 - lookupLabel: 402 - originalLookupLabel: 402 - center: - x: 7.0 - y: -90.0 - z: -10.0 - color: '#781388' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_Striate_3: - name: 17Networks_RH_VisCent_Striate_3 - lookupLabel: 403 - originalLookupLabel: 403 - center: - x: 11.0 - y: -96.0 - z: 1.0 - color: '#781389' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_Striate_4: - name: 17Networks_RH_VisCent_Striate_4 - lookupLabel: 404 - originalLookupLabel: 404 - center: - x: 14.0 - y: -103.0 - z: 4.0 - color: '#78138a' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_1: - name: 17Networks_RH_VisCent_ExStr_1 - lookupLabel: 405 - originalLookupLabel: 405 - center: - x: 35.0 - y: -49.0 - z: -19.0 - color: '#781283' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_2: - name: 17Networks_RH_VisCent_ExStr_2 - lookupLabel: 406 - originalLookupLabel: 406 - center: - x: 30.0 - y: -45.0 - z: -12.0 - color: '#781284' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_3: - name: 17Networks_RH_VisCent_ExStr_3 - lookupLabel: 407 - originalLookupLabel: 407 - center: - x: 46.0 - y: -58.0 - z: -18.0 - color: '#781285' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_4: - name: 17Networks_RH_VisCent_ExStr_4 - lookupLabel: 408 - originalLookupLabel: 408 - center: - x: 36.0 - y: -66.0 - z: -15.0 - color: '#781286' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_5: - name: 17Networks_RH_VisCent_ExStr_5 - lookupLabel: 409 - originalLookupLabel: 409 - center: - x: 29.0 - y: -64.0 - z: -11.0 - color: '#781287' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_6: - name: 17Networks_RH_VisCent_ExStr_6 - lookupLabel: 410 - originalLookupLabel: 410 - center: - x: 37.0 - y: -77.0 - z: -16.0 - color: '#781380' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_7: - name: 17Networks_RH_VisCent_ExStr_7 - lookupLabel: 411 - originalLookupLabel: 411 - center: - x: 26.0 - y: -79.0 - z: -12.0 - color: '#781381' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_8: - name: 17Networks_RH_VisCent_ExStr_8 - lookupLabel: 412 - originalLookupLabel: 412 - center: - x: 24.0 - y: -59.0 - z: -8.0 - color: '#781382' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_9: - name: 17Networks_RH_VisCent_ExStr_9 - lookupLabel: 413 - originalLookupLabel: 413 - center: - x: 47.0 - y: -72.0 - z: -13.0 - color: '#781383' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_10: - name: 17Networks_RH_VisCent_ExStr_10 - lookupLabel: 414 - originalLookupLabel: 414 - center: - x: 18.0 - y: -74.0 - z: -9.0 - color: '#781384' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_11: - name: 17Networks_RH_VisCent_ExStr_11 - lookupLabel: 415 - originalLookupLabel: 415 - center: - x: 20.0 - y: -88.0 - z: -12.0 - color: '#781385' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_12: - name: 17Networks_RH_VisCent_ExStr_12 - lookupLabel: 416 - originalLookupLabel: 416 - center: - x: 12.0 - y: -82.0 - z: -14.0 - color: '#781386' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_13: - name: 17Networks_RH_VisCent_ExStr_13 - lookupLabel: 417 - originalLookupLabel: 417 - center: - x: 36.0 - y: -88.0 - z: -16.0 - color: '#78138b' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_14: - name: 17Networks_RH_VisCent_ExStr_14 - lookupLabel: 418 - originalLookupLabel: 418 - center: - x: 49.0 - y: -76.0 - z: -7.0 - color: '#78138c' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_15: - name: 17Networks_RH_VisCent_ExStr_15 - lookupLabel: 419 - originalLookupLabel: 419 - center: - x: 23.0 - y: -98.0 - z: -11.0 - color: '#78138d' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_16: - name: 17Networks_RH_VisCent_ExStr_16 - lookupLabel: 420 - originalLookupLabel: 420 - center: - x: 35.0 - y: -91.0 - z: -6.0 - color: '#78138e' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_17: - name: 17Networks_RH_VisCent_ExStr_17 - lookupLabel: 421 - originalLookupLabel: 421 - center: - x: 44.0 - y: -84.0 - z: -1.0 - color: '#781487' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_18: - name: 17Networks_RH_VisCent_ExStr_18 - lookupLabel: 422 - originalLookupLabel: 422 - center: - x: 51.0 - y: -71.0 - z: 4.0 - color: '#781488' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_19: - name: 17Networks_RH_VisCent_ExStr_19 - lookupLabel: 423 - originalLookupLabel: 423 - center: - x: 25.0 - y: -99.0 - z: 2.0 - color: '#781489' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_20: - name: 17Networks_RH_VisCent_ExStr_20 - lookupLabel: 424 - originalLookupLabel: 424 - center: - x: 34.0 - y: -89.0 - z: 5.0 - color: '#78148a' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_21: - name: 17Networks_RH_VisCent_ExStr_21 - lookupLabel: 425 - originalLookupLabel: 425 - center: - x: 19.0 - y: -98.0 - z: 14.0 - color: '#78148b' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_22: - name: 17Networks_RH_VisCent_ExStr_22 - lookupLabel: 426 - originalLookupLabel: 426 - center: - x: 44.0 - y: -78.0 - z: 10.0 - color: '#78148c' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_23: - name: 17Networks_RH_VisCent_ExStr_23 - lookupLabel: 427 - originalLookupLabel: 427 - center: - x: 29.0 - y: -89.0 - z: 18.0 - color: '#78148d' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_24: - name: 17Networks_RH_VisCent_ExStr_24 - lookupLabel: 428 - originalLookupLabel: 428 - center: - x: 35.0 - y: -84.0 - z: 16.0 - color: '#78148e' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_25: - name: 17Networks_RH_VisCent_ExStr_25 - lookupLabel: 429 - originalLookupLabel: 429 - center: - x: 16.0 - y: -91.0 - z: 24.0 - color: '#781587' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_26: - name: 17Networks_RH_VisCent_ExStr_26 - lookupLabel: 430 - originalLookupLabel: 430 - center: - x: 34.0 - y: -78.0 - z: 22.0 - color: '#781588' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_27: - name: 17Networks_RH_VisCent_ExStr_27 - lookupLabel: 431 - originalLookupLabel: 431 - center: - x: 28.0 - y: -83.0 - z: 28.0 - color: '#781589' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisPeri_StriCal_1: - name: 17Networks_RH_VisPeri_StriCal_1 - lookupLabel: 432 - originalLookupLabel: 432 - center: - x: 4.0 - y: -78.0 - z: -1.0 - color: '#ff0100' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_2: - name: 17Networks_RH_VisPeri_StriCal_2 - lookupLabel: 433 - originalLookupLabel: 433 - center: - x: 8.0 - y: -64.0 - z: 7.0 - color: '#ff0102' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_3: - name: 17Networks_RH_VisPeri_StriCal_3 - lookupLabel: 434 - originalLookupLabel: 434 - center: - x: 8.0 - y: -86.0 - z: 3.0 - color: '#ff0103' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_4: - name: 17Networks_RH_VisPeri_StriCal_4 - lookupLabel: 435 - originalLookupLabel: 435 - center: - x: 11.0 - y: -76.0 - z: 9.0 - color: '#ff0104' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_5: - name: 17Networks_RH_VisPeri_StriCal_5 - lookupLabel: 436 - originalLookupLabel: 436 - center: - x: 24.0 - y: -57.0 - z: 5.0 - color: '#ff0105' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_6: - name: 17Networks_RH_VisPeri_StriCal_6 - lookupLabel: 437 - originalLookupLabel: 437 - center: - x: 18.0 - y: -69.0 - z: 8.0 - color: '#ff0106' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_7: - name: 17Networks_RH_VisPeri_StriCal_7 - lookupLabel: 438 - originalLookupLabel: 438 - center: - x: 10.0 - y: -69.0 - z: 14.0 - color: '#ff0107' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_1: - name: 17Networks_RH_VisPeri_ExStrInf_1 - lookupLabel: 439 - originalLookupLabel: 439 - center: - x: 22.0 - y: -47.0 - z: -9.0 - color: '#fe0001' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_2: - name: 17Networks_RH_VisPeri_ExStrInf_2 - lookupLabel: 440 - originalLookupLabel: 440 - center: - x: 17.0 - y: -37.0 - z: -12.0 - color: '#fe0002' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_3: - name: 17Networks_RH_VisPeri_ExStrInf_3 - lookupLabel: 441 - originalLookupLabel: 441 - center: - x: 14.0 - y: -47.0 - z: -7.0 - color: '#fe0003' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_4: - name: 17Networks_RH_VisPeri_ExStrInf_4 - lookupLabel: 442 - originalLookupLabel: 442 - center: - x: 14.0 - y: -61.0 - z: -4.0 - color: '#fe0004' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_5: - name: 17Networks_RH_VisPeri_ExStrInf_5 - lookupLabel: 443 - originalLookupLabel: 443 - center: - x: 8.0 - y: -72.0 - z: -4.0 - color: '#fe0005' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_6: - name: 17Networks_RH_VisPeri_ExStrInf_6 - lookupLabel: 444 - originalLookupLabel: 444 - center: - x: 14.0 - y: -56.0 - z: 2.0 - color: '#fe0006' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_7: - name: 17Networks_RH_VisPeri_ExStrInf_7 - lookupLabel: 445 - originalLookupLabel: 445 - center: - x: 18.0 - y: -44.0 - z: -3.0 - color: '#fe0007' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_8: - name: 17Networks_RH_VisPeri_ExStrInf_8 - lookupLabel: 446 - originalLookupLabel: 446 - center: - x: 13.0 - y: -44.0 - z: 3.0 - color: '#fe0100' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_1: - name: 17Networks_RH_VisPeri_ExStrSup_1 - lookupLabel: 447 - originalLookupLabel: 447 - center: - x: 5.0 - y: -84.0 - z: 12.0 - color: '#fe0000' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_2: - name: 17Networks_RH_VisPeri_ExStrSup_2 - lookupLabel: 448 - originalLookupLabel: 448 - center: - x: 21.0 - y: -59.0 - z: 11.0 - color: '#fe0008' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_3: - name: 17Networks_RH_VisPeri_ExStrSup_3 - lookupLabel: 449 - originalLookupLabel: 449 - center: - x: 7.0 - y: -93.0 - z: 16.0 - color: '#fe0101' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_4: - name: 17Networks_RH_VisPeri_ExStrSup_4 - lookupLabel: 450 - originalLookupLabel: 450 - center: - x: 20.0 - y: -63.0 - z: 16.0 - color: '#fe0102' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_5: - name: 17Networks_RH_VisPeri_ExStrSup_5 - lookupLabel: 451 - originalLookupLabel: 451 - center: - x: 5.0 - y: -78.0 - z: 24.0 - color: '#fe0103' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_6: - name: 17Networks_RH_VisPeri_ExStrSup_6 - lookupLabel: 452 - originalLookupLabel: 452 - center: - x: 13.0 - y: -69.0 - z: 22.0 - color: '#fe0104' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_7: - name: 17Networks_RH_VisPeri_ExStrSup_7 - lookupLabel: 453 - originalLookupLabel: 453 - center: - x: 7.0 - y: -87.0 - z: 33.0 - color: '#fe0105' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_8: - name: 17Networks_RH_VisPeri_ExStrSup_8 - lookupLabel: 454 - originalLookupLabel: 454 - center: - x: 13.0 - y: -77.0 - z: 32.0 - color: '#fe0106' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_9: - name: 17Networks_RH_VisPeri_ExStrSup_9 - lookupLabel: 455 - originalLookupLabel: 455 - center: - x: 19.0 - y: -71.0 - z: 34.0 - color: '#fe0107' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_10: - name: 17Networks_RH_VisPeri_ExStrSup_10 - lookupLabel: 456 - originalLookupLabel: 456 - center: - x: 21.0 - y: -87.0 - z: 37.0 - color: '#fe0108' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_11: - name: 17Networks_RH_VisPeri_ExStrSup_11 - lookupLabel: 457 - originalLookupLabel: 457 - center: - x: 16.0 - y: -82.0 - z: 41.0 - color: '#fe0201' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_SomMotA_1: - name: 17Networks_RH_SomMotA_1 - lookupLabel: 458 - originalLookupLabel: 458 - center: - x: 57.0 - y: -15.0 - z: 42.0 - color: '#4681b5' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_2: - name: 17Networks_RH_SomMotA_2 - lookupLabel: 459 - originalLookupLabel: 459 - center: - x: 51.0 - y: -13.0 - z: 50.0 - color: '#4682ae' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_3: - name: 17Networks_RH_SomMotA_3 - lookupLabel: 460 - originalLookupLabel: 460 - center: - x: 53.0 - y: -20.0 - z: 50.0 - color: '#4682af' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_4: - name: 17Networks_RH_SomMotA_4 - lookupLabel: 461 - originalLookupLabel: 461 - center: - x: 10.0 - y: -9.0 - z: 47.0 - color: '#4682b0' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_5: - name: 17Networks_RH_SomMotA_5 - lookupLabel: 462 - originalLookupLabel: 462 - center: - x: 46.0 - y: -9.0 - z: 51.0 - color: '#4682b1' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_6: - name: 17Networks_RH_SomMotA_6 - lookupLabel: 463 - originalLookupLabel: 463 - center: - x: 49.0 - y: -27.0 - z: 56.0 - color: '#4682b2' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_7: - name: 17Networks_RH_SomMotA_7 - lookupLabel: 464 - originalLookupLabel: 464 - center: - x: 48.0 - y: -20.0 - z: 60.0 - color: '#4682b3' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_8: - name: 17Networks_RH_SomMotA_8 - lookupLabel: 465 - originalLookupLabel: 465 - center: - x: 41.0 - y: -20.0 - z: 50.0 - color: '#4682b4' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_9: - name: 17Networks_RH_SomMotA_9 - lookupLabel: 466 - originalLookupLabel: 466 - center: - x: 6.0 - y: -15.0 - z: 51.0 - color: '#4682b5' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_10: - name: 17Networks_RH_SomMotA_10 - lookupLabel: 467 - originalLookupLabel: 467 - center: - x: 41.0 - y: -16.0 - z: 57.0 - color: '#4683ae' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_11: - name: 17Networks_RH_SomMotA_11 - lookupLabel: 468 - originalLookupLabel: 468 - center: - x: 29.0 - y: -37.0 - z: 55.0 - color: '#4683af' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_12: - name: 17Networks_RH_SomMotA_12 - lookupLabel: 469 - originalLookupLabel: 469 - center: - x: 40.0 - y: -33.0 - z: 62.0 - color: '#4683b0' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_13: - name: 17Networks_RH_SomMotA_13 - lookupLabel: 470 - originalLookupLabel: 470 - center: - x: 7.0 - y: -34.0 - z: 53.0 - color: '#4683b1' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_14: - name: 17Networks_RH_SomMotA_14 - lookupLabel: 471 - originalLookupLabel: 471 - center: - x: 33.0 - y: -41.0 - z: 66.0 - color: '#4683b2' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_15: - name: 17Networks_RH_SomMotA_15 - lookupLabel: 472 - originalLookupLabel: 472 - center: - x: 36.0 - y: -27.0 - z: 61.0 - color: '#4683b3' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_16: - name: 17Networks_RH_SomMotA_16 - lookupLabel: 473 - originalLookupLabel: 473 - center: - x: 38.0 - y: -14.0 - z: 67.0 - color: '#4683b4' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_17: - name: 17Networks_RH_SomMotA_17 - lookupLabel: 474 - originalLookupLabel: 474 - center: - x: 4.0 - y: -21.0 - z: 59.0 - color: '#4683b6' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_18: - name: 17Networks_RH_SomMotA_18 - lookupLabel: 475 - originalLookupLabel: 475 - center: - x: 29.0 - y: -34.0 - z: 66.0 - color: '#4683b7' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_19: - name: 17Networks_RH_SomMotA_19 - lookupLabel: 476 - originalLookupLabel: 476 - center: - x: 32.0 - y: -23.0 - z: 62.0 - color: '#4683b8' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_20: - name: 17Networks_RH_SomMotA_20 - lookupLabel: 477 - originalLookupLabel: 477 - center: - x: 28.0 - y: -11.0 - z: 65.0 - color: '#4683b9' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_21: - name: 17Networks_RH_SomMotA_21 - lookupLabel: 478 - originalLookupLabel: 478 - center: - x: 9.0 - y: -41.0 - z: 65.0 - color: '#4683ba' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_22: - name: 17Networks_RH_SomMotA_22 - lookupLabel: 479 - originalLookupLabel: 479 - center: - x: 30.0 - y: -18.0 - z: 72.0 - color: '#4683bb' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_23: - name: 17Networks_RH_SomMotA_23 - lookupLabel: 480 - originalLookupLabel: 480 - center: - x: 24.0 - y: -41.0 - z: 64.0 - color: '#4683bc' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_24: - name: 17Networks_RH_SomMotA_24 - lookupLabel: 481 - originalLookupLabel: 481 - center: - x: 3.0 - y: -31.0 - z: 63.0 - color: '#4684b5' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_25: - name: 17Networks_RH_SomMotA_25 - lookupLabel: 482 - originalLookupLabel: 482 - center: - x: 24.0 - y: -28.0 - z: 67.0 - color: '#4684b6' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_26: - name: 17Networks_RH_SomMotA_26 - lookupLabel: 483 - originalLookupLabel: 483 - center: - x: 18.0 - y: -5.0 - z: 69.0 - color: '#4684b7' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_27: - name: 17Networks_RH_SomMotA_27 - lookupLabel: 484 - originalLookupLabel: 484 - center: - x: 21.0 - y: -24.0 - z: 67.0 - color: '#4684b8' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_28: - name: 17Networks_RH_SomMotA_28 - lookupLabel: 485 - originalLookupLabel: 485 - center: - x: 22.0 - y: -34.0 - z: 70.0 - color: '#4684b9' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_29: - name: 17Networks_RH_SomMotA_29 - lookupLabel: 486 - originalLookupLabel: 486 - center: - x: 19.0 - y: -14.0 - z: 72.0 - color: '#4684ba' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_30: - name: 17Networks_RH_SomMotA_30 - lookupLabel: 487 - originalLookupLabel: 487 - center: - x: 21.0 - y: -42.0 - z: 72.0 - color: '#4684bb' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_31: - name: 17Networks_RH_SomMotA_31 - lookupLabel: 488 - originalLookupLabel: 488 - center: - x: 8.0 - y: -17.0 - z: 74.0 - color: '#4684bc' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_32: - name: 17Networks_RH_SomMotA_32 - lookupLabel: 489 - originalLookupLabel: 489 - center: - x: 10.0 - y: -39.0 - z: 75.0 - color: '#4685b5' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_33: - name: 17Networks_RH_SomMotA_33 - lookupLabel: 490 - originalLookupLabel: 490 - center: - x: 5.0 - y: -32.0 - z: 73.0 - color: '#4685b6' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_34: - name: 17Networks_RH_SomMotA_34 - lookupLabel: 491 - originalLookupLabel: 491 - center: - x: 14.0 - y: -32.0 - z: 73.0 - color: '#4685b7' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_35: - name: 17Networks_RH_SomMotA_35 - lookupLabel: 492 - originalLookupLabel: 492 - center: - x: 14.0 - y: -26.0 - z: 73.0 - color: '#4685b8' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_36: - name: 17Networks_RH_SomMotA_36 - lookupLabel: 493 - originalLookupLabel: 493 - center: - x: 15.0 - y: -33.0 - z: 79.0 - color: '#4685b9' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotB_Cent_1: - name: 17Networks_RH_SomMotB_Cent_1 - lookupLabel: 494 - originalLookupLabel: 494 - center: - x: 63.0 - y: -1.0 - z: 18.0 - color: '#2bcca3' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_2: - name: 17Networks_RH_SomMotB_Cent_2 - lookupLabel: 495 - originalLookupLabel: 495 - center: - x: 66.0 - y: -6.0 - z: 25.0 - color: '#2bcca4' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_3: - name: 17Networks_RH_SomMotB_Cent_3 - lookupLabel: 496 - originalLookupLabel: 496 - center: - x: 61.0 - y: 4.0 - z: 28.0 - color: '#2bcca6' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_4: - name: 17Networks_RH_SomMotB_Cent_4 - lookupLabel: 497 - originalLookupLabel: 497 - center: - x: 57.0 - y: -5.0 - z: 26.0 - color: '#2bcca7' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_5: - name: 17Networks_RH_SomMotB_Cent_5 - lookupLabel: 498 - originalLookupLabel: 498 - center: - x: 62.0 - y: -8.0 - z: 38.0 - color: '#2bcca8' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_6: - name: 17Networks_RH_SomMotB_Cent_6 - lookupLabel: 499 - originalLookupLabel: 499 - center: - x: 53.0 - y: -5.0 - z: 38.0 - color: '#2bcca9' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_7: - name: 17Networks_RH_SomMotB_Cent_7 - lookupLabel: 500 - originalLookupLabel: 500 - center: - x: 52.0 - y: -11.0 - z: 37.0 - color: '#2bccaa' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_8: - name: 17Networks_RH_SomMotB_Cent_8 - lookupLabel: 501 - originalLookupLabel: 501 - center: - x: 39.0 - y: -16.0 - z: 41.0 - color: '#2bccab' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_1: - name: 17Networks_RH_SomMotB_S2_1 - lookupLabel: 502 - originalLookupLabel: 502 - center: - x: 37.0 - y: -10.0 - z: 12.0 - color: '#2bcda1' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_2: - name: 17Networks_RH_SomMotB_S2_2 - lookupLabel: 503 - originalLookupLabel: 503 - center: - x: 38.0 - y: -9.0 - z: 18.0 - color: '#2bcda2' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_3: - name: 17Networks_RH_SomMotB_S2_3 - lookupLabel: 504 - originalLookupLabel: 504 - center: - x: 35.0 - y: -21.0 - z: 19.0 - color: '#2bcda3' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_4: - name: 17Networks_RH_SomMotB_S2_4 - lookupLabel: 505 - originalLookupLabel: 505 - center: - x: 43.0 - y: -12.0 - z: 17.0 - color: '#2bcda5' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_5: - name: 17Networks_RH_SomMotB_S2_5 - lookupLabel: 506 - originalLookupLabel: 506 - center: - x: 50.0 - y: -9.0 - z: 12.0 - color: '#2bcda6' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_6: - name: 17Networks_RH_SomMotB_S2_6 - lookupLabel: 507 - originalLookupLabel: 507 - center: - x: 40.0 - y: -25.0 - z: 20.0 - color: '#2bcda7' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_7: - name: 17Networks_RH_SomMotB_S2_7 - lookupLabel: 508 - originalLookupLabel: 508 - center: - x: 60.0 - y: -1.0 - z: 11.0 - color: '#2bcda8' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_8: - name: 17Networks_RH_SomMotB_S2_8 - lookupLabel: 509 - originalLookupLabel: 509 - center: - x: 48.0 - y: -20.0 - z: 18.0 - color: '#2bcda9' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_9: - name: 17Networks_RH_SomMotB_S2_9 - lookupLabel: 510 - originalLookupLabel: 510 - center: - x: 61.0 - y: -12.0 - z: 15.0 - color: '#2bcdaa' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Ins_1: - name: 17Networks_RH_SomMotB_Ins_1 - lookupLabel: 511 - originalLookupLabel: 511 - center: - x: 35.0 - y: -21.0 - z: 12.0 - color: '#2bcdab' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_1: - name: 17Networks_RH_SomMotB_Aud_1 - lookupLabel: 512 - originalLookupLabel: 512 - center: - x: 54.0 - y: 5.0 - z: -5.0 - color: '#2acca1' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_2: - name: 17Networks_RH_SomMotB_Aud_2 - lookupLabel: 513 - originalLookupLabel: 513 - center: - x: 47.0 - y: -8.0 - z: -6.0 - color: '#2acca2' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_3: - name: 17Networks_RH_SomMotB_Aud_3 - lookupLabel: 514 - originalLookupLabel: 514 - center: - x: 56.0 - y: -11.0 - z: 4.0 - color: '#2acca4' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_4: - name: 17Networks_RH_SomMotB_Aud_4 - lookupLabel: 515 - originalLookupLabel: 515 - center: - x: 42.0 - y: -19.0 - z: 2.0 - color: '#2acca5' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_5: - name: 17Networks_RH_SomMotB_Aud_5 - lookupLabel: 516 - originalLookupLabel: 516 - center: - x: 41.0 - y: -21.0 - z: 11.0 - color: '#2acca6' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_6: - name: 17Networks_RH_SomMotB_Aud_6 - lookupLabel: 517 - originalLookupLabel: 517 - center: - x: 48.0 - y: -22.0 - z: 9.0 - color: '#2acca7' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_7: - name: 17Networks_RH_SomMotB_Aud_7 - lookupLabel: 518 - originalLookupLabel: 518 - center: - x: 61.0 - y: -24.0 - z: 11.0 - color: '#2acca8' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_8: - name: 17Networks_RH_SomMotB_Aud_8 - lookupLabel: 519 - originalLookupLabel: 519 - center: - x: 42.0 - y: -31.0 - z: 16.0 - color: '#2acca9' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_DorsAttnA_TempOcc_1: - name: 17Networks_RH_DorsAttnA_TempOcc_1 - lookupLabel: 520 - originalLookupLabel: 520 - center: - x: 48.0 - y: -34.0 - z: -22.0 - color: '#4a9c3b' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_2: - name: 17Networks_RH_DorsAttnA_TempOcc_2 - lookupLabel: 521 - originalLookupLabel: 521 - center: - x: 33.0 - y: -33.0 - z: -24.0 - color: '#4a9c3c' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_3: - name: 17Networks_RH_DorsAttnA_TempOcc_3 - lookupLabel: 522 - originalLookupLabel: 522 - center: - x: 49.0 - y: -44.0 - z: -19.0 - color: '#4a9c3e' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_4: - name: 17Networks_RH_DorsAttnA_TempOcc_4 - lookupLabel: 523 - originalLookupLabel: 523 - center: - x: 51.0 - y: -55.0 - z: -13.0 - color: '#4a9c3f' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_5: - name: 17Networks_RH_DorsAttnA_TempOcc_5 - lookupLabel: 524 - originalLookupLabel: 524 - center: - x: 50.0 - y: -61.0 - z: -6.0 - color: '#4a9c40' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_6: - name: 17Networks_RH_DorsAttnA_TempOcc_6 - lookupLabel: 525 - originalLookupLabel: 525 - center: - x: 55.0 - y: -58.0 - z: -2.0 - color: '#4a9c41' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_7: - name: 17Networks_RH_DorsAttnA_TempOcc_7 - lookupLabel: 526 - originalLookupLabel: 526 - center: - x: 45.0 - y: -65.0 - z: 0.0 - color: '#4a9c42' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_1: - name: 17Networks_RH_DorsAttnA_ParOcc_1 - lookupLabel: 527 - originalLookupLabel: 527 - center: - x: 50.0 - y: -61.0 - z: 9.0 - color: '#4b9b3b' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_2: - name: 17Networks_RH_DorsAttnA_ParOcc_2 - lookupLabel: 528 - originalLookupLabel: 528 - center: - x: 48.0 - y: -67.0 - z: 15.0 - color: '#4b9b3d' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_3: - name: 17Networks_RH_DorsAttnA_ParOcc_3 - lookupLabel: 529 - originalLookupLabel: 529 - center: - x: 49.0 - y: -59.0 - z: 19.0 - color: '#4b9b3e' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_4: - name: 17Networks_RH_DorsAttnA_ParOcc_4 - lookupLabel: 530 - originalLookupLabel: 530 - center: - x: 43.0 - y: -81.0 - z: 21.0 - color: '#4b9b3f' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_5: - name: 17Networks_RH_DorsAttnA_ParOcc_5 - lookupLabel: 531 - originalLookupLabel: 531 - center: - x: 38.0 - y: -79.0 - z: 29.0 - color: '#4b9b40' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_1: - name: 17Networks_RH_DorsAttnA_SPL_1 - lookupLabel: 532 - originalLookupLabel: 532 - center: - x: 31.0 - y: -67.0 - z: 32.0 - color: '#4b9b39' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_2: - name: 17Networks_RH_DorsAttnA_SPL_2 - lookupLabel: 533 - originalLookupLabel: 533 - center: - x: 29.0 - y: -77.0 - z: 41.0 - color: '#4b9b3a' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_3: - name: 17Networks_RH_DorsAttnA_SPL_3 - lookupLabel: 534 - originalLookupLabel: 534 - center: - x: 22.0 - y: -81.0 - z: 48.0 - color: '#4b9b3c' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_4: - name: 17Networks_RH_DorsAttnA_SPL_4 - lookupLabel: 535 - originalLookupLabel: 535 - center: - x: 25.0 - y: -64.0 - z: 44.0 - color: '#4b9b41' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_5: - name: 17Networks_RH_DorsAttnA_SPL_5 - lookupLabel: 536 - originalLookupLabel: 536 - center: - x: 15.0 - y: -75.0 - z: 52.0 - color: '#4b9b42' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_6: - name: 17Networks_RH_DorsAttnA_SPL_6 - lookupLabel: 537 - originalLookupLabel: 537 - center: - x: 29.0 - y: -63.0 - z: 54.0 - color: '#4b9b43' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_7: - name: 17Networks_RH_DorsAttnA_SPL_7 - lookupLabel: 538 - originalLookupLabel: 538 - center: - x: 32.0 - y: -54.0 - z: 53.0 - color: '#4b9b44' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_8: - name: 17Networks_RH_DorsAttnA_SPL_8 - lookupLabel: 539 - originalLookupLabel: 539 - center: - x: 21.0 - y: -67.0 - z: 54.0 - color: '#4b9c3d' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_9: - name: 17Networks_RH_DorsAttnA_SPL_9 - lookupLabel: 540 - originalLookupLabel: 540 - center: - x: 37.0 - y: -48.0 - z: 61.0 - color: '#4b9c3e' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_10: - name: 17Networks_RH_DorsAttnA_SPL_10 - lookupLabel: 541 - originalLookupLabel: 541 - center: - x: 27.0 - y: -56.0 - z: 61.0 - color: '#4b9c3f' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_11: - name: 17Networks_RH_DorsAttnA_SPL_11 - lookupLabel: 542 - originalLookupLabel: 542 - center: - x: 13.0 - y: -69.0 - z: 61.0 - color: '#4b9c40' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_12: - name: 17Networks_RH_DorsAttnA_SPL_12 - lookupLabel: 543 - originalLookupLabel: 543 - center: - x: 21.0 - y: -64.0 - z: 65.0 - color: '#4b9c41' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnB_TempOcc_1: - name: 17Networks_RH_DorsAttnB_TempOcc_1 - lookupLabel: 544 - originalLookupLabel: 544 - center: - x: 61.0 - y: -55.0 - z: 5.0 - color: '#01760f' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_1: - name: 17Networks_RH_DorsAttnB_PostC_1 - lookupLabel: 545 - originalLookupLabel: 545 - center: - x: 59.0 - y: -14.0 - z: 33.0 - color: '#01760a' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_2: - name: 17Networks_RH_DorsAttnB_PostC_2 - lookupLabel: 546 - originalLookupLabel: 546 - center: - x: 57.0 - y: -22.0 - z: 44.0 - color: '#01760b' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_3: - name: 17Networks_RH_DorsAttnB_PostC_3 - lookupLabel: 547 - originalLookupLabel: 547 - center: - x: 50.0 - y: -21.0 - z: 39.0 - color: '#01760c' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_4: - name: 17Networks_RH_DorsAttnB_PostC_4 - lookupLabel: 548 - originalLookupLabel: 548 - center: - x: 45.0 - y: -29.0 - z: 44.0 - color: '#01760d' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_5: - name: 17Networks_RH_DorsAttnB_PostC_5 - lookupLabel: 549 - originalLookupLabel: 549 - center: - x: 40.0 - y: -39.0 - z: 48.0 - color: '#01760e' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_6: - name: 17Networks_RH_DorsAttnB_PostC_6 - lookupLabel: 550 - originalLookupLabel: 550 - center: - x: 35.0 - y: -34.0 - z: 48.0 - color: '#017610' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_7: - name: 17Networks_RH_DorsAttnB_PostC_7 - lookupLabel: 551 - originalLookupLabel: 551 - center: - x: 37.0 - y: -40.0 - z: 58.0 - color: '#017611' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_8: - name: 17Networks_RH_DorsAttnB_PostC_8 - lookupLabel: 552 - originalLookupLabel: 552 - center: - x: 8.0 - y: -61.0 - z: 59.0 - color: '#017612' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_9: - name: 17Networks_RH_DorsAttnB_PostC_9 - lookupLabel: 553 - originalLookupLabel: 553 - center: - x: 13.0 - y: -59.0 - z: 67.0 - color: '#017613' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_10: - name: 17Networks_RH_DorsAttnB_PostC_10 - lookupLabel: 554 - originalLookupLabel: 554 - center: - x: 7.0 - y: -50.0 - z: 65.0 - color: '#017614' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_11: - name: 17Networks_RH_DorsAttnB_PostC_11 - lookupLabel: 555 - originalLookupLabel: 555 - center: - x: 29.0 - y: -48.0 - z: 69.0 - color: '#017615' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_12: - name: 17Networks_RH_DorsAttnB_PostC_12 - lookupLabel: 556 - originalLookupLabel: 556 - center: - x: 20.0 - y: -54.0 - z: 69.0 - color: '#017616' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_13: - name: 17Networks_RH_DorsAttnB_PostC_13 - lookupLabel: 557 - originalLookupLabel: 557 - center: - x: 14.0 - y: -48.0 - z: 75.0 - color: '#01770f' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_1: - name: 17Networks_RH_DorsAttnB_FEF_1 - lookupLabel: 558 - originalLookupLabel: 558 - center: - x: 44.0 - y: -2.0 - z: 50.0 - color: '#01770d' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_2: - name: 17Networks_RH_DorsAttnB_FEF_2 - lookupLabel: 559 - originalLookupLabel: 559 - center: - x: 34.0 - y: -2.0 - z: 51.0 - color: '#017710' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_3: - name: 17Networks_RH_DorsAttnB_FEF_3 - lookupLabel: 560 - originalLookupLabel: 560 - center: - x: 26.0 - y: 3.0 - z: 52.0 - color: '#017711' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_4: - name: 17Networks_RH_DorsAttnB_FEF_4 - lookupLabel: 561 - originalLookupLabel: 561 - center: - x: 37.0 - y: -6.0 - z: 60.0 - color: '#017712' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_5: - name: 17Networks_RH_DorsAttnB_FEF_5 - lookupLabel: 562 - originalLookupLabel: 562 - center: - x: 27.0 - y: -8.0 - z: 52.0 - color: '#017713' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_6: - name: 17Networks_RH_DorsAttnB_FEF_6 - lookupLabel: 563 - originalLookupLabel: 563 - center: - x: 25.0 - y: -2.0 - z: 62.0 - color: '#017714' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PrCv_1: - name: 17Networks_RH_DorsAttnB_PrCv_1 - lookupLabel: 564 - originalLookupLabel: 564 - center: - x: 60.0 - y: 9.0 - z: 22.0 - color: '#017715' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PrCv_2: - name: 17Networks_RH_DorsAttnB_PrCv_2 - lookupLabel: 565 - originalLookupLabel: 565 - center: - x: 55.0 - y: 7.0 - z: 35.0 - color: '#017716' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_SalVentAttnA_ParOper_1: - name: 17Networks_RH_SalVentAttnA_ParOper_1 - lookupLabel: 566 - originalLookupLabel: 566 - center: - x: 61.0 - y: -32.0 - z: 21.0 - color: '#c43af6' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_2: - name: 17Networks_RH_SalVentAttnA_ParOper_2 - lookupLabel: 567 - originalLookupLabel: 567 - center: - x: 65.0 - y: -39.0 - z: 20.0 - color: '#c43af7' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_3: - name: 17Networks_RH_SalVentAttnA_ParOper_3 - lookupLabel: 568 - originalLookupLabel: 568 - center: - x: 48.0 - y: -29.0 - z: 25.0 - color: '#c43af8' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_4: - name: 17Networks_RH_SalVentAttnA_ParOper_4 - lookupLabel: 569 - originalLookupLabel: 569 - center: - x: 57.0 - y: -22.0 - z: 21.0 - color: '#c43afa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_5: - name: 17Networks_RH_SalVentAttnA_ParOper_5 - lookupLabel: 570 - originalLookupLabel: 570 - center: - x: 65.0 - y: -31.0 - z: 29.0 - color: '#c43afb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_6: - name: 17Networks_RH_SalVentAttnA_ParOper_6 - lookupLabel: 571 - originalLookupLabel: 571 - center: - x: 56.0 - y: -29.0 - z: 32.0 - color: '#c43afc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_7: - name: 17Networks_RH_SalVentAttnA_ParOper_7 - lookupLabel: 572 - originalLookupLabel: 572 - center: - x: 64.0 - y: -15.0 - z: 25.0 - color: '#c43afd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_8: - name: 17Networks_RH_SalVentAttnA_ParOper_8 - lookupLabel: 573 - originalLookupLabel: 573 - center: - x: 64.0 - y: -21.0 - z: 31.0 - color: '#c43afe' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_9: - name: 17Networks_RH_SalVentAttnA_ParOper_9 - lookupLabel: 574 - originalLookupLabel: 574 - center: - x: 63.0 - y: -26.0 - z: 42.0 - color: '#c43aff' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_PrC_1: - name: 17Networks_RH_SalVentAttnA_PrC_1 - lookupLabel: 575 - originalLookupLabel: 575 - center: - x: 53.0 - y: 2.0 - z: 45.0 - color: '#c439fb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_1: - name: 17Networks_RH_SalVentAttnA_FrOper_1 - lookupLabel: 576 - originalLookupLabel: 576 - center: - x: 44.0 - y: 14.0 - z: 4.0 - color: '#c439f8' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_2: - name: 17Networks_RH_SalVentAttnA_FrOper_2 - lookupLabel: 577 - originalLookupLabel: 577 - center: - x: 41.0 - y: 1.0 - z: 13.0 - color: '#c439fa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_3: - name: 17Networks_RH_SalVentAttnA_FrOper_3 - lookupLabel: 578 - originalLookupLabel: 578 - center: - x: 49.0 - y: 8.0 - z: 0.0 - color: '#c439fc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_4: - name: 17Networks_RH_SalVentAttnA_FrOper_4 - lookupLabel: 579 - originalLookupLabel: 579 - center: - x: 47.0 - y: -2.0 - z: 8.0 - color: '#c439fd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_5: - name: 17Networks_RH_SalVentAttnA_FrOper_5 - lookupLabel: 580 - originalLookupLabel: 580 - center: - x: 57.0 - y: 4.0 - z: 6.0 - color: '#c439fe' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_6: - name: 17Networks_RH_SalVentAttnA_FrOper_6 - lookupLabel: 581 - originalLookupLabel: 581 - center: - x: 54.0 - y: 11.0 - z: 10.0 - color: '#c439ff' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_1: - name: 17Networks_RH_SalVentAttnA_Ins_1 - lookupLabel: 582 - originalLookupLabel: 582 - center: - x: 46.0 - y: 9.0 - z: -16.0 - color: '#c33af8' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_2: - name: 17Networks_RH_SalVentAttnA_Ins_2 - lookupLabel: 583 - originalLookupLabel: 583 - center: - x: 39.0 - y: 5.0 - z: -12.0 - color: '#c33af9' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_3: - name: 17Networks_RH_SalVentAttnA_Ins_3 - lookupLabel: 584 - originalLookupLabel: 584 - center: - x: 41.0 - y: -7.0 - z: -7.0 - color: '#c33afb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_4: - name: 17Networks_RH_SalVentAttnA_Ins_4 - lookupLabel: 585 - originalLookupLabel: 585 - center: - x: 40.0 - y: 9.0 - z: -2.0 - color: '#c33afc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_5: - name: 17Networks_RH_SalVentAttnA_Ins_5 - lookupLabel: 586 - originalLookupLabel: 586 - center: - x: 39.0 - y: -14.0 - z: 3.0 - color: '#c33afd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_6: - name: 17Networks_RH_SalVentAttnA_Ins_6 - lookupLabel: 587 - originalLookupLabel: 587 - center: - x: 38.0 - y: 0.0 - z: 7.0 - color: '#c33afe' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_7: - name: 17Networks_RH_SalVentAttnA_Ins_7 - lookupLabel: 588 - originalLookupLabel: 588 - center: - x: 33.0 - y: 19.0 - z: 8.0 - color: '#c33aff' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_8: - name: 17Networks_RH_SalVentAttnA_Ins_8 - lookupLabel: 589 - originalLookupLabel: 589 - center: - x: 36.0 - y: 8.0 - z: 11.0 - color: '#c033fa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_1: - name: 17Networks_RH_SalVentAttnA_ParMed_1 - lookupLabel: 590 - originalLookupLabel: 590 - center: - x: 9.0 - y: -27.0 - z: 41.0 - color: '#c33af6' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_2: - name: 17Networks_RH_SalVentAttnA_ParMed_2 - lookupLabel: 591 - originalLookupLabel: 591 - center: - x: 10.0 - y: -14.0 - z: 40.0 - color: '#c33af7' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_3: - name: 17Networks_RH_SalVentAttnA_ParMed_3 - lookupLabel: 592 - originalLookupLabel: 592 - center: - x: 11.0 - y: -37.0 - z: 44.0 - color: '#c33afa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_4: - name: 17Networks_RH_SalVentAttnA_ParMed_4 - lookupLabel: 593 - originalLookupLabel: 593 - center: - x: 15.0 - y: -29.0 - z: 40.0 - color: '#c033f9' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_5: - name: 17Networks_RH_SalVentAttnA_ParMed_5 - lookupLabel: 594 - originalLookupLabel: 594 - center: - x: 13.0 - y: -20.0 - z: 43.0 - color: '#c034f2' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_6: - name: 17Networks_RH_SalVentAttnA_ParMed_6 - lookupLabel: 595 - originalLookupLabel: 595 - center: - x: 9.0 - y: -42.0 - z: 51.0 - color: '#c034f3' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_7: - name: 17Networks_RH_SalVentAttnA_ParMed_7 - lookupLabel: 596 - originalLookupLabel: 596 - center: - x: 16.0 - y: -35.0 - z: 48.0 - color: '#c034f4' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_8: - name: 17Networks_RH_SalVentAttnA_ParMed_8 - lookupLabel: 597 - originalLookupLabel: 597 - center: - x: 10.0 - y: -27.0 - z: 48.0 - color: '#c034f5' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_9: - name: 17Networks_RH_SalVentAttnA_ParMed_9 - lookupLabel: 598 - originalLookupLabel: 598 - center: - x: 13.0 - y: -39.0 - z: 56.0 - color: '#c034f6' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_10: - name: 17Networks_RH_SalVentAttnA_ParMed_10 - lookupLabel: 599 - originalLookupLabel: 599 - center: - x: 11.0 - y: -45.0 - z: 59.0 - color: '#c034f7' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_1: - name: 17Networks_RH_SalVentAttnA_FrMed_1 - lookupLabel: 600 - originalLookupLabel: 600 - center: - x: 5.0 - y: 9.0 - z: 35.0 - color: '#c339f7' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_2: - name: 17Networks_RH_SalVentAttnA_FrMed_2 - lookupLabel: 601 - originalLookupLabel: 601 - center: - x: 4.0 - y: -4.0 - z: 36.0 - color: '#c339f8' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_3: - name: 17Networks_RH_SalVentAttnA_FrMed_3 - lookupLabel: 602 - originalLookupLabel: 602 - center: - x: 8.0 - y: -2.0 - z: 42.0 - color: '#c339f9' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_4: - name: 17Networks_RH_SalVentAttnA_FrMed_4 - lookupLabel: 603 - originalLookupLabel: 603 - center: - x: 9.0 - y: 11.0 - z: 45.0 - color: '#c339fb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_5: - name: 17Networks_RH_SalVentAttnA_FrMed_5 - lookupLabel: 604 - originalLookupLabel: 604 - center: - x: 6.0 - y: 14.0 - z: 53.0 - color: '#c339fc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_6: - name: 17Networks_RH_SalVentAttnA_FrMed_6 - lookupLabel: 605 - originalLookupLabel: 605 - center: - x: 6.0 - y: 0.0 - z: 54.0 - color: '#c339fd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_7: - name: 17Networks_RH_SalVentAttnA_FrMed_7 - lookupLabel: 606 - originalLookupLabel: 606 - center: - x: 6.0 - y: -1.0 - z: 66.0 - color: '#c339fe' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_8: - name: 17Networks_RH_SalVentAttnA_FrMed_8 - lookupLabel: 607 - originalLookupLabel: 607 - center: - x: 15.0 - y: 7.0 - z: 69.0 - color: '#c339ff' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_9: - name: 17Networks_RH_SalVentAttnA_FrMed_9 - lookupLabel: 608 - originalLookupLabel: 608 - center: - x: 11.0 - y: -5.0 - z: 73.0 - color: '#c032fa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnB_IPL_1: - name: 17Networks_RH_SalVentAttnB_IPL_1 - lookupLabel: 609 - originalLookupLabel: 609 - center: - x: 54.0 - y: -43.0 - z: 28.0 - color: '#fe98d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_IPL_2: - name: 17Networks_RH_SalVentAttnB_IPL_2 - lookupLabel: 610 - originalLookupLabel: 610 - center: - x: 63.0 - y: -41.0 - z: 26.0 - color: '#fe98d7' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_IPL_3: - name: 17Networks_RH_SalVentAttnB_IPL_3 - lookupLabel: 611 - originalLookupLabel: 611 - center: - x: 62.0 - y: -37.0 - z: 37.0 - color: '#fe98d8' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCd_1: - name: 17Networks_RH_SalVentAttnB_PFCd_1 - lookupLabel: 612 - originalLookupLabel: 612 - center: - x: 23.0 - y: 9.0 - z: 65.0 - color: '#fe98d5' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_1: - name: 17Networks_RH_SalVentAttnB_PFCl_1 - lookupLabel: 613 - originalLookupLabel: 613 - center: - x: 33.0 - y: 49.0 - z: 21.0 - color: '#fe97d4' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_2: - name: 17Networks_RH_SalVentAttnB_PFCl_2 - lookupLabel: 614 - originalLookupLabel: 614 - center: - x: 25.0 - y: 55.0 - z: 26.0 - color: '#fe97d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_3: - name: 17Networks_RH_SalVentAttnB_PFCl_3 - lookupLabel: 615 - originalLookupLabel: 615 - center: - x: 39.0 - y: 41.0 - z: 29.0 - color: '#fe97d7' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_4: - name: 17Networks_RH_SalVentAttnB_PFCl_4 - lookupLabel: 616 - originalLookupLabel: 616 - center: - x: 28.0 - y: 46.0 - z: 31.0 - color: '#fe97d8' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_5: - name: 17Networks_RH_SalVentAttnB_PFCl_5 - lookupLabel: 617 - originalLookupLabel: 617 - center: - x: 30.0 - y: 41.0 - z: 38.0 - color: '#fe97d9' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFClv_1: - name: 17Networks_RH_SalVentAttnB_PFClv_1 - lookupLabel: 618 - originalLookupLabel: 618 - center: - x: 50.0 - y: 41.0 - z: 1.0 - color: '#fe97d5' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFClv_2: - name: 17Networks_RH_SalVentAttnB_PFClv_2 - lookupLabel: 619 - originalLookupLabel: 619 - center: - x: 41.0 - y: 49.0 - z: 7.0 - color: '#fe97da' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_1: - name: 17Networks_RH_SalVentAttnB_Ins_1 - lookupLabel: 620 - originalLookupLabel: 620 - center: - x: 33.0 - y: 18.0 - z: -11.0 - color: '#fe98d9' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_2: - name: 17Networks_RH_SalVentAttnB_Ins_2 - lookupLabel: 621 - originalLookupLabel: 621 - center: - x: 34.0 - y: 22.0 - z: -6.0 - color: '#fe98da' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_3: - name: 17Networks_RH_SalVentAttnB_Ins_3 - lookupLabel: 622 - originalLookupLabel: 622 - center: - x: 35.0 - y: 28.0 - z: 1.0 - color: '#fe98db' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_4: - name: 17Networks_RH_SalVentAttnB_Ins_4 - lookupLabel: 623 - originalLookupLabel: 623 - center: - x: 41.0 - y: 23.0 - z: 6.0 - color: '#fe98dc' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_5: - name: 17Networks_RH_SalVentAttnB_Ins_5 - lookupLabel: 624 - originalLookupLabel: 624 - center: - x: 56.0 - y: 18.0 - z: 10.0 - color: '#fe98dd' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCmp_1: - name: 17Networks_RH_SalVentAttnB_PFCmp_1 - lookupLabel: 625 - originalLookupLabel: 625 - center: - x: 8.0 - y: 35.0 - z: 20.0 - color: '#fe99d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCmp_2: - name: 17Networks_RH_SalVentAttnB_PFCmp_2 - lookupLabel: 626 - originalLookupLabel: 626 - center: - x: 7.0 - y: 23.0 - z: 32.0 - color: '#fe99d7' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCmp_3: - name: 17Networks_RH_SalVentAttnB_PFCmp_3 - lookupLabel: 627 - originalLookupLabel: 627 - center: - x: 5.0 - y: 11.0 - z: 60.0 - color: '#fe99d8' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Cinga_1: - name: 17Networks_RH_SalVentAttnB_Cinga_1 - lookupLabel: 628 - originalLookupLabel: 628 - center: - x: 6.0 - y: 19.0 - z: 22.0 - color: '#ff97d5' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_LimbicB_OFC_1: - name: 17Networks_RH_LimbicB_OFC_1 - lookupLabel: 629 - originalLookupLabel: 629 - center: - x: 20.0 - y: 13.0 - z: -22.0 - color: '#7a872e' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_2: - name: 17Networks_RH_LimbicB_OFC_2 - lookupLabel: 630 - originalLookupLabel: 630 - center: - x: 15.0 - y: 28.0 - z: -24.0 - color: '#7a872f' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_3: - name: 17Networks_RH_LimbicB_OFC_3 - lookupLabel: 631 - originalLookupLabel: 631 - center: - x: 13.0 - y: 18.0 - z: -16.0 - color: '#7a8730' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_4: - name: 17Networks_RH_LimbicB_OFC_4 - lookupLabel: 632 - originalLookupLabel: 632 - center: - x: 9.0 - y: 33.0 - z: -21.0 - color: '#7a8731' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_5: - name: 17Networks_RH_LimbicB_OFC_5 - lookupLabel: 633 - originalLookupLabel: 633 - center: - x: 24.0 - y: 28.0 - z: -19.0 - color: '#7a8732' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_6: - name: 17Networks_RH_LimbicB_OFC_6 - lookupLabel: 634 - originalLookupLabel: 634 - center: - x: 29.0 - y: 19.0 - z: -20.0 - color: '#7a8734' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_7: - name: 17Networks_RH_LimbicB_OFC_7 - lookupLabel: 635 - originalLookupLabel: 635 - center: - x: 22.0 - y: 41.0 - z: -17.0 - color: '#7a8735' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_8: - name: 17Networks_RH_LimbicB_OFC_8 - lookupLabel: 636 - originalLookupLabel: 636 - center: - x: 9.0 - y: 51.0 - z: -22.0 - color: '#7a8736' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_9: - name: 17Networks_RH_LimbicB_OFC_9 - lookupLabel: 637 - originalLookupLabel: 637 - center: - x: 5.0 - y: 20.0 - z: -20.0 - color: '#7a8737' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_10: - name: 17Networks_RH_LimbicB_OFC_10 - lookupLabel: 638 - originalLookupLabel: 638 - center: - x: 3.0 - y: 41.0 - z: -25.0 - color: '#7a8738' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_11: - name: 17Networks_RH_LimbicB_OFC_11 - lookupLabel: 639 - originalLookupLabel: 639 - center: - x: 4.0 - y: 22.0 - z: -12.0 - color: '#7a8739' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_12: - name: 17Networks_RH_LimbicB_OFC_12 - lookupLabel: 640 - originalLookupLabel: 640 - center: - x: 26.0 - y: 56.0 - z: -14.0 - color: '#7a873a' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_13: - name: 17Networks_RH_LimbicB_OFC_13 - lookupLabel: 641 - originalLookupLabel: 641 - center: - x: 9.0 - y: 64.0 - z: -14.0 - color: '#7a8833' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicA_TempPole_1: - name: 17Networks_RH_LimbicA_TempPole_1 - lookupLabel: 642 - originalLookupLabel: 642 - center: - x: 28.0 - y: 2.0 - z: -44.0 - color: '#dcf8a0' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_2: - name: 17Networks_RH_LimbicA_TempPole_2 - lookupLabel: 643 - originalLookupLabel: 643 - center: - x: 34.0 - y: 12.0 - z: -40.0 - color: '#dcf8a1' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_3: - name: 17Networks_RH_LimbicA_TempPole_3 - lookupLabel: 644 - originalLookupLabel: 644 - center: - x: 47.0 - y: -4.0 - z: -42.0 - color: '#dcf8a2' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_4: - name: 17Networks_RH_LimbicA_TempPole_4 - lookupLabel: 645 - originalLookupLabel: 645 - center: - x: 40.0 - y: -10.0 - z: -35.0 - color: '#dcf8a3' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_5: - name: 17Networks_RH_LimbicA_TempPole_5 - lookupLabel: 646 - originalLookupLabel: 646 - center: - x: 31.0 - y: -10.0 - z: -35.0 - color: '#dcf8a4' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_6: - name: 17Networks_RH_LimbicA_TempPole_6 - lookupLabel: 647 - originalLookupLabel: 647 - center: - x: 20.0 - y: 0.0 - z: -32.0 - color: '#dcf8a6' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_7: - name: 17Networks_RH_LimbicA_TempPole_7 - lookupLabel: 648 - originalLookupLabel: 648 - center: - x: 24.0 - y: 6.0 - z: -30.0 - color: '#dcf8a7' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_8: - name: 17Networks_RH_LimbicA_TempPole_8 - lookupLabel: 649 - originalLookupLabel: 649 - center: - x: 52.0 - y: -20.0 - z: -31.0 - color: '#dcf8a8' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_9: - name: 17Networks_RH_LimbicA_TempPole_9 - lookupLabel: 650 - originalLookupLabel: 650 - center: - x: 43.0 - y: -25.0 - z: -24.0 - color: '#dcf8a9' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_10: - name: 17Networks_RH_LimbicA_TempPole_10 - lookupLabel: 651 - originalLookupLabel: 651 - center: - x: 31.0 - y: 15.0 - z: -31.0 - color: '#dcf8aa' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_11: - name: 17Networks_RH_LimbicA_TempPole_11 - lookupLabel: 652 - originalLookupLabel: 652 - center: - x: 40.0 - y: 21.0 - z: -29.0 - color: '#dcf8ab' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_12: - name: 17Networks_RH_LimbicA_TempPole_12 - lookupLabel: 653 - originalLookupLabel: 653 - center: - x: 22.0 - y: -14.0 - z: -30.0 - color: '#dcf8ac' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_13: - name: 17Networks_RH_LimbicA_TempPole_13 - lookupLabel: 654 - originalLookupLabel: 654 - center: - x: 40.0 - y: 9.0 - z: -22.0 - color: '#dcf9a5' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_ContA_Temp_1: - name: 17Networks_RH_ContA_Temp_1 - lookupLabel: 655 - originalLookupLabel: 655 - center: - x: 59.0 - y: -44.0 - z: -22.0 - color: '#e69422' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_Temp_2: - name: 17Networks_RH_ContA_Temp_2 - lookupLabel: 656 - originalLookupLabel: 656 - center: - x: 59.0 - y: -54.0 - z: -12.0 - color: '#e69423' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_Temp_3: - name: 17Networks_RH_ContA_Temp_3 - lookupLabel: 657 - originalLookupLabel: 657 - center: - x: 62.0 - y: -50.0 - z: -5.0 - color: '#e69424' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_1: - name: 17Networks_RH_ContA_IPS_1 - lookupLabel: 658 - originalLookupLabel: 658 - center: - x: 36.0 - y: -74.0 - z: 37.0 - color: '#e6931f' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_2: - name: 17Networks_RH_ContA_IPS_2 - lookupLabel: 659 - originalLookupLabel: 659 - center: - x: 59.0 - y: -32.0 - z: 50.0 - color: '#e69320' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_3: - name: 17Networks_RH_ContA_IPS_3 - lookupLabel: 660 - originalLookupLabel: 660 - center: - x: 54.0 - y: -39.0 - z: 48.0 - color: '#e69321' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_4: - name: 17Networks_RH_ContA_IPS_4 - lookupLabel: 661 - originalLookupLabel: 661 - center: - x: 53.0 - y: -32.0 - z: 52.0 - color: '#e69323' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_5: - name: 17Networks_RH_ContA_IPS_5 - lookupLabel: 662 - originalLookupLabel: 662 - center: - x: 32.0 - y: -68.0 - z: 46.0 - color: '#e69324' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_6: - name: 17Networks_RH_ContA_IPS_6 - lookupLabel: 663 - originalLookupLabel: 663 - center: - x: 47.0 - y: -38.0 - z: 52.0 - color: '#e69325' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_7: - name: 17Networks_RH_ContA_IPS_7 - lookupLabel: 664 - originalLookupLabel: 664 - center: - x: 43.0 - y: -46.0 - z: 44.0 - color: '#e69326' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_8: - name: 17Networks_RH_ContA_IPS_8 - lookupLabel: 665 - originalLookupLabel: 665 - center: - x: 37.0 - y: -58.0 - z: 46.0 - color: '#e69327' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_9: - name: 17Networks_RH_ContA_IPS_9 - lookupLabel: 666 - originalLookupLabel: 666 - center: - x: 34.0 - y: -46.0 - z: 47.0 - color: '#e69328' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCd_1: - name: 17Networks_RH_ContA_PFCd_1 - lookupLabel: 667 - originalLookupLabel: 667 - center: - x: 23.0 - y: 11.0 - z: 53.0 - color: '#e69322' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_1: - name: 17Networks_RH_ContA_PFCl_1 - lookupLabel: 668 - originalLookupLabel: 668 - center: - x: 46.0 - y: 39.0 - z: 9.0 - color: '#e5941e' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_2: - name: 17Networks_RH_ContA_PFCl_2 - lookupLabel: 669 - originalLookupLabel: 669 - center: - x: 53.0 - y: 30.0 - z: 17.0 - color: '#e5941f' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_3: - name: 17Networks_RH_ContA_PFCl_3 - lookupLabel: 670 - originalLookupLabel: 670 - center: - x: 52.0 - y: 18.0 - z: 22.0 - color: '#e59420' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_4: - name: 17Networks_RH_ContA_PFCl_4 - lookupLabel: 671 - originalLookupLabel: 671 - center: - x: 43.0 - y: 44.0 - z: 17.0 - color: '#e59421' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_5: - name: 17Networks_RH_ContA_PFCl_5 - lookupLabel: 672 - originalLookupLabel: 672 - center: - x: 53.0 - y: 9.0 - z: 19.0 - color: '#e59423' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_6: - name: 17Networks_RH_ContA_PFCl_6 - lookupLabel: 673 - originalLookupLabel: 673 - center: - x: 46.0 - y: 31.0 - z: 23.0 - color: '#e59424' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_7: - name: 17Networks_RH_ContA_PFCl_7 - lookupLabel: 674 - originalLookupLabel: 674 - center: - x: 42.0 - y: 11.0 - z: 24.0 - color: '#e59425' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_8: - name: 17Networks_RH_ContA_PFCl_8 - lookupLabel: 675 - originalLookupLabel: 675 - center: - x: 43.0 - y: 19.0 - z: 27.0 - color: '#e59426' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_9: - name: 17Networks_RH_ContA_PFCl_9 - lookupLabel: 676 - originalLookupLabel: 676 - center: - x: 46.0 - y: 6.0 - z: 29.0 - color: '#e59427' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_10: - name: 17Networks_RH_ContA_PFCl_10 - lookupLabel: 677 - originalLookupLabel: 677 - center: - x: 38.0 - y: 11.0 - z: 34.0 - color: '#e59428' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_11: - name: 17Networks_RH_ContA_PFCl_11 - lookupLabel: 678 - originalLookupLabel: 678 - center: - x: 43.0 - y: 4.0 - z: 40.0 - color: '#e59429' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_Cingm_1: - name: 17Networks_RH_ContA_Cingm_1 - lookupLabel: 679 - originalLookupLabel: 679 - center: - x: 5.0 - y: 3.0 - z: 29.0 - color: '#e59422' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContB_Temp_1: - name: 17Networks_RH_ContB_Temp_1 - lookupLabel: 680 - originalLookupLabel: 680 - center: - x: 59.0 - y: -28.0 - z: -24.0 - color: '#88334c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_Temp_2: - name: 17Networks_RH_ContB_Temp_2 - lookupLabel: 681 - originalLookupLabel: 681 - center: - x: 65.0 - y: -24.0 - z: -16.0 - color: '#88334d' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_Temp_3: - name: 17Networks_RH_ContB_Temp_3 - lookupLabel: 682 - originalLookupLabel: 682 - center: - x: 64.0 - y: -40.0 - z: -11.0 - color: '#88334e' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_1: - name: 17Networks_RH_ContB_IPL_1 - lookupLabel: 683 - originalLookupLabel: 683 - center: - x: 59.0 - y: -45.0 - z: 37.0 - color: '#873247' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_2: - name: 17Networks_RH_ContB_IPL_2 - lookupLabel: 684 - originalLookupLabel: 684 - center: - x: 56.0 - y: -50.0 - z: 44.0 - color: '#873248' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_3: - name: 17Networks_RH_ContB_IPL_3 - lookupLabel: 685 - originalLookupLabel: 685 - center: - x: 47.0 - y: -64.0 - z: 44.0 - color: '#87324a' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_4: - name: 17Networks_RH_ContB_IPL_4 - lookupLabel: 686 - originalLookupLabel: 686 - center: - x: 50.0 - y: -54.0 - z: 52.0 - color: '#87324b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_5: - name: 17Networks_RH_ContB_IPL_5 - lookupLabel: 687 - originalLookupLabel: 687 - center: - x: 39.0 - y: -68.0 - z: 50.0 - color: '#87324c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_6: - name: 17Networks_RH_ContB_IPL_6 - lookupLabel: 688 - originalLookupLabel: 688 - center: - x: 49.0 - y: -44.0 - z: 49.0 - color: '#87324d' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_7: - name: 17Networks_RH_ContB_IPL_7 - lookupLabel: 689 - originalLookupLabel: 689 - center: - x: 42.0 - y: -54.0 - z: 49.0 - color: '#87324e' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_1: - name: 17Networks_RH_ContB_PFCld_1 - lookupLabel: 690 - originalLookupLabel: 690 - center: - x: 50.0 - y: 26.0 - z: 33.0 - color: '#873148' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_2: - name: 17Networks_RH_ContB_PFCld_2 - lookupLabel: 691 - originalLookupLabel: 691 - center: - x: 40.0 - y: 31.0 - z: 38.0 - color: '#873149' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_3: - name: 17Networks_RH_ContB_PFCld_3 - lookupLabel: 692 - originalLookupLabel: 692 - center: - x: 46.0 - y: 17.0 - z: 42.0 - color: '#87314b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_4: - name: 17Networks_RH_ContB_PFCld_4 - lookupLabel: 693 - originalLookupLabel: 693 - center: - x: 38.0 - y: 28.0 - z: 48.0 - color: '#87314c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_5: - name: 17Networks_RH_ContB_PFCld_5 - lookupLabel: 694 - originalLookupLabel: 694 - center: - x: 45.0 - y: 6.0 - z: 49.0 - color: '#87314d' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_6: - name: 17Networks_RH_ContB_PFCld_6 - lookupLabel: 695 - originalLookupLabel: 695 - center: - x: 39.0 - y: 12.0 - z: 57.0 - color: '#87314e' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_7: - name: 17Networks_RH_ContB_PFCld_7 - lookupLabel: 696 - originalLookupLabel: 696 - center: - x: 30.0 - y: 16.0 - z: 53.0 - color: '#87314f' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_8: - name: 17Networks_RH_ContB_PFCld_8 - lookupLabel: 697 - originalLookupLabel: 697 - center: - x: 23.0 - y: 23.0 - z: 59.0 - color: '#873150' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_1: - name: 17Networks_RH_ContB_PFClv_1 - lookupLabel: 698 - originalLookupLabel: 698 - center: - x: 35.0 - y: 37.0 - z: -13.0 - color: '#873147' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_2: - name: 17Networks_RH_ContB_PFClv_2 - lookupLabel: 699 - originalLookupLabel: 699 - center: - x: 41.0 - y: 51.0 - z: -13.0 - color: '#87314a' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_3: - name: 17Networks_RH_ContB_PFClv_3 - lookupLabel: 700 - originalLookupLabel: 700 - center: - x: 31.0 - y: 59.0 - z: -4.0 - color: '#873249' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_4: - name: 17Networks_RH_ContB_PFClv_4 - lookupLabel: 701 - originalLookupLabel: 701 - center: - x: 20.0 - y: 65.0 - z: -3.0 - color: '#87324f' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_5: - name: 17Networks_RH_ContB_PFClv_5 - lookupLabel: 702 - originalLookupLabel: 702 - center: - x: 43.0 - y: 50.0 - z: -3.0 - color: '#873250' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_6: - name: 17Networks_RH_ContB_PFClv_6 - lookupLabel: 703 - originalLookupLabel: 703 - center: - x: 26.0 - y: 57.0 - z: 5.0 - color: '#873349' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_7: - name: 17Networks_RH_ContB_PFClv_7 - lookupLabel: 704 - originalLookupLabel: 704 - center: - x: 35.0 - y: 57.0 - z: 10.0 - color: '#87334a' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_8: - name: 17Networks_RH_ContB_PFClv_8 - lookupLabel: 705 - originalLookupLabel: 705 - center: - x: 25.0 - y: 56.0 - z: 15.0 - color: '#87334b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCmp_1: - name: 17Networks_RH_ContB_PFCmp_1 - lookupLabel: 706 - originalLookupLabel: 706 - center: - x: 7.0 - y: 35.0 - z: 32.0 - color: '#86324b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCmp_2: - name: 17Networks_RH_ContB_PFCmp_2 - lookupLabel: 707 - originalLookupLabel: 707 - center: - x: 5.0 - y: 28.0 - z: 48.0 - color: '#86324c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContC_pCun_1: - name: 17Networks_RH_ContC_pCun_1 - lookupLabel: 708 - originalLookupLabel: 708 - center: - x: 19.0 - y: -64.0 - z: 27.0 - color: '#778dac' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_2: - name: 17Networks_RH_ContC_pCun_2 - lookupLabel: 709 - originalLookupLabel: 709 - center: - x: 11.0 - y: -66.0 - z: 33.0 - color: '#778dad' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_3: - name: 17Networks_RH_ContC_pCun_3 - lookupLabel: 710 - originalLookupLabel: 710 - center: - x: 13.0 - y: -74.0 - z: 42.0 - color: '#778dae' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_4: - name: 17Networks_RH_ContC_pCun_4 - lookupLabel: 711 - originalLookupLabel: 711 - center: - x: 7.0 - y: -44.0 - z: 41.0 - color: '#778daf' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_5: - name: 17Networks_RH_ContC_pCun_5 - lookupLabel: 712 - originalLookupLabel: 712 - center: - x: 4.0 - y: -69.0 - z: 42.0 - color: '#778db1' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_6: - name: 17Networks_RH_ContC_pCun_6 - lookupLabel: 713 - originalLookupLabel: 713 - center: - x: 7.0 - y: -59.0 - z: 42.0 - color: '#778db2' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_7: - name: 17Networks_RH_ContC_pCun_7 - lookupLabel: 714 - originalLookupLabel: 714 - center: - x: 7.0 - y: -49.0 - z: 45.0 - color: '#778db3' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_8: - name: 17Networks_RH_ContC_pCun_8 - lookupLabel: 715 - originalLookupLabel: 715 - center: - x: 6.0 - y: -76.0 - z: 48.0 - color: '#778db4' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_9: - name: 17Networks_RH_ContC_pCun_9 - lookupLabel: 716 - originalLookupLabel: 716 - center: - x: 5.0 - y: -65.0 - z: 50.0 - color: '#778db5' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_10: - name: 17Networks_RH_ContC_pCun_10 - lookupLabel: 717 - originalLookupLabel: 717 - center: - x: 8.0 - y: -70.0 - z: 54.0 - color: '#778db6' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_11: - name: 17Networks_RH_ContC_pCun_11 - lookupLabel: 718 - originalLookupLabel: 718 - center: - x: 6.0 - y: -53.0 - z: 53.0 - color: '#778db7' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_Cingp_1: - name: 17Networks_RH_ContC_Cingp_1 - lookupLabel: 719 - originalLookupLabel: 719 - center: - x: 8.0 - y: -43.0 - z: 22.0 - color: '#778db8' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_Cingp_2: - name: 17Networks_RH_ContC_Cingp_2 - lookupLabel: 720 - originalLookupLabel: 720 - center: - x: 7.0 - y: -33.0 - z: 27.0 - color: '#778eb1' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_Cingp_3: - name: 17Networks_RH_ContC_Cingp_3 - lookupLabel: 721 - originalLookupLabel: 721 - center: - x: 5.0 - y: -18.0 - z: 30.0 - color: '#778eb2' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_DefaultA_Temp_1: - name: 17Networks_RH_DefaultA_Temp_1 - lookupLabel: 722 - originalLookupLabel: 722 - center: - x: 60.0 - y: -5.0 - z: -17.0 - color: '#feff02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_1: - name: 17Networks_RH_DefaultA_IPL_1 - lookupLabel: 723 - originalLookupLabel: 723 - center: - x: 50.0 - y: -49.0 - z: 15.0 - color: '#fffe00' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_2: - name: 17Networks_RH_DefaultA_IPL_2 - lookupLabel: 724 - originalLookupLabel: 724 - center: - x: 57.0 - y: -48.0 - z: 22.0 - color: '#fffe02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_3: - name: 17Networks_RH_DefaultA_IPL_3 - lookupLabel: 725 - originalLookupLabel: 725 - center: - x: 48.0 - y: -54.0 - z: 26.0 - color: '#fffe03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_4: - name: 17Networks_RH_DefaultA_IPL_4 - lookupLabel: 726 - originalLookupLabel: 726 - center: - x: 49.0 - y: -63.0 - z: 34.0 - color: '#fffe04' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_5: - name: 17Networks_RH_DefaultA_IPL_5 - lookupLabel: 727 - originalLookupLabel: 727 - center: - x: 57.0 - y: -52.0 - z: 30.0 - color: '#fffe05' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_6: - name: 17Networks_RH_DefaultA_IPL_6 - lookupLabel: 728 - originalLookupLabel: 728 - center: - x: 54.0 - y: -58.0 - z: 37.0 - color: '#fffe06' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCd_1: - name: 17Networks_RH_DefaultA_PFCd_1 - lookupLabel: 729 - originalLookupLabel: 729 - center: - x: 21.0 - y: 40.0 - z: 35.0 - color: '#ffff03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCd_2: - name: 17Networks_RH_DefaultA_PFCd_2 - lookupLabel: 730 - originalLookupLabel: 730 - center: - x: 29.0 - y: 30.0 - z: 39.0 - color: '#ffff04' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCd_3: - name: 17Networks_RH_DefaultA_PFCd_3 - lookupLabel: 731 - originalLookupLabel: 731 - center: - x: 23.0 - y: 39.0 - z: 46.0 - color: '#ffff05' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCd_4: - name: 17Networks_RH_DefaultA_PFCd_4 - lookupLabel: 732 - originalLookupLabel: 732 - center: - x: 23.0 - y: 24.0 - z: 46.0 - color: '#ffff06' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_1: - name: 17Networks_RH_DefaultA_pCunPCC_1 - lookupLabel: 733 - originalLookupLabel: 733 - center: - x: 7.0 - y: -47.0 - z: 13.0 - color: '#fffd01' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_2: - name: 17Networks_RH_DefaultA_pCunPCC_2 - lookupLabel: 734 - originalLookupLabel: 734 - center: - x: 5.0 - y: -51.0 - z: 18.0 - color: '#fffd02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_3: - name: 17Networks_RH_DefaultA_pCunPCC_3 - lookupLabel: 735 - originalLookupLabel: 735 - center: - x: 4.0 - y: -57.0 - z: 22.0 - color: '#fffd03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_4: - name: 17Networks_RH_DefaultA_pCunPCC_4 - lookupLabel: 736 - originalLookupLabel: 736 - center: - x: 7.0 - y: -65.0 - z: 26.0 - color: '#fffd04' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_5: - name: 17Networks_RH_DefaultA_pCunPCC_5 - lookupLabel: 737 - originalLookupLabel: 737 - center: - x: 7.0 - y: -48.0 - z: 27.0 - color: '#fffd05' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_6: - name: 17Networks_RH_DefaultA_pCunPCC_6 - lookupLabel: 738 - originalLookupLabel: 738 - center: - x: 4.0 - y: -41.0 - z: 29.0 - color: '#fffd06' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_7: - name: 17Networks_RH_DefaultA_pCunPCC_7 - lookupLabel: 739 - originalLookupLabel: 739 - center: - x: 6.0 - y: -57.0 - z: 28.0 - color: '#fffd07' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_8: - name: 17Networks_RH_DefaultA_pCunPCC_8 - lookupLabel: 740 - originalLookupLabel: 740 - center: - x: 12.0 - y: -51.0 - z: 32.0 - color: '#fffe01' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_9: - name: 17Networks_RH_DefaultA_pCunPCC_9 - lookupLabel: 741 - originalLookupLabel: 741 - center: - x: 12.0 - y: -43.0 - z: 34.0 - color: '#fffe07' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_10: - name: 17Networks_RH_DefaultA_pCunPCC_10 - lookupLabel: 742 - originalLookupLabel: 742 - center: - x: 4.0 - y: -28.0 - z: 37.0 - color: '#ffff00' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_11: - name: 17Networks_RH_DefaultA_pCunPCC_11 - lookupLabel: 743 - originalLookupLabel: 743 - center: - x: 6.0 - y: -36.0 - z: 36.0 - color: '#ffff01' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_12: - name: 17Networks_RH_DefaultA_pCunPCC_12 - lookupLabel: 744 - originalLookupLabel: 744 - center: - x: 4.0 - y: -16.0 - z: 37.0 - color: '#ffff02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_13: - name: 17Networks_RH_DefaultA_pCunPCC_13 - lookupLabel: 745 - originalLookupLabel: 745 - center: - x: 5.0 - y: -62.0 - z: 34.0 - color: '#ffff07' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_14: - name: 17Networks_RH_DefaultA_pCunPCC_14 - lookupLabel: 746 - originalLookupLabel: 746 - center: - x: 11.0 - y: -51.0 - z: 38.0 - color: '#fcf900' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_1: - name: 17Networks_RH_DefaultA_PFCm_1 - lookupLabel: 747 - originalLookupLabel: 747 - center: - x: 5.0 - y: 40.0 - z: -13.0 - color: '#fdff01' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_2: - name: 17Networks_RH_DefaultA_PFCm_2 - lookupLabel: 748 - originalLookupLabel: 748 - center: - x: 6.0 - y: 56.0 - z: -10.0 - color: '#fdff02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_3: - name: 17Networks_RH_DefaultA_PFCm_3 - lookupLabel: 749 - originalLookupLabel: 749 - center: - x: 4.0 - y: 28.0 - z: -8.0 - color: '#fdff03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_4: - name: 17Networks_RH_DefaultA_PFCm_4 - lookupLabel: 750 - originalLookupLabel: 750 - center: - x: 8.0 - y: 50.0 - z: -3.0 - color: '#fdff04' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_5: - name: 17Networks_RH_DefaultA_PFCm_5 - lookupLabel: 751 - originalLookupLabel: 751 - center: - x: 7.0 - y: 67.0 - z: 1.0 - color: '#fdff05' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_6: - name: 17Networks_RH_DefaultA_PFCm_6 - lookupLabel: 752 - originalLookupLabel: 752 - center: - x: 6.0 - y: 39.0 - z: -1.0 - color: '#fdff06' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_7: - name: 17Networks_RH_DefaultA_PFCm_7 - lookupLabel: 753 - originalLookupLabel: 753 - center: - x: 19.0 - y: 66.0 - z: 11.0 - color: '#fdff07' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_8: - name: 17Networks_RH_DefaultA_PFCm_8 - lookupLabel: 754 - originalLookupLabel: 754 - center: - x: 7.0 - y: 57.0 - z: 10.0 - color: '#faf900' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_9: - name: 17Networks_RH_DefaultA_PFCm_9 - lookupLabel: 755 - originalLookupLabel: 755 - center: - x: 9.0 - y: 43.0 - z: 10.0 - color: '#fafa00' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_10: - name: 17Networks_RH_DefaultA_PFCm_10 - lookupLabel: 756 - originalLookupLabel: 756 - center: - x: 6.0 - y: 30.0 - z: 13.0 - color: '#fafb00' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_11: - name: 17Networks_RH_DefaultA_PFCm_11 - lookupLabel: 757 - originalLookupLabel: 757 - center: - x: 7.0 - y: 45.0 - z: 22.0 - color: '#fafc00' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultB_Temp_1: - name: 17Networks_RH_DefaultB_Temp_1 - lookupLabel: 758 - originalLookupLabel: 758 - center: - x: 62.0 - y: -18.0 - z: -10.0 - color: '#ce3e50' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_Temp_2: - name: 17Networks_RH_DefaultB_Temp_2 - lookupLabel: 759 - originalLookupLabel: 759 - center: - x: 65.0 - y: -29.0 - z: -4.0 - color: '#ce3e51' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_Temp_3: - name: 17Networks_RH_DefaultB_Temp_3 - lookupLabel: 760 - originalLookupLabel: 760 - center: - x: 53.0 - y: -28.0 - z: -6.0 - color: '#ce3e52' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_AntTemp_1: - name: 17Networks_RH_DefaultB_AntTemp_1 - lookupLabel: 761 - originalLookupLabel: 761 - center: - x: 49.0 - y: 9.0 - z: -34.0 - color: '#ce3f4f' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_AntTemp_2: - name: 17Networks_RH_DefaultB_AntTemp_2 - lookupLabel: 762 - originalLookupLabel: 762 - center: - x: 58.0 - y: -8.0 - z: -27.0 - color: '#ce3f50' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_1: - name: 17Networks_RH_DefaultB_PFCd_1 - lookupLabel: 763 - originalLookupLabel: 763 - center: - x: 15.0 - y: 62.0 - z: 22.0 - color: '#ce3f4d' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_2: - name: 17Networks_RH_DefaultB_PFCd_2 - lookupLabel: 764 - originalLookupLabel: 764 - center: - x: 6.0 - y: 57.0 - z: 29.0 - color: '#ce3f4e' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_3: - name: 17Networks_RH_DefaultB_PFCd_3 - lookupLabel: 765 - originalLookupLabel: 765 - center: - x: 16.0 - y: 53.0 - z: 37.0 - color: '#ce3f51' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_4: - name: 17Networks_RH_DefaultB_PFCd_4 - lookupLabel: 766 - originalLookupLabel: 766 - center: - x: 5.0 - y: 44.0 - z: 41.0 - color: '#ce3f52' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_5: - name: 17Networks_RH_DefaultB_PFCd_5 - lookupLabel: 767 - originalLookupLabel: 767 - center: - x: 11.0 - y: 46.0 - z: 48.0 - color: '#ce3f53' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_6: - name: 17Networks_RH_DefaultB_PFCd_6 - lookupLabel: 768 - originalLookupLabel: 768 - center: - x: 13.0 - y: 34.0 - z: 55.0 - color: '#ce3f54' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_7: - name: 17Networks_RH_DefaultB_PFCd_7 - lookupLabel: 769 - originalLookupLabel: 769 - center: - x: 10.0 - y: 20.0 - z: 63.0 - color: '#ce3f55' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_1: - name: 17Networks_RH_DefaultB_PFCv_1 - lookupLabel: 770 - originalLookupLabel: 770 - center: - x: 39.0 - y: 25.0 - z: -16.0 - color: '#cd3e4e' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_2: - name: 17Networks_RH_DefaultB_PFCv_2 - lookupLabel: 771 - originalLookupLabel: 771 - center: - x: 47.0 - y: 31.0 - z: -11.0 - color: '#cd3e4f' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_3: - name: 17Networks_RH_DefaultB_PFCv_3 - lookupLabel: 772 - originalLookupLabel: 772 - center: - x: 50.0 - y: 32.0 - z: -3.0 - color: '#cd3e50' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_4: - name: 17Networks_RH_DefaultB_PFCv_4 - lookupLabel: 773 - originalLookupLabel: 773 - center: - x: 53.0 - y: 26.0 - z: 5.0 - color: '#cd3e51' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultC_IPL_1: - name: 17Networks_RH_DefaultC_IPL_1 - lookupLabel: 774 - originalLookupLabel: 774 - center: - x: 49.0 - y: -68.0 - z: 24.0 - color: '#000184' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_IPL_2: - name: 17Networks_RH_DefaultC_IPL_2 - lookupLabel: 775 - originalLookupLabel: 775 - center: - x: 43.0 - y: -74.0 - z: 38.0 - color: '#000185' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_Rsp_1: - name: 17Networks_RH_DefaultC_Rsp_1 - lookupLabel: 776 - originalLookupLabel: 776 - center: - x: 11.0 - y: -49.0 - z: 7.0 - color: '#010083' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_Rsp_2: - name: 17Networks_RH_DefaultC_Rsp_2 - lookupLabel: 777 - originalLookupLabel: 777 - center: - x: 11.0 - y: -54.0 - z: 13.0 - color: '#010084' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_Rsp_3: - name: 17Networks_RH_DefaultC_Rsp_3 - lookupLabel: 778 - originalLookupLabel: 778 - center: - x: 16.0 - y: -58.0 - z: 21.0 - color: '#010085' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_PHC_1: - name: 17Networks_RH_DefaultC_PHC_1 - lookupLabel: 779 - originalLookupLabel: 779 - center: - x: 33.0 - y: -23.0 - z: -24.0 - color: '#010086' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_PHC_2: - name: 17Networks_RH_DefaultC_PHC_2 - lookupLabel: 780 - originalLookupLabel: 780 - center: - x: 22.0 - y: -23.0 - z: -23.0 - color: '#010087' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_PHC_3: - name: 17Networks_RH_DefaultC_PHC_3 - lookupLabel: 781 - originalLookupLabel: 781 - center: - x: 31.0 - y: -35.0 - z: -15.0 - color: '#010088' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_PHC_4: - name: 17Networks_RH_DefaultC_PHC_4 - lookupLabel: 782 - originalLookupLabel: 782 - center: - x: 21.0 - y: -32.0 - z: -15.0 - color: '#010089' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_TempPar_1: - name: 17Networks_RH_TempPar_1 - lookupLabel: 783 - originalLookupLabel: 783 - center: - x: 50.0 - y: 16.0 - z: -21.0 - color: '#0c30f7' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_2: - name: 17Networks_RH_TempPar_2 - lookupLabel: 784 - originalLookupLabel: 784 - center: - x: 53.0 - y: 3.0 - z: -16.0 - color: '#0c30f8' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_3: - name: 17Networks_RH_TempPar_3 - lookupLabel: 785 - originalLookupLabel: 785 - center: - x: 51.0 - y: -9.0 - z: -13.0 - color: '#0c30f9' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_4: - name: 17Networks_RH_TempPar_4 - lookupLabel: 786 - originalLookupLabel: 786 - center: - x: 49.0 - y: -20.0 - z: -9.0 - color: '#0c30fa' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_5: - name: 17Networks_RH_TempPar_5 - lookupLabel: 787 - originalLookupLabel: 787 - center: - x: 60.0 - y: -3.0 - z: -6.0 - color: '#0c30fb' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_6: - name: 17Networks_RH_TempPar_6 - lookupLabel: 788 - originalLookupLabel: 788 - center: - x: 58.0 - y: -13.0 - z: -4.0 - color: '#0c30fc' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_7: - name: 17Networks_RH_TempPar_7 - lookupLabel: 789 - originalLookupLabel: 789 - center: - x: 54.0 - y: -23.0 - z: -1.0 - color: '#0c30fd' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_8: - name: 17Networks_RH_TempPar_8 - lookupLabel: 790 - originalLookupLabel: 790 - center: - x: 63.0 - y: -43.0 - z: 3.0 - color: '#0c30ff' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_9: - name: 17Networks_RH_TempPar_9 - lookupLabel: 791 - originalLookupLabel: 791 - center: - x: 66.0 - y: -15.0 - z: 0.0 - color: '#0929fa' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_10: - name: 17Networks_RH_TempPar_10 - lookupLabel: 792 - originalLookupLabel: 792 - center: - x: 49.0 - y: -35.0 - z: 1.0 - color: '#0929fb' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_11: - name: 17Networks_RH_TempPar_11 - lookupLabel: 793 - originalLookupLabel: 793 - center: - x: 66.0 - y: -25.0 - z: 3.0 - color: '#0929fc' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_12: - name: 17Networks_RH_TempPar_12 - lookupLabel: 794 - originalLookupLabel: 794 - center: - x: 57.0 - y: -31.0 - z: 5.0 - color: '#0929fd' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_13: - name: 17Networks_RH_TempPar_13 - lookupLabel: 795 - originalLookupLabel: 795 - center: - x: 58.0 - y: -46.0 - z: 9.0 - color: '#0929fe' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_14: - name: 17Networks_RH_TempPar_14 - lookupLabel: 796 - originalLookupLabel: 796 - center: - x: 51.0 - y: -40.0 - z: 12.0 - color: '#092af7' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_15: - name: 17Networks_RH_TempPar_15 - lookupLabel: 797 - originalLookupLabel: 797 - center: - x: 53.0 - y: -54.0 - z: 13.0 - color: '#092af8' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_16: - name: 17Networks_RH_TempPar_16 - lookupLabel: 798 - originalLookupLabel: 798 - center: - x: 65.0 - y: -35.0 - z: 11.0 - color: '#092af9' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_17: - name: 17Networks_RH_TempPar_17 - lookupLabel: 799 - originalLookupLabel: 799 - center: - x: 53.0 - y: -45.0 - z: 19.0 - color: '#092afa' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_18: - name: 17Networks_RH_TempPar_18 - lookupLabel: 800 - originalLookupLabel: 800 - center: - x: 56.0 - y: -39.0 - z: 20.0 - color: '#092afb' - hemisphere: right - hasParent: - - RH_TempPar - versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_800Parcels_17Networks_order_FSLMNI152_1mm.nii.gz diff --git a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-800_res-1_desc-ordered_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-800_res-1_desc-ordered_dseg.yaml similarity index 99% rename from tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-800_res-1_desc-ordered_dseg.yaml rename to tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-800_res-1_desc-ordered_dseg.yaml index 8eb876f2c..1944115da 100644 --- a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-800_res-1_desc-ordered_dseg.yaml +++ b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-800_res-1_desc-ordered_dseg.yaml @@ -1,14 +1,12 @@ name: Schaefer2018 abbreviation: Schaefer2018 versionIdentifier: '2018' -coordinateSpace: - name: MNI152 - abbreviation: FSLMNI152 - nativeUnit: mm +coordinateSpace: FSLMNI152 terminology: label: Schaefer2018_800Parcels_17Networks_order versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_800Parcels_17Networks_order_FSLMNI152_1mm.nii.gz + dataLocation: + schaefer2018_original_mni/Schaefer2018_800Parcels_17Networks_order_FSLMNI152_1mm.nii.gz entities: 17Networks_LH_VisCent_Striate_1: name: 17Networks_LH_VisCent_Striate_1 diff --git a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-900_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-900_dseg.yaml deleted file mode 100644 index b764d16c1..000000000 --- a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-900_dseg.yaml +++ /dev/null @@ -1,11081 +0,0 @@ -name: Schaefer2018 -abbreviation: Schaefer2018 -versionIdentifier: '2018' -coordinateSpace: MNI152NLin6Asym -terminology: - label: Schaefer2018_900Parcels_17Networks_order - entities: - LH_VisCent: - name: LH_VisCent - lookupLabel: -1 - hemisphere: left - center: - x: -26.2 - y: -84.3 - z: -2.6 - LH_VisPeri: - name: LH_VisPeri - lookupLabel: -2 - hemisphere: left - center: - x: -12.0 - y: -70.0 - z: 12.1 - LH_SomMotA: - name: LH_SomMotA - lookupLabel: -3 - hemisphere: left - center: - x: -22.6 - y: -24.5 - z: 62.5 - LH_SomMotB: - name: LH_SomMotB - lookupLabel: -4 - hemisphere: left - center: - x: -50.3 - y: -15.9 - z: 18.9 - LH_DorsAttnA: - name: LH_DorsAttnA - lookupLabel: -5 - hemisphere: left - center: - x: -33.4 - y: -66.0 - z: 28.7 - LH_DorsAttnB: - name: LH_DorsAttnB - lookupLabel: -6 - hemisphere: left - center: - x: -38.8 - y: -30.0 - z: 48.3 - LH_SalVentAttnA: - name: LH_SalVentAttnA - lookupLabel: -7 - hemisphere: left - center: - x: -32.2 - y: -10.6 - z: 25.5 - LH_SalVentAttnB: - name: LH_SalVentAttnB - lookupLabel: -8 - hemisphere: left - center: - x: -28.6 - y: 20.3 - z: 21.6 - LH_LimbicB: - name: LH_LimbicB - lookupLabel: -9 - hemisphere: left - center: - x: -12.8 - y: 36.5 - z: -17.8 - LH_LimbicA: - name: LH_LimbicA - lookupLabel: -10 - hemisphere: left - center: - x: -37.4 - y: -6.9 - z: -30.4 - LH_ContA: - name: LH_ContA - lookupLabel: -11 - hemisphere: left - center: - x: -39.8 - y: -13.2 - z: 32.3 - LH_ContB: - name: LH_ContB - lookupLabel: -12 - hemisphere: left - center: - x: -41.8 - y: -9.4 - z: 30.0 - LH_ContC: - name: LH_ContC - lookupLabel: -13 - hemisphere: left - center: - x: -5.8 - y: -52.1 - z: 40.0 - LH_DefaultA: - name: LH_DefaultA - lookupLabel: -14 - hemisphere: left - center: - x: -14.7 - y: -21.1 - z: 25.8 - LH_DefaultB: - name: LH_DefaultB - lookupLabel: -15 - hemisphere: left - center: - x: -40.7 - y: 1.4 - z: 11.5 - LH_DefaultC: - name: LH_DefaultC - lookupLabel: -16 - hemisphere: left - center: - x: -23.1 - y: -48.7 - z: 1.0 - LH_TempPar: - name: LH_TempPar - lookupLabel: -17 - hemisphere: left - center: - x: -57.3 - y: -38.1 - z: 7.4 - RH_VisCent: - name: RH_VisCent - lookupLabel: -18 - hemisphere: right - center: - x: 29.5 - y: -83.0 - z: -1.4 - RH_VisPeri: - name: RH_VisPeri - lookupLabel: -19 - hemisphere: right - center: - x: 13.8 - y: -67.5 - z: 9.8 - RH_SomMotA: - name: RH_SomMotA - lookupLabel: -20 - hemisphere: right - center: - x: 24.1 - y: -24.2 - z: 62.7 - RH_SomMotB: - name: RH_SomMotB - lookupLabel: -21 - hemisphere: right - center: - x: 50.5 - y: -12.6 - z: 16.0 - RH_DorsAttnA: - name: RH_DorsAttnA - lookupLabel: -22 - hemisphere: right - center: - x: 37.0 - y: -61.6 - z: 21.7 - RH_DorsAttnB: - name: RH_DorsAttnB - lookupLabel: -23 - hemisphere: right - center: - x: 36.2 - y: -28.1 - z: 51.4 - RH_SalVentAttnA: - name: RH_SalVentAttnA - lookupLabel: -24 - hemisphere: right - center: - x: 29.7 - y: -9.9 - z: 29.8 - RH_SalVentAttnB: - name: RH_SalVentAttnB - lookupLabel: -25 - hemisphere: right - center: - x: 31.9 - y: 21.6 - z: 23.4 - RH_LimbicB: - name: RH_LimbicB - lookupLabel: -26 - hemisphere: right - center: - x: 13.3 - y: 36.6 - z: -18.4 - RH_LimbicA: - name: RH_LimbicA - lookupLabel: -27 - hemisphere: right - center: - x: 35.6 - y: -2.6 - z: -32.0 - RH_ContA: - name: RH_ContA - lookupLabel: -28 - hemisphere: right - center: - x: 41.0 - y: -11.4 - z: 31.7 - RH_ContB: - name: RH_ContB - lookupLabel: -29 - hemisphere: right - center: - x: 42.1 - y: 2.9 - z: 22.5 - RH_ContC: - name: RH_ContC - lookupLabel: -30 - hemisphere: right - center: - x: 7.9 - y: -52.9 - z: 37.0 - RH_DefaultA: - name: RH_DefaultA - lookupLabel: -31 - hemisphere: right - center: - x: 20.5 - y: -4.5 - z: 20.7 - RH_DefaultB: - name: RH_DefaultB - lookupLabel: -32 - hemisphere: right - center: - x: 36.6 - y: 22.2 - z: 7.4 - RH_DefaultC: - name: RH_DefaultC - lookupLabel: -33 - hemisphere: right - center: - x: 26.6 - y: -49.0 - z: 5.9 - RH_TempPar: - name: RH_TempPar - lookupLabel: -34 - hemisphere: right - center: - x: 55.6 - y: -28.0 - z: 2.2 - 17Networks_LH_VisCent_Striate_1: - name: 17Networks_LH_VisCent_Striate_1 - lookupLabel: 1 - originalLookupLabel: 1 - center: - x: -8.0 - y: -96.0 - z: -13.0 - color: '#781287' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_Striate_2: - name: 17Networks_LH_VisCent_Striate_2 - lookupLabel: 2 - originalLookupLabel: 2 - center: - x: -7.0 - y: -103.0 - z: -1.0 - color: '#781288' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_Striate_3: - name: 17Networks_LH_VisCent_Striate_3 - lookupLabel: 3 - originalLookupLabel: 3 - center: - x: -7.0 - y: -95.0 - z: 0.0 - color: '#781289' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_1: - name: 17Networks_LH_VisCent_ExStr_1 - lookupLabel: 4 - originalLookupLabel: 4 - center: - x: -37.0 - y: -60.0 - z: -18.0 - color: '#781182' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_2: - name: 17Networks_LH_VisCent_ExStr_2 - lookupLabel: 5 - originalLookupLabel: 5 - center: - x: -29.0 - y: -60.0 - z: -14.0 - color: '#781183' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_3: - name: 17Networks_LH_VisCent_ExStr_3 - lookupLabel: 6 - originalLookupLabel: 6 - center: - x: -39.0 - y: -72.0 - z: -17.0 - color: '#781184' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_4: - name: 17Networks_LH_VisCent_ExStr_4 - lookupLabel: 7 - originalLookupLabel: 7 - center: - x: -29.0 - y: -75.0 - z: -14.0 - color: '#781185' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_5: - name: 17Networks_LH_VisCent_ExStr_5 - lookupLabel: 8 - originalLookupLabel: 8 - center: - x: -25.0 - y: -58.0 - z: -9.0 - color: '#781186' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_6: - name: 17Networks_LH_VisCent_ExStr_6 - lookupLabel: 9 - originalLookupLabel: 9 - center: - x: -24.0 - y: -71.0 - z: -8.0 - color: '#781187' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_7: - name: 17Networks_LH_VisCent_ExStr_7 - lookupLabel: 10 - originalLookupLabel: 10 - center: - x: -28.0 - y: -85.0 - z: -16.0 - color: '#781280' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_8: - name: 17Networks_LH_VisCent_ExStr_8 - lookupLabel: 11 - originalLookupLabel: 11 - center: - x: -46.0 - y: -72.0 - z: -10.0 - color: '#781281' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_9: - name: 17Networks_LH_VisCent_ExStr_9 - lookupLabel: 12 - originalLookupLabel: 12 - center: - x: -40.0 - y: -82.0 - z: -16.0 - color: '#781282' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_10: - name: 17Networks_LH_VisCent_ExStr_10 - lookupLabel: 13 - originalLookupLabel: 13 - center: - x: -17.0 - y: -81.0 - z: -13.0 - color: '#781283' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_11: - name: 17Networks_LH_VisCent_ExStr_11 - lookupLabel: 14 - originalLookupLabel: 14 - center: - x: -16.0 - y: -72.0 - z: -9.0 - color: '#781284' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_12: - name: 17Networks_LH_VisCent_ExStr_12 - lookupLabel: 15 - originalLookupLabel: 15 - center: - x: -15.0 - y: -89.0 - z: -15.0 - color: '#781285' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_13: - name: 17Networks_LH_VisCent_ExStr_13 - lookupLabel: 16 - originalLookupLabel: 16 - center: - x: -32.0 - y: -92.0 - z: -14.0 - color: '#781286' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_14: - name: 17Networks_LH_VisCent_ExStr_14 - lookupLabel: 17 - originalLookupLabel: 17 - center: - x: -17.0 - y: -97.0 - z: -16.0 - color: '#78128a' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_15: - name: 17Networks_LH_VisCent_ExStr_15 - lookupLabel: 18 - originalLookupLabel: 18 - center: - x: -5.0 - y: -87.0 - z: -13.0 - color: '#78128b' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_16: - name: 17Networks_LH_VisCent_ExStr_16 - lookupLabel: 19 - originalLookupLabel: 19 - center: - x: -44.0 - y: -85.0 - z: -4.0 - color: '#78128c' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_17: - name: 17Networks_LH_VisCent_ExStr_17 - lookupLabel: 20 - originalLookupLabel: 20 - center: - x: -24.0 - y: -100.0 - z: -8.0 - color: '#78128d' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_18: - name: 17Networks_LH_VisCent_ExStr_18 - lookupLabel: 21 - originalLookupLabel: 21 - center: - x: -33.0 - y: -92.0 - z: -2.0 - color: '#78128e' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_19: - name: 17Networks_LH_VisCent_ExStr_19 - lookupLabel: 22 - originalLookupLabel: 22 - center: - x: -45.0 - y: -76.0 - z: 5.0 - color: '#781387' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_20: - name: 17Networks_LH_VisCent_ExStr_20 - lookupLabel: 23 - originalLookupLabel: 23 - center: - x: -41.0 - y: -88.0 - z: 6.0 - color: '#781388' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_21: - name: 17Networks_LH_VisCent_ExStr_21 - lookupLabel: 24 - originalLookupLabel: 24 - center: - x: -22.0 - y: -99.0 - z: 4.0 - color: '#781389' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_22: - name: 17Networks_LH_VisCent_ExStr_22 - lookupLabel: 25 - originalLookupLabel: 25 - center: - x: -29.0 - y: -90.0 - z: 7.0 - color: '#78138a' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_23: - name: 17Networks_LH_VisCent_ExStr_23 - lookupLabel: 26 - originalLookupLabel: 26 - center: - x: -41.0 - y: -80.0 - z: 14.0 - color: '#78138b' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_24: - name: 17Networks_LH_VisCent_ExStr_24 - lookupLabel: 27 - originalLookupLabel: 27 - center: - x: -12.0 - y: -100.0 - z: 12.0 - color: '#78138c' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_25: - name: 17Networks_LH_VisCent_ExStr_25 - lookupLabel: 28 - originalLookupLabel: 28 - center: - x: -24.0 - y: -95.0 - z: 14.0 - color: '#78138d' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_26: - name: 17Networks_LH_VisCent_ExStr_26 - lookupLabel: 29 - originalLookupLabel: 29 - center: - x: -32.0 - y: -90.0 - z: 16.0 - color: '#78138e' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_27: - name: 17Networks_LH_VisCent_ExStr_27 - lookupLabel: 30 - originalLookupLabel: 30 - center: - x: -18.0 - y: -91.0 - z: 22.0 - color: '#781487' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_28: - name: 17Networks_LH_VisCent_ExStr_28 - lookupLabel: 31 - originalLookupLabel: 31 - center: - x: -27.0 - y: -84.0 - z: 19.0 - color: '#781488' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisCent_ExStr_29: - name: 17Networks_LH_VisCent_ExStr_29 - lookupLabel: 32 - originalLookupLabel: 32 - center: - x: -24.0 - y: -82.0 - z: 28.0 - color: '#781489' - hemisphere: left - hasParent: - - LH_VisCent - 17Networks_LH_VisPeri_StriCal_1: - name: 17Networks_LH_VisPeri_StriCal_1 - lookupLabel: 33 - originalLookupLabel: 33 - center: - x: -8.0 - y: -61.0 - z: 3.0 - color: '#ff0001' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_2: - name: 17Networks_LH_VisPeri_StriCal_2 - lookupLabel: 34 - originalLookupLabel: 34 - center: - x: -3.0 - y: -68.0 - z: 5.0 - color: '#ff0002' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_3: - name: 17Networks_LH_VisPeri_StriCal_3 - lookupLabel: 35 - originalLookupLabel: 35 - center: - x: -6.0 - y: -86.0 - z: 1.0 - color: '#ff0003' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_4: - name: 17Networks_LH_VisPeri_StriCal_4 - lookupLabel: 36 - originalLookupLabel: 36 - center: - x: -14.0 - y: -68.0 - z: 4.0 - color: '#ff0004' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_5: - name: 17Networks_LH_VisPeri_StriCal_5 - lookupLabel: 37 - originalLookupLabel: 37 - center: - x: -9.0 - y: -77.0 - z: 7.0 - color: '#ff0005' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_6: - name: 17Networks_LH_VisPeri_StriCal_6 - lookupLabel: 38 - originalLookupLabel: 38 - center: - x: -17.0 - y: -71.0 - z: 7.0 - color: '#ff0006' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_7: - name: 17Networks_LH_VisPeri_StriCal_7 - lookupLabel: 39 - originalLookupLabel: 39 - center: - x: -2.0 - y: -85.0 - z: 9.0 - color: '#ff0007' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_StriCal_8: - name: 17Networks_LH_VisPeri_StriCal_8 - lookupLabel: 40 - originalLookupLabel: 40 - center: - x: -6.0 - y: -74.0 - z: 13.0 - color: '#ff0100' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_1: - name: 17Networks_LH_VisPeri_ExStrInf_1 - lookupLabel: 41 - originalLookupLabel: 41 - center: - x: -28.0 - y: -49.0 - z: -5.0 - color: '#ff0000' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_2: - name: 17Networks_LH_VisPeri_ExStrInf_2 - lookupLabel: 42 - originalLookupLabel: 42 - center: - x: -19.0 - y: -58.0 - z: -5.0 - color: '#ff0008' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_3: - name: 17Networks_LH_VisPeri_ExStrInf_3 - lookupLabel: 43 - originalLookupLabel: 43 - center: - x: -21.0 - y: -48.0 - z: -7.0 - color: '#ff0101' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_4: - name: 17Networks_LH_VisPeri_ExStrInf_4 - lookupLabel: 44 - originalLookupLabel: 44 - center: - x: -11.0 - y: -64.0 - z: -4.0 - color: '#ff0102' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_5: - name: 17Networks_LH_VisPeri_ExStrInf_5 - lookupLabel: 45 - originalLookupLabel: 45 - center: - x: -13.0 - y: -50.0 - z: -7.0 - color: '#ff0103' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_6: - name: 17Networks_LH_VisPeri_ExStrInf_6 - lookupLabel: 46 - originalLookupLabel: 46 - center: - x: -7.0 - y: -75.0 - z: -5.0 - color: '#ff0104' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_7: - name: 17Networks_LH_VisPeri_ExStrInf_7 - lookupLabel: 47 - originalLookupLabel: 47 - center: - x: -13.0 - y: -41.0 - z: -5.0 - color: '#ff0105' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_8: - name: 17Networks_LH_VisPeri_ExStrInf_8 - lookupLabel: 48 - originalLookupLabel: 48 - center: - x: -17.0 - y: -54.0 - z: 0.0 - color: '#ff0106' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrInf_9: - name: 17Networks_LH_VisPeri_ExStrInf_9 - lookupLabel: 49 - originalLookupLabel: 49 - center: - x: -11.0 - y: -44.0 - z: 2.0 - color: '#ff0107' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_1: - name: 17Networks_LH_VisPeri_ExStrSup_1 - lookupLabel: 50 - originalLookupLabel: 50 - center: - x: -22.0 - y: -59.0 - z: 6.0 - color: '#ff0200' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_2: - name: 17Networks_LH_VisPeri_ExStrSup_2 - lookupLabel: 51 - originalLookupLabel: 51 - center: - x: -19.0 - y: -61.0 - z: 9.0 - color: '#ff0201' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_3: - name: 17Networks_LH_VisPeri_ExStrSup_3 - lookupLabel: 52 - originalLookupLabel: 52 - center: - x: -3.0 - y: -96.0 - z: 13.0 - color: '#ff0202' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_4: - name: 17Networks_LH_VisPeri_ExStrSup_4 - lookupLabel: 53 - originalLookupLabel: 53 - center: - x: -16.0 - y: -64.0 - z: 13.0 - color: '#ff0203' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_5: - name: 17Networks_LH_VisPeri_ExStrSup_5 - lookupLabel: 54 - originalLookupLabel: 54 - center: - x: -7.0 - y: -68.0 - z: 16.0 - color: '#ff0204' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_6: - name: 17Networks_LH_VisPeri_ExStrSup_6 - lookupLabel: 55 - originalLookupLabel: 55 - center: - x: -2.0 - y: -83.0 - z: 21.0 - color: '#ff0205' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_7: - name: 17Networks_LH_VisPeri_ExStrSup_7 - lookupLabel: 56 - originalLookupLabel: 56 - center: - x: -7.0 - y: -93.0 - z: 25.0 - color: '#ff0206' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_8: - name: 17Networks_LH_VisPeri_ExStrSup_8 - lookupLabel: 57 - originalLookupLabel: 57 - center: - x: -15.0 - y: -71.0 - z: 19.0 - color: '#ff0207' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_9: - name: 17Networks_LH_VisPeri_ExStrSup_9 - lookupLabel: 58 - originalLookupLabel: 58 - center: - x: -7.0 - y: -76.0 - z: 26.0 - color: '#ff0300' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_10: - name: 17Networks_LH_VisPeri_ExStrSup_10 - lookupLabel: 59 - originalLookupLabel: 59 - center: - x: -6.0 - y: -87.0 - z: 35.0 - color: '#ff0301' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_11: - name: 17Networks_LH_VisPeri_ExStrSup_11 - lookupLabel: 60 - originalLookupLabel: 60 - center: - x: -17.0 - y: -89.0 - z: 34.0 - color: '#ff0302' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_12: - name: 17Networks_LH_VisPeri_ExStrSup_12 - lookupLabel: 61 - originalLookupLabel: 61 - center: - x: -15.0 - y: -73.0 - z: 31.0 - color: '#ff0303' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_13: - name: 17Networks_LH_VisPeri_ExStrSup_13 - lookupLabel: 62 - originalLookupLabel: 62 - center: - x: -13.0 - y: -81.0 - z: 36.0 - color: '#ff0304' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_14: - name: 17Networks_LH_VisPeri_ExStrSup_14 - lookupLabel: 63 - originalLookupLabel: 63 - center: - x: -17.0 - y: -86.0 - z: 44.0 - color: '#ff0305' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_VisPeri_ExStrSup_15: - name: 17Networks_LH_VisPeri_ExStrSup_15 - lookupLabel: 64 - originalLookupLabel: 64 - center: - x: -13.0 - y: -80.0 - z: 45.0 - color: '#ff0306' - hemisphere: left - hasParent: - - LH_VisPeri - 17Networks_LH_SomMotA_1: - name: 17Networks_LH_SomMotA_1 - lookupLabel: 65 - originalLookupLabel: 65 - center: - x: -57.0 - y: -17.0 - z: 49.0 - color: '#4680b3' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_2: - name: 17Networks_LH_SomMotA_2 - lookupLabel: 66 - originalLookupLabel: 66 - center: - x: -8.0 - y: -8.0 - z: 41.0 - color: '#4680b4' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_3: - name: 17Networks_LH_SomMotA_3 - lookupLabel: 67 - originalLookupLabel: 67 - center: - x: -9.0 - y: -8.0 - z: 47.0 - color: '#4681ad' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_4: - name: 17Networks_LH_SomMotA_4 - lookupLabel: 68 - originalLookupLabel: 68 - center: - x: -47.0 - y: -17.0 - z: 51.0 - color: '#4681ae' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_5: - name: 17Networks_LH_SomMotA_5 - lookupLabel: 69 - originalLookupLabel: 69 - center: - x: -52.0 - y: -24.0 - z: 55.0 - color: '#4681af' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_6: - name: 17Networks_LH_SomMotA_6 - lookupLabel: 70 - originalLookupLabel: 70 - center: - x: -44.0 - y: -12.0 - z: 51.0 - color: '#4681b0' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_7: - name: 17Networks_LH_SomMotA_7 - lookupLabel: 71 - originalLookupLabel: 71 - center: - x: -7.0 - y: -17.0 - z: 49.0 - color: '#4681b1' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_8: - name: 17Networks_LH_SomMotA_8 - lookupLabel: 72 - originalLookupLabel: 72 - center: - x: -37.0 - y: -22.0 - z: 48.0 - color: '#4681b2' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_9: - name: 17Networks_LH_SomMotA_9 - lookupLabel: 73 - originalLookupLabel: 73 - center: - x: -47.0 - y: -20.0 - z: 60.0 - color: '#4681b3' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_10: - name: 17Networks_LH_SomMotA_10 - lookupLabel: 74 - originalLookupLabel: 74 - center: - x: -44.0 - y: -34.0 - z: 63.0 - color: '#4681b4' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_11: - name: 17Networks_LH_SomMotA_11 - lookupLabel: 75 - originalLookupLabel: 75 - center: - x: -39.0 - y: -15.0 - z: 61.0 - color: '#4682ad' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_12: - name: 17Networks_LH_SomMotA_12 - lookupLabel: 76 - originalLookupLabel: 76 - center: - x: -5.0 - y: -26.0 - z: 55.0 - color: '#4682ae' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_13: - name: 17Networks_LH_SomMotA_13 - lookupLabel: 77 - originalLookupLabel: 77 - center: - x: -39.0 - y: -27.0 - z: 58.0 - color: '#4682af' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_14: - name: 17Networks_LH_SomMotA_14 - lookupLabel: 78 - originalLookupLabel: 78 - center: - x: -4.0 - y: -13.0 - z: 58.0 - color: '#4682b0' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_15: - name: 17Networks_LH_SomMotA_15 - lookupLabel: 79 - originalLookupLabel: 79 - center: - x: -8.0 - y: -39.0 - z: 56.0 - color: '#4682b1' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_16: - name: 17Networks_LH_SomMotA_16 - lookupLabel: 80 - originalLookupLabel: 80 - center: - x: -34.0 - y: -26.0 - z: 54.0 - color: '#4682b2' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_17: - name: 17Networks_LH_SomMotA_17 - lookupLabel: 81 - originalLookupLabel: 81 - center: - x: -32.0 - y: -39.0 - z: 62.0 - color: '#4682b3' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_18: - name: 17Networks_LH_SomMotA_18 - lookupLabel: 82 - originalLookupLabel: 82 - center: - x: -28.0 - y: -11.0 - z: 65.0 - color: '#4682b5' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_19: - name: 17Networks_LH_SomMotA_19 - lookupLabel: 83 - originalLookupLabel: 83 - center: - x: -30.0 - y: -22.0 - z: 67.0 - color: '#4682b6' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_20: - name: 17Networks_LH_SomMotA_20 - lookupLabel: 84 - originalLookupLabel: 84 - center: - x: -31.0 - y: -29.0 - z: 68.0 - color: '#4682b7' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_21: - name: 17Networks_LH_SomMotA_21 - lookupLabel: 85 - originalLookupLabel: 85 - center: - x: -27.0 - y: -29.0 - z: 55.0 - color: '#4682b8' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_22: - name: 17Networks_LH_SomMotA_22 - lookupLabel: 86 - originalLookupLabel: 86 - center: - x: -3.0 - y: -20.0 - z: 66.0 - color: '#4682b9' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_23: - name: 17Networks_LH_SomMotA_23 - lookupLabel: 87 - originalLookupLabel: 87 - center: - x: -21.0 - y: -12.0 - z: 72.0 - color: '#4682ba' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_24: - name: 17Networks_LH_SomMotA_24 - lookupLabel: 88 - originalLookupLabel: 88 - center: - x: -24.0 - y: -38.0 - z: 69.0 - color: '#4682bb' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_25: - name: 17Networks_LH_SomMotA_25 - lookupLabel: 89 - originalLookupLabel: 89 - center: - x: -8.0 - y: -43.0 - z: 69.0 - color: '#4683b4' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_26: - name: 17Networks_LH_SomMotA_26 - lookupLabel: 90 - originalLookupLabel: 90 - center: - x: -14.0 - y: -4.0 - z: 69.0 - color: '#4683b5' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_27: - name: 17Networks_LH_SomMotA_27 - lookupLabel: 91 - originalLookupLabel: 91 - center: - x: -3.0 - y: -31.0 - z: 66.0 - color: '#4683b6' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_28: - name: 17Networks_LH_SomMotA_28 - lookupLabel: 92 - originalLookupLabel: 92 - center: - x: -19.0 - y: -24.0 - z: 68.0 - color: '#4683b7' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_29: - name: 17Networks_LH_SomMotA_29 - lookupLabel: 93 - originalLookupLabel: 93 - center: - x: -20.0 - y: -31.0 - z: 67.0 - color: '#4683b8' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_30: - name: 17Networks_LH_SomMotA_30 - lookupLabel: 94 - originalLookupLabel: 94 - center: - x: -15.0 - y: -48.0 - z: 74.0 - color: '#4683b9' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_31: - name: 17Networks_LH_SomMotA_31 - lookupLabel: 95 - originalLookupLabel: 95 - center: - x: -15.0 - y: -14.0 - z: 74.0 - color: '#4683ba' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_32: - name: 17Networks_LH_SomMotA_32 - lookupLabel: 96 - originalLookupLabel: 96 - center: - x: -7.0 - y: -17.0 - z: 75.0 - color: '#4683bb' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_33: - name: 17Networks_LH_SomMotA_33 - lookupLabel: 97 - originalLookupLabel: 97 - center: - x: -18.0 - y: -39.0 - z: 74.0 - color: '#4684b4' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_34: - name: 17Networks_LH_SomMotA_34 - lookupLabel: 98 - originalLookupLabel: 98 - center: - x: -12.0 - y: -26.0 - z: 73.0 - color: '#4684b5' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_35: - name: 17Networks_LH_SomMotA_35 - lookupLabel: 99 - originalLookupLabel: 99 - center: - x: -13.0 - y: -32.0 - z: 73.0 - color: '#4684b6' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_36: - name: 17Networks_LH_SomMotA_36 - lookupLabel: 100 - originalLookupLabel: 100 - center: - x: -10.0 - y: -36.0 - z: 78.0 - color: '#4684b7' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotA_37: - name: 17Networks_LH_SomMotA_37 - lookupLabel: 101 - originalLookupLabel: 101 - center: - x: -6.0 - y: -35.0 - z: 73.0 - color: '#4684b8' - hemisphere: left - hasParent: - - LH_SomMotA - 17Networks_LH_SomMotB_Cent_1: - name: 17Networks_LH_SomMotB_Cent_1 - lookupLabel: 102 - originalLookupLabel: 102 - center: - x: -60.0 - y: -2.0 - z: 19.0 - color: '#2acca0' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_2: - name: 17Networks_LH_SomMotB_Cent_2 - lookupLabel: 103 - originalLookupLabel: 103 - center: - x: -57.0 - y: -1.0 - z: 27.0 - color: '#2acca1' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_3: - name: 17Networks_LH_SomMotB_Cent_3 - lookupLabel: 104 - originalLookupLabel: 104 - center: - x: -57.0 - y: -8.0 - z: 25.0 - color: '#2acca2' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_4: - name: 17Networks_LH_SomMotB_Cent_4 - lookupLabel: 105 - originalLookupLabel: 105 - center: - x: -62.0 - y: -9.0 - z: 33.0 - color: '#2acca3' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_5: - name: 17Networks_LH_SomMotB_Cent_5 - lookupLabel: 106 - originalLookupLabel: 106 - center: - x: -55.0 - y: -4.0 - z: 36.0 - color: '#2acca5' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_6: - name: 17Networks_LH_SomMotB_Cent_6 - lookupLabel: 107 - originalLookupLabel: 107 - center: - x: -51.0 - y: -11.0 - z: 31.0 - color: '#2acca6' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_7: - name: 17Networks_LH_SomMotB_Cent_7 - lookupLabel: 108 - originalLookupLabel: 108 - center: - x: -57.0 - y: -11.0 - z: 41.0 - color: '#2acca7' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_8: - name: 17Networks_LH_SomMotB_Cent_8 - lookupLabel: 109 - originalLookupLabel: 109 - center: - x: -49.0 - y: -17.0 - z: 41.0 - color: '#2acca8' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_9: - name: 17Networks_LH_SomMotB_Cent_9 - lookupLabel: 110 - originalLookupLabel: 110 - center: - x: -47.0 - y: -12.0 - z: 40.0 - color: '#2acca9' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_10: - name: 17Networks_LH_SomMotB_Cent_10 - lookupLabel: 111 - originalLookupLabel: 111 - center: - x: -52.0 - y: -1.0 - z: 48.0 - color: '#2accaa' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Cent_11: - name: 17Networks_LH_SomMotB_Cent_11 - lookupLabel: 112 - originalLookupLabel: 112 - center: - x: -38.0 - y: -18.0 - z: 41.0 - color: '#2accab' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_1: - name: 17Networks_LH_SomMotB_S2_1 - lookupLabel: 113 - originalLookupLabel: 113 - center: - x: -36.0 - y: -11.0 - z: 13.0 - color: '#2acc9f' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_2: - name: 17Networks_LH_SomMotB_S2_2 - lookupLabel: 114 - originalLookupLabel: 114 - center: - x: -36.0 - y: -14.0 - z: 18.0 - color: '#2acca4' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_3: - name: 17Networks_LH_SomMotB_S2_3 - lookupLabel: 115 - originalLookupLabel: 115 - center: - x: -35.0 - y: -27.0 - z: 18.0 - color: '#2accac' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_4: - name: 17Networks_LH_SomMotB_S2_4 - lookupLabel: 116 - originalLookupLabel: 116 - center: - x: -42.0 - y: -13.0 - z: 17.0 - color: '#2acda5' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_5: - name: 17Networks_LH_SomMotB_S2_5 - lookupLabel: 117 - originalLookupLabel: 117 - center: - x: -48.0 - y: -12.0 - z: 13.0 - color: '#2acda6' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_6: - name: 17Networks_LH_SomMotB_S2_6 - lookupLabel: 118 - originalLookupLabel: 118 - center: - x: -58.0 - y: -6.0 - z: 9.0 - color: '#2acda7' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_7: - name: 17Networks_LH_SomMotB_S2_7 - lookupLabel: 119 - originalLookupLabel: 119 - center: - x: -40.0 - y: -36.0 - z: 17.0 - color: '#2acda8' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_8: - name: 17Networks_LH_SomMotB_S2_8 - lookupLabel: 120 - originalLookupLabel: 120 - center: - x: -42.0 - y: -26.0 - z: 21.0 - color: '#2acda9' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_9: - name: 17Networks_LH_SomMotB_S2_9 - lookupLabel: 121 - originalLookupLabel: 121 - center: - x: -59.0 - y: 0.0 - z: 12.0 - color: '#2acdaa' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_10: - name: 17Networks_LH_SomMotB_S2_10 - lookupLabel: 122 - originalLookupLabel: 122 - center: - x: -57.0 - y: -15.0 - z: 15.0 - color: '#2acdab' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_11: - name: 17Networks_LH_SomMotB_S2_11 - lookupLabel: 123 - originalLookupLabel: 123 - center: - x: -50.0 - y: -21.0 - z: 18.0 - color: '#2acdac' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_12: - name: 17Networks_LH_SomMotB_S2_12 - lookupLabel: 124 - originalLookupLabel: 124 - center: - x: -64.0 - y: -9.0 - z: 13.0 - color: '#2acea5' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_13: - name: 17Networks_LH_SomMotB_S2_13 - lookupLabel: 125 - originalLookupLabel: 125 - center: - x: -48.0 - y: -30.0 - z: 17.0 - color: '#2acea6' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_14: - name: 17Networks_LH_SomMotB_S2_14 - lookupLabel: 126 - originalLookupLabel: 126 - center: - x: -62.0 - y: -18.0 - z: 21.0 - color: '#2acea7' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_S2_15: - name: 17Networks_LH_SomMotB_S2_15 - lookupLabel: 127 - originalLookupLabel: 127 - center: - x: -64.0 - y: -9.0 - z: 22.0 - color: '#2acea8' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Ins_1: - name: 17Networks_LH_SomMotB_Ins_1 - lookupLabel: 128 - originalLookupLabel: 128 - center: - x: -34.0 - y: -23.0 - z: 10.0 - color: '#2acea9' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_1: - name: 17Networks_LH_SomMotB_Aud_1 - lookupLabel: 129 - originalLookupLabel: 129 - center: - x: -51.0 - y: 4.0 - z: -6.0 - color: '#2bcca0' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_2: - name: 17Networks_LH_SomMotB_Aud_2 - lookupLabel: 130 - originalLookupLabel: 130 - center: - x: -57.0 - y: -4.0 - z: 1.0 - color: '#2bcca1' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_3: - name: 17Networks_LH_SomMotB_Aud_3 - lookupLabel: 131 - originalLookupLabel: 131 - center: - x: -48.0 - y: -12.0 - z: -1.0 - color: '#2bcca2' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_4: - name: 17Networks_LH_SomMotB_Aud_4 - lookupLabel: 132 - originalLookupLabel: 132 - center: - x: -56.0 - y: -17.0 - z: 6.0 - color: '#2bcca3' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_5: - name: 17Networks_LH_SomMotB_Aud_5 - lookupLabel: 133 - originalLookupLabel: 133 - center: - x: -42.0 - y: -20.0 - z: 4.0 - color: '#2bcca5' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_6: - name: 17Networks_LH_SomMotB_Aud_6 - lookupLabel: 134 - originalLookupLabel: 134 - center: - x: -61.0 - y: -26.0 - z: 10.0 - color: '#2bcca6' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_7: - name: 17Networks_LH_SomMotB_Aud_7 - lookupLabel: 135 - originalLookupLabel: 135 - center: - x: -40.0 - y: -25.0 - z: 12.0 - color: '#2bcca7' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_8: - name: 17Networks_LH_SomMotB_Aud_8 - lookupLabel: 136 - originalLookupLabel: 136 - center: - x: -42.0 - y: -30.0 - z: 9.0 - color: '#2bcca8' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_9: - name: 17Networks_LH_SomMotB_Aud_9 - lookupLabel: 137 - originalLookupLabel: 137 - center: - x: -48.0 - y: -34.0 - z: 11.0 - color: '#2bcca9' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_10: - name: 17Networks_LH_SomMotB_Aud_10 - lookupLabel: 138 - originalLookupLabel: 138 - center: - x: -59.0 - y: -37.0 - z: 16.0 - color: '#2bccaa' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_SomMotB_Aud_11: - name: 17Networks_LH_SomMotB_Aud_11 - lookupLabel: 139 - originalLookupLabel: 139 - center: - x: -46.0 - y: -40.0 - z: 20.0 - color: '#2bccab' - hemisphere: left - hasParent: - - LH_SomMotB - 17Networks_LH_DorsAttnA_TempOcc_1: - name: 17Networks_LH_DorsAttnA_TempOcc_1 - lookupLabel: 140 - originalLookupLabel: 140 - center: - x: -46.0 - y: -43.0 - z: -21.0 - color: '#4a9b3a' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_2: - name: 17Networks_LH_DorsAttnA_TempOcc_2 - lookupLabel: 141 - originalLookupLabel: 141 - center: - x: -35.0 - y: -43.0 - z: -21.0 - color: '#4a9b3b' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_3: - name: 17Networks_LH_DorsAttnA_TempOcc_3 - lookupLabel: 142 - originalLookupLabel: 142 - center: - x: -44.0 - y: -55.0 - z: -15.0 - color: '#4a9b3d' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_4: - name: 17Networks_LH_DorsAttnA_TempOcc_4 - lookupLabel: 143 - originalLookupLabel: 143 - center: - x: -48.0 - y: -60.0 - z: -10.0 - color: '#4a9b3e' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_5: - name: 17Networks_LH_DorsAttnA_TempOcc_5 - lookupLabel: 144 - originalLookupLabel: 144 - center: - x: -45.0 - y: -65.0 - z: -1.0 - color: '#4a9b3f' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_6: - name: 17Networks_LH_DorsAttnA_TempOcc_6 - lookupLabel: 145 - originalLookupLabel: 145 - center: - x: -52.0 - y: -68.0 - z: 4.0 - color: '#4a9b40' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_TempOcc_7: - name: 17Networks_LH_DorsAttnA_TempOcc_7 - lookupLabel: 146 - originalLookupLabel: 146 - center: - x: -47.0 - y: -66.0 - z: 9.0 - color: '#4a9b41' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_1: - name: 17Networks_LH_DorsAttnA_ParOcc_1 - lookupLabel: 147 - originalLookupLabel: 147 - center: - x: -51.0 - y: -74.0 - z: 15.0 - color: '#4a9b3c' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_2: - name: 17Networks_LH_DorsAttnA_ParOcc_2 - lookupLabel: 148 - originalLookupLabel: 148 - center: - x: -45.0 - y: -68.0 - z: 17.0 - color: '#4a9b42' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_3: - name: 17Networks_LH_DorsAttnA_ParOcc_3 - lookupLabel: 149 - originalLookupLabel: 149 - center: - x: -45.0 - y: -74.0 - z: 23.0 - color: '#4a9b43' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_4: - name: 17Networks_LH_DorsAttnA_ParOcc_4 - lookupLabel: 150 - originalLookupLabel: 150 - center: - x: -40.0 - y: -85.0 - z: 22.0 - color: '#4a9b44' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_5: - name: 17Networks_LH_DorsAttnA_ParOcc_5 - lookupLabel: 151 - originalLookupLabel: 151 - center: - x: -32.0 - y: -84.0 - z: 26.0 - color: '#4a9c3d' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_ParOcc_6: - name: 17Networks_LH_DorsAttnA_ParOcc_6 - lookupLabel: 152 - originalLookupLabel: 152 - center: - x: -30.0 - y: -74.0 - z: 25.0 - color: '#4a9c3e' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_1: - name: 17Networks_LH_DorsAttnA_SPL_1 - lookupLabel: 153 - originalLookupLabel: 153 - center: - x: -25.0 - y: -69.0 - z: 32.0 - color: '#4a9c37' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_2: - name: 17Networks_LH_DorsAttnA_SPL_2 - lookupLabel: 154 - originalLookupLabel: 154 - center: - x: -23.0 - y: -80.0 - z: 40.0 - color: '#4a9c38' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_3: - name: 17Networks_LH_DorsAttnA_SPL_3 - lookupLabel: 155 - originalLookupLabel: 155 - center: - x: -19.0 - y: -79.0 - z: 51.0 - color: '#4a9c39' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_4: - name: 17Networks_LH_DorsAttnA_SPL_4 - lookupLabel: 156 - originalLookupLabel: 156 - center: - x: -19.0 - y: -71.0 - z: 47.0 - color: '#4a9c3a' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_5: - name: 17Networks_LH_DorsAttnA_SPL_5 - lookupLabel: 157 - originalLookupLabel: 157 - center: - x: -23.0 - y: -64.0 - z: 49.0 - color: '#4a9c3b' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_6: - name: 17Networks_LH_DorsAttnA_SPL_6 - lookupLabel: 158 - originalLookupLabel: 158 - center: - x: -28.0 - y: -54.0 - z: 49.0 - color: '#4a9c3f' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_7: - name: 17Networks_LH_DorsAttnA_SPL_7 - lookupLabel: 159 - originalLookupLabel: 159 - center: - x: -27.0 - y: -59.0 - z: 54.0 - color: '#4a9c40' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_8: - name: 17Networks_LH_DorsAttnA_SPL_8 - lookupLabel: 160 - originalLookupLabel: 160 - center: - x: -12.0 - y: -74.0 - z: 54.0 - color: '#4a9c41' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_9: - name: 17Networks_LH_DorsAttnA_SPL_9 - lookupLabel: 161 - originalLookupLabel: 161 - center: - x: -38.0 - y: -51.0 - z: 57.0 - color: '#4a9c42' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_10: - name: 17Networks_LH_DorsAttnA_SPL_10 - lookupLabel: 162 - originalLookupLabel: 162 - center: - x: -32.0 - y: -57.0 - z: 59.0 - color: '#4a9c43' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_11: - name: 17Networks_LH_DorsAttnA_SPL_11 - lookupLabel: 163 - originalLookupLabel: 163 - center: - x: -20.0 - y: -70.0 - z: 58.0 - color: '#4a9d3c' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_12: - name: 17Networks_LH_DorsAttnA_SPL_12 - lookupLabel: 164 - originalLookupLabel: 164 - center: - x: -28.0 - y: -63.0 - z: 61.0 - color: '#4a9d3d' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnA_SPL_13: - name: 17Networks_LH_DorsAttnA_SPL_13 - lookupLabel: 165 - originalLookupLabel: 165 - center: - x: -14.0 - y: -65.0 - z: 62.0 - color: '#4a9d3e' - hemisphere: left - hasParent: - - LH_DorsAttnA - 17Networks_LH_DorsAttnB_TempOcc_1: - name: 17Networks_LH_DorsAttnB_TempOcc_1 - lookupLabel: 166 - originalLookupLabel: 166 - center: - x: -57.0 - y: -61.0 - z: 6.0 - color: '#00760f' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_TempOcc_2: - name: 17Networks_LH_DorsAttnB_TempOcc_2 - lookupLabel: 167 - originalLookupLabel: 167 - center: - x: -48.0 - y: -61.0 - z: 13.0 - color: '#007610' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_1: - name: 17Networks_LH_DorsAttnB_PostC_1 - lookupLabel: 168 - originalLookupLabel: 168 - center: - x: -62.0 - y: -24.0 - z: 34.0 - color: '#00750f' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_2: - name: 17Networks_LH_DorsAttnB_PostC_2 - lookupLabel: 169 - originalLookupLabel: 169 - center: - x: -56.0 - y: -17.0 - z: 39.0 - color: '#007608' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_3: - name: 17Networks_LH_DorsAttnB_PostC_3 - lookupLabel: 170 - originalLookupLabel: 170 - center: - x: -56.0 - y: -25.0 - z: 40.0 - color: '#007609' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_4: - name: 17Networks_LH_DorsAttnB_PostC_4 - lookupLabel: 171 - originalLookupLabel: 171 - center: - x: -56.0 - y: -33.0 - z: 46.0 - color: '#00760a' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_5: - name: 17Networks_LH_DorsAttnB_PostC_5 - lookupLabel: 172 - originalLookupLabel: 172 - center: - x: -53.0 - y: -22.0 - z: 43.0 - color: '#00760b' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_6: - name: 17Networks_LH_DorsAttnB_PostC_6 - lookupLabel: 173 - originalLookupLabel: 173 - center: - x: -49.0 - y: -29.0 - z: 42.0 - color: '#00760c' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_7: - name: 17Networks_LH_DorsAttnB_PostC_7 - lookupLabel: 174 - originalLookupLabel: 174 - center: - x: -43.0 - y: -32.0 - z: 43.0 - color: '#00760d' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_8: - name: 17Networks_LH_DorsAttnB_PostC_8 - lookupLabel: 175 - originalLookupLabel: 175 - center: - x: -48.0 - y: -27.0 - z: 47.0 - color: '#00760e' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_9: - name: 17Networks_LH_DorsAttnB_PostC_9 - lookupLabel: 176 - originalLookupLabel: 176 - center: - x: -36.0 - y: -37.0 - z: 46.0 - color: '#007611' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_10: - name: 17Networks_LH_DorsAttnB_PostC_10 - lookupLabel: 177 - originalLookupLabel: 177 - center: - x: -44.0 - y: -32.0 - z: 52.0 - color: '#007612' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_11: - name: 17Networks_LH_DorsAttnB_PostC_11 - lookupLabel: 178 - originalLookupLabel: 178 - center: - x: -39.0 - y: -37.0 - z: 55.0 - color: '#007613' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_12: - name: 17Networks_LH_DorsAttnB_PostC_12 - lookupLabel: 179 - originalLookupLabel: 179 - center: - x: -38.0 - y: -42.0 - z: 57.0 - color: '#007614' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_13: - name: 17Networks_LH_DorsAttnB_PostC_13 - lookupLabel: 180 - originalLookupLabel: 180 - center: - x: -34.0 - y: -56.0 - z: 65.0 - color: '#007615' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_14: - name: 17Networks_LH_DorsAttnB_PostC_14 - lookupLabel: 181 - originalLookupLabel: 181 - center: - x: -7.0 - y: -61.0 - z: 61.0 - color: '#007616' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_15: - name: 17Networks_LH_DorsAttnB_PostC_15 - lookupLabel: 182 - originalLookupLabel: 182 - center: - x: -30.0 - y: -47.0 - z: 63.0 - color: '#00770f' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_16: - name: 17Networks_LH_DorsAttnB_PostC_16 - lookupLabel: 183 - originalLookupLabel: 183 - center: - x: -23.0 - y: -58.0 - z: 64.0 - color: '#007710' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_17: - name: 17Networks_LH_DorsAttnB_PostC_17 - lookupLabel: 184 - originalLookupLabel: 184 - center: - x: -7.0 - y: -53.0 - z: 68.0 - color: '#007711' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_18: - name: 17Networks_LH_DorsAttnB_PostC_18 - lookupLabel: 185 - originalLookupLabel: 185 - center: - x: -15.0 - y: -59.0 - z: 68.0 - color: '#007712' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PostC_19: - name: 17Networks_LH_DorsAttnB_PostC_19 - lookupLabel: 186 - originalLookupLabel: 186 - center: - x: -20.0 - y: -50.0 - z: 68.0 - color: '#007713' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_1: - name: 17Networks_LH_DorsAttnB_FEF_1 - lookupLabel: 187 - originalLookupLabel: 187 - center: - x: -42.0 - y: -3.0 - z: 50.0 - color: '#00770d' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_2: - name: 17Networks_LH_DorsAttnB_FEF_2 - lookupLabel: 188 - originalLookupLabel: 188 - center: - x: -32.0 - y: -6.0 - z: 52.0 - color: '#007714' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_3: - name: 17Networks_LH_DorsAttnB_FEF_3 - lookupLabel: 189 - originalLookupLabel: 189 - center: - x: -23.0 - y: -6.0 - z: 55.0 - color: '#007715' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_4: - name: 17Networks_LH_DorsAttnB_FEF_4 - lookupLabel: 190 - originalLookupLabel: 190 - center: - x: -22.0 - y: 4.0 - z: 65.0 - color: '#00780e' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_FEF_5: - name: 17Networks_LH_DorsAttnB_FEF_5 - lookupLabel: 191 - originalLookupLabel: 191 - center: - x: -18.0 - y: -10.0 - z: 63.0 - color: '#00780f' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PrCv_1: - name: 17Networks_LH_DorsAttnB_PrCv_1 - lookupLabel: 192 - originalLookupLabel: 192 - center: - x: -58.0 - y: 6.0 - z: 24.0 - color: '#007716' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PrCv_2: - name: 17Networks_LH_DorsAttnB_PrCv_2 - lookupLabel: 193 - originalLookupLabel: 193 - center: - x: -57.0 - y: 7.0 - z: 34.0 - color: '#007810' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_DorsAttnB_PrCv_3: - name: 17Networks_LH_DorsAttnB_PrCv_3 - lookupLabel: 194 - originalLookupLabel: 194 - center: - x: -51.0 - y: 2.0 - z: 38.0 - color: '#007811' - hemisphere: left - hasParent: - - LH_DorsAttnB - 17Networks_LH_SalVentAttnA_ParOper_1: - name: 17Networks_LH_SalVentAttnA_ParOper_1 - lookupLabel: 195 - originalLookupLabel: 195 - center: - x: -47.0 - y: -36.0 - z: 26.0 - color: '#c43af8' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_2: - name: 17Networks_LH_SalVentAttnA_ParOper_2 - lookupLabel: 196 - originalLookupLabel: 196 - center: - x: -52.0 - y: -43.0 - z: 25.0 - color: '#c43af9' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_3: - name: 17Networks_LH_SalVentAttnA_ParOper_3 - lookupLabel: 197 - originalLookupLabel: 197 - center: - x: -59.0 - y: -24.0 - z: 20.0 - color: '#c43afb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_4: - name: 17Networks_LH_SalVentAttnA_ParOper_4 - lookupLabel: 198 - originalLookupLabel: 198 - center: - x: -60.0 - y: -30.0 - z: 23.0 - color: '#c43afc' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_5: - name: 17Networks_LH_SalVentAttnA_ParOper_5 - lookupLabel: 199 - originalLookupLabel: 199 - center: - x: -57.0 - y: -38.0 - z: 29.0 - color: '#c43afd' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_6: - name: 17Networks_LH_SalVentAttnA_ParOper_6 - lookupLabel: 200 - originalLookupLabel: 200 - center: - x: -59.0 - y: -16.0 - z: 29.0 - color: '#c43afe' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParOper_7: - name: 17Networks_LH_SalVentAttnA_ParOper_7 - lookupLabel: 201 - originalLookupLabel: 201 - center: - x: -61.0 - y: -32.0 - z: 34.0 - color: '#c43aff' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_1: - name: 17Networks_LH_SalVentAttnA_FrOper_1 - lookupLabel: 202 - originalLookupLabel: 202 - center: - x: -37.0 - y: 5.0 - z: 12.0 - color: '#c43afa' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_2: - name: 17Networks_LH_SalVentAttnA_FrOper_2 - lookupLabel: 203 - originalLookupLabel: 203 - center: - x: -42.0 - y: -2.0 - z: 13.0 - color: '#c133f9' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_3: - name: 17Networks_LH_SalVentAttnA_FrOper_3 - lookupLabel: 204 - originalLookupLabel: 204 - center: - x: -49.0 - y: 7.0 - z: 0.0 - color: '#c133fa' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_4: - name: 17Networks_LH_SalVentAttnA_FrOper_4 - lookupLabel: 205 - originalLookupLabel: 205 - center: - x: -46.0 - y: -3.0 - z: 9.0 - color: '#c133fb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_5: - name: 17Networks_LH_SalVentAttnA_FrOper_5 - lookupLabel: 206 - originalLookupLabel: 206 - center: - x: -54.0 - y: 1.0 - z: 5.0 - color: '#c134f4' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_6: - name: 17Networks_LH_SalVentAttnA_FrOper_6 - lookupLabel: 207 - originalLookupLabel: 207 - center: - x: -55.0 - y: 9.0 - z: 9.0 - color: '#c134f5' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrOper_7: - name: 17Networks_LH_SalVentAttnA_FrOper_7 - lookupLabel: 208 - originalLookupLabel: 208 - center: - x: -57.0 - y: 7.0 - z: 16.0 - color: '#c134f6' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_1: - name: 17Networks_LH_SalVentAttnA_Ins_1 - lookupLabel: 209 - originalLookupLabel: 209 - center: - x: -35.0 - y: 9.0 - z: -13.0 - color: '#c43bf7' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_2: - name: 17Networks_LH_SalVentAttnA_Ins_2 - lookupLabel: 210 - originalLookupLabel: 210 - center: - x: -39.0 - y: 4.0 - z: -8.0 - color: '#c43bf8' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_3: - name: 17Networks_LH_SalVentAttnA_Ins_3 - lookupLabel: 211 - originalLookupLabel: 211 - center: - x: -39.0 - y: -8.0 - z: -9.0 - color: '#c43bf9' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_4: - name: 17Networks_LH_SalVentAttnA_Ins_4 - lookupLabel: 212 - originalLookupLabel: 212 - center: - x: -39.0 - y: 0.0 - z: 1.0 - color: '#c43bfb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_5: - name: 17Networks_LH_SalVentAttnA_Ins_5 - lookupLabel: 213 - originalLookupLabel: 213 - center: - x: -41.0 - y: -13.0 - z: -5.0 - color: '#c43bfc' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_6: - name: 17Networks_LH_SalVentAttnA_Ins_6 - lookupLabel: 214 - originalLookupLabel: 214 - center: - x: -34.0 - y: 26.0 - z: 7.0 - color: '#c43bfd' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_7: - name: 17Networks_LH_SalVentAttnA_Ins_7 - lookupLabel: 215 - originalLookupLabel: 215 - center: - x: -37.0 - y: -3.0 - z: 9.0 - color: '#c43bfe' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_8: - name: 17Networks_LH_SalVentAttnA_Ins_8 - lookupLabel: 216 - originalLookupLabel: 216 - center: - x: -38.0 - y: -16.0 - z: 5.0 - color: '#c43bff' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_Ins_9: - name: 17Networks_LH_SalVentAttnA_Ins_9 - lookupLabel: 217 - originalLookupLabel: 217 - center: - x: -32.0 - y: 14.0 - z: 11.0 - color: '#c134fa' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_1: - name: 17Networks_LH_SalVentAttnA_ParMed_1 - lookupLabel: 218 - originalLookupLabel: 218 - center: - x: -8.0 - y: -20.0 - z: 39.0 - color: '#c43bfa' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_2: - name: 17Networks_LH_SalVentAttnA_ParMed_2 - lookupLabel: 219 - originalLookupLabel: 219 - center: - x: -12.0 - y: -32.0 - z: 40.0 - color: '#c134f9' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_3: - name: 17Networks_LH_SalVentAttnA_ParMed_3 - lookupLabel: 220 - originalLookupLabel: 220 - center: - x: -12.0 - y: -21.0 - z: 41.0 - color: '#c134fb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_4: - name: 17Networks_LH_SalVentAttnA_ParMed_4 - lookupLabel: 221 - originalLookupLabel: 221 - center: - x: -14.0 - y: -41.0 - z: 46.0 - color: '#c135f4' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_5: - name: 17Networks_LH_SalVentAttnA_ParMed_5 - lookupLabel: 222 - originalLookupLabel: 222 - center: - x: -12.0 - y: -33.0 - z: 48.0 - color: '#c135f5' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_6: - name: 17Networks_LH_SalVentAttnA_ParMed_6 - lookupLabel: 223 - originalLookupLabel: 223 - center: - x: -12.0 - y: -45.0 - z: 52.0 - color: '#c135f6' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_ParMed_7: - name: 17Networks_LH_SalVentAttnA_ParMed_7 - lookupLabel: 224 - originalLookupLabel: 224 - center: - x: -9.0 - y: -48.0 - z: 60.0 - color: '#c135f7' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_1: - name: 17Networks_LH_SalVentAttnA_FrMed_1 - lookupLabel: 225 - originalLookupLabel: 225 - center: - x: -6.0 - y: 17.0 - z: 31.0 - color: '#c53af8' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_2: - name: 17Networks_LH_SalVentAttnA_FrMed_2 - lookupLabel: 226 - originalLookupLabel: 226 - center: - x: -6.0 - y: 4.0 - z: 39.0 - color: '#c53af9' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_3: - name: 17Networks_LH_SalVentAttnA_FrMed_3 - lookupLabel: 227 - originalLookupLabel: 227 - center: - x: -6.0 - y: 15.0 - z: 42.0 - color: '#c53afb' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_4: - name: 17Networks_LH_SalVentAttnA_FrMed_4 - lookupLabel: 228 - originalLookupLabel: 228 - center: - x: -5.0 - y: 3.0 - z: 52.0 - color: '#c53afc' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_5: - name: 17Networks_LH_SalVentAttnA_FrMed_5 - lookupLabel: 229 - originalLookupLabel: 229 - center: - x: -4.0 - y: -3.0 - z: 64.0 - color: '#c53afd' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_6: - name: 17Networks_LH_SalVentAttnA_FrMed_6 - lookupLabel: 230 - originalLookupLabel: 230 - center: - x: -11.0 - y: 2.0 - z: 72.0 - color: '#c53afe' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnA_FrMed_7: - name: 17Networks_LH_SalVentAttnA_FrMed_7 - lookupLabel: 231 - originalLookupLabel: 231 - center: - x: -7.0 - y: -8.0 - z: 71.0 - color: '#c53aff' - hemisphere: left - hasParent: - - LH_SalVentAttnA - 17Networks_LH_SalVentAttnB_IPL_1: - name: 17Networks_LH_SalVentAttnB_IPL_1 - lookupLabel: 232 - originalLookupLabel: 232 - center: - x: -61.0 - y: -44.0 - z: 31.0 - color: '#ff98d6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_IPL_2: - name: 17Networks_LH_SalVentAttnB_IPL_2 - lookupLabel: 233 - originalLookupLabel: 233 - center: - x: -62.0 - y: -37.0 - z: 38.0 - color: '#ff98d7' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCd_1: - name: 17Networks_LH_SalVentAttnB_PFCd_1 - lookupLabel: 234 - originalLookupLabel: 234 - center: - x: -13.0 - y: 9.0 - z: 66.0 - color: '#ff98d8' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_1: - name: 17Networks_LH_SalVentAttnB_PFCl_1 - lookupLabel: 235 - originalLookupLabel: 235 - center: - x: -38.0 - y: 47.0 - z: 17.0 - color: '#ff99d4' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_2: - name: 17Networks_LH_SalVentAttnB_PFCl_2 - lookupLabel: 236 - originalLookupLabel: 236 - center: - x: -30.0 - y: 45.0 - z: 28.0 - color: '#ff99d6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_3: - name: 17Networks_LH_SalVentAttnB_PFCl_3 - lookupLabel: 237 - originalLookupLabel: 237 - center: - x: -21.0 - y: 46.0 - z: 34.0 - color: '#ff99d7' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_4: - name: 17Networks_LH_SalVentAttnB_PFCl_4 - lookupLabel: 238 - originalLookupLabel: 238 - center: - x: -35.0 - y: 32.0 - z: 38.0 - color: '#ff99d8' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCl_5: - name: 17Networks_LH_SalVentAttnB_PFCl_5 - lookupLabel: 239 - originalLookupLabel: 239 - center: - x: -26.0 - y: 37.0 - z: 40.0 - color: '#ff99d9' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_1: - name: 17Networks_LH_SalVentAttnB_Ins_1 - lookupLabel: 240 - originalLookupLabel: 240 - center: - x: -35.0 - y: 16.0 - z: -7.0 - color: '#ff99d5' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_2: - name: 17Networks_LH_SalVentAttnB_Ins_2 - lookupLabel: 241 - originalLookupLabel: 241 - center: - x: -32.0 - y: 22.0 - z: -1.0 - color: '#ff99da' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_3: - name: 17Networks_LH_SalVentAttnB_Ins_3 - lookupLabel: 242 - originalLookupLabel: 242 - center: - x: -34.0 - y: 30.0 - z: -1.0 - color: '#ff99db' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_4: - name: 17Networks_LH_SalVentAttnB_Ins_4 - lookupLabel: 243 - originalLookupLabel: 243 - center: - x: -30.0 - y: 19.0 - z: 6.0 - color: '#ff99dc' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_5: - name: 17Networks_LH_SalVentAttnB_Ins_5 - lookupLabel: 244 - originalLookupLabel: 244 - center: - x: -38.0 - y: 19.0 - z: 8.0 - color: '#ff99dd' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_6: - name: 17Networks_LH_SalVentAttnB_Ins_6 - lookupLabel: 245 - originalLookupLabel: 245 - center: - x: -43.0 - y: 12.0 - z: 2.0 - color: '#ff9ad6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_Ins_7: - name: 17Networks_LH_SalVentAttnB_Ins_7 - lookupLabel: 246 - originalLookupLabel: 246 - center: - x: -49.0 - y: 11.0 - z: 11.0 - color: '#ff9ad7' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_OFC_1: - name: 17Networks_LH_SalVentAttnB_OFC_1 - lookupLabel: 247 - originalLookupLabel: 247 - center: - x: -28.0 - y: 49.0 - z: -13.0 - color: '#ff98d5' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCmp_1: - name: 17Networks_LH_SalVentAttnB_PFCmp_1 - lookupLabel: 248 - originalLookupLabel: 248 - center: - x: -3.0 - y: 26.0 - z: 18.0 - color: '#ff97d4' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCmp_2: - name: 17Networks_LH_SalVentAttnB_PFCmp_2 - lookupLabel: 249 - originalLookupLabel: 249 - center: - x: -7.0 - y: 32.0 - z: 25.0 - color: '#ff97d6' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCmp_3: - name: 17Networks_LH_SalVentAttnB_PFCmp_3 - lookupLabel: 250 - originalLookupLabel: 250 - center: - x: -4.0 - y: 15.0 - z: 25.0 - color: '#ff97d7' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCmp_4: - name: 17Networks_LH_SalVentAttnB_PFCmp_4 - lookupLabel: 251 - originalLookupLabel: 251 - center: - x: -5.0 - y: 25.0 - z: 35.0 - color: '#ff97d8' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_SalVentAttnB_PFCmp_5: - name: 17Networks_LH_SalVentAttnB_PFCmp_5 - lookupLabel: 252 - originalLookupLabel: 252 - center: - x: -6.0 - y: 15.0 - z: 53.0 - color: '#ff97d9' - hemisphere: left - hasParent: - - LH_SalVentAttnB - 17Networks_LH_LimbicB_OFC_1: - name: 17Networks_LH_LimbicB_OFC_1 - lookupLabel: 253 - originalLookupLabel: 253 - center: - x: -15.0 - y: 18.0 - z: -22.0 - color: '#7a872e' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_2: - name: 17Networks_LH_LimbicB_OFC_2 - lookupLabel: 254 - originalLookupLabel: 254 - center: - x: -24.0 - y: 15.0 - z: -23.0 - color: '#7a872f' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_3: - name: 17Networks_LH_LimbicB_OFC_3 - lookupLabel: 255 - originalLookupLabel: 255 - center: - x: -11.0 - y: 28.0 - z: -20.0 - color: '#7a8730' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_4: - name: 17Networks_LH_LimbicB_OFC_4 - lookupLabel: 256 - originalLookupLabel: 256 - center: - x: -24.0 - y: 28.0 - z: -17.0 - color: '#7a8731' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_5: - name: 17Networks_LH_LimbicB_OFC_5 - lookupLabel: 257 - originalLookupLabel: 257 - center: - x: -19.0 - y: 40.0 - z: -19.0 - color: '#7a8733' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_6: - name: 17Networks_LH_LimbicB_OFC_6 - lookupLabel: 258 - originalLookupLabel: 258 - center: - x: -8.0 - y: 48.0 - z: -23.0 - color: '#7a8734' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_7: - name: 17Networks_LH_LimbicB_OFC_7 - lookupLabel: 259 - originalLookupLabel: 259 - center: - x: -5.0 - y: 19.0 - z: -19.0 - color: '#7a8735' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_8: - name: 17Networks_LH_LimbicB_OFC_8 - lookupLabel: 260 - originalLookupLabel: 260 - center: - x: -3.0 - y: 38.0 - z: -22.0 - color: '#7a8736' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_9: - name: 17Networks_LH_LimbicB_OFC_9 - lookupLabel: 261 - originalLookupLabel: 261 - center: - x: -13.0 - y: 58.0 - z: -19.0 - color: '#7a8737' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_10: - name: 17Networks_LH_LimbicB_OFC_10 - lookupLabel: 262 - originalLookupLabel: 262 - center: - x: -4.0 - y: 18.0 - z: -9.0 - color: '#7a8738' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_11: - name: 17Networks_LH_LimbicB_OFC_11 - lookupLabel: 263 - originalLookupLabel: 263 - center: - x: -8.0 - y: 65.0 - z: -13.0 - color: '#7a8739' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicB_OFC_12: - name: 17Networks_LH_LimbicB_OFC_12 - lookupLabel: 264 - originalLookupLabel: 264 - center: - x: -20.0 - y: 63.0 - z: -8.0 - color: '#7a8832' - hemisphere: left - hasParent: - - LH_LimbicB - 17Networks_LH_LimbicA_TempPole_1: - name: 17Networks_LH_LimbicA_TempPole_1 - lookupLabel: 265 - originalLookupLabel: 265 - center: - x: -31.0 - y: -2.0 - z: -44.0 - color: '#dcf89e' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_2: - name: 17Networks_LH_LimbicA_TempPole_2 - lookupLabel: 266 - originalLookupLabel: 266 - center: - x: -38.0 - y: -12.0 - z: -37.0 - color: '#dcf89f' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_3: - name: 17Networks_LH_LimbicA_TempPole_3 - lookupLabel: 267 - originalLookupLabel: 267 - center: - x: -49.0 - y: -11.0 - z: -39.0 - color: '#dcf8a0' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_4: - name: 17Networks_LH_LimbicA_TempPole_4 - lookupLabel: 268 - originalLookupLabel: 268 - center: - x: -28.0 - y: 12.0 - z: -40.0 - color: '#dcf8a1' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_5: - name: 17Networks_LH_LimbicA_TempPole_5 - lookupLabel: 269 - originalLookupLabel: 269 - center: - x: -28.0 - y: -7.0 - z: -34.0 - color: '#dcf8a2' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_6: - name: 17Networks_LH_LimbicA_TempPole_6 - lookupLabel: 270 - originalLookupLabel: 270 - center: - x: -44.0 - y: 5.0 - z: -39.0 - color: '#dcf8a3' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_7: - name: 17Networks_LH_LimbicA_TempPole_7 - lookupLabel: 271 - originalLookupLabel: 271 - center: - x: -19.0 - y: -1.0 - z: -31.0 - color: '#dcf8a5' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_8: - name: 17Networks_LH_LimbicA_TempPole_8 - lookupLabel: 272 - originalLookupLabel: 272 - center: - x: -38.0 - y: -18.0 - z: -29.0 - color: '#dcf8a6' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_9: - name: 17Networks_LH_LimbicA_TempPole_9 - lookupLabel: 273 - originalLookupLabel: 273 - center: - x: -50.0 - y: -26.0 - z: -28.0 - color: '#dcf8a7' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_10: - name: 17Networks_LH_LimbicA_TempPole_10 - lookupLabel: 274 - originalLookupLabel: 274 - center: - x: -21.0 - y: -14.0 - z: -30.0 - color: '#dcf8a8' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_11: - name: 17Networks_LH_LimbicA_TempPole_11 - lookupLabel: 275 - originalLookupLabel: 275 - center: - x: -27.0 - y: 7.0 - z: -29.0 - color: '#dcf8a9' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_12: - name: 17Networks_LH_LimbicA_TempPole_12 - lookupLabel: 276 - originalLookupLabel: 276 - center: - x: -43.0 - y: -31.0 - z: -22.0 - color: '#dcf8aa' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_13: - name: 17Networks_LH_LimbicA_TempPole_13 - lookupLabel: 277 - originalLookupLabel: 277 - center: - x: -58.0 - y: -33.0 - z: -25.0 - color: '#dcf8ab' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_14: - name: 17Networks_LH_LimbicA_TempPole_14 - lookupLabel: 278 - originalLookupLabel: 278 - center: - x: -37.0 - y: 10.0 - z: -25.0 - color: '#dcf9a4' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_15: - name: 17Networks_LH_LimbicA_TempPole_15 - lookupLabel: 279 - originalLookupLabel: 279 - center: - x: -42.0 - y: 4.0 - z: -20.0 - color: '#dcf9a5' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_LimbicA_TempPole_16: - name: 17Networks_LH_LimbicA_TempPole_16 - lookupLabel: 280 - originalLookupLabel: 280 - center: - x: -45.0 - y: 6.0 - z: -15.0 - color: '#dcf9a6' - hemisphere: left - hasParent: - - LH_LimbicA - 17Networks_LH_ContA_Temp_1: - name: 17Networks_LH_ContA_Temp_1 - lookupLabel: 281 - originalLookupLabel: 281 - center: - x: -54.0 - y: -50.0 - z: -21.0 - color: '#e69423' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_Temp_2: - name: 17Networks_LH_ContA_Temp_2 - lookupLabel: 282 - originalLookupLabel: 282 - center: - x: -57.0 - y: -59.0 - z: -5.0 - color: '#e69424' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_1: - name: 17Networks_LH_ContA_IPS_1 - lookupLabel: 283 - originalLookupLabel: 283 - center: - x: -29.0 - y: -77.0 - z: 39.0 - color: '#e6941f' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_2: - name: 17Networks_LH_ContA_IPS_2 - lookupLabel: 284 - originalLookupLabel: 284 - center: - x: -59.0 - y: -42.0 - z: 46.0 - color: '#e69420' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_3: - name: 17Networks_LH_ContA_IPS_3 - lookupLabel: 285 - originalLookupLabel: 285 - center: - x: -27.0 - y: -67.0 - z: 40.0 - color: '#e69421' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_4: - name: 17Networks_LH_ContA_IPS_4 - lookupLabel: 286 - originalLookupLabel: 286 - center: - x: -33.0 - y: -67.0 - z: 49.0 - color: '#e69422' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_5: - name: 17Networks_LH_ContA_IPS_5 - lookupLabel: 287 - originalLookupLabel: 287 - center: - x: -51.0 - y: -40.0 - z: 49.0 - color: '#e69425' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_6: - name: 17Networks_LH_ContA_IPS_6 - lookupLabel: 288 - originalLookupLabel: 288 - center: - x: -44.0 - y: -45.0 - z: 50.0 - color: '#e69426' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_7: - name: 17Networks_LH_ContA_IPS_7 - lookupLabel: 289 - originalLookupLabel: 289 - center: - x: -43.0 - y: -38.0 - z: 42.0 - color: '#e69427' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_8: - name: 17Networks_LH_ContA_IPS_8 - lookupLabel: 290 - originalLookupLabel: 290 - center: - x: -37.0 - y: -45.0 - z: 39.0 - color: '#e69428' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_9: - name: 17Networks_LH_ContA_IPS_9 - lookupLabel: 291 - originalLookupLabel: 291 - center: - x: -30.0 - y: -61.0 - z: 47.0 - color: '#e69429' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_10: - name: 17Networks_LH_ContA_IPS_10 - lookupLabel: 292 - originalLookupLabel: 292 - center: - x: -32.0 - y: -53.0 - z: 41.0 - color: '#e6942a' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_IPS_11: - name: 17Networks_LH_ContA_IPS_11 - lookupLabel: 293 - originalLookupLabel: 293 - center: - x: -32.0 - y: -46.0 - z: 45.0 - color: '#e69523' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCd_1: - name: 17Networks_LH_ContA_PFCd_1 - lookupLabel: 294 - originalLookupLabel: 294 - center: - x: -36.0 - y: 1.0 - z: 59.0 - color: '#e69524' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCd_2: - name: 17Networks_LH_ContA_PFCd_2 - lookupLabel: 295 - originalLookupLabel: 295 - center: - x: -28.0 - y: 3.0 - z: 57.0 - color: '#e69525' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCd_3: - name: 17Networks_LH_ContA_PFCd_3 - lookupLabel: 296 - originalLookupLabel: 296 - center: - x: -23.0 - y: 9.0 - z: 52.0 - color: '#e69526' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_1: - name: 17Networks_LH_ContA_PFCl_1 - lookupLabel: 297 - originalLookupLabel: 297 - center: - x: -48.0 - y: 7.0 - z: 20.0 - color: '#e69520' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_2: - name: 17Networks_LH_ContA_PFCl_2 - lookupLabel: 298 - originalLookupLabel: 298 - center: - x: -48.0 - y: 16.0 - z: 25.0 - color: '#e69521' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_3: - name: 17Networks_LH_ContA_PFCl_3 - lookupLabel: 299 - originalLookupLabel: 299 - center: - x: -45.0 - y: 5.0 - z: 25.0 - color: '#e69522' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_4: - name: 17Networks_LH_ContA_PFCl_4 - lookupLabel: 300 - originalLookupLabel: 300 - center: - x: -44.0 - y: 24.0 - z: 27.0 - color: '#e69527' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_5: - name: 17Networks_LH_ContA_PFCl_5 - lookupLabel: 301 - originalLookupLabel: 301 - center: - x: -43.0 - y: 37.0 - z: 29.0 - color: '#e69528' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_6: - name: 17Networks_LH_ContA_PFCl_6 - lookupLabel: 302 - originalLookupLabel: 302 - center: - x: -37.0 - y: 11.0 - z: 26.0 - color: '#e69529' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_7: - name: 17Networks_LH_ContA_PFCl_7 - lookupLabel: 303 - originalLookupLabel: 303 - center: - x: -48.0 - y: 4.0 - z: 31.0 - color: '#e6952a' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_8: - name: 17Networks_LH_ContA_PFCl_8 - lookupLabel: 304 - originalLookupLabel: 304 - center: - x: -37.0 - y: 8.0 - z: 31.0 - color: '#e69623' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_9: - name: 17Networks_LH_ContA_PFCl_9 - lookupLabel: 305 - originalLookupLabel: 305 - center: - x: -40.0 - y: 4.0 - z: 36.0 - color: '#e69624' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFCl_10: - name: 17Networks_LH_ContA_PFCl_10 - lookupLabel: 306 - originalLookupLabel: 306 - center: - x: -47.0 - y: 3.0 - z: 43.0 - color: '#e69625' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFClv_1: - name: 17Networks_LH_ContA_PFClv_1 - lookupLabel: 307 - originalLookupLabel: 307 - center: - x: -39.0 - y: 49.0 - z: 6.0 - color: '#e79423' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFClv_2: - name: 17Networks_LH_ContA_PFClv_2 - lookupLabel: 308 - originalLookupLabel: 308 - center: - x: -50.0 - y: 36.0 - z: 8.0 - color: '#e79424' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFClv_3: - name: 17Networks_LH_ContA_PFClv_3 - lookupLabel: 309 - originalLookupLabel: 309 - center: - x: -46.0 - y: 27.0 - z: 19.0 - color: '#e79425' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_PFClv_4: - name: 17Networks_LH_ContA_PFClv_4 - lookupLabel: 310 - originalLookupLabel: 310 - center: - x: -42.0 - y: 37.0 - z: 16.0 - color: '#e79426' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContA_Cingm_1: - name: 17Networks_LH_ContA_Cingm_1 - lookupLabel: 311 - originalLookupLabel: 311 - center: - x: -4.0 - y: 1.0 - z: 30.0 - color: '#e79427' - hemisphere: left - hasParent: - - LH_ContA - 17Networks_LH_ContB_Temp_1: - name: 17Networks_LH_ContB_Temp_1 - lookupLabel: 312 - originalLookupLabel: 312 - center: - x: -60.0 - y: -36.0 - z: -17.0 - color: '#87324b' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_Temp_2: - name: 17Networks_LH_ContB_Temp_2 - lookupLabel: 313 - originalLookupLabel: 313 - center: - x: -59.0 - y: -51.0 - z: -14.0 - color: '#87324c' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_Temp_3: - name: 17Networks_LH_ContB_Temp_3 - lookupLabel: 314 - originalLookupLabel: 314 - center: - x: -62.0 - y: -47.0 - z: -5.0 - color: '#87324d' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_1: - name: 17Networks_LH_ContB_IPL_1 - lookupLabel: 315 - originalLookupLabel: 315 - center: - x: -59.0 - y: -48.0 - z: 41.0 - color: '#87324a' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_2: - name: 17Networks_LH_ContB_IPL_2 - lookupLabel: 316 - originalLookupLabel: 316 - center: - x: -47.0 - y: -60.0 - z: 50.0 - color: '#87324e' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_3: - name: 17Networks_LH_ContB_IPL_3 - lookupLabel: 317 - originalLookupLabel: 317 - center: - x: -50.0 - y: -53.0 - z: 49.0 - color: '#87324f' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_4: - name: 17Networks_LH_ContB_IPL_4 - lookupLabel: 318 - originalLookupLabel: 318 - center: - x: -53.0 - y: -47.0 - z: 52.0 - color: '#873250' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_5: - name: 17Networks_LH_ContB_IPL_5 - lookupLabel: 319 - originalLookupLabel: 319 - center: - x: -38.0 - y: -59.0 - z: 50.0 - color: '#873251' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_IPL_6: - name: 17Networks_LH_ContB_IPL_6 - lookupLabel: 320 - originalLookupLabel: 320 - center: - x: -42.0 - y: -53.0 - z: 48.0 - color: '#873252' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCd_1: - name: 17Networks_LH_ContB_PFCd_1 - lookupLabel: 321 - originalLookupLabel: 321 - center: - x: -29.0 - y: 16.0 - z: 56.0 - color: '#87334b' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCd_2: - name: 17Networks_LH_ContB_PFCd_2 - lookupLabel: 322 - originalLookupLabel: 322 - center: - x: -21.0 - y: 19.0 - z: 60.0 - color: '#87334c' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCl_1: - name: 17Networks_LH_ContB_PFCl_1 - lookupLabel: 323 - originalLookupLabel: 323 - center: - x: -45.0 - y: 20.0 - z: 35.0 - color: '#87334d' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCl_2: - name: 17Networks_LH_ContB_PFCl_2 - lookupLabel: 324 - originalLookupLabel: 324 - center: - x: -47.0 - y: 13.0 - z: 40.0 - color: '#87334e' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCl_3: - name: 17Networks_LH_ContB_PFCl_3 - lookupLabel: 325 - originalLookupLabel: 325 - center: - x: -39.0 - y: 24.0 - z: 46.0 - color: '#87334f' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_1: - name: 17Networks_LH_ContB_PFClv_1 - lookupLabel: 326 - originalLookupLabel: 326 - center: - x: -40.0 - y: 51.0 - z: -7.0 - color: '#88324b' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_2: - name: 17Networks_LH_ContB_PFClv_2 - lookupLabel: 327 - originalLookupLabel: 327 - center: - x: -29.0 - y: 58.0 - z: -1.0 - color: '#88324c' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFClv_3: - name: 17Networks_LH_ContB_PFClv_3 - lookupLabel: 328 - originalLookupLabel: 328 - center: - x: -29.0 - y: 56.0 - z: 10.0 - color: '#88324d' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContB_PFCmp_1: - name: 17Networks_LH_ContB_PFCmp_1 - lookupLabel: 329 - originalLookupLabel: 329 - center: - x: -3.0 - y: 28.0 - z: 47.0 - color: '#88324e' - hemisphere: left - hasParent: - - LH_ContB - 17Networks_LH_ContC_pCun_1: - name: 17Networks_LH_ContC_pCun_1 - lookupLabel: 330 - originalLookupLabel: 330 - center: - x: -13.0 - y: -67.0 - z: 28.0 - color: '#778cac' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_2: - name: 17Networks_LH_ContC_pCun_2 - lookupLabel: 331 - originalLookupLabel: 331 - center: - x: -7.0 - y: -71.0 - z: 32.0 - color: '#778cad' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_3: - name: 17Networks_LH_ContC_pCun_3 - lookupLabel: 332 - originalLookupLabel: 332 - center: - x: -8.0 - y: -74.0 - z: 40.0 - color: '#778cae' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_4: - name: 17Networks_LH_ContC_pCun_4 - lookupLabel: 333 - originalLookupLabel: 333 - center: - x: -5.0 - y: -38.0 - z: 43.0 - color: '#778caf' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_5: - name: 17Networks_LH_ContC_pCun_5 - lookupLabel: 334 - originalLookupLabel: 334 - center: - x: -6.0 - y: -44.0 - z: 44.0 - color: '#778cb1' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_6: - name: 17Networks_LH_ContC_pCun_6 - lookupLabel: 335 - originalLookupLabel: 335 - center: - x: -6.0 - y: -78.0 - z: 49.0 - color: '#778cb2' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_7: - name: 17Networks_LH_ContC_pCun_7 - lookupLabel: 336 - originalLookupLabel: 336 - center: - x: -3.0 - y: -71.0 - z: 48.0 - color: '#778cb3' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_8: - name: 17Networks_LH_ContC_pCun_8 - lookupLabel: 337 - originalLookupLabel: 337 - center: - x: -5.0 - y: -57.0 - z: 46.0 - color: '#778cb4' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_9: - name: 17Networks_LH_ContC_pCun_9 - lookupLabel: 338 - originalLookupLabel: 338 - center: - x: -4.0 - y: -48.0 - z: 50.0 - color: '#778cb5' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_10: - name: 17Networks_LH_ContC_pCun_10 - lookupLabel: 339 - originalLookupLabel: 339 - center: - x: -6.0 - y: -63.0 - z: 52.0 - color: '#778cb6' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_11: - name: 17Networks_LH_ContC_pCun_11 - lookupLabel: 340 - originalLookupLabel: 340 - center: - x: -6.0 - y: -70.0 - z: 58.0 - color: '#778cb7' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_pCun_12: - name: 17Networks_LH_ContC_pCun_12 - lookupLabel: 341 - originalLookupLabel: 341 - center: - x: -4.0 - y: -53.0 - z: 57.0 - color: '#778db0' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_Cingp_1: - name: 17Networks_LH_ContC_Cingp_1 - lookupLabel: 342 - originalLookupLabel: 342 - center: - x: -7.0 - y: -43.0 - z: 22.0 - color: '#778cb0' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_Cingp_2: - name: 17Networks_LH_ContC_Cingp_2 - lookupLabel: 343 - originalLookupLabel: 343 - center: - x: -7.0 - y: -37.0 - z: 25.0 - color: '#778cb8' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_Cingp_3: - name: 17Networks_LH_ContC_Cingp_3 - lookupLabel: 344 - originalLookupLabel: 344 - center: - x: -6.0 - y: -29.0 - z: 27.0 - color: '#778db1' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_Cingp_4: - name: 17Networks_LH_ContC_Cingp_4 - lookupLabel: 345 - originalLookupLabel: 345 - center: - x: -4.0 - y: -16.0 - z: 29.0 - color: '#778db2' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_ContC_Cingp_5: - name: 17Networks_LH_ContC_Cingp_5 - lookupLabel: 346 - originalLookupLabel: 346 - center: - x: -2.0 - y: -27.0 - z: 30.0 - color: '#778db3' - hemisphere: left - hasParent: - - LH_ContC - 17Networks_LH_DefaultA_IPL_1: - name: 17Networks_LH_DefaultA_IPL_1 - lookupLabel: 347 - originalLookupLabel: 347 - center: - x: -41.0 - y: -67.0 - z: 22.0 - color: '#ffff01' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_IPL_2: - name: 17Networks_LH_DefaultA_IPL_2 - lookupLabel: 348 - originalLookupLabel: 348 - center: - x: -47.0 - y: -62.0 - z: 27.0 - color: '#ffff02' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_IPL_3: - name: 17Networks_LH_DefaultA_IPL_3 - lookupLabel: 349 - originalLookupLabel: 349 - center: - x: -47.0 - y: -69.0 - z: 29.0 - color: '#ffff03' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_IPL_4: - name: 17Networks_LH_DefaultA_IPL_4 - lookupLabel: 350 - originalLookupLabel: 350 - center: - x: -44.0 - y: -72.0 - z: 40.0 - color: '#ffff04' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_IPL_5: - name: 17Networks_LH_DefaultA_IPL_5 - lookupLabel: 351 - originalLookupLabel: 351 - center: - x: -47.0 - y: -64.0 - z: 37.0 - color: '#ffff05' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_IPL_6: - name: 17Networks_LH_DefaultA_IPL_6 - lookupLabel: 352 - originalLookupLabel: 352 - center: - x: -35.0 - y: -75.0 - z: 49.0 - color: '#ffff06' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_IPL_7: - name: 17Networks_LH_DefaultA_IPL_7 - lookupLabel: 353 - originalLookupLabel: 353 - center: - x: -41.0 - y: -67.0 - z: 50.0 - color: '#ffff07' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_1: - name: 17Networks_LH_DefaultA_PFCd_1 - lookupLabel: 354 - originalLookupLabel: 354 - center: - x: -20.0 - y: 38.0 - z: 41.0 - color: '#ffff08' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_2: - name: 17Networks_LH_DefaultA_PFCd_2 - lookupLabel: 355 - originalLookupLabel: 355 - center: - x: -25.0 - y: 27.0 - z: 44.0 - color: '#fcf900' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_3: - name: 17Networks_LH_DefaultA_PFCd_3 - lookupLabel: 356 - originalLookupLabel: 356 - center: - x: -20.0 - y: 33.0 - z: 51.0 - color: '#fcf901' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCd_4: - name: 17Networks_LH_DefaultA_PFCd_4 - lookupLabel: 357 - originalLookupLabel: 357 - center: - x: -23.0 - y: 17.0 - z: 49.0 - color: '#fcfa00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_1: - name: 17Networks_LH_DefaultA_pCunPCC_1 - lookupLabel: 358 - originalLookupLabel: 358 - center: - x: -6.0 - y: -47.0 - z: 13.0 - color: '#fffe01' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_2: - name: 17Networks_LH_DefaultA_pCunPCC_2 - lookupLabel: 359 - originalLookupLabel: 359 - center: - x: -4.0 - y: -55.0 - z: 11.0 - color: '#fffe02' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_3: - name: 17Networks_LH_DefaultA_pCunPCC_3 - lookupLabel: 360 - originalLookupLabel: 360 - center: - x: -5.0 - y: -51.0 - z: 17.0 - color: '#fffe03' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_4: - name: 17Networks_LH_DefaultA_pCunPCC_4 - lookupLabel: 361 - originalLookupLabel: 361 - center: - x: -4.0 - y: -57.0 - z: 19.0 - color: '#fffe04' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_5: - name: 17Networks_LH_DefaultA_pCunPCC_5 - lookupLabel: 362 - originalLookupLabel: 362 - center: - x: -3.0 - y: -48.0 - z: 25.0 - color: '#fffe05' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_6: - name: 17Networks_LH_DefaultA_pCunPCC_6 - lookupLabel: 363 - originalLookupLabel: 363 - center: - x: -4.0 - y: -65.0 - z: 23.0 - color: '#fffe06' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_7: - name: 17Networks_LH_DefaultA_pCunPCC_7 - lookupLabel: 364 - originalLookupLabel: 364 - center: - x: -6.0 - y: -57.0 - z: 26.0 - color: '#fffe07' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_8: - name: 17Networks_LH_DefaultA_pCunPCC_8 - lookupLabel: 365 - originalLookupLabel: 365 - center: - x: -3.0 - y: -39.0 - z: 29.0 - color: '#ffff00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_9: - name: 17Networks_LH_DefaultA_pCunPCC_9 - lookupLabel: 366 - originalLookupLabel: 366 - center: - x: -8.0 - y: -47.0 - z: 30.0 - color: '#fcfb00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_10: - name: 17Networks_LH_DefaultA_pCunPCC_10 - lookupLabel: 367 - originalLookupLabel: 367 - center: - x: -3.0 - y: -64.0 - z: 30.0 - color: '#fcfc00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_11: - name: 17Networks_LH_DefaultA_pCunPCC_11 - lookupLabel: 368 - originalLookupLabel: 368 - center: - x: -10.0 - y: -53.0 - z: 32.0 - color: '#fcfd00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_12: - name: 17Networks_LH_DefaultA_pCunPCC_12 - lookupLabel: 369 - originalLookupLabel: 369 - center: - x: -6.0 - y: -40.0 - z: 34.0 - color: '#fcfe00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_13: - name: 17Networks_LH_DefaultA_pCunPCC_13 - lookupLabel: 370 - originalLookupLabel: 370 - center: - x: -2.0 - y: -15.0 - z: 37.0 - color: '#fdf700' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_14: - name: 17Networks_LH_DefaultA_pCunPCC_14 - lookupLabel: 371 - originalLookupLabel: 371 - center: - x: -4.0 - y: -32.0 - z: 38.0 - color: '#fdf800' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_15: - name: 17Networks_LH_DefaultA_pCunPCC_15 - lookupLabel: 372 - originalLookupLabel: 372 - center: - x: -12.0 - y: -45.0 - z: 35.0 - color: '#fdf900' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_16: - name: 17Networks_LH_DefaultA_pCunPCC_16 - lookupLabel: 373 - originalLookupLabel: 373 - center: - x: -6.0 - y: -58.0 - z: 35.0 - color: '#fdfa00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_17: - name: 17Networks_LH_DefaultA_pCunPCC_17 - lookupLabel: 374 - originalLookupLabel: 374 - center: - x: -3.0 - y: -66.0 - z: 41.0 - color: '#fdfb00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_pCunPCC_18: - name: 17Networks_LH_DefaultA_pCunPCC_18 - lookupLabel: 375 - originalLookupLabel: 375 - center: - x: -8.0 - y: -52.0 - z: 41.0 - color: '#fdfc00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_1: - name: 17Networks_LH_DefaultA_PFCm_1 - lookupLabel: 376 - originalLookupLabel: 376 - center: - x: -5.0 - y: 55.0 - z: -10.0 - color: '#feff01' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_2: - name: 17Networks_LH_DefaultA_PFCm_2 - lookupLabel: 377 - originalLookupLabel: 377 - center: - x: -6.0 - y: 35.0 - z: -9.0 - color: '#feff02' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_3: - name: 17Networks_LH_DefaultA_PFCm_3 - lookupLabel: 378 - originalLookupLabel: 378 - center: - x: -7.0 - y: 50.0 - z: 0.0 - color: '#feff03' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_4: - name: 17Networks_LH_DefaultA_PFCm_4 - lookupLabel: 379 - originalLookupLabel: 379 - center: - x: -4.0 - y: 39.0 - z: 2.0 - color: '#feff04' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_5: - name: 17Networks_LH_DefaultA_PFCm_5 - lookupLabel: 380 - originalLookupLabel: 380 - center: - x: -12.0 - y: 69.0 - z: 4.0 - color: '#feff05' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_6: - name: 17Networks_LH_DefaultA_PFCm_6 - lookupLabel: 381 - originalLookupLabel: 381 - center: - x: -6.0 - y: 59.0 - z: 7.0 - color: '#feff06' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_7: - name: 17Networks_LH_DefaultA_PFCm_7 - lookupLabel: 382 - originalLookupLabel: 382 - center: - x: -22.0 - y: 64.0 - z: 10.0 - color: '#feff07' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_8: - name: 17Networks_LH_DefaultA_PFCm_8 - lookupLabel: 383 - originalLookupLabel: 383 - center: - x: -2.0 - y: 35.0 - z: 11.0 - color: '#fbf900' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultA_PFCm_9: - name: 17Networks_LH_DefaultA_PFCm_9 - lookupLabel: 384 - originalLookupLabel: 384 - center: - x: -7.0 - y: 44.0 - z: 12.0 - color: '#fbfa00' - hemisphere: left - hasParent: - - LH_DefaultA - 17Networks_LH_DefaultB_Temp_1: - name: 17Networks_LH_DefaultB_Temp_1 - lookupLabel: 385 - originalLookupLabel: 385 - center: - x: -58.0 - y: -18.0 - z: -29.0 - color: '#cd3e49' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_2: - name: 17Networks_LH_DefaultB_Temp_2 - lookupLabel: 386 - originalLookupLabel: 386 - center: - x: -54.0 - y: -1.0 - z: -30.0 - color: '#cd3e4a' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_3: - name: 17Networks_LH_DefaultB_Temp_3 - lookupLabel: 387 - originalLookupLabel: 387 - center: - x: -42.0 - y: 17.0 - z: -29.0 - color: '#cd3e4b' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_4: - name: 17Networks_LH_DefaultB_Temp_4 - lookupLabel: 388 - originalLookupLabel: 388 - center: - x: -62.0 - y: -16.0 - z: -19.0 - color: '#cd3e4c' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_5: - name: 17Networks_LH_DefaultB_Temp_5 - lookupLabel: 389 - originalLookupLabel: 389 - center: - x: -58.0 - y: -4.0 - z: -16.0 - color: '#cd3e4d' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_6: - name: 17Networks_LH_DefaultB_Temp_6 - lookupLabel: 390 - originalLookupLabel: 390 - center: - x: -52.0 - y: 7.0 - z: -19.0 - color: '#cd3e4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_7: - name: 17Networks_LH_DefaultB_Temp_7 - lookupLabel: 391 - originalLookupLabel: 391 - center: - x: -64.0 - y: -37.0 - z: -10.0 - color: '#cd3e50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_8: - name: 17Networks_LH_DefaultB_Temp_8 - lookupLabel: 392 - originalLookupLabel: 392 - center: - x: -63.0 - y: -25.0 - z: -8.0 - color: '#cd3e51' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_9: - name: 17Networks_LH_DefaultB_Temp_9 - lookupLabel: 393 - originalLookupLabel: 393 - center: - x: -54.0 - y: -14.0 - z: -12.0 - color: '#cd3e52' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_10: - name: 17Networks_LH_DefaultB_Temp_10 - lookupLabel: 394 - originalLookupLabel: 394 - center: - x: -51.0 - y: -25.0 - z: -8.0 - color: '#cd3e53' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_11: - name: 17Networks_LH_DefaultB_Temp_11 - lookupLabel: 395 - originalLookupLabel: 395 - center: - x: -62.0 - y: -36.0 - z: -2.0 - color: '#cd3e54' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_12: - name: 17Networks_LH_DefaultB_Temp_12 - lookupLabel: 396 - originalLookupLabel: 396 - center: - x: -57.0 - y: -43.0 - z: 1.0 - color: '#cd3e55' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_Temp_13: - name: 17Networks_LH_DefaultB_Temp_13 - lookupLabel: 397 - originalLookupLabel: 397 - center: - x: -52.0 - y: -35.0 - z: 1.0 - color: '#cd3f4e' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_1: - name: 17Networks_LH_DefaultB_IPL_1 - lookupLabel: 398 - originalLookupLabel: 398 - center: - x: -46.0 - y: -60.0 - z: 20.0 - color: '#cd3e4e' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_2: - name: 17Networks_LH_DefaultB_IPL_2 - lookupLabel: 399 - originalLookupLabel: 399 - center: - x: -46.0 - y: -52.0 - z: 23.0 - color: '#cd3e56' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_3: - name: 17Networks_LH_DefaultB_IPL_3 - lookupLabel: 400 - originalLookupLabel: 400 - center: - x: -57.0 - y: -54.0 - z: 21.0 - color: '#cd3f4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_4: - name: 17Networks_LH_DefaultB_IPL_4 - lookupLabel: 401 - originalLookupLabel: 401 - center: - x: -45.0 - y: -57.0 - z: 30.0 - color: '#cd3f50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_5: - name: 17Networks_LH_DefaultB_IPL_5 - lookupLabel: 402 - originalLookupLabel: 402 - center: - x: -53.0 - y: -57.0 - z: 29.0 - color: '#cd3f51' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_6: - name: 17Networks_LH_DefaultB_IPL_6 - lookupLabel: 403 - originalLookupLabel: 403 - center: - x: -60.0 - y: -53.0 - z: 29.0 - color: '#cd3f52' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_7: - name: 17Networks_LH_DefaultB_IPL_7 - lookupLabel: 404 - originalLookupLabel: 404 - center: - x: -52.0 - y: -59.0 - z: 39.0 - color: '#cd3f53' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_IPL_8: - name: 17Networks_LH_DefaultB_IPL_8 - lookupLabel: 405 - originalLookupLabel: 405 - center: - x: -54.0 - y: -51.0 - z: 39.0 - color: '#cd3f54' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_1: - name: 17Networks_LH_DefaultB_PFCd_1 - lookupLabel: 406 - originalLookupLabel: 406 - center: - x: -6.0 - y: 65.0 - z: 19.0 - color: '#cd3f4b' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_2: - name: 17Networks_LH_DefaultB_PFCd_2 - lookupLabel: 407 - originalLookupLabel: 407 - center: - x: -23.0 - y: 57.0 - z: 21.0 - color: '#cd3f4c' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_3: - name: 17Networks_LH_DefaultB_PFCd_3 - lookupLabel: 408 - originalLookupLabel: 408 - center: - x: -5.0 - y: 53.0 - z: 21.0 - color: '#cd3f4d' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_4: - name: 17Networks_LH_DefaultB_PFCd_4 - lookupLabel: 409 - originalLookupLabel: 409 - center: - x: -15.0 - y: 61.0 - z: 24.0 - color: '#cd3f55' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_5: - name: 17Networks_LH_DefaultB_PFCd_5 - lookupLabel: 410 - originalLookupLabel: 410 - center: - x: -5.0 - y: 57.0 - z: 36.0 - color: '#cd404e' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_6: - name: 17Networks_LH_DefaultB_PFCd_6 - lookupLabel: 411 - originalLookupLabel: 411 - center: - x: -3.0 - y: 42.0 - z: 35.0 - color: '#cd404f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_7: - name: 17Networks_LH_DefaultB_PFCd_7 - lookupLabel: 412 - originalLookupLabel: 412 - center: - x: -14.0 - y: 50.0 - z: 41.0 - color: '#cd4050' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_8: - name: 17Networks_LH_DefaultB_PFCd_8 - lookupLabel: 413 - originalLookupLabel: 413 - center: - x: -8.0 - y: 42.0 - z: 52.0 - color: '#cd4051' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_9: - name: 17Networks_LH_DefaultB_PFCd_9 - lookupLabel: 414 - originalLookupLabel: 414 - center: - x: -12.0 - y: 24.0 - z: 61.0 - color: '#cd4052' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCd_10: - name: 17Networks_LH_DefaultB_PFCd_10 - lookupLabel: 415 - originalLookupLabel: 415 - center: - x: -5.0 - y: 12.0 - z: 64.0 - color: '#cd4053' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCl_1: - name: 17Networks_LH_DefaultB_PFCl_1 - lookupLabel: 416 - originalLookupLabel: 416 - center: - x: -41.0 - y: 8.0 - z: 48.0 - color: '#cd3f56' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCl_2: - name: 17Networks_LH_DefaultB_PFCl_2 - lookupLabel: 417 - originalLookupLabel: 417 - center: - x: -39.0 - y: 15.0 - z: 55.0 - color: '#cd4054' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_1: - name: 17Networks_LH_DefaultB_PFCv_1 - lookupLabel: 418 - originalLookupLabel: 418 - center: - x: -28.0 - y: 17.0 - z: -16.0 - color: '#ce3e4b' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_2: - name: 17Networks_LH_DefaultB_PFCv_2 - lookupLabel: 419 - originalLookupLabel: 419 - center: - x: -35.0 - y: 36.0 - z: -12.0 - color: '#ce3e4c' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_3: - name: 17Networks_LH_DefaultB_PFCv_3 - lookupLabel: 420 - originalLookupLabel: 420 - center: - x: -37.0 - y: 24.0 - z: -15.0 - color: '#ce3e4d' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_4: - name: 17Networks_LH_DefaultB_PFCv_4 - lookupLabel: 421 - originalLookupLabel: 421 - center: - x: -45.0 - y: 37.0 - z: -16.0 - color: '#ce3e4f' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_5: - name: 17Networks_LH_DefaultB_PFCv_5 - lookupLabel: 422 - originalLookupLabel: 422 - center: - x: -44.0 - y: 28.0 - z: -6.0 - color: '#ce3e50' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_6: - name: 17Networks_LH_DefaultB_PFCv_6 - lookupLabel: 423 - originalLookupLabel: 423 - center: - x: -49.0 - y: 40.0 - z: -6.0 - color: '#ce3e51' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_7: - name: 17Networks_LH_DefaultB_PFCv_7 - lookupLabel: 424 - originalLookupLabel: 424 - center: - x: -49.0 - y: 27.0 - z: 1.0 - color: '#ce3e52' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_8: - name: 17Networks_LH_DefaultB_PFCv_8 - lookupLabel: 425 - originalLookupLabel: 425 - center: - x: -50.0 - y: 19.0 - z: 7.0 - color: '#ce3e53' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultB_PFCv_9: - name: 17Networks_LH_DefaultB_PFCv_9 - lookupLabel: 426 - originalLookupLabel: 426 - center: - x: -56.0 - y: 19.0 - z: 17.0 - color: '#ce3e54' - hemisphere: left - hasParent: - - LH_DefaultB - 17Networks_LH_DefaultC_IPL_1: - name: 17Networks_LH_DefaultC_IPL_1 - lookupLabel: 427 - originalLookupLabel: 427 - center: - x: -43.0 - y: -77.0 - z: 29.0 - color: '#000083' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_IPL_2: - name: 17Networks_LH_DefaultC_IPL_2 - lookupLabel: 428 - originalLookupLabel: 428 - center: - x: -36.0 - y: -83.0 - z: 36.0 - color: '#000084' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_1: - name: 17Networks_LH_DefaultC_Rsp_1 - lookupLabel: 429 - originalLookupLabel: 429 - center: - x: -11.0 - y: -48.0 - z: 4.0 - color: '#000085' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_2: - name: 17Networks_LH_DefaultC_Rsp_2 - lookupLabel: 430 - originalLookupLabel: 430 - center: - x: -11.0 - y: -54.0 - z: 8.0 - color: '#000086' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_3: - name: 17Networks_LH_DefaultC_Rsp_3 - lookupLabel: 431 - originalLookupLabel: 431 - center: - x: -12.0 - y: -59.0 - z: 17.0 - color: '#000087' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_Rsp_4: - name: 17Networks_LH_DefaultC_Rsp_4 - lookupLabel: 432 - originalLookupLabel: 432 - center: - x: -16.0 - y: -64.0 - z: 22.0 - color: '#000088' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_1: - name: 17Networks_LH_DefaultC_PHC_1 - lookupLabel: 433 - originalLookupLabel: 433 - center: - x: -31.0 - y: -27.0 - z: -22.0 - color: '#000181' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_2: - name: 17Networks_LH_DefaultC_PHC_2 - lookupLabel: 434 - originalLookupLabel: 434 - center: - x: -20.0 - y: -23.0 - z: -23.0 - color: '#000183' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_3: - name: 17Networks_LH_DefaultC_PHC_3 - lookupLabel: 435 - originalLookupLabel: 435 - center: - x: -29.0 - y: -36.0 - z: -21.0 - color: '#000184' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_4: - name: 17Networks_LH_DefaultC_PHC_4 - lookupLabel: 436 - originalLookupLabel: 436 - center: - x: -31.0 - y: -40.0 - z: -12.0 - color: '#000185' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_5: - name: 17Networks_LH_DefaultC_PHC_5 - lookupLabel: 437 - originalLookupLabel: 437 - center: - x: -21.0 - y: -35.0 - z: -15.0 - color: '#000186' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_DefaultC_PHC_6: - name: 17Networks_LH_DefaultC_PHC_6 - lookupLabel: 438 - originalLookupLabel: 438 - center: - x: -16.0 - y: -38.0 - z: -11.0 - color: '#000187' - hemisphere: left - hasParent: - - LH_DefaultC - 17Networks_LH_TempPar_1: - name: 17Networks_LH_TempPar_1 - lookupLabel: 439 - originalLookupLabel: 439 - center: - x: -53.0 - y: -4.0 - z: -11.0 - color: '#0c30fb' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_2: - name: 17Networks_LH_TempPar_2 - lookupLabel: 440 - originalLookupLabel: 440 - center: - x: -60.0 - y: -13.0 - z: -3.0 - color: '#0c30fc' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_3: - name: 17Networks_LH_TempPar_3 - lookupLabel: 441 - originalLookupLabel: 441 - center: - x: -57.0 - y: -23.0 - z: -2.0 - color: '#0c30fd' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_4: - name: 17Networks_LH_TempPar_4 - lookupLabel: 442 - originalLookupLabel: 442 - center: - x: -62.0 - y: -51.0 - z: 5.0 - color: '#0c30fe' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_5: - name: 17Networks_LH_TempPar_5 - lookupLabel: 443 - originalLookupLabel: 443 - center: - x: -65.0 - y: -30.0 - z: 5.0 - color: '#0929f9' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_6: - name: 17Networks_LH_TempPar_6 - lookupLabel: 444 - originalLookupLabel: 444 - center: - x: -51.0 - y: -46.0 - z: 6.0 - color: '#0929fa' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_7: - name: 17Networks_LH_TempPar_7 - lookupLabel: 445 - originalLookupLabel: 445 - center: - x: -56.0 - y: -56.0 - z: 13.0 - color: '#0929fb' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_8: - name: 17Networks_LH_TempPar_8 - lookupLabel: 446 - originalLookupLabel: 446 - center: - x: -61.0 - y: -40.0 - z: 9.0 - color: '#0929fc' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_9: - name: 17Networks_LH_TempPar_9 - lookupLabel: 447 - originalLookupLabel: 447 - center: - x: -46.0 - y: -51.0 - z: 14.0 - color: '#0929fd' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_10: - name: 17Networks_LH_TempPar_10 - lookupLabel: 448 - originalLookupLabel: 448 - center: - x: -53.0 - y: -48.0 - z: 15.0 - color: '#0929fe' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_11: - name: 17Networks_LH_TempPar_11 - lookupLabel: 449 - originalLookupLabel: 449 - center: - x: -63.0 - y: -49.0 - z: 16.0 - color: '#0929ff' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_LH_TempPar_12: - name: 17Networks_LH_TempPar_12 - lookupLabel: 450 - originalLookupLabel: 450 - center: - x: -61.0 - y: -46.0 - z: 22.0 - color: '#092af8' - hemisphere: left - hasParent: - - LH_TempPar - 17Networks_RH_VisCent_Striate_1: - name: 17Networks_RH_VisCent_Striate_1 - lookupLabel: 451 - originalLookupLabel: 451 - center: - x: 20.0 - y: -101.0 - z: -6.0 - color: '#781387' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_Striate_2: - name: 17Networks_RH_VisCent_Striate_2 - lookupLabel: 452 - originalLookupLabel: 452 - center: - x: 12.0 - y: -97.0 - z: 0.0 - color: '#781388' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_1: - name: 17Networks_RH_VisCent_ExStr_1 - lookupLabel: 453 - originalLookupLabel: 453 - center: - x: 36.0 - y: -51.0 - z: -18.0 - color: '#781281' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_2: - name: 17Networks_RH_VisCent_ExStr_2 - lookupLabel: 454 - originalLookupLabel: 454 - center: - x: 29.0 - y: -52.0 - z: -11.0 - color: '#781282' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_3: - name: 17Networks_RH_VisCent_ExStr_3 - lookupLabel: 455 - originalLookupLabel: 455 - center: - x: 37.0 - y: -67.0 - z: -16.0 - color: '#781283' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_4: - name: 17Networks_RH_VisCent_ExStr_4 - lookupLabel: 456 - originalLookupLabel: 456 - center: - x: 28.0 - y: -72.0 - z: -10.0 - color: '#781284' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_5: - name: 17Networks_RH_VisCent_ExStr_5 - lookupLabel: 457 - originalLookupLabel: 457 - center: - x: 30.0 - y: -81.0 - z: -13.0 - color: '#781285' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_6: - name: 17Networks_RH_VisCent_ExStr_6 - lookupLabel: 458 - originalLookupLabel: 458 - center: - x: 41.0 - y: -76.0 - z: -15.0 - color: '#781286' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_7: - name: 17Networks_RH_VisCent_ExStr_7 - lookupLabel: 459 - originalLookupLabel: 459 - center: - x: 21.0 - y: -69.0 - z: -9.0 - color: '#781287' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_8: - name: 17Networks_RH_VisCent_ExStr_8 - lookupLabel: 460 - originalLookupLabel: 460 - center: - x: 36.0 - y: -85.0 - z: -17.0 - color: '#781380' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_9: - name: 17Networks_RH_VisCent_ExStr_9 - lookupLabel: 461 - originalLookupLabel: 461 - center: - x: 17.0 - y: -80.0 - z: -13.0 - color: '#781381' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_10: - name: 17Networks_RH_VisCent_ExStr_10 - lookupLabel: 462 - originalLookupLabel: 462 - center: - x: 48.0 - y: -75.0 - z: -13.0 - color: '#781382' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_11: - name: 17Networks_RH_VisCent_ExStr_11 - lookupLabel: 463 - originalLookupLabel: 463 - center: - x: 20.0 - y: -88.0 - z: -12.0 - color: '#781383' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_12: - name: 17Networks_RH_VisCent_ExStr_12 - lookupLabel: 464 - originalLookupLabel: 464 - center: - x: 27.0 - y: -95.0 - z: -14.0 - color: '#781384' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_13: - name: 17Networks_RH_VisCent_ExStr_13 - lookupLabel: 465 - originalLookupLabel: 465 - center: - x: 15.0 - y: -96.0 - z: -13.0 - color: '#781385' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_14: - name: 17Networks_RH_VisCent_ExStr_14 - lookupLabel: 466 - originalLookupLabel: 466 - center: - x: 41.0 - y: -87.0 - z: -9.0 - color: '#781386' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_15: - name: 17Networks_RH_VisCent_ExStr_15 - lookupLabel: 467 - originalLookupLabel: 467 - center: - x: 5.0 - y: -87.0 - z: -9.0 - color: '#781389' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_16: - name: 17Networks_RH_VisCent_ExStr_16 - lookupLabel: 468 - originalLookupLabel: 468 - center: - x: 49.0 - y: -75.0 - z: -5.0 - color: '#78138a' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_17: - name: 17Networks_RH_VisCent_ExStr_17 - lookupLabel: 469 - originalLookupLabel: 469 - center: - x: 33.0 - y: -93.0 - z: -4.0 - color: '#78138b' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_18: - name: 17Networks_RH_VisCent_ExStr_18 - lookupLabel: 470 - originalLookupLabel: 470 - center: - x: 45.0 - y: -68.0 - z: -1.0 - color: '#78138c' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_19: - name: 17Networks_RH_VisCent_ExStr_19 - lookupLabel: 471 - originalLookupLabel: 471 - center: - x: 43.0 - y: -85.0 - z: -2.0 - color: '#78138d' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_20: - name: 17Networks_RH_VisCent_ExStr_20 - lookupLabel: 472 - originalLookupLabel: 472 - center: - x: 52.0 - y: -74.0 - z: 2.0 - color: '#78138e' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_21: - name: 17Networks_RH_VisCent_ExStr_21 - lookupLabel: 473 - originalLookupLabel: 473 - center: - x: 25.0 - y: -99.0 - z: 3.0 - color: '#781487' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_22: - name: 17Networks_RH_VisCent_ExStr_22 - lookupLabel: 474 - originalLookupLabel: 474 - center: - x: 34.0 - y: -89.0 - z: 4.0 - color: '#781488' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_23: - name: 17Networks_RH_VisCent_ExStr_23 - lookupLabel: 475 - originalLookupLabel: 475 - center: - x: 16.0 - y: -100.0 - z: 13.0 - color: '#781489' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_24: - name: 17Networks_RH_VisCent_ExStr_24 - lookupLabel: 476 - originalLookupLabel: 476 - center: - x: 45.0 - y: -78.0 - z: 7.0 - color: '#78148a' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_25: - name: 17Networks_RH_VisCent_ExStr_25 - lookupLabel: 477 - originalLookupLabel: 477 - center: - x: 28.0 - y: -95.0 - z: 14.0 - color: '#78148b' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_26: - name: 17Networks_RH_VisCent_ExStr_26 - lookupLabel: 478 - originalLookupLabel: 478 - center: - x: 7.0 - y: -94.0 - z: 16.0 - color: '#78148c' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_27: - name: 17Networks_RH_VisCent_ExStr_27 - lookupLabel: 479 - originalLookupLabel: 479 - center: - x: 37.0 - y: -84.0 - z: 10.0 - color: '#78148d' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_28: - name: 17Networks_RH_VisCent_ExStr_28 - lookupLabel: 480 - originalLookupLabel: 480 - center: - x: 16.0 - y: -94.0 - z: 21.0 - color: '#78148e' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_29: - name: 17Networks_RH_VisCent_ExStr_29 - lookupLabel: 481 - originalLookupLabel: 481 - center: - x: 29.0 - y: -88.0 - z: 18.0 - color: '#781587' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_30: - name: 17Networks_RH_VisCent_ExStr_30 - lookupLabel: 482 - originalLookupLabel: 482 - center: - x: 21.0 - y: -87.0 - z: 29.0 - color: '#781588' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisCent_ExStr_31: - name: 17Networks_RH_VisCent_ExStr_31 - lookupLabel: 483 - originalLookupLabel: 483 - center: - x: 30.0 - y: -78.0 - z: 26.0 - color: '#781589' - hemisphere: right - hasParent: - - RH_VisCent - 17Networks_RH_VisPeri_StriCal_1: - name: 17Networks_RH_VisPeri_StriCal_1 - lookupLabel: 484 - originalLookupLabel: 484 - center: - x: 4.0 - y: -76.0 - z: 3.0 - color: '#ff0100' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_2: - name: 17Networks_RH_VisPeri_StriCal_2 - lookupLabel: 485 - originalLookupLabel: 485 - center: - x: 11.0 - y: -62.0 - z: 6.0 - color: '#ff0102' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_3: - name: 17Networks_RH_VisPeri_StriCal_3 - lookupLabel: 486 - originalLookupLabel: 486 - center: - x: 8.0 - y: -86.0 - z: 3.0 - color: '#ff0103' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_4: - name: 17Networks_RH_VisPeri_StriCal_4 - lookupLabel: 487 - originalLookupLabel: 487 - center: - x: 20.0 - y: -69.0 - z: 6.0 - color: '#ff0104' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_5: - name: 17Networks_RH_VisPeri_StriCal_5 - lookupLabel: 488 - originalLookupLabel: 488 - center: - x: 23.0 - y: -58.0 - z: 6.0 - color: '#ff0105' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_StriCal_6: - name: 17Networks_RH_VisPeri_StriCal_6 - lookupLabel: 489 - originalLookupLabel: 489 - center: - x: 11.0 - y: -73.0 - z: 11.0 - color: '#ff0106' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_1: - name: 17Networks_RH_VisPeri_ExStrInf_1 - lookupLabel: 490 - originalLookupLabel: 490 - center: - x: 24.0 - y: -57.0 - z: -8.0 - color: '#fe0001' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_2: - name: 17Networks_RH_VisPeri_ExStrInf_2 - lookupLabel: 491 - originalLookupLabel: 491 - center: - x: 25.0 - y: -46.0 - z: -8.0 - color: '#fe0002' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_3: - name: 17Networks_RH_VisPeri_ExStrInf_3 - lookupLabel: 492 - originalLookupLabel: 492 - center: - x: 15.0 - y: -48.0 - z: -8.0 - color: '#fe0003' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_4: - name: 17Networks_RH_VisPeri_ExStrInf_4 - lookupLabel: 493 - originalLookupLabel: 493 - center: - x: 15.0 - y: -61.0 - z: -5.0 - color: '#fe0004' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_5: - name: 17Networks_RH_VisPeri_ExStrInf_5 - lookupLabel: 494 - originalLookupLabel: 494 - center: - x: 9.0 - y: -74.0 - z: -6.0 - color: '#fe0005' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_6: - name: 17Networks_RH_VisPeri_ExStrInf_6 - lookupLabel: 495 - originalLookupLabel: 495 - center: - x: 6.0 - y: -67.0 - z: 1.0 - color: '#fe0006' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_7: - name: 17Networks_RH_VisPeri_ExStrInf_7 - lookupLabel: 496 - originalLookupLabel: 496 - center: - x: 16.0 - y: -40.0 - z: -5.0 - color: '#fe0007' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_8: - name: 17Networks_RH_VisPeri_ExStrInf_8 - lookupLabel: 497 - originalLookupLabel: 497 - center: - x: 14.0 - y: -55.0 - z: 1.0 - color: '#fe0100' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrInf_9: - name: 17Networks_RH_VisPeri_ExStrInf_9 - lookupLabel: 498 - originalLookupLabel: 498 - center: - x: 21.0 - y: -49.0 - z: 0.0 - color: '#fe0101' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_1: - name: 17Networks_RH_VisPeri_ExStrSup_1 - lookupLabel: 499 - originalLookupLabel: 499 - center: - x: 5.0 - y: -85.0 - z: 11.0 - color: '#fe0000' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_2: - name: 17Networks_RH_VisPeri_ExStrSup_2 - lookupLabel: 500 - originalLookupLabel: 500 - center: - x: 20.0 - y: -61.0 - z: 15.0 - color: '#fe0008' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_3: - name: 17Networks_RH_VisPeri_ExStrSup_3 - lookupLabel: 501 - originalLookupLabel: 501 - center: - x: 5.0 - y: -81.0 - z: 24.0 - color: '#fe0102' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_4: - name: 17Networks_RH_VisPeri_ExStrSup_4 - lookupLabel: 502 - originalLookupLabel: 502 - center: - x: 8.0 - y: -68.0 - z: 20.0 - color: '#fe0103' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_5: - name: 17Networks_RH_VisPeri_ExStrSup_5 - lookupLabel: 503 - originalLookupLabel: 503 - center: - x: 17.0 - y: -71.0 - z: 24.0 - color: '#fe0104' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_6: - name: 17Networks_RH_VisPeri_ExStrSup_6 - lookupLabel: 504 - originalLookupLabel: 504 - center: - x: 8.0 - y: -89.0 - z: 32.0 - color: '#fe0105' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_7: - name: 17Networks_RH_VisPeri_ExStrSup_7 - lookupLabel: 505 - originalLookupLabel: 505 - center: - x: 10.0 - y: -78.0 - z: 33.0 - color: '#fe0106' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_8: - name: 17Networks_RH_VisPeri_ExStrSup_8 - lookupLabel: 506 - originalLookupLabel: 506 - center: - x: 19.0 - y: -86.0 - z: 41.0 - color: '#fe0107' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_VisPeri_ExStrSup_9: - name: 17Networks_RH_VisPeri_ExStrSup_9 - lookupLabel: 507 - originalLookupLabel: 507 - center: - x: 18.0 - y: -79.0 - z: 38.0 - color: '#fe0108' - hemisphere: right - hasParent: - - RH_VisPeri - 17Networks_RH_SomMotA_1: - name: 17Networks_RH_SomMotA_1 - lookupLabel: 508 - originalLookupLabel: 508 - center: - x: 56.0 - y: -16.0 - z: 41.0 - color: '#4681b2' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_2: - name: 17Networks_RH_SomMotA_2 - lookupLabel: 509 - originalLookupLabel: 509 - center: - x: 54.0 - y: -19.0 - z: 50.0 - color: '#4681b3' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_3: - name: 17Networks_RH_SomMotA_3 - lookupLabel: 510 - originalLookupLabel: 510 - center: - x: 50.0 - y: -13.0 - z: 49.0 - color: '#4681b4' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_4: - name: 17Networks_RH_SomMotA_4 - lookupLabel: 511 - originalLookupLabel: 511 - center: - x: 11.0 - y: -9.0 - z: 46.0 - color: '#4681b5' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_5: - name: 17Networks_RH_SomMotA_5 - lookupLabel: 512 - originalLookupLabel: 512 - center: - x: 45.0 - y: -10.0 - z: 49.0 - color: '#4682ae' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_6: - name: 17Networks_RH_SomMotA_6 - lookupLabel: 513 - originalLookupLabel: 513 - center: - x: 52.0 - y: -18.0 - z: 58.0 - color: '#4682af' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_7: - name: 17Networks_RH_SomMotA_7 - lookupLabel: 514 - originalLookupLabel: 514 - center: - x: 49.0 - y: -27.0 - z: 56.0 - color: '#4682b0' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_8: - name: 17Networks_RH_SomMotA_8 - lookupLabel: 515 - originalLookupLabel: 515 - center: - x: 39.0 - y: -19.0 - z: 47.0 - color: '#4682b1' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_9: - name: 17Networks_RH_SomMotA_9 - lookupLabel: 516 - originalLookupLabel: 516 - center: - x: 6.0 - y: -1.0 - z: 55.0 - color: '#4682b2' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_10: - name: 17Networks_RH_SomMotA_10 - lookupLabel: 517 - originalLookupLabel: 517 - center: - x: 7.0 - y: -15.0 - z: 51.0 - color: '#4682b3' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_11: - name: 17Networks_RH_SomMotA_11 - lookupLabel: 518 - originalLookupLabel: 518 - center: - x: 44.0 - y: -23.0 - z: 58.0 - color: '#4682b4' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_12: - name: 17Networks_RH_SomMotA_12 - lookupLabel: 519 - originalLookupLabel: 519 - center: - x: 41.0 - y: -15.0 - z: 59.0 - color: '#4682b5' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_13: - name: 17Networks_RH_SomMotA_13 - lookupLabel: 520 - originalLookupLabel: 520 - center: - x: 40.0 - y: -33.0 - z: 61.0 - color: '#4683ae' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_14: - name: 17Networks_RH_SomMotA_14 - lookupLabel: 521 - originalLookupLabel: 521 - center: - x: 8.0 - y: -35.0 - z: 53.0 - color: '#4683af' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_15: - name: 17Networks_RH_SomMotA_15 - lookupLabel: 522 - originalLookupLabel: 522 - center: - x: 34.0 - y: -23.0 - z: 54.0 - color: '#4683b0' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_16: - name: 17Networks_RH_SomMotA_16 - lookupLabel: 523 - originalLookupLabel: 523 - center: - x: 4.0 - y: -20.0 - z: 57.0 - color: '#4683b1' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_17: - name: 17Networks_RH_SomMotA_17 - lookupLabel: 524 - originalLookupLabel: 524 - center: - x: 29.0 - y: -34.0 - z: 64.0 - color: '#4683b2' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_18: - name: 17Networks_RH_SomMotA_18 - lookupLabel: 525 - originalLookupLabel: 525 - center: - x: 31.0 - y: -41.0 - z: 66.0 - color: '#4683b3' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_19: - name: 17Networks_RH_SomMotA_19 - lookupLabel: 526 - originalLookupLabel: 526 - center: - x: 34.0 - y: -28.0 - z: 64.0 - color: '#4683b4' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_20: - name: 17Networks_RH_SomMotA_20 - lookupLabel: 527 - originalLookupLabel: 527 - center: - x: 7.0 - y: -39.0 - z: 61.0 - color: '#4683b6' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_21: - name: 17Networks_RH_SomMotA_21 - lookupLabel: 528 - originalLookupLabel: 528 - center: - x: 34.0 - y: -19.0 - z: 68.0 - color: '#4683b7' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_22: - name: 17Networks_RH_SomMotA_22 - lookupLabel: 529 - originalLookupLabel: 529 - center: - x: 28.0 - y: -12.0 - z: 65.0 - color: '#4683b8' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_23: - name: 17Networks_RH_SomMotA_23 - lookupLabel: 530 - originalLookupLabel: 530 - center: - x: 26.0 - y: -25.0 - z: 57.0 - color: '#4683b9' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_24: - name: 17Networks_RH_SomMotA_24 - lookupLabel: 531 - originalLookupLabel: 531 - center: - x: 4.0 - y: -29.0 - z: 63.0 - color: '#4683ba' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_25: - name: 17Networks_RH_SomMotA_25 - lookupLabel: 532 - originalLookupLabel: 532 - center: - x: 24.0 - y: -28.0 - z: 68.0 - color: '#4683bb' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_26: - name: 17Networks_RH_SomMotA_26 - lookupLabel: 533 - originalLookupLabel: 533 - center: - x: 5.0 - y: -12.0 - z: 70.0 - color: '#4683bc' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_27: - name: 17Networks_RH_SomMotA_27 - lookupLabel: 534 - originalLookupLabel: 534 - center: - x: 22.0 - y: -45.0 - z: 68.0 - color: '#4684b5' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_28: - name: 17Networks_RH_SomMotA_28 - lookupLabel: 535 - originalLookupLabel: 535 - center: - x: 23.0 - y: -34.0 - z: 70.0 - color: '#4684b6' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_29: - name: 17Networks_RH_SomMotA_29 - lookupLabel: 536 - originalLookupLabel: 536 - center: - x: 23.0 - y: -23.0 - z: 70.0 - color: '#4684b7' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_30: - name: 17Networks_RH_SomMotA_30 - lookupLabel: 537 - originalLookupLabel: 537 - center: - x: 20.0 - y: -12.0 - z: 70.0 - color: '#4684b8' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_31: - name: 17Networks_RH_SomMotA_31 - lookupLabel: 538 - originalLookupLabel: 538 - center: - x: 10.0 - y: -40.0 - z: 71.0 - color: '#4684b9' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_32: - name: 17Networks_RH_SomMotA_32 - lookupLabel: 539 - originalLookupLabel: 539 - center: - x: 18.0 - y: -27.0 - z: 63.0 - color: '#4684ba' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_33: - name: 17Networks_RH_SomMotA_33 - lookupLabel: 540 - originalLookupLabel: 540 - center: - x: 16.0 - y: -45.0 - z: 77.0 - color: '#4684bb' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_34: - name: 17Networks_RH_SomMotA_34 - lookupLabel: 541 - originalLookupLabel: 541 - center: - x: 12.0 - y: -11.0 - z: 71.0 - color: '#4684bc' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_35: - name: 17Networks_RH_SomMotA_35 - lookupLabel: 542 - originalLookupLabel: 542 - center: - x: 4.0 - y: -31.0 - z: 72.0 - color: '#4685b5' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_36: - name: 17Networks_RH_SomMotA_36 - lookupLabel: 543 - originalLookupLabel: 543 - center: - x: 7.0 - y: -21.0 - z: 75.0 - color: '#4685b6' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_37: - name: 17Networks_RH_SomMotA_37 - lookupLabel: 544 - originalLookupLabel: 544 - center: - x: 14.0 - y: -17.0 - z: 76.0 - color: '#4685b7' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_38: - name: 17Networks_RH_SomMotA_38 - lookupLabel: 545 - originalLookupLabel: 545 - center: - x: 19.0 - y: -35.0 - z: 77.0 - color: '#4685b8' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_39: - name: 17Networks_RH_SomMotA_39 - lookupLabel: 546 - originalLookupLabel: 546 - center: - x: 15.0 - y: -31.0 - z: 72.0 - color: '#4685b9' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_40: - name: 17Networks_RH_SomMotA_40 - lookupLabel: 547 - originalLookupLabel: 547 - center: - x: 13.0 - y: -26.0 - z: 72.0 - color: '#4685ba' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotA_41: - name: 17Networks_RH_SomMotA_41 - lookupLabel: 548 - originalLookupLabel: 548 - center: - x: 9.0 - y: -33.0 - z: 77.0 - color: '#4685bb' - hemisphere: right - hasParent: - - RH_SomMotA - 17Networks_RH_SomMotB_Cent_1: - name: 17Networks_RH_SomMotB_Cent_1 - lookupLabel: 549 - originalLookupLabel: 549 - center: - x: 62.0 - y: 2.0 - z: 17.0 - color: '#2bcca2' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_2: - name: 17Networks_RH_SomMotB_Cent_2 - lookupLabel: 550 - originalLookupLabel: 550 - center: - x: 64.0 - y: -5.0 - z: 23.0 - color: '#2bcca3' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_3: - name: 17Networks_RH_SomMotB_Cent_3 - lookupLabel: 551 - originalLookupLabel: 551 - center: - x: 64.0 - y: -12.0 - z: 26.0 - color: '#2bcca4' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_4: - name: 17Networks_RH_SomMotB_Cent_4 - lookupLabel: 552 - originalLookupLabel: 552 - center: - x: 60.0 - y: 2.0 - z: 26.0 - color: '#2bcca6' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_5: - name: 17Networks_RH_SomMotB_Cent_5 - lookupLabel: 553 - originalLookupLabel: 553 - center: - x: 62.0 - y: -11.0 - z: 35.0 - color: '#2bcca7' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_6: - name: 17Networks_RH_SomMotB_Cent_6 - lookupLabel: 554 - originalLookupLabel: 554 - center: - x: 55.0 - y: -8.0 - z: 34.0 - color: '#2bcca8' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_7: - name: 17Networks_RH_SomMotB_Cent_7 - lookupLabel: 555 - originalLookupLabel: 555 - center: - x: 53.0 - y: -5.0 - z: 37.0 - color: '#2bcca9' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_8: - name: 17Networks_RH_SomMotB_Cent_8 - lookupLabel: 556 - originalLookupLabel: 556 - center: - x: 59.0 - y: -11.0 - z: 46.0 - color: '#2bccaa' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Cent_9: - name: 17Networks_RH_SomMotB_Cent_9 - lookupLabel: 557 - originalLookupLabel: 557 - center: - x: 42.0 - y: -16.0 - z: 39.0 - color: '#2bccab' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_1: - name: 17Networks_RH_SomMotB_S2_1 - lookupLabel: 558 - originalLookupLabel: 558 - center: - x: 37.0 - y: -9.0 - z: 12.0 - color: '#2bcda0' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_2: - name: 17Networks_RH_SomMotB_S2_2 - lookupLabel: 559 - originalLookupLabel: 559 - center: - x: 41.0 - y: -1.0 - z: 15.0 - color: '#2bcda1' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_3: - name: 17Networks_RH_SomMotB_S2_3 - lookupLabel: 560 - originalLookupLabel: 560 - center: - x: 37.0 - y: -11.0 - z: 18.0 - color: '#2bcda2' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_4: - name: 17Networks_RH_SomMotB_S2_4 - lookupLabel: 561 - originalLookupLabel: 561 - center: - x: 35.0 - y: -20.0 - z: 18.0 - color: '#2bcda3' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_5: - name: 17Networks_RH_SomMotB_S2_5 - lookupLabel: 562 - originalLookupLabel: 562 - center: - x: 43.0 - y: -12.0 - z: 17.0 - color: '#2bcda5' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_6: - name: 17Networks_RH_SomMotB_S2_6 - lookupLabel: 563 - originalLookupLabel: 563 - center: - x: 50.0 - y: -9.0 - z: 12.0 - color: '#2bcda6' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_7: - name: 17Networks_RH_SomMotB_S2_7 - lookupLabel: 564 - originalLookupLabel: 564 - center: - x: 40.0 - y: -27.0 - z: 20.0 - color: '#2bcda7' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_8: - name: 17Networks_RH_SomMotB_S2_8 - lookupLabel: 565 - originalLookupLabel: 565 - center: - x: 59.0 - y: -1.0 - z: 11.0 - color: '#2bcda8' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_9: - name: 17Networks_RH_SomMotB_S2_9 - lookupLabel: 566 - originalLookupLabel: 566 - center: - x: 49.0 - y: -20.0 - z: 18.0 - color: '#2bcda9' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_10: - name: 17Networks_RH_SomMotB_S2_10 - lookupLabel: 567 - originalLookupLabel: 567 - center: - x: 57.0 - y: -13.0 - z: 16.0 - color: '#2bcdaa' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_S2_11: - name: 17Networks_RH_SomMotB_S2_11 - lookupLabel: 568 - originalLookupLabel: 568 - center: - x: 66.0 - y: -10.0 - z: 15.0 - color: '#2bcdab' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Ins_1: - name: 17Networks_RH_SomMotB_Ins_1 - lookupLabel: 569 - originalLookupLabel: 569 - center: - x: 37.0 - y: -17.0 - z: 7.0 - color: '#2bcdac' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_1: - name: 17Networks_RH_SomMotB_Aud_1 - lookupLabel: 570 - originalLookupLabel: 570 - center: - x: 51.0 - y: 11.0 - z: -9.0 - color: '#2acc9f' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_2: - name: 17Networks_RH_SomMotB_Aud_2 - lookupLabel: 571 - originalLookupLabel: 571 - center: - x: 55.0 - y: 1.0 - z: -3.0 - color: '#2acca0' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_3: - name: 17Networks_RH_SomMotB_Aud_3 - lookupLabel: 572 - originalLookupLabel: 572 - center: - x: 47.0 - y: -8.0 - z: -7.0 - color: '#2acca1' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_4: - name: 17Networks_RH_SomMotB_Aud_4 - lookupLabel: 573 - originalLookupLabel: 573 - center: - x: 57.0 - y: -10.0 - z: 4.0 - color: '#2acca2' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_5: - name: 17Networks_RH_SomMotB_Aud_5 - lookupLabel: 574 - originalLookupLabel: 574 - center: - x: 44.0 - y: -17.0 - z: 0.0 - color: '#2acca4' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_6: - name: 17Networks_RH_SomMotB_Aud_6 - lookupLabel: 575 - originalLookupLabel: 575 - center: - x: 40.0 - y: -21.0 - z: 6.0 - color: '#2acca5' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_7: - name: 17Networks_RH_SomMotB_Aud_7 - lookupLabel: 576 - originalLookupLabel: 576 - center: - x: 48.0 - y: -21.0 - z: 9.0 - color: '#2acca6' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_8: - name: 17Networks_RH_SomMotB_Aud_8 - lookupLabel: 577 - originalLookupLabel: 577 - center: - x: 35.0 - y: -22.0 - z: 12.0 - color: '#2acca7' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_9: - name: 17Networks_RH_SomMotB_Aud_9 - lookupLabel: 578 - originalLookupLabel: 578 - center: - x: 61.0 - y: -23.0 - z: 10.0 - color: '#2acca8' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_10: - name: 17Networks_RH_SomMotB_Aud_10 - lookupLabel: 579 - originalLookupLabel: 579 - center: - x: 41.0 - y: -29.0 - z: 13.0 - color: '#2acca9' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_11: - name: 17Networks_RH_SomMotB_Aud_11 - lookupLabel: 580 - originalLookupLabel: 580 - center: - x: 67.0 - y: -30.0 - z: 14.0 - color: '#2accaa' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_SomMotB_Aud_12: - name: 17Networks_RH_SomMotB_Aud_12 - lookupLabel: 581 - originalLookupLabel: 581 - center: - x: 50.0 - y: -32.0 - z: 18.0 - color: '#2acda3' - hemisphere: right - hasParent: - - RH_SomMotB - 17Networks_RH_DorsAttnA_TempOcc_1: - name: 17Networks_RH_DorsAttnA_TempOcc_1 - lookupLabel: 582 - originalLookupLabel: 582 - center: - x: 49.0 - y: -37.0 - z: -22.0 - color: '#4a9c39' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_2: - name: 17Networks_RH_DorsAttnA_TempOcc_2 - lookupLabel: 583 - originalLookupLabel: 583 - center: - x: 32.0 - y: -36.0 - z: -23.0 - color: '#4a9c3a' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_3: - name: 17Networks_RH_DorsAttnA_TempOcc_3 - lookupLabel: 584 - originalLookupLabel: 584 - center: - x: 46.0 - y: -45.0 - z: -19.0 - color: '#4a9c3b' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_4: - name: 17Networks_RH_DorsAttnA_TempOcc_4 - lookupLabel: 585 - originalLookupLabel: 585 - center: - x: 33.0 - y: -39.0 - z: -13.0 - color: '#4a9c3c' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_5: - name: 17Networks_RH_DorsAttnA_TempOcc_5 - lookupLabel: 586 - originalLookupLabel: 586 - center: - x: 55.0 - y: -48.0 - z: -20.0 - color: '#4a9c3e' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_6: - name: 17Networks_RH_DorsAttnA_TempOcc_6 - lookupLabel: 587 - originalLookupLabel: 587 - center: - x: 46.0 - y: -58.0 - z: -16.0 - color: '#4a9c3f' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_7: - name: 17Networks_RH_DorsAttnA_TempOcc_7 - lookupLabel: 588 - originalLookupLabel: 588 - center: - x: 50.0 - y: -59.0 - z: -11.0 - color: '#4a9c40' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_8: - name: 17Networks_RH_DorsAttnA_TempOcc_8 - lookupLabel: 589 - originalLookupLabel: 589 - center: - x: 57.0 - y: -56.0 - z: -10.0 - color: '#4a9c41' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_9: - name: 17Networks_RH_DorsAttnA_TempOcc_9 - lookupLabel: 590 - originalLookupLabel: 590 - center: - x: 49.0 - y: -63.0 - z: -5.0 - color: '#4a9c42' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_10: - name: 17Networks_RH_DorsAttnA_TempOcc_10 - lookupLabel: 591 - originalLookupLabel: 591 - center: - x: 51.0 - y: -58.0 - z: -1.0 - color: '#4a9c43' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_TempOcc_11: - name: 17Networks_RH_DorsAttnA_TempOcc_11 - lookupLabel: 592 - originalLookupLabel: 592 - center: - x: 47.0 - y: -61.0 - z: 5.0 - color: '#4a9c44' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_1: - name: 17Networks_RH_DorsAttnA_ParOcc_1 - lookupLabel: 593 - originalLookupLabel: 593 - center: - x: 50.0 - y: -67.0 - z: 8.0 - color: '#4b9b3a' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_2: - name: 17Networks_RH_DorsAttnA_ParOcc_2 - lookupLabel: 594 - originalLookupLabel: 594 - center: - x: 52.0 - y: -59.0 - z: 12.0 - color: '#4b9b3b' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_3: - name: 17Networks_RH_DorsAttnA_ParOcc_3 - lookupLabel: 595 - originalLookupLabel: 595 - center: - x: 47.0 - y: -63.0 - z: 16.0 - color: '#4b9b3d' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_4: - name: 17Networks_RH_DorsAttnA_ParOcc_4 - lookupLabel: 596 - originalLookupLabel: 596 - center: - x: 46.0 - y: -72.0 - z: 15.0 - color: '#4b9b3e' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_5: - name: 17Networks_RH_DorsAttnA_ParOcc_5 - lookupLabel: 597 - originalLookupLabel: 597 - center: - x: 49.0 - y: -57.0 - z: 19.0 - color: '#4b9b3f' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_6: - name: 17Networks_RH_DorsAttnA_ParOcc_6 - lookupLabel: 598 - originalLookupLabel: 598 - center: - x: 43.0 - y: -81.0 - z: 18.0 - color: '#4b9b40' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_7: - name: 17Networks_RH_DorsAttnA_ParOcc_7 - lookupLabel: 599 - originalLookupLabel: 599 - center: - x: 36.0 - y: -80.0 - z: 25.0 - color: '#4b9b41' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_ParOcc_8: - name: 17Networks_RH_DorsAttnA_ParOcc_8 - lookupLabel: 600 - originalLookupLabel: 600 - center: - x: 37.0 - y: -75.0 - z: 36.0 - color: '#4b9b42' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_1: - name: 17Networks_RH_DorsAttnA_SPL_1 - lookupLabel: 601 - originalLookupLabel: 601 - center: - x: 31.0 - y: -66.0 - z: 33.0 - color: '#4b9b38' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_2: - name: 17Networks_RH_DorsAttnA_SPL_2 - lookupLabel: 602 - originalLookupLabel: 602 - center: - x: 29.0 - y: -78.0 - z: 41.0 - color: '#4b9b39' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_3: - name: 17Networks_RH_DorsAttnA_SPL_3 - lookupLabel: 603 - originalLookupLabel: 603 - center: - x: 21.0 - y: -80.0 - z: 49.0 - color: '#4b9b3c' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_4: - name: 17Networks_RH_DorsAttnA_SPL_4 - lookupLabel: 604 - originalLookupLabel: 604 - center: - x: 23.0 - y: -69.0 - z: 48.0 - color: '#4b9b43' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_5: - name: 17Networks_RH_DorsAttnA_SPL_5 - lookupLabel: 605 - originalLookupLabel: 605 - center: - x: 28.0 - y: -64.0 - z: 52.0 - color: '#4b9b44' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_6: - name: 17Networks_RH_DorsAttnA_SPL_6 - lookupLabel: 606 - originalLookupLabel: 606 - center: - x: 16.0 - y: -75.0 - z: 52.0 - color: '#4b9c3d' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_7: - name: 17Networks_RH_DorsAttnA_SPL_7 - lookupLabel: 607 - originalLookupLabel: 607 - center: - x: 34.0 - y: -57.0 - z: 55.0 - color: '#4b9c3e' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_8: - name: 17Networks_RH_DorsAttnA_SPL_8 - lookupLabel: 608 - originalLookupLabel: 608 - center: - x: 33.0 - y: -47.0 - z: 49.0 - color: '#4b9c3f' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_9: - name: 17Networks_RH_DorsAttnA_SPL_9 - lookupLabel: 609 - originalLookupLabel: 609 - center: - x: 19.0 - y: -68.0 - z: 57.0 - color: '#4b9c40' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_10: - name: 17Networks_RH_DorsAttnA_SPL_10 - lookupLabel: 610 - originalLookupLabel: 610 - center: - x: 10.0 - y: -71.0 - z: 56.0 - color: '#4b9c41' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_11: - name: 17Networks_RH_DorsAttnA_SPL_11 - lookupLabel: 611 - originalLookupLabel: 611 - center: - x: 28.0 - y: -56.0 - z: 60.0 - color: '#4b9c42' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_12: - name: 17Networks_RH_DorsAttnA_SPL_12 - lookupLabel: 612 - originalLookupLabel: 612 - center: - x: 22.0 - y: -62.0 - z: 62.0 - color: '#4b9c43' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnA_SPL_13: - name: 17Networks_RH_DorsAttnA_SPL_13 - lookupLabel: 613 - originalLookupLabel: 613 - center: - x: 14.0 - y: -64.0 - z: 66.0 - color: '#4b9c44' - hemisphere: right - hasParent: - - RH_DorsAttnA - 17Networks_RH_DorsAttnB_TempOcc_1: - name: 17Networks_RH_DorsAttnB_TempOcc_1 - lookupLabel: 614 - originalLookupLabel: 614 - center: - x: 58.0 - y: -58.0 - z: 4.0 - color: '#01760f' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_1: - name: 17Networks_RH_DorsAttnB_PostC_1 - lookupLabel: 615 - originalLookupLabel: 615 - center: - x: 59.0 - y: -17.0 - z: 31.0 - color: '#017609' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_2: - name: 17Networks_RH_DorsAttnB_PostC_2 - lookupLabel: 616 - originalLookupLabel: 616 - center: - x: 57.0 - y: -22.0 - z: 43.0 - color: '#01760a' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_3: - name: 17Networks_RH_DorsAttnB_PostC_3 - lookupLabel: 617 - originalLookupLabel: 617 - center: - x: 56.0 - y: -28.0 - z: 53.0 - color: '#01760b' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_4: - name: 17Networks_RH_DorsAttnB_PostC_4 - lookupLabel: 618 - originalLookupLabel: 618 - center: - x: 49.0 - y: -21.0 - z: 40.0 - color: '#01760c' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_5: - name: 17Networks_RH_DorsAttnB_PostC_5 - lookupLabel: 619 - originalLookupLabel: 619 - center: - x: 45.0 - y: -29.0 - z: 44.0 - color: '#01760d' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_6: - name: 17Networks_RH_DorsAttnB_PostC_6 - lookupLabel: 620 - originalLookupLabel: 620 - center: - x: 41.0 - y: -36.0 - z: 53.0 - color: '#01760e' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_7: - name: 17Networks_RH_DorsAttnB_PostC_7 - lookupLabel: 621 - originalLookupLabel: 621 - center: - x: 35.0 - y: -33.0 - z: 47.0 - color: '#017610' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_8: - name: 17Networks_RH_DorsAttnB_PostC_8 - lookupLabel: 622 - originalLookupLabel: 622 - center: - x: 40.0 - y: -41.0 - z: 58.0 - color: '#017611' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_9: - name: 17Networks_RH_DorsAttnB_PostC_9 - lookupLabel: 623 - originalLookupLabel: 623 - center: - x: 6.0 - y: -52.0 - z: 55.0 - color: '#017612' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_10: - name: 17Networks_RH_DorsAttnB_PostC_10 - lookupLabel: 624 - originalLookupLabel: 624 - center: - x: 33.0 - y: -39.0 - z: 57.0 - color: '#017613' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_11: - name: 17Networks_RH_DorsAttnB_PostC_11 - lookupLabel: 625 - originalLookupLabel: 625 - center: - x: 38.0 - y: -48.0 - z: 62.0 - color: '#017614' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_12: - name: 17Networks_RH_DorsAttnB_PostC_12 - lookupLabel: 626 - originalLookupLabel: 626 - center: - x: 8.0 - y: -60.0 - z: 61.0 - color: '#017615' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_13: - name: 17Networks_RH_DorsAttnB_PostC_13 - lookupLabel: 627 - originalLookupLabel: 627 - center: - x: 30.0 - y: -49.0 - z: 69.0 - color: '#017616' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_14: - name: 17Networks_RH_DorsAttnB_PostC_14 - lookupLabel: 628 - originalLookupLabel: 628 - center: - x: 22.0 - y: -55.0 - z: 70.0 - color: '#01770f' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_15: - name: 17Networks_RH_DorsAttnB_PostC_15 - lookupLabel: 629 - originalLookupLabel: 629 - center: - x: 8.0 - y: -48.0 - z: 69.0 - color: '#017710' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PostC_16: - name: 17Networks_RH_DorsAttnB_PostC_16 - lookupLabel: 630 - originalLookupLabel: 630 - center: - x: 14.0 - y: -53.0 - z: 69.0 - color: '#017711' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_1: - name: 17Networks_RH_DorsAttnB_FEF_1 - lookupLabel: 631 - originalLookupLabel: 631 - center: - x: 41.0 - y: -3.0 - z: 50.0 - color: '#01770d' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_2: - name: 17Networks_RH_DorsAttnB_FEF_2 - lookupLabel: 632 - originalLookupLabel: 632 - center: - x: 30.0 - y: -2.0 - z: 50.0 - color: '#017712' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_3: - name: 17Networks_RH_DorsAttnB_FEF_3 - lookupLabel: 633 - originalLookupLabel: 633 - center: - x: 41.0 - y: -5.0 - z: 61.0 - color: '#017713' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_4: - name: 17Networks_RH_DorsAttnB_FEF_4 - lookupLabel: 634 - originalLookupLabel: 634 - center: - x: 33.0 - y: -8.0 - z: 59.0 - color: '#017714' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_5: - name: 17Networks_RH_DorsAttnB_FEF_5 - lookupLabel: 635 - originalLookupLabel: 635 - center: - x: 26.0 - y: -7.0 - z: 53.0 - color: '#017715' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_FEF_6: - name: 17Networks_RH_DorsAttnB_FEF_6 - lookupLabel: 636 - originalLookupLabel: 636 - center: - x: 25.0 - y: -3.0 - z: 63.0 - color: '#01780e' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PrCv_1: - name: 17Networks_RH_DorsAttnB_PrCv_1 - lookupLabel: 637 - originalLookupLabel: 637 - center: - x: 57.0 - y: 10.0 - z: 27.0 - color: '#017716' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_DorsAttnB_PrCv_2: - name: 17Networks_RH_DorsAttnB_PrCv_2 - lookupLabel: 638 - originalLookupLabel: 638 - center: - x: 53.0 - y: 5.0 - z: 37.0 - color: '#01780f' - hemisphere: right - hasParent: - - RH_DorsAttnB - 17Networks_RH_SalVentAttnA_ParOper_1: - name: 17Networks_RH_SalVentAttnA_ParOper_1 - lookupLabel: 639 - originalLookupLabel: 639 - center: - x: 62.0 - y: -32.0 - z: 22.0 - color: '#c43af8' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_2: - name: 17Networks_RH_SalVentAttnA_ParOper_2 - lookupLabel: 640 - originalLookupLabel: 640 - center: - x: 50.0 - y: -29.0 - z: 26.0 - color: '#c43afa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_3: - name: 17Networks_RH_SalVentAttnA_ParOper_3 - lookupLabel: 641 - originalLookupLabel: 641 - center: - x: 61.0 - y: -22.0 - z: 22.0 - color: '#c43afb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_4: - name: 17Networks_RH_SalVentAttnA_ParOper_4 - lookupLabel: 642 - originalLookupLabel: 642 - center: - x: 57.0 - y: -28.0 - z: 33.0 - color: '#c43afc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_5: - name: 17Networks_RH_SalVentAttnA_ParOper_5 - lookupLabel: 643 - originalLookupLabel: 643 - center: - x: 64.0 - y: -30.0 - z: 34.0 - color: '#c43afd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParOper_6: - name: 17Networks_RH_SalVentAttnA_ParOper_6 - lookupLabel: 644 - originalLookupLabel: 644 - center: - x: 64.0 - y: -24.0 - z: 40.0 - color: '#c43afe' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_PrC_1: - name: 17Networks_RH_SalVentAttnA_PrC_1 - lookupLabel: 645 - originalLookupLabel: 645 - center: - x: 53.0 - y: 0.0 - z: 47.0 - color: '#c439fb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_1: - name: 17Networks_RH_SalVentAttnA_FrOper_1 - lookupLabel: 646 - originalLookupLabel: 646 - center: - x: 42.0 - y: 10.0 - z: 7.0 - color: '#c439f8' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_2: - name: 17Networks_RH_SalVentAttnA_FrOper_2 - lookupLabel: 647 - originalLookupLabel: 647 - center: - x: 49.0 - y: 9.0 - z: 0.0 - color: '#c439fa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_3: - name: 17Networks_RH_SalVentAttnA_FrOper_3 - lookupLabel: 648 - originalLookupLabel: 648 - center: - x: 46.0 - y: -2.0 - z: 8.0 - color: '#c439fc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_4: - name: 17Networks_RH_SalVentAttnA_FrOper_4 - lookupLabel: 649 - originalLookupLabel: 649 - center: - x: 56.0 - y: 3.0 - z: 5.0 - color: '#c439fd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_5: - name: 17Networks_RH_SalVentAttnA_FrOper_5 - lookupLabel: 650 - originalLookupLabel: 650 - center: - x: 54.0 - y: 10.0 - z: 12.0 - color: '#c439fe' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrOper_6: - name: 17Networks_RH_SalVentAttnA_FrOper_6 - lookupLabel: 651 - originalLookupLabel: 651 - center: - x: 61.0 - y: 9.0 - z: 16.0 - color: '#c439ff' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_1: - name: 17Networks_RH_SalVentAttnA_Ins_1 - lookupLabel: 652 - originalLookupLabel: 652 - center: - x: 38.0 - y: 7.0 - z: -15.0 - color: '#c33af7' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_2: - name: 17Networks_RH_SalVentAttnA_Ins_2 - lookupLabel: 653 - originalLookupLabel: 653 - center: - x: 46.0 - y: 7.0 - z: -15.0 - color: '#c33af8' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_3: - name: 17Networks_RH_SalVentAttnA_Ins_3 - lookupLabel: 654 - originalLookupLabel: 654 - center: - x: 40.0 - y: 2.0 - z: -11.0 - color: '#c33af9' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_4: - name: 17Networks_RH_SalVentAttnA_Ins_4 - lookupLabel: 655 - originalLookupLabel: 655 - center: - x: 41.0 - y: -7.0 - z: -8.0 - color: '#c33afb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_5: - name: 17Networks_RH_SalVentAttnA_Ins_5 - lookupLabel: 656 - originalLookupLabel: 656 - center: - x: 40.0 - y: 9.0 - z: -2.0 - color: '#c33afc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_6: - name: 17Networks_RH_SalVentAttnA_Ins_6 - lookupLabel: 657 - originalLookupLabel: 657 - center: - x: 40.0 - y: -12.0 - z: 0.0 - color: '#c33afd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_7: - name: 17Networks_RH_SalVentAttnA_Ins_7 - lookupLabel: 658 - originalLookupLabel: 658 - center: - x: 38.0 - y: 1.0 - z: 6.0 - color: '#c33afe' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_8: - name: 17Networks_RH_SalVentAttnA_Ins_8 - lookupLabel: 659 - originalLookupLabel: 659 - center: - x: 35.0 - y: 16.0 - z: 10.0 - color: '#c33aff' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_Ins_9: - name: 17Networks_RH_SalVentAttnA_Ins_9 - lookupLabel: 660 - originalLookupLabel: 660 - center: - x: 36.0 - y: 5.0 - z: 12.0 - color: '#c033fa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_1: - name: 17Networks_RH_SalVentAttnA_ParMed_1 - lookupLabel: 661 - originalLookupLabel: 661 - center: - x: 9.0 - y: -27.0 - z: 41.0 - color: '#c33af5' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_2: - name: 17Networks_RH_SalVentAttnA_ParMed_2 - lookupLabel: 662 - originalLookupLabel: 662 - center: - x: 10.0 - y: -14.0 - z: 40.0 - color: '#c33af6' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_3: - name: 17Networks_RH_SalVentAttnA_ParMed_3 - lookupLabel: 663 - originalLookupLabel: 663 - center: - x: 10.0 - y: -37.0 - z: 44.0 - color: '#c33afa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_4: - name: 17Networks_RH_SalVentAttnA_ParMed_4 - lookupLabel: 664 - originalLookupLabel: 664 - center: - x: 15.0 - y: -29.0 - z: 40.0 - color: '#c033f9' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_5: - name: 17Networks_RH_SalVentAttnA_ParMed_5 - lookupLabel: 665 - originalLookupLabel: 665 - center: - x: 13.0 - y: -20.0 - z: 43.0 - color: '#c034f2' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_6: - name: 17Networks_RH_SalVentAttnA_ParMed_6 - lookupLabel: 666 - originalLookupLabel: 666 - center: - x: 10.0 - y: -41.0 - z: 48.0 - color: '#c034f3' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_7: - name: 17Networks_RH_SalVentAttnA_ParMed_7 - lookupLabel: 667 - originalLookupLabel: 667 - center: - x: 16.0 - y: -35.0 - z: 47.0 - color: '#c034f4' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_8: - name: 17Networks_RH_SalVentAttnA_ParMed_8 - lookupLabel: 668 - originalLookupLabel: 668 - center: - x: 6.0 - y: -44.0 - z: 53.0 - color: '#c034f5' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_9: - name: 17Networks_RH_SalVentAttnA_ParMed_9 - lookupLabel: 669 - originalLookupLabel: 669 - center: - x: 10.0 - y: -27.0 - z: 48.0 - color: '#c034f6' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_10: - name: 17Networks_RH_SalVentAttnA_ParMed_10 - lookupLabel: 670 - originalLookupLabel: 670 - center: - x: 14.0 - y: -41.0 - z: 54.0 - color: '#c034f7' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_ParMed_11: - name: 17Networks_RH_SalVentAttnA_ParMed_11 - lookupLabel: 671 - originalLookupLabel: 671 - center: - x: 12.0 - y: -46.0 - z: 60.0 - color: '#c034f8' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_1: - name: 17Networks_RH_SalVentAttnA_FrMed_1 - lookupLabel: 672 - originalLookupLabel: 672 - center: - x: 4.0 - y: 8.0 - z: 35.0 - color: '#c339f7' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_2: - name: 17Networks_RH_SalVentAttnA_FrMed_2 - lookupLabel: 673 - originalLookupLabel: 673 - center: - x: 4.0 - y: -12.0 - z: 37.0 - color: '#c339f8' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_3: - name: 17Networks_RH_SalVentAttnA_FrMed_3 - lookupLabel: 674 - originalLookupLabel: 674 - center: - x: 9.0 - y: 14.0 - z: 39.0 - color: '#c339f9' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_4: - name: 17Networks_RH_SalVentAttnA_FrMed_4 - lookupLabel: 675 - originalLookupLabel: 675 - center: - x: 7.0 - y: -2.0 - z: 41.0 - color: '#c339fb' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_5: - name: 17Networks_RH_SalVentAttnA_FrMed_5 - lookupLabel: 676 - originalLookupLabel: 676 - center: - x: 7.0 - y: 16.0 - z: 49.0 - color: '#c339fc' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_6: - name: 17Networks_RH_SalVentAttnA_FrMed_6 - lookupLabel: 677 - originalLookupLabel: 677 - center: - x: 8.0 - y: 5.0 - z: 48.0 - color: '#c339fd' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_7: - name: 17Networks_RH_SalVentAttnA_FrMed_7 - lookupLabel: 678 - originalLookupLabel: 678 - center: - x: 5.0 - y: 10.0 - z: 58.0 - color: '#c339fe' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_8: - name: 17Networks_RH_SalVentAttnA_FrMed_8 - lookupLabel: 679 - originalLookupLabel: 679 - center: - x: 6.0 - y: -1.0 - z: 66.0 - color: '#c339ff' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_9: - name: 17Networks_RH_SalVentAttnA_FrMed_9 - lookupLabel: 680 - originalLookupLabel: 680 - center: - x: 19.0 - y: -3.0 - z: 70.0 - color: '#c032fa' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnA_FrMed_10: - name: 17Networks_RH_SalVentAttnA_FrMed_10 - lookupLabel: 681 - originalLookupLabel: 681 - center: - x: 12.0 - y: -3.0 - z: 72.0 - color: '#c033f3' - hemisphere: right - hasParent: - - RH_SalVentAttnA - 17Networks_RH_SalVentAttnB_IPL_1: - name: 17Networks_RH_SalVentAttnB_IPL_1 - lookupLabel: 682 - originalLookupLabel: 682 - center: - x: 65.0 - y: -39.0 - z: 26.0 - color: '#fe98d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_IPL_2: - name: 17Networks_RH_SalVentAttnB_IPL_2 - lookupLabel: 683 - originalLookupLabel: 683 - center: - x: 60.0 - y: -40.0 - z: 36.0 - color: '#fe98d7' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_IPL_3: - name: 17Networks_RH_SalVentAttnB_IPL_3 - lookupLabel: 684 - originalLookupLabel: 684 - center: - x: 62.0 - y: -34.0 - z: 45.0 - color: '#fe98d8' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCd_1: - name: 17Networks_RH_SalVentAttnB_PFCd_1 - lookupLabel: 685 - originalLookupLabel: 685 - center: - x: 7.0 - y: 12.0 - z: 68.0 - color: '#fe98d5' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCd_2: - name: 17Networks_RH_SalVentAttnB_PFCd_2 - lookupLabel: 686 - originalLookupLabel: 686 - center: - x: 24.0 - y: 8.0 - z: 65.0 - color: '#fe98d9' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCd_3: - name: 17Networks_RH_SalVentAttnB_PFCd_3 - lookupLabel: 687 - originalLookupLabel: 687 - center: - x: 15.0 - y: 7.0 - z: 69.0 - color: '#fe98da' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_1: - name: 17Networks_RH_SalVentAttnB_PFCl_1 - lookupLabel: 688 - originalLookupLabel: 688 - center: - x: 43.0 - y: 45.0 - z: 18.0 - color: '#fe97d4' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_2: - name: 17Networks_RH_SalVentAttnB_PFCl_2 - lookupLabel: 689 - originalLookupLabel: 689 - center: - x: 32.0 - y: 48.0 - z: 21.0 - color: '#fe97d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_3: - name: 17Networks_RH_SalVentAttnB_PFCl_3 - lookupLabel: 690 - originalLookupLabel: 690 - center: - x: 25.0 - y: 56.0 - z: 25.0 - color: '#fe97d7' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_4: - name: 17Networks_RH_SalVentAttnB_PFCl_4 - lookupLabel: 691 - originalLookupLabel: 691 - center: - x: 38.0 - y: 41.0 - z: 29.0 - color: '#fe97d8' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_5: - name: 17Networks_RH_SalVentAttnB_PFCl_5 - lookupLabel: 692 - originalLookupLabel: 692 - center: - x: 28.0 - y: 45.0 - z: 32.0 - color: '#fe97d9' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCl_6: - name: 17Networks_RH_SalVentAttnB_PFCl_6 - lookupLabel: 693 - originalLookupLabel: 693 - center: - x: 33.0 - y: 39.0 - z: 40.0 - color: '#fe97da' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFClv_1: - name: 17Networks_RH_SalVentAttnB_PFClv_1 - lookupLabel: 694 - originalLookupLabel: 694 - center: - x: 49.0 - y: 42.0 - z: 1.0 - color: '#fe97d5' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFClv_2: - name: 17Networks_RH_SalVentAttnB_PFClv_2 - lookupLabel: 695 - originalLookupLabel: 695 - center: - x: 41.0 - y: 50.0 - z: 7.0 - color: '#fe97db' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_1: - name: 17Networks_RH_SalVentAttnB_Ins_1 - lookupLabel: 696 - originalLookupLabel: 696 - center: - x: 33.0 - y: 19.0 - z: -10.0 - color: '#fe98d3' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_2: - name: 17Networks_RH_SalVentAttnB_Ins_2 - lookupLabel: 697 - originalLookupLabel: 697 - center: - x: 41.0 - y: 24.0 - z: -12.0 - color: '#fe98d4' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_3: - name: 17Networks_RH_SalVentAttnB_Ins_3 - lookupLabel: 698 - originalLookupLabel: 698 - center: - x: 34.0 - y: 23.0 - z: -3.0 - color: '#fe98db' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_4: - name: 17Networks_RH_SalVentAttnB_Ins_4 - lookupLabel: 699 - originalLookupLabel: 699 - center: - x: 34.0 - y: 29.0 - z: 0.0 - color: '#fe98dc' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_5: - name: 17Networks_RH_SalVentAttnB_Ins_5 - lookupLabel: 700 - originalLookupLabel: 700 - center: - x: 32.0 - y: 20.0 - z: 5.0 - color: '#fe98dd' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_6: - name: 17Networks_RH_SalVentAttnB_Ins_6 - lookupLabel: 701 - originalLookupLabel: 701 - center: - x: 39.0 - y: 25.0 - z: 6.0 - color: '#fe99d6' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_7: - name: 17Networks_RH_SalVentAttnB_Ins_7 - lookupLabel: 702 - originalLookupLabel: 702 - center: - x: 47.0 - y: 24.0 - z: 2.0 - color: '#fe99d7' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_8: - name: 17Networks_RH_SalVentAttnB_Ins_8 - lookupLabel: 703 - originalLookupLabel: 703 - center: - x: 45.0 - y: 17.0 - z: 3.0 - color: '#fe99d8' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Ins_9: - name: 17Networks_RH_SalVentAttnB_Ins_9 - lookupLabel: 704 - originalLookupLabel: 704 - center: - x: 55.0 - y: 16.0 - z: 12.0 - color: '#fe99d9' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCmp_1: - name: 17Networks_RH_SalVentAttnB_PFCmp_1 - lookupLabel: 705 - originalLookupLabel: 705 - center: - x: 8.0 - y: 35.0 - z: 20.0 - color: '#fe99d4' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCmp_2: - name: 17Networks_RH_SalVentAttnB_PFCmp_2 - lookupLabel: 706 - originalLookupLabel: 706 - center: - x: 5.0 - y: 22.0 - z: 28.0 - color: '#fe99da' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCmp_3: - name: 17Networks_RH_SalVentAttnB_PFCmp_3 - lookupLabel: 707 - originalLookupLabel: 707 - center: - x: 11.0 - y: 27.0 - z: 28.0 - color: '#fe99db' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCmp_4: - name: 17Networks_RH_SalVentAttnB_PFCmp_4 - lookupLabel: 708 - originalLookupLabel: 708 - center: - x: 9.0 - y: 25.0 - z: 37.0 - color: '#fe99dc' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_PFCmp_5: - name: 17Networks_RH_SalVentAttnB_PFCmp_5 - lookupLabel: 709 - originalLookupLabel: 709 - center: - x: 5.0 - y: 19.0 - z: 60.0 - color: '#fe9ad5' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_SalVentAttnB_Cinga_1: - name: 17Networks_RH_SalVentAttnB_Cinga_1 - lookupLabel: 710 - originalLookupLabel: 710 - center: - x: 5.0 - y: 21.0 - z: 21.0 - color: '#ff97d5' - hemisphere: right - hasParent: - - RH_SalVentAttnB - 17Networks_RH_LimbicB_OFC_1: - name: 17Networks_RH_LimbicB_OFC_1 - lookupLabel: 711 - originalLookupLabel: 711 - center: - x: 21.0 - y: 14.0 - z: -22.0 - color: '#7a872e' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_2: - name: 17Networks_RH_LimbicB_OFC_2 - lookupLabel: 712 - originalLookupLabel: 712 - center: - x: 14.0 - y: 16.0 - z: -17.0 - color: '#7a872f' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_3: - name: 17Networks_RH_LimbicB_OFC_3 - lookupLabel: 713 - originalLookupLabel: 713 - center: - x: 15.0 - y: 27.0 - z: -24.0 - color: '#7a8730' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_4: - name: 17Networks_RH_LimbicB_OFC_4 - lookupLabel: 714 - originalLookupLabel: 714 - center: - x: 10.0 - y: 28.0 - z: -20.0 - color: '#7a8731' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_5: - name: 17Networks_RH_LimbicB_OFC_5 - lookupLabel: 715 - originalLookupLabel: 715 - center: - x: 10.0 - y: 42.0 - z: -23.0 - color: '#7a8732' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_6: - name: 17Networks_RH_LimbicB_OFC_6 - lookupLabel: 716 - originalLookupLabel: 716 - center: - x: 23.0 - y: 28.0 - z: -19.0 - color: '#7a8734' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_7: - name: 17Networks_RH_LimbicB_OFC_7 - lookupLabel: 717 - originalLookupLabel: 717 - center: - x: 17.0 - y: 47.0 - z: -19.0 - color: '#7a8735' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_8: - name: 17Networks_RH_LimbicB_OFC_8 - lookupLabel: 718 - originalLookupLabel: 718 - center: - x: 5.0 - y: 20.0 - z: -20.0 - color: '#7a8736' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_9: - name: 17Networks_RH_LimbicB_OFC_9 - lookupLabel: 719 - originalLookupLabel: 719 - center: - x: 25.0 - y: 40.0 - z: -16.0 - color: '#7a8737' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_10: - name: 17Networks_RH_LimbicB_OFC_10 - lookupLabel: 720 - originalLookupLabel: 720 - center: - x: 3.0 - y: 41.0 - z: -25.0 - color: '#7a8738' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_11: - name: 17Networks_RH_LimbicB_OFC_11 - lookupLabel: 721 - originalLookupLabel: 721 - center: - x: 7.0 - y: 57.0 - z: -21.0 - color: '#7a8739' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_12: - name: 17Networks_RH_LimbicB_OFC_12 - lookupLabel: 722 - originalLookupLabel: 722 - center: - x: 20.0 - y: 62.0 - z: -14.0 - color: '#7a873a' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_13: - name: 17Networks_RH_LimbicB_OFC_13 - lookupLabel: 723 - originalLookupLabel: 723 - center: - x: 4.0 - y: 25.0 - z: -11.0 - color: '#7a8833' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicB_OFC_14: - name: 17Networks_RH_LimbicB_OFC_14 - lookupLabel: 724 - originalLookupLabel: 724 - center: - x: 12.0 - y: 66.0 - z: -7.0 - color: '#7a8834' - hemisphere: right - hasParent: - - RH_LimbicB - 17Networks_RH_LimbicA_TempPole_1: - name: 17Networks_RH_LimbicA_TempPole_1 - lookupLabel: 725 - originalLookupLabel: 725 - center: - x: 36.0 - y: 0.0 - z: -45.0 - color: '#dcf89e' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_2: - name: 17Networks_RH_LimbicA_TempPole_2 - lookupLabel: 726 - originalLookupLabel: 726 - center: - x: 24.0 - y: 6.0 - z: -43.0 - color: '#dcf89f' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_3: - name: 17Networks_RH_LimbicA_TempPole_3 - lookupLabel: 727 - originalLookupLabel: 727 - center: - x: 33.0 - y: 14.0 - z: -40.0 - color: '#dcf8a0' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_4: - name: 17Networks_RH_LimbicA_TempPole_4 - lookupLabel: 728 - originalLookupLabel: 728 - center: - x: 40.0 - y: -10.0 - z: -35.0 - color: '#dcf8a1' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_5: - name: 17Networks_RH_LimbicA_TempPole_5 - lookupLabel: 729 - originalLookupLabel: 729 - center: - x: 29.0 - y: -7.0 - z: -36.0 - color: '#dcf8a2' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_6: - name: 17Networks_RH_LimbicA_TempPole_6 - lookupLabel: 730 - originalLookupLabel: 730 - center: - x: 51.0 - y: -7.0 - z: -38.0 - color: '#dcf8a3' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_7: - name: 17Networks_RH_LimbicA_TempPole_7 - lookupLabel: 731 - originalLookupLabel: 731 - center: - x: 20.0 - y: 0.0 - z: -32.0 - color: '#dcf8a4' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_8: - name: 17Networks_RH_LimbicA_TempPole_8 - lookupLabel: 732 - originalLookupLabel: 732 - center: - x: 23.0 - y: 5.0 - z: -29.0 - color: '#dcf8a6' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_9: - name: 17Networks_RH_LimbicA_TempPole_9 - lookupLabel: 733 - originalLookupLabel: 733 - center: - x: 35.0 - y: -17.0 - z: -31.0 - color: '#dcf8a7' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_10: - name: 17Networks_RH_LimbicA_TempPole_10 - lookupLabel: 734 - originalLookupLabel: 734 - center: - x: 52.0 - y: -21.0 - z: -30.0 - color: '#dcf8a8' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_11: - name: 17Networks_RH_LimbicA_TempPole_11 - lookupLabel: 735 - originalLookupLabel: 735 - center: - x: 42.0 - y: -22.0 - z: -25.0 - color: '#dcf8a9' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_12: - name: 17Networks_RH_LimbicA_TempPole_12 - lookupLabel: 736 - originalLookupLabel: 736 - center: - x: 31.0 - y: 14.0 - z: -31.0 - color: '#dcf8aa' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_13: - name: 17Networks_RH_LimbicA_TempPole_13 - lookupLabel: 737 - originalLookupLabel: 737 - center: - x: 40.0 - y: 22.0 - z: -31.0 - color: '#dcf8ab' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_14: - name: 17Networks_RH_LimbicA_TempPole_14 - lookupLabel: 738 - originalLookupLabel: 738 - center: - x: 22.0 - y: -14.0 - z: -30.0 - color: '#dcf8ac' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_15: - name: 17Networks_RH_LimbicA_TempPole_15 - lookupLabel: 739 - originalLookupLabel: 739 - center: - x: 45.0 - y: -31.0 - z: -23.0 - color: '#dcf9a5' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_16: - name: 17Networks_RH_LimbicA_TempPole_16 - lookupLabel: 740 - originalLookupLabel: 740 - center: - x: 39.0 - y: 11.0 - z: -24.0 - color: '#dcf9a6' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_LimbicA_TempPole_17: - name: 17Networks_RH_LimbicA_TempPole_17 - lookupLabel: 741 - originalLookupLabel: 741 - center: - x: 43.0 - y: 12.0 - z: -21.0 - color: '#dcf9a7' - hemisphere: right - hasParent: - - RH_LimbicA - 17Networks_RH_ContA_Temp_1: - name: 17Networks_RH_ContA_Temp_1 - lookupLabel: 742 - originalLookupLabel: 742 - center: - x: 62.0 - y: -44.0 - z: -14.0 - color: '#e69422' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_Temp_2: - name: 17Networks_RH_ContA_Temp_2 - lookupLabel: 743 - originalLookupLabel: 743 - center: - x: 60.0 - y: -52.0 - z: -5.0 - color: '#e69423' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_1: - name: 17Networks_RH_ContA_IPS_1 - lookupLabel: 744 - originalLookupLabel: 744 - center: - x: 56.0 - y: -38.0 - z: 47.0 - color: '#e69320' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_2: - name: 17Networks_RH_ContA_IPS_2 - lookupLabel: 745 - originalLookupLabel: 745 - center: - x: 52.0 - y: -34.0 - z: 50.0 - color: '#e69321' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_3: - name: 17Networks_RH_ContA_IPS_3 - lookupLabel: 746 - originalLookupLabel: 746 - center: - x: 33.0 - y: -68.0 - z: 46.0 - color: '#e69323' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_4: - name: 17Networks_RH_ContA_IPS_4 - lookupLabel: 747 - originalLookupLabel: 747 - center: - x: 46.0 - y: -46.0 - z: 47.0 - color: '#e69324' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_5: - name: 17Networks_RH_ContA_IPS_5 - lookupLabel: 748 - originalLookupLabel: 748 - center: - x: 46.0 - y: -38.0 - z: 50.0 - color: '#e69325' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_6: - name: 17Networks_RH_ContA_IPS_6 - lookupLabel: 749 - originalLookupLabel: 749 - center: - x: 38.0 - y: -61.0 - z: 47.0 - color: '#e69326' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_7: - name: 17Networks_RH_ContA_IPS_7 - lookupLabel: 750 - originalLookupLabel: 750 - center: - x: 40.0 - y: -52.0 - z: 43.0 - color: '#e69327' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_IPS_8: - name: 17Networks_RH_ContA_IPS_8 - lookupLabel: 751 - originalLookupLabel: 751 - center: - x: 38.0 - y: -42.0 - z: 43.0 - color: '#e69328' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCd_1: - name: 17Networks_RH_ContA_PFCd_1 - lookupLabel: 752 - originalLookupLabel: 752 - center: - x: 30.0 - y: 11.0 - z: 53.0 - color: '#e69322' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCd_2: - name: 17Networks_RH_ContA_PFCd_2 - lookupLabel: 753 - originalLookupLabel: 753 - center: - x: 24.0 - y: 7.0 - z: 55.0 - color: '#e69421' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_1: - name: 17Networks_RH_ContA_PFCl_1 - lookupLabel: 754 - originalLookupLabel: 754 - center: - x: 45.0 - y: 39.0 - z: 10.0 - color: '#e5941f' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_2: - name: 17Networks_RH_ContA_PFCl_2 - lookupLabel: 755 - originalLookupLabel: 755 - center: - x: 52.0 - y: 29.0 - z: 18.0 - color: '#e59420' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_3: - name: 17Networks_RH_ContA_PFCl_3 - lookupLabel: 756 - originalLookupLabel: 756 - center: - x: 50.0 - y: 18.0 - z: 22.0 - color: '#e59421' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_4: - name: 17Networks_RH_ContA_PFCl_4 - lookupLabel: 757 - originalLookupLabel: 757 - center: - x: 44.0 - y: 33.0 - z: 19.0 - color: '#e59423' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_5: - name: 17Networks_RH_ContA_PFCl_5 - lookupLabel: 758 - originalLookupLabel: 758 - center: - x: 48.0 - y: 10.0 - z: 21.0 - color: '#e59424' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_6: - name: 17Networks_RH_ContA_PFCl_6 - lookupLabel: 759 - originalLookupLabel: 759 - center: - x: 46.0 - y: 25.0 - z: 26.0 - color: '#e59425' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_7: - name: 17Networks_RH_ContA_PFCl_7 - lookupLabel: 760 - originalLookupLabel: 760 - center: - x: 41.0 - y: 17.0 - z: 28.0 - color: '#e59426' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_8: - name: 17Networks_RH_ContA_PFCl_8 - lookupLabel: 761 - originalLookupLabel: 761 - center: - x: 43.0 - y: 6.0 - z: 29.0 - color: '#e59427' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_PFCl_9: - name: 17Networks_RH_ContA_PFCl_9 - lookupLabel: 762 - originalLookupLabel: 762 - center: - x: 38.0 - y: 10.0 - z: 35.0 - color: '#e59428' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_Cingm_1: - name: 17Networks_RH_ContA_Cingm_1 - lookupLabel: 763 - originalLookupLabel: 763 - center: - x: 6.0 - y: 10.0 - z: 27.0 - color: '#e59422' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContA_Cingm_2: - name: 17Networks_RH_ContA_Cingm_2 - lookupLabel: 764 - originalLookupLabel: 764 - center: - x: 5.0 - y: -2.0 - z: 31.0 - color: '#e59521' - hemisphere: right - hasParent: - - RH_ContA - 17Networks_RH_ContB_Temp_1: - name: 17Networks_RH_ContB_Temp_1 - lookupLabel: 765 - originalLookupLabel: 765 - center: - x: 60.0 - y: -26.0 - z: -24.0 - color: '#88334a' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_Temp_2: - name: 17Networks_RH_ContB_Temp_2 - lookupLabel: 766 - originalLookupLabel: 766 - center: - x: 65.0 - y: -24.0 - z: -16.0 - color: '#88334c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_Temp_3: - name: 17Networks_RH_ContB_Temp_3 - lookupLabel: 767 - originalLookupLabel: 767 - center: - x: 60.0 - y: -38.0 - z: -20.0 - color: '#88334d' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_Temp_4: - name: 17Networks_RH_ContB_Temp_4 - lookupLabel: 768 - originalLookupLabel: 768 - center: - x: 65.0 - y: -33.0 - z: -13.0 - color: '#88334e' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_Temp_5: - name: 17Networks_RH_ContB_Temp_5 - lookupLabel: 769 - originalLookupLabel: 769 - center: - x: 66.0 - y: -41.0 - z: -6.0 - color: '#88334f' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_1: - name: 17Networks_RH_ContB_IPL_1 - lookupLabel: 770 - originalLookupLabel: 770 - center: - x: 55.0 - y: -43.0 - z: 30.0 - color: '#873246' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_2: - name: 17Networks_RH_ContB_IPL_2 - lookupLabel: 771 - originalLookupLabel: 771 - center: - x: 55.0 - y: -49.0 - z: 32.0 - color: '#873247' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_3: - name: 17Networks_RH_ContB_IPL_3 - lookupLabel: 772 - originalLookupLabel: 772 - center: - x: 60.0 - y: -45.0 - z: 41.0 - color: '#873248' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_4: - name: 17Networks_RH_ContB_IPL_4 - lookupLabel: 773 - originalLookupLabel: 773 - center: - x: 50.0 - y: -58.0 - z: 45.0 - color: '#87324a' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_5: - name: 17Networks_RH_ContB_IPL_5 - lookupLabel: 774 - originalLookupLabel: 774 - center: - x: 55.0 - y: -51.0 - z: 47.0 - color: '#87324b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_6: - name: 17Networks_RH_ContB_IPL_6 - lookupLabel: 775 - originalLookupLabel: 775 - center: - x: 37.0 - y: -73.0 - z: 47.0 - color: '#87324c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_7: - name: 17Networks_RH_ContB_IPL_7 - lookupLabel: 776 - originalLookupLabel: 776 - center: - x: 52.0 - y: -43.0 - z: 49.0 - color: '#87324d' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_8: - name: 17Networks_RH_ContB_IPL_8 - lookupLabel: 777 - originalLookupLabel: 777 - center: - x: 44.0 - y: -62.0 - z: 53.0 - color: '#87324e' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_IPL_9: - name: 17Networks_RH_ContB_IPL_9 - lookupLabel: 778 - originalLookupLabel: 778 - center: - x: 45.0 - y: -52.0 - z: 54.0 - color: '#87324f' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_1: - name: 17Networks_RH_ContB_PFCld_1 - lookupLabel: 779 - originalLookupLabel: 779 - center: - x: 46.0 - y: 34.0 - z: 28.0 - color: '#873147' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_2: - name: 17Networks_RH_ContB_PFCld_2 - lookupLabel: 780 - originalLookupLabel: 780 - center: - x: 51.0 - y: 24.0 - z: 33.0 - color: '#873148' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_3: - name: 17Networks_RH_ContB_PFCld_3 - lookupLabel: 781 - originalLookupLabel: 781 - center: - x: 41.0 - y: 31.0 - z: 37.0 - color: '#873149' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_4: - name: 17Networks_RH_ContB_PFCld_4 - lookupLabel: 782 - originalLookupLabel: 782 - center: - x: 44.0 - y: 19.0 - z: 44.0 - color: '#87314b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_5: - name: 17Networks_RH_ContB_PFCld_5 - lookupLabel: 783 - originalLookupLabel: 783 - center: - x: 35.0 - y: 32.0 - z: 45.0 - color: '#87314c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_6: - name: 17Networks_RH_ContB_PFCld_6 - lookupLabel: 784 - originalLookupLabel: 784 - center: - x: 45.0 - y: 6.0 - z: 47.0 - color: '#87314d' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_7: - name: 17Networks_RH_ContB_PFCld_7 - lookupLabel: 785 - originalLookupLabel: 785 - center: - x: 31.0 - y: 24.0 - z: 51.0 - color: '#87314e' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_8: - name: 17Networks_RH_ContB_PFCld_8 - lookupLabel: 786 - originalLookupLabel: 786 - center: - x: 39.0 - y: 10.0 - z: 57.0 - color: '#87314f' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCld_9: - name: 17Networks_RH_ContB_PFCld_9 - lookupLabel: 787 - originalLookupLabel: 787 - center: - x: 23.0 - y: 19.0 - z: 61.0 - color: '#873150' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_1: - name: 17Networks_RH_ContB_PFClv_1 - lookupLabel: 788 - originalLookupLabel: 788 - center: - x: 26.0 - y: 51.0 - z: -14.0 - color: '#873146' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_2: - name: 17Networks_RH_ContB_PFClv_2 - lookupLabel: 789 - originalLookupLabel: 789 - center: - x: 36.0 - y: 37.0 - z: -13.0 - color: '#87314a' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_3: - name: 17Networks_RH_ContB_PFClv_3 - lookupLabel: 790 - originalLookupLabel: 790 - center: - x: 36.0 - y: 55.0 - z: -12.0 - color: '#873249' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_4: - name: 17Networks_RH_ContB_PFClv_4 - lookupLabel: 791 - originalLookupLabel: 791 - center: - x: 44.0 - y: 46.0 - z: -14.0 - color: '#873250' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_5: - name: 17Networks_RH_ContB_PFClv_5 - lookupLabel: 792 - originalLookupLabel: 792 - center: - x: 30.0 - y: 59.0 - z: -4.0 - color: '#873349' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_6: - name: 17Networks_RH_ContB_PFClv_6 - lookupLabel: 793 - originalLookupLabel: 793 - center: - x: 42.0 - y: 51.0 - z: -3.0 - color: '#87334a' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_7: - name: 17Networks_RH_ContB_PFClv_7 - lookupLabel: 794 - originalLookupLabel: 794 - center: - x: 23.0 - y: 62.0 - z: 1.0 - color: '#87334b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_8: - name: 17Networks_RH_ContB_PFClv_8 - lookupLabel: 795 - originalLookupLabel: 795 - center: - x: 33.0 - y: 56.0 - z: 9.0 - color: '#87334c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFClv_9: - name: 17Networks_RH_ContB_PFClv_9 - lookupLabel: 796 - originalLookupLabel: 796 - center: - x: 25.0 - y: 58.0 - z: 13.0 - color: '#87334d' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCmp_1: - name: 17Networks_RH_ContB_PFCmp_1 - lookupLabel: 797 - originalLookupLabel: 797 - center: - x: 7.0 - y: 35.0 - z: 32.0 - color: '#86324b' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContB_PFCmp_2: - name: 17Networks_RH_ContB_PFCmp_2 - lookupLabel: 798 - originalLookupLabel: 798 - center: - x: 5.0 - y: 28.0 - z: 47.0 - color: '#86324c' - hemisphere: right - hasParent: - - RH_ContB - 17Networks_RH_ContC_pCun_1: - name: 17Networks_RH_ContC_pCun_1 - lookupLabel: 799 - originalLookupLabel: 799 - center: - x: 12.0 - y: -64.0 - z: 26.0 - color: '#778dae' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_2: - name: 17Networks_RH_ContC_pCun_2 - lookupLabel: 800 - originalLookupLabel: 800 - center: - x: 15.0 - y: -66.0 - z: 33.0 - color: '#778daf' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_3: - name: 17Networks_RH_ContC_pCun_3 - lookupLabel: 801 - originalLookupLabel: 801 - center: - x: 14.0 - y: -74.0 - z: 43.0 - color: '#778db1' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_4: - name: 17Networks_RH_ContC_pCun_4 - lookupLabel: 802 - originalLookupLabel: 802 - center: - x: 6.0 - y: -64.0 - z: 43.0 - color: '#778db2' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_5: - name: 17Networks_RH_ContC_pCun_5 - lookupLabel: 803 - originalLookupLabel: 803 - center: - x: 8.0 - y: -48.0 - z: 44.0 - color: '#778db3' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_6: - name: 17Networks_RH_ContC_pCun_6 - lookupLabel: 804 - originalLookupLabel: 804 - center: - x: 6.0 - y: -75.0 - z: 47.0 - color: '#778db4' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_7: - name: 17Networks_RH_ContC_pCun_7 - lookupLabel: 805 - originalLookupLabel: 805 - center: - x: 6.0 - y: -54.0 - z: 46.0 - color: '#778db5' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_pCun_8: - name: 17Networks_RH_ContC_pCun_8 - lookupLabel: 806 - originalLookupLabel: 806 - center: - x: 5.0 - y: -66.0 - z: 52.0 - color: '#778db6' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_Cingp_1: - name: 17Networks_RH_ContC_Cingp_1 - lookupLabel: 807 - originalLookupLabel: 807 - center: - x: 7.0 - y: -42.0 - z: 23.0 - color: '#778db7' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_Cingp_2: - name: 17Networks_RH_ContC_Cingp_2 - lookupLabel: 808 - originalLookupLabel: 808 - center: - x: 7.0 - y: -33.0 - z: 27.0 - color: '#778db8' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_Cingp_3: - name: 17Networks_RH_ContC_Cingp_3 - lookupLabel: 809 - originalLookupLabel: 809 - center: - x: 5.0 - y: -18.0 - z: 30.0 - color: '#778eb1' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_ContC_Cingp_4: - name: 17Networks_RH_ContC_Cingp_4 - lookupLabel: 810 - originalLookupLabel: 810 - center: - x: 4.0 - y: -31.0 - z: 30.0 - color: '#778eb2' - hemisphere: right - hasParent: - - RH_ContC - 17Networks_RH_DefaultA_Temp_1: - name: 17Networks_RH_DefaultA_Temp_1 - lookupLabel: 811 - originalLookupLabel: 811 - center: - x: 65.0 - y: -11.0 - z: -17.0 - color: '#feff02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_Temp_2: - name: 17Networks_RH_DefaultA_Temp_2 - lookupLabel: 812 - originalLookupLabel: 812 - center: - x: 57.0 - y: -2.0 - z: -19.0 - color: '#feff03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_1: - name: 17Networks_RH_DefaultA_IPL_1 - lookupLabel: 813 - originalLookupLabel: 813 - center: - x: 48.0 - y: -51.0 - z: 19.0 - color: '#fffe00' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_2: - name: 17Networks_RH_DefaultA_IPL_2 - lookupLabel: 814 - originalLookupLabel: 814 - center: - x: 56.0 - y: -48.0 - z: 22.0 - color: '#fffe02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_3: - name: 17Networks_RH_DefaultA_IPL_3 - lookupLabel: 815 - originalLookupLabel: 815 - center: - x: 44.0 - y: -56.0 - z: 28.0 - color: '#fffe03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_4: - name: 17Networks_RH_DefaultA_IPL_4 - lookupLabel: 816 - originalLookupLabel: 816 - center: - x: 54.0 - y: -54.0 - z: 25.0 - color: '#fffe04' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_5: - name: 17Networks_RH_DefaultA_IPL_5 - lookupLabel: 817 - originalLookupLabel: 817 - center: - x: 50.0 - y: -61.0 - z: 34.0 - color: '#fffe05' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_6: - name: 17Networks_RH_DefaultA_IPL_6 - lookupLabel: 818 - originalLookupLabel: 818 - center: - x: 57.0 - y: -55.0 - z: 34.0 - color: '#fffe06' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_IPL_7: - name: 17Networks_RH_DefaultA_IPL_7 - lookupLabel: 819 - originalLookupLabel: 819 - center: - x: 47.0 - y: -67.0 - z: 42.0 - color: '#fffe07' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCd_1: - name: 17Networks_RH_DefaultA_PFCd_1 - lookupLabel: 820 - originalLookupLabel: 820 - center: - x: 22.0 - y: 39.0 - z: 35.0 - color: '#ffff01' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCd_2: - name: 17Networks_RH_DefaultA_PFCd_2 - lookupLabel: 821 - originalLookupLabel: 821 - center: - x: 29.0 - y: 30.0 - z: 39.0 - color: '#ffff03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCd_3: - name: 17Networks_RH_DefaultA_PFCd_3 - lookupLabel: 822 - originalLookupLabel: 822 - center: - x: 24.0 - y: 40.0 - z: 45.0 - color: '#ffff04' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCd_4: - name: 17Networks_RH_DefaultA_PFCd_4 - lookupLabel: 823 - originalLookupLabel: 823 - center: - x: 23.0 - y: 24.0 - z: 47.0 - color: '#ffff05' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCd_5: - name: 17Networks_RH_DefaultA_PFCd_5 - lookupLabel: 824 - originalLookupLabel: 824 - center: - x: 19.0 - y: 34.0 - z: 54.0 - color: '#ffff06' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_1: - name: 17Networks_RH_DefaultA_pCunPCC_1 - lookupLabel: 825 - originalLookupLabel: 825 - center: - x: 7.0 - y: -46.0 - z: 14.0 - color: '#fffd01' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_2: - name: 17Networks_RH_DefaultA_pCunPCC_2 - lookupLabel: 826 - originalLookupLabel: 826 - center: - x: 5.0 - y: -52.0 - z: 18.0 - color: '#fffd02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_3: - name: 17Networks_RH_DefaultA_pCunPCC_3 - lookupLabel: 827 - originalLookupLabel: 827 - center: - x: 4.0 - y: -59.0 - z: 25.0 - color: '#fffd03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_4: - name: 17Networks_RH_DefaultA_pCunPCC_4 - lookupLabel: 828 - originalLookupLabel: 828 - center: - x: 6.0 - y: -48.0 - z: 26.0 - color: '#fffd04' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_5: - name: 17Networks_RH_DefaultA_pCunPCC_5 - lookupLabel: 829 - originalLookupLabel: 829 - center: - x: 6.0 - y: -42.0 - z: 31.0 - color: '#fffd05' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_6: - name: 17Networks_RH_DefaultA_pCunPCC_6 - lookupLabel: 830 - originalLookupLabel: 830 - center: - x: 11.0 - y: -52.0 - z: 30.0 - color: '#fffd06' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_7: - name: 17Networks_RH_DefaultA_pCunPCC_7 - lookupLabel: 831 - originalLookupLabel: 831 - center: - x: 5.0 - y: -64.0 - z: 33.0 - color: '#fffd07' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_8: - name: 17Networks_RH_DefaultA_pCunPCC_8 - lookupLabel: 832 - originalLookupLabel: 832 - center: - x: 5.0 - y: -34.0 - z: 36.0 - color: '#fffe01' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_9: - name: 17Networks_RH_DefaultA_pCunPCC_9 - lookupLabel: 833 - originalLookupLabel: 833 - center: - x: 4.0 - y: -25.0 - z: 38.0 - color: '#ffff00' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_10: - name: 17Networks_RH_DefaultA_pCunPCC_10 - lookupLabel: 834 - originalLookupLabel: 834 - center: - x: 10.0 - y: -43.0 - z: 38.0 - color: '#ffff02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_pCunPCC_11: - name: 17Networks_RH_DefaultA_pCunPCC_11 - lookupLabel: 835 - originalLookupLabel: 835 - center: - x: 8.0 - y: -55.0 - z: 37.0 - color: '#ffff07' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_1: - name: 17Networks_RH_DefaultA_PFCm_1 - lookupLabel: 836 - originalLookupLabel: 836 - center: - x: 5.0 - y: 41.0 - z: -13.0 - color: '#fdff01' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_2: - name: 17Networks_RH_DefaultA_PFCm_2 - lookupLabel: 837 - originalLookupLabel: 837 - center: - x: 6.0 - y: 56.0 - z: -10.0 - color: '#fdff02' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_3: - name: 17Networks_RH_DefaultA_PFCm_3 - lookupLabel: 838 - originalLookupLabel: 838 - center: - x: 5.0 - y: 34.0 - z: -6.0 - color: '#fdff03' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_4: - name: 17Networks_RH_DefaultA_PFCm_4 - lookupLabel: 839 - originalLookupLabel: 839 - center: - x: 8.0 - y: 50.0 - z: -3.0 - color: '#fdff04' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_5: - name: 17Networks_RH_DefaultA_PFCm_5 - lookupLabel: 840 - originalLookupLabel: 840 - center: - x: 7.0 - y: 65.0 - z: 3.0 - color: '#fdff05' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_6: - name: 17Networks_RH_DefaultA_PFCm_6 - lookupLabel: 841 - originalLookupLabel: 841 - center: - x: 7.0 - y: 41.0 - z: 1.0 - color: '#fdff06' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_7: - name: 17Networks_RH_DefaultA_PFCm_7 - lookupLabel: 842 - originalLookupLabel: 842 - center: - x: 18.0 - y: 67.0 - z: 11.0 - color: '#fdff07' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_8: - name: 17Networks_RH_DefaultA_PFCm_8 - lookupLabel: 843 - originalLookupLabel: 843 - center: - x: 7.0 - y: 54.0 - z: 10.0 - color: '#faf900' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_9: - name: 17Networks_RH_DefaultA_PFCm_9 - lookupLabel: 844 - originalLookupLabel: 844 - center: - x: 9.0 - y: 43.0 - z: 10.0 - color: '#fafa00' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_10: - name: 17Networks_RH_DefaultA_PFCm_10 - lookupLabel: 845 - originalLookupLabel: 845 - center: - x: 6.0 - y: 32.0 - z: 12.0 - color: '#fafb00' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_11: - name: 17Networks_RH_DefaultA_PFCm_11 - lookupLabel: 846 - originalLookupLabel: 846 - center: - x: 7.0 - y: 65.0 - z: 16.0 - color: '#fafc00' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultA_PFCm_12: - name: 17Networks_RH_DefaultA_PFCm_12 - lookupLabel: 847 - originalLookupLabel: 847 - center: - x: 7.0 - y: 45.0 - z: 22.0 - color: '#fafd00' - hemisphere: right - hasParent: - - RH_DefaultA - 17Networks_RH_DefaultB_Temp_1: - name: 17Networks_RH_DefaultB_Temp_1 - lookupLabel: 848 - originalLookupLabel: 848 - center: - x: 55.0 - y: -12.0 - z: -14.0 - color: '#ce3e50' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_Temp_2: - name: 17Networks_RH_DefaultB_Temp_2 - lookupLabel: 849 - originalLookupLabel: 849 - center: - x: 63.0 - y: -19.0 - z: -10.0 - color: '#ce3e51' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_Temp_3: - name: 17Networks_RH_DefaultB_Temp_3 - lookupLabel: 850 - originalLookupLabel: 850 - center: - x: 64.0 - y: -28.0 - z: -5.0 - color: '#ce3e52' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_Temp_4: - name: 17Networks_RH_DefaultB_Temp_4 - lookupLabel: 851 - originalLookupLabel: 851 - center: - x: 63.0 - y: -39.0 - z: 1.0 - color: '#ce3e53' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_AntTemp_1: - name: 17Networks_RH_DefaultB_AntTemp_1 - lookupLabel: 852 - originalLookupLabel: 852 - center: - x: 46.0 - y: 9.0 - z: -37.0 - color: '#ce3f4f' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_AntTemp_2: - name: 17Networks_RH_DefaultB_AntTemp_2 - lookupLabel: 853 - originalLookupLabel: 853 - center: - x: 58.0 - y: -5.0 - z: -27.0 - color: '#ce3f50' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_AntTemp_3: - name: 17Networks_RH_DefaultB_AntTemp_3 - lookupLabel: 854 - originalLookupLabel: 854 - center: - x: 52.0 - y: 9.0 - z: -27.0 - color: '#ce3f51' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_1: - name: 17Networks_RH_DefaultB_PFCd_1 - lookupLabel: 855 - originalLookupLabel: 855 - center: - x: 15.0 - y: 62.0 - z: 23.0 - color: '#ce3f4d' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_2: - name: 17Networks_RH_DefaultB_PFCd_2 - lookupLabel: 856 - originalLookupLabel: 856 - center: - x: 5.0 - y: 57.0 - z: 27.0 - color: '#ce3f4e' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_3: - name: 17Networks_RH_DefaultB_PFCd_3 - lookupLabel: 857 - originalLookupLabel: 857 - center: - x: 17.0 - y: 52.0 - z: 36.0 - color: '#ce3f52' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_4: - name: 17Networks_RH_DefaultB_PFCd_4 - lookupLabel: 858 - originalLookupLabel: 858 - center: - x: 9.0 - y: 57.0 - z: 39.0 - color: '#ce3f53' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_5: - name: 17Networks_RH_DefaultB_PFCd_5 - lookupLabel: 859 - originalLookupLabel: 859 - center: - x: 5.0 - y: 45.0 - z: 40.0 - color: '#ce3f54' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_6: - name: 17Networks_RH_DefaultB_PFCd_6 - lookupLabel: 860 - originalLookupLabel: 860 - center: - x: 12.0 - y: 46.0 - z: 48.0 - color: '#ce3f55' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_7: - name: 17Networks_RH_DefaultB_PFCd_7 - lookupLabel: 861 - originalLookupLabel: 861 - center: - x: 8.0 - y: 34.0 - z: 57.0 - color: '#ce3f56' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCd_8: - name: 17Networks_RH_DefaultB_PFCd_8 - lookupLabel: 862 - originalLookupLabel: 862 - center: - x: 12.0 - y: 22.0 - z: 62.0 - color: '#ce404f' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_1: - name: 17Networks_RH_DefaultB_PFCv_1 - lookupLabel: 863 - originalLookupLabel: 863 - center: - x: 29.0 - y: 19.0 - z: -20.0 - color: '#cd3e4b' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_2: - name: 17Networks_RH_DefaultB_PFCv_2 - lookupLabel: 864 - originalLookupLabel: 864 - center: - x: 37.0 - y: 26.0 - z: -18.0 - color: '#cd3e4c' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_3: - name: 17Networks_RH_DefaultB_PFCv_3 - lookupLabel: 865 - originalLookupLabel: 865 - center: - x: 46.0 - y: 30.0 - z: -12.0 - color: '#cd3e4e' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_4: - name: 17Networks_RH_DefaultB_PFCv_4 - lookupLabel: 866 - originalLookupLabel: 866 - center: - x: 51.0 - y: 40.0 - z: -8.0 - color: '#cd3e4f' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_5: - name: 17Networks_RH_DefaultB_PFCv_5 - lookupLabel: 867 - originalLookupLabel: 867 - center: - x: 48.0 - y: 31.0 - z: -4.0 - color: '#cd3e50' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_6: - name: 17Networks_RH_DefaultB_PFCv_6 - lookupLabel: 868 - originalLookupLabel: 868 - center: - x: 55.0 - y: 31.0 - z: 4.0 - color: '#cd3e51' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultB_PFCv_7: - name: 17Networks_RH_DefaultB_PFCv_7 - lookupLabel: 869 - originalLookupLabel: 869 - center: - x: 55.0 - y: 22.0 - z: 8.0 - color: '#cd3e52' - hemisphere: right - hasParent: - - RH_DefaultB - 17Networks_RH_DefaultC_IPL_1: - name: 17Networks_RH_DefaultC_IPL_1 - lookupLabel: 870 - originalLookupLabel: 870 - center: - x: 50.0 - y: -63.0 - z: 23.0 - color: '#000184' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_IPL_2: - name: 17Networks_RH_DefaultC_IPL_2 - lookupLabel: 871 - originalLookupLabel: 871 - center: - x: 48.0 - y: -70.0 - z: 27.0 - color: '#000185' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_IPL_3: - name: 17Networks_RH_DefaultC_IPL_3 - lookupLabel: 872 - originalLookupLabel: 872 - center: - x: 43.0 - y: -78.0 - z: 34.0 - color: '#000186' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_Rsp_1: - name: 17Networks_RH_DefaultC_Rsp_1 - lookupLabel: 873 - originalLookupLabel: 873 - center: - x: 13.0 - y: -45.0 - z: 3.0 - color: '#010083' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_Rsp_2: - name: 17Networks_RH_DefaultC_Rsp_2 - lookupLabel: 874 - originalLookupLabel: 874 - center: - x: 10.0 - y: -51.0 - z: 9.0 - color: '#010084' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_Rsp_3: - name: 17Networks_RH_DefaultC_Rsp_3 - lookupLabel: 875 - originalLookupLabel: 875 - center: - x: 13.0 - y: -56.0 - z: 18.0 - color: '#010085' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_Rsp_4: - name: 17Networks_RH_DefaultC_Rsp_4 - lookupLabel: 876 - originalLookupLabel: 876 - center: - x: 21.0 - y: -61.0 - z: 23.0 - color: '#010086' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_PHC_1: - name: 17Networks_RH_DefaultC_PHC_1 - lookupLabel: 877 - originalLookupLabel: 877 - center: - x: 33.0 - y: -25.0 - z: -22.0 - color: '#010087' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_PHC_2: - name: 17Networks_RH_DefaultC_PHC_2 - lookupLabel: 878 - originalLookupLabel: 878 - center: - x: 22.0 - y: -23.0 - z: -23.0 - color: '#010088' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_PHC_3: - name: 17Networks_RH_DefaultC_PHC_3 - lookupLabel: 879 - originalLookupLabel: 879 - center: - x: 23.0 - y: -32.0 - z: -15.0 - color: '#010089' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_DefaultC_PHC_4: - name: 17Networks_RH_DefaultC_PHC_4 - lookupLabel: 880 - originalLookupLabel: 880 - center: - x: 17.0 - y: -35.0 - z: -12.0 - color: '#01008a' - hemisphere: right - hasParent: - - RH_DefaultC - 17Networks_RH_TempPar_1: - name: 17Networks_RH_TempPar_1 - lookupLabel: 881 - originalLookupLabel: 881 - center: - x: 49.0 - y: 18.0 - z: -23.0 - color: '#0c2ffe' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_2: - name: 17Networks_RH_TempPar_2 - lookupLabel: 882 - originalLookupLabel: 882 - center: - x: 53.0 - y: 10.0 - z: -18.0 - color: '#0c30f7' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_3: - name: 17Networks_RH_TempPar_3 - lookupLabel: 883 - originalLookupLabel: 883 - center: - x: 54.0 - y: 3.0 - z: -14.0 - color: '#0c30f8' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_4: - name: 17Networks_RH_TempPar_4 - lookupLabel: 884 - originalLookupLabel: 884 - center: - x: 55.0 - y: -6.0 - z: -9.0 - color: '#0c30f9' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_5: - name: 17Networks_RH_TempPar_5 - lookupLabel: 885 - originalLookupLabel: 885 - center: - x: 49.0 - y: -20.0 - z: -8.0 - color: '#0c30fa' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_6: - name: 17Networks_RH_TempPar_6 - lookupLabel: 886 - originalLookupLabel: 886 - center: - x: 51.0 - y: -31.0 - z: -4.0 - color: '#0c30fb' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_7: - name: 17Networks_RH_TempPar_7 - lookupLabel: 887 - originalLookupLabel: 887 - center: - x: 61.0 - y: -13.0 - z: -4.0 - color: '#0c30fc' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_8: - name: 17Networks_RH_TempPar_8 - lookupLabel: 888 - originalLookupLabel: 888 - center: - x: 64.0 - y: -50.0 - z: 2.0 - color: '#0c30fd' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_9: - name: 17Networks_RH_TempPar_9 - lookupLabel: 889 - originalLookupLabel: 889 - center: - x: 52.0 - y: -29.0 - z: 2.0 - color: '#0c30ff' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_10: - name: 17Networks_RH_TempPar_10 - lookupLabel: 890 - originalLookupLabel: 890 - center: - x: 63.0 - y: -21.0 - z: 1.0 - color: '#0929fa' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_11: - name: 17Networks_RH_TempPar_11 - lookupLabel: 891 - originalLookupLabel: 891 - center: - x: 50.0 - y: -38.0 - z: 4.0 - color: '#0929fb' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_12: - name: 17Networks_RH_TempPar_12 - lookupLabel: 892 - originalLookupLabel: 892 - center: - x: 60.0 - y: -46.0 - z: 6.0 - color: '#0929fc' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_13: - name: 17Networks_RH_TempPar_13 - lookupLabel: 893 - originalLookupLabel: 893 - center: - x: 52.0 - y: -43.0 - z: 12.0 - color: '#0929fd' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_14: - name: 17Networks_RH_TempPar_14 - lookupLabel: 894 - originalLookupLabel: 894 - center: - x: 64.0 - y: -32.0 - z: 6.0 - color: '#0929fe' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_15: - name: 17Networks_RH_TempPar_15 - lookupLabel: 895 - originalLookupLabel: 895 - center: - x: 55.0 - y: -54.0 - z: 11.0 - color: '#092af7' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_16: - name: 17Networks_RH_TempPar_16 - lookupLabel: 896 - originalLookupLabel: 896 - center: - x: 54.0 - y: -38.0 - z: 12.0 - color: '#092af8' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_17: - name: 17Networks_RH_TempPar_17 - lookupLabel: 897 - originalLookupLabel: 897 - center: - x: 57.0 - y: -48.0 - z: 13.0 - color: '#092af9' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_18: - name: 17Networks_RH_TempPar_18 - lookupLabel: 898 - originalLookupLabel: 898 - center: - x: 63.0 - y: -38.0 - z: 15.0 - color: '#092afa' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_19: - name: 17Networks_RH_TempPar_19 - lookupLabel: 899 - originalLookupLabel: 899 - center: - x: 51.0 - y: -44.0 - z: 20.0 - color: '#092afb' - hemisphere: right - hasParent: - - RH_TempPar - 17Networks_RH_TempPar_20: - name: 17Networks_RH_TempPar_20 - lookupLabel: 900 - originalLookupLabel: 900 - center: - x: 56.0 - y: -40.0 - z: 21.0 - color: '#092afc' - hemisphere: right - hasParent: - - RH_TempPar - versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_900Parcels_17Networks_order_FSLMNI152_1mm.nii.gz diff --git a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-900_res-1_desc-ordered_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-900_res-1_desc-ordered_dseg.yaml similarity index 99% rename from tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-900_res-1_desc-ordered_dseg.yaml rename to tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-900_res-1_desc-ordered_dseg.yaml index ccffc83b0..8c92e019c 100644 --- a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-900_res-1_desc-ordered_dseg.yaml +++ b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-17Networks_scale-900_res-1_desc-ordered_dseg.yaml @@ -1,14 +1,12 @@ name: Schaefer2018 abbreviation: Schaefer2018 versionIdentifier: '2018' -coordinateSpace: - name: MNI152 - abbreviation: FSLMNI152 - nativeUnit: mm +coordinateSpace: FSLMNI152 terminology: label: Schaefer2018_900Parcels_17Networks_order versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_900Parcels_17Networks_order_FSLMNI152_1mm.nii.gz + dataLocation: + schaefer2018_original_mni/Schaefer2018_900Parcels_17Networks_order_FSLMNI152_1mm.nii.gz entities: 17Networks_LH_VisCent_Striate_1: name: 17Networks_LH_VisCent_Striate_1 diff --git a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-1000_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-1000_dseg.yaml deleted file mode 100644 index c21fcb460..000000000 --- a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-1000_dseg.yaml +++ /dev/null @@ -1,12121 +0,0 @@ -name: Schaefer2018 -abbreviation: Schaefer2018 -versionIdentifier: '2018' -coordinateSpace: MNI152NLin6Asym -terminology: - label: Schaefer2018_1000Parcels_7Networks_order - entities: - LH_Vis: - name: LH_Vis - lookupLabel: -1 - hemisphere: left - center: - x: -20.5 - y: -75.7 - z: 4.9 - LH_SomMot: - name: LH_SomMot - lookupLabel: -2 - hemisphere: left - center: - x: -36.1 - y: -22.5 - z: 41.2 - LH_DorsAttn: - name: LH_DorsAttn - lookupLabel: -3 - hemisphere: left - center: - x: -34.0 - y: -47.5 - z: 38.5 - LH_SalVentAttn: - name: LH_SalVentAttn - lookupLabel: -4 - hemisphere: left - center: - x: -32.8 - y: -8.5 - z: 24.4 - LH_Limbic: - name: LH_Limbic - lookupLabel: -5 - hemisphere: left - center: - x: -25.0 - y: 11.4 - z: -25.1 - LH_Cont: - name: LH_Cont - lookupLabel: -6 - hemisphere: left - center: - x: -33.1 - y: -11.6 - z: 27.8 - LH_Default: - name: LH_Default - lookupLabel: -7 - hemisphere: left - center: - x: -27.6 - y: -11.9 - z: 18.8 - RH_Vis: - name: RH_Vis - lookupLabel: -8 - hemisphere: right - center: - x: 23.4 - y: -73.4 - z: 4.8 - RH_SomMot: - name: RH_SomMot - lookupLabel: -9 - hemisphere: right - center: - x: 37.3 - y: -19.1 - z: 39.9 - RH_DorsAttn: - name: RH_DorsAttn - lookupLabel: -10 - hemisphere: right - center: - x: 34.4 - y: -45.2 - z: 41.2 - RH_SalVentAttn: - name: RH_SalVentAttn - lookupLabel: -11 - hemisphere: right - center: - x: 37.4 - y: -8.4 - z: 23.9 - RH_Limbic: - name: RH_Limbic - lookupLabel: -12 - hemisphere: right - center: - x: 25.2 - y: 13.7 - z: -25.4 - RH_Cont: - name: RH_Cont - lookupLabel: -13 - hemisphere: right - center: - x: 35.3 - y: -0.3 - z: 29.2 - RH_Default: - name: RH_Default - lookupLabel: -14 - hemisphere: right - center: - x: 31.0 - y: -8.2 - z: 14.4 - 7Networks_LH_Vis_1: - name: 7Networks_LH_Vis_1 - lookupLabel: 1 - originalLookupLabel: 1 - center: - x: -35.0 - y: -36.0 - z: -24.0 - color: '#780e7f' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_2: - name: 7Networks_LH_Vis_2 - lookupLabel: 2 - originalLookupLabel: 2 - center: - x: -34.0 - y: -51.0 - z: -19.0 - color: '#780e80' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_3: - name: 7Networks_LH_Vis_3 - lookupLabel: 3 - originalLookupLabel: 3 - center: - x: -25.0 - y: -45.0 - z: -14.0 - color: '#780e81' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_4: - name: 7Networks_LH_Vis_4 - lookupLabel: 4 - originalLookupLabel: 4 - center: - x: -28.0 - y: -63.0 - z: -13.0 - color: '#780e82' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_5: - name: 7Networks_LH_Vis_5 - lookupLabel: 5 - originalLookupLabel: 5 - center: - x: -31.0 - y: -43.0 - z: -9.0 - color: '#780e83' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_6: - name: 7Networks_LH_Vis_6 - lookupLabel: 6 - originalLookupLabel: 6 - center: - x: -34.0 - y: -69.0 - z: -16.0 - color: '#780e84' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_7: - name: 7Networks_LH_Vis_7 - lookupLabel: 7 - originalLookupLabel: 7 - center: - x: -45.0 - y: -67.0 - z: -18.0 - color: '#780e85' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_8: - name: 7Networks_LH_Vis_8 - lookupLabel: 8 - originalLookupLabel: 8 - center: - x: -24.0 - y: -58.0 - z: -9.0 - color: '#780e86' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_9: - name: 7Networks_LH_Vis_9 - lookupLabel: 9 - originalLookupLabel: 9 - center: - x: -36.0 - y: -80.0 - z: -15.0 - color: '#780f7f' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_10: - name: 7Networks_LH_Vis_10 - lookupLabel: 10 - originalLookupLabel: 10 - center: - x: -26.0 - y: -80.0 - z: -13.0 - color: '#780f80' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_11: - name: 7Networks_LH_Vis_11 - lookupLabel: 11 - originalLookupLabel: 11 - center: - x: -21.0 - y: -74.0 - z: -9.0 - color: '#780f81' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_12: - name: 7Networks_LH_Vis_12 - lookupLabel: 12 - originalLookupLabel: 12 - center: - x: -45.0 - y: -72.0 - z: -11.0 - color: '#780f82' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_13: - name: 7Networks_LH_Vis_13 - lookupLabel: 13 - originalLookupLabel: 13 - center: - x: -21.0 - y: -49.0 - z: -6.0 - color: '#780f83' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_14: - name: 7Networks_LH_Vis_14 - lookupLabel: 14 - originalLookupLabel: 14 - center: - x: -20.0 - y: -88.0 - z: -16.0 - color: '#780f84' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_15: - name: 7Networks_LH_Vis_15 - lookupLabel: 15 - originalLookupLabel: 15 - center: - x: -42.0 - y: -84.0 - z: -14.0 - color: '#780f85' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_16: - name: 7Networks_LH_Vis_16 - lookupLabel: 16 - originalLookupLabel: 16 - center: - x: -14.0 - y: -71.0 - z: -10.0 - color: '#780f86' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_17: - name: 7Networks_LH_Vis_17 - lookupLabel: 17 - originalLookupLabel: 17 - center: - x: -13.0 - y: -83.0 - z: -14.0 - color: '#78107f' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_18: - name: 7Networks_LH_Vis_18 - lookupLabel: 18 - originalLookupLabel: 18 - center: - x: -31.0 - y: -91.0 - z: -18.0 - color: '#781080' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_19: - name: 7Networks_LH_Vis_19 - lookupLabel: 19 - originalLookupLabel: 19 - center: - x: -15.0 - y: -64.0 - z: -5.0 - color: '#781081' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_20: - name: 7Networks_LH_Vis_20 - lookupLabel: 20 - originalLookupLabel: 20 - center: - x: -16.0 - y: -38.0 - z: -11.0 - color: '#781082' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_21: - name: 7Networks_LH_Vis_21 - lookupLabel: 21 - originalLookupLabel: 21 - center: - x: -46.0 - y: -72.0 - z: -3.0 - color: '#781083' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_22: - name: 7Networks_LH_Vis_22 - lookupLabel: 22 - originalLookupLabel: 22 - center: - x: -13.0 - y: -50.0 - z: -7.0 - color: '#781084' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_23: - name: 7Networks_LH_Vis_23 - lookupLabel: 23 - originalLookupLabel: 23 - center: - x: -6.0 - y: -78.0 - z: -7.0 - color: '#781085' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_24: - name: 7Networks_LH_Vis_24 - lookupLabel: 24 - originalLookupLabel: 24 - center: - x: -34.0 - y: -92.0 - z: -9.0 - color: '#781086' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_25: - name: 7Networks_LH_Vis_25 - lookupLabel: 25 - originalLookupLabel: 25 - center: - x: -10.0 - y: -61.0 - z: -3.0 - color: '#78117f' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_26: - name: 7Networks_LH_Vis_26 - lookupLabel: 26 - originalLookupLabel: 26 - center: - x: -6.0 - y: -71.0 - z: -2.0 - color: '#781180' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_27: - name: 7Networks_LH_Vis_27 - lookupLabel: 27 - originalLookupLabel: 27 - center: - x: -4.0 - y: -90.0 - z: -12.0 - color: '#781181' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_28: - name: 7Networks_LH_Vis_28 - lookupLabel: 28 - originalLookupLabel: 28 - center: - x: -21.0 - y: -99.0 - z: -12.0 - color: '#781182' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_29: - name: 7Networks_LH_Vis_29 - lookupLabel: 29 - originalLookupLabel: 29 - center: - x: -45.0 - y: -82.0 - z: -1.0 - color: '#781183' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_30: - name: 7Networks_LH_Vis_30 - lookupLabel: 30 - originalLookupLabel: 30 - center: - x: -10.0 - y: -98.0 - z: -12.0 - color: '#781184' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_31: - name: 7Networks_LH_Vis_31 - lookupLabel: 31 - originalLookupLabel: 31 - center: - x: -14.0 - y: -42.0 - z: -4.0 - color: '#781185' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_32: - name: 7Networks_LH_Vis_32 - lookupLabel: 32 - originalLookupLabel: 32 - center: - x: -7.0 - y: -61.0 - z: 3.0 - color: '#781186' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_33: - name: 7Networks_LH_Vis_33 - lookupLabel: 33 - originalLookupLabel: 33 - center: - x: -30.0 - y: -96.0 - z: -2.0 - color: '#78127f' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_34: - name: 7Networks_LH_Vis_34 - lookupLabel: 34 - originalLookupLabel: 34 - center: - x: -36.0 - y: -89.0 - z: 1.0 - color: '#781280' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_35: - name: 7Networks_LH_Vis_35 - lookupLabel: 35 - originalLookupLabel: 35 - center: - x: -4.0 - y: -79.0 - z: 2.0 - color: '#781281' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_36: - name: 7Networks_LH_Vis_36 - lookupLabel: 36 - originalLookupLabel: 36 - center: - x: -44.0 - y: -71.0 - z: 7.0 - color: '#781282' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_37: - name: 7Networks_LH_Vis_37 - lookupLabel: 37 - originalLookupLabel: 37 - center: - x: -5.0 - y: -68.0 - z: 6.0 - color: '#781283' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_38: - name: 7Networks_LH_Vis_38 - lookupLabel: 38 - originalLookupLabel: 38 - center: - x: -17.0 - y: -55.0 - z: 1.0 - color: '#781284' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_39: - name: 7Networks_LH_Vis_39 - lookupLabel: 39 - originalLookupLabel: 39 - center: - x: -9.0 - y: -95.0 - z: -2.0 - color: '#781285' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_40: - name: 7Networks_LH_Vis_40 - lookupLabel: 40 - originalLookupLabel: 40 - center: - x: -6.0 - y: -103.0 - z: -1.0 - color: '#781287' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_41: - name: 7Networks_LH_Vis_41 - lookupLabel: 41 - originalLookupLabel: 41 - center: - x: -11.0 - y: -45.0 - z: 2.0 - color: '#781288' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_42: - name: 7Networks_LH_Vis_42 - lookupLabel: 42 - originalLookupLabel: 42 - center: - x: -48.0 - y: -78.0 - z: 9.0 - color: '#781289' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_43: - name: 7Networks_LH_Vis_43 - lookupLabel: 43 - originalLookupLabel: 43 - center: - x: -6.0 - y: -88.0 - z: 2.0 - color: '#78128a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_44: - name: 7Networks_LH_Vis_44 - lookupLabel: 44 - originalLookupLabel: 44 - center: - x: -17.0 - y: -102.0 - z: 2.0 - color: '#78128b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_45: - name: 7Networks_LH_Vis_45 - lookupLabel: 45 - originalLookupLabel: 45 - center: - x: -43.0 - y: -85.0 - z: 10.0 - color: '#78128c' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_46: - name: 7Networks_LH_Vis_46 - lookupLabel: 46 - originalLookupLabel: 46 - center: - x: -17.0 - y: -68.0 - z: 4.0 - color: '#78128d' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_47: - name: 7Networks_LH_Vis_47 - lookupLabel: 47 - originalLookupLabel: 47 - center: - x: -12.0 - y: -75.0 - z: 9.0 - color: '#781386' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_48: - name: 7Networks_LH_Vis_48 - lookupLabel: 48 - originalLookupLabel: 48 - center: - x: -14.0 - y: -51.0 - z: 4.0 - color: '#781387' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_49: - name: 7Networks_LH_Vis_49 - lookupLabel: 49 - originalLookupLabel: 49 - center: - x: -25.0 - y: -95.0 - z: 8.0 - color: '#781388' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_50: - name: 7Networks_LH_Vis_50 - lookupLabel: 50 - originalLookupLabel: 50 - center: - x: -23.0 - y: -58.0 - z: 5.0 - color: '#781389' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_51: - name: 7Networks_LH_Vis_51 - lookupLabel: 51 - originalLookupLabel: 51 - center: - x: -7.0 - y: -81.0 - z: 10.0 - color: '#78138a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_52: - name: 7Networks_LH_Vis_52 - lookupLabel: 52 - originalLookupLabel: 52 - center: - x: -2.0 - y: -94.0 - z: 5.0 - color: '#78138b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_53: - name: 7Networks_LH_Vis_53 - lookupLabel: 53 - originalLookupLabel: 53 - center: - x: -32.0 - y: -87.0 - z: 10.0 - color: '#78138c' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_54: - name: 7Networks_LH_Vis_54 - lookupLabel: 54 - originalLookupLabel: 54 - center: - x: -9.0 - y: -100.0 - z: 11.0 - color: '#78138d' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_55: - name: 7Networks_LH_Vis_55 - lookupLabel: 55 - originalLookupLabel: 55 - center: - x: -16.0 - y: -58.0 - z: 8.0 - color: '#781486' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_56: - name: 7Networks_LH_Vis_56 - lookupLabel: 56 - originalLookupLabel: 56 - center: - x: -18.0 - y: -65.0 - z: 9.0 - color: '#781487' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_57: - name: 7Networks_LH_Vis_57 - lookupLabel: 57 - originalLookupLabel: 57 - center: - x: -8.0 - y: -70.0 - z: 12.0 - color: '#781488' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_58: - name: 7Networks_LH_Vis_58 - lookupLabel: 58 - originalLookupLabel: 58 - center: - x: -18.0 - y: -98.0 - z: 17.0 - color: '#781489' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_59: - name: 7Networks_LH_Vis_59 - lookupLabel: 59 - originalLookupLabel: 59 - center: - x: -49.0 - y: -75.0 - z: 20.0 - color: '#78148a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_60: - name: 7Networks_LH_Vis_60 - lookupLabel: 60 - originalLookupLabel: 60 - center: - x: -1.0 - y: -80.0 - z: 12.0 - color: '#78148b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_61: - name: 7Networks_LH_Vis_61 - lookupLabel: 61 - originalLookupLabel: 61 - center: - x: -41.0 - y: -80.0 - z: 16.0 - color: '#78148c' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_62: - name: 7Networks_LH_Vis_62 - lookupLabel: 62 - originalLookupLabel: 62 - center: - x: -4.0 - y: -92.0 - z: 16.0 - color: '#78148d' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_63: - name: 7Networks_LH_Vis_63 - lookupLabel: 63 - originalLookupLabel: 63 - center: - x: -19.0 - y: -60.0 - z: 16.0 - color: '#781586' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_64: - name: 7Networks_LH_Vis_64 - lookupLabel: 64 - originalLookupLabel: 64 - center: - x: -25.0 - y: -91.0 - z: 20.0 - color: '#781587' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_65: - name: 7Networks_LH_Vis_65 - lookupLabel: 65 - originalLookupLabel: 65 - center: - x: -34.0 - y: -90.0 - z: 19.0 - color: '#781588' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_66: - name: 7Networks_LH_Vis_66 - lookupLabel: 66 - originalLookupLabel: 66 - center: - x: -7.0 - y: -69.0 - z: 17.0 - color: '#781589' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_67: - name: 7Networks_LH_Vis_67 - lookupLabel: 67 - originalLookupLabel: 67 - center: - x: -2.0 - y: -82.0 - z: 21.0 - color: '#78158a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_68: - name: 7Networks_LH_Vis_68 - lookupLabel: 68 - originalLookupLabel: 68 - center: - x: -10.0 - y: -95.0 - z: 25.0 - color: '#78158b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_69: - name: 7Networks_LH_Vis_69 - lookupLabel: 69 - originalLookupLabel: 69 - center: - x: -16.0 - y: -67.0 - z: 17.0 - color: '#78158c' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_70: - name: 7Networks_LH_Vis_70 - lookupLabel: 70 - originalLookupLabel: 70 - center: - x: -17.0 - y: -90.0 - z: 23.0 - color: '#78158d' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_71: - name: 7Networks_LH_Vis_71 - lookupLabel: 71 - originalLookupLabel: 71 - center: - x: -4.0 - y: -77.0 - z: 27.0 - color: '#781686' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_72: - name: 7Networks_LH_Vis_72 - lookupLabel: 72 - originalLookupLabel: 72 - center: - x: -27.0 - y: -81.0 - z: 19.0 - color: '#781687' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_73: - name: 7Networks_LH_Vis_73 - lookupLabel: 73 - originalLookupLabel: 73 - center: - x: -5.0 - y: -88.0 - z: 32.0 - color: '#781688' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_74: - name: 7Networks_LH_Vis_74 - lookupLabel: 74 - originalLookupLabel: 74 - center: - x: -31.0 - y: -85.0 - z: 26.0 - color: '#781689' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_75: - name: 7Networks_LH_Vis_75 - lookupLabel: 75 - originalLookupLabel: 75 - center: - x: -14.0 - y: -75.0 - z: 25.0 - color: '#78168a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_76: - name: 7Networks_LH_Vis_76 - lookupLabel: 76 - originalLookupLabel: 76 - center: - x: -17.0 - y: -89.0 - z: 34.0 - color: '#78168b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_77: - name: 7Networks_LH_Vis_77 - lookupLabel: 77 - originalLookupLabel: 77 - center: - x: -24.0 - y: -81.0 - z: 29.0 - color: '#78168c' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_78: - name: 7Networks_LH_Vis_78 - lookupLabel: 78 - originalLookupLabel: 78 - center: - x: -12.0 - y: -81.0 - z: 35.0 - color: '#78168d' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_79: - name: 7Networks_LH_Vis_79 - lookupLabel: 79 - originalLookupLabel: 79 - center: - x: -14.0 - y: -86.0 - z: 42.0 - color: '#781786' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_80: - name: 7Networks_LH_Vis_80 - lookupLabel: 80 - originalLookupLabel: 80 - center: - x: -23.0 - y: -82.0 - z: 42.0 - color: '#781787' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_81: - name: 7Networks_LH_Vis_81 - lookupLabel: 81 - originalLookupLabel: 81 - center: - x: -12.0 - y: -79.0 - z: 45.0 - color: '#781788' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_SomMot_1: - name: 7Networks_LH_SomMot_1 - lookupLabel: 82 - originalLookupLabel: 82 - center: - x: -50.0 - y: 6.0 - z: -8.0 - color: '#467db0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_2: - name: 7Networks_LH_SomMot_2 - lookupLabel: 83 - originalLookupLabel: 83 - center: - x: -56.0 - y: -3.0 - z: -1.0 - color: '#467db1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_3: - name: 7Networks_LH_SomMot_3 - lookupLabel: 84 - originalLookupLabel: 84 - center: - x: -63.0 - y: -12.0 - z: 3.0 - color: '#467db2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_4: - name: 7Networks_LH_SomMot_4 - lookupLabel: 85 - originalLookupLabel: 85 - center: - x: -66.0 - y: -19.0 - z: 6.0 - color: '#467db3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_5: - name: 7Networks_LH_SomMot_5 - lookupLabel: 86 - originalLookupLabel: 86 - center: - x: -52.0 - y: -14.0 - z: 6.0 - color: '#467db4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_6: - name: 7Networks_LH_SomMot_6 - lookupLabel: 87 - originalLookupLabel: 87 - center: - x: -43.0 - y: -19.0 - z: 3.0 - color: '#467ead' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_7: - name: 7Networks_LH_SomMot_7 - lookupLabel: 88 - originalLookupLabel: 88 - center: - x: -66.0 - y: -30.0 - z: 6.0 - color: '#467eae' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_8: - name: 7Networks_LH_SomMot_8 - lookupLabel: 89 - originalLookupLabel: 89 - center: - x: -53.0 - y: -20.0 - z: 6.0 - color: '#467eaf' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_9: - name: 7Networks_LH_SomMot_9 - lookupLabel: 90 - originalLookupLabel: 90 - center: - x: -60.0 - y: -26.0 - z: 10.0 - color: '#467eb0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_10: - name: 7Networks_LH_SomMot_10 - lookupLabel: 91 - originalLookupLabel: 91 - center: - x: -41.0 - y: -24.0 - z: 11.0 - color: '#467eb1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_11: - name: 7Networks_LH_SomMot_11 - lookupLabel: 92 - originalLookupLabel: 92 - center: - x: -34.0 - y: -24.0 - z: 10.0 - color: '#467eb2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_12: - name: 7Networks_LH_SomMot_12 - lookupLabel: 93 - originalLookupLabel: 93 - center: - x: -36.0 - y: -14.0 - z: 14.0 - color: '#467eb3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_13: - name: 7Networks_LH_SomMot_13 - lookupLabel: 94 - originalLookupLabel: 94 - center: - x: -62.0 - y: -40.0 - z: 9.0 - color: '#467eb4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_14: - name: 7Networks_LH_SomMot_14 - lookupLabel: 95 - originalLookupLabel: 95 - center: - x: -43.0 - y: -30.0 - z: 9.0 - color: '#467fad' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_15: - name: 7Networks_LH_SomMot_15 - lookupLabel: 96 - originalLookupLabel: 96 - center: - x: -34.0 - y: -31.0 - z: 16.0 - color: '#467fae' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_16: - name: 7Networks_LH_SomMot_16 - lookupLabel: 97 - originalLookupLabel: 97 - center: - x: -34.0 - y: -23.0 - z: 19.0 - color: '#467faf' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_17: - name: 7Networks_LH_SomMot_17 - lookupLabel: 98 - originalLookupLabel: 98 - center: - x: -40.0 - y: -13.0 - z: 18.0 - color: '#467fb0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_18: - name: 7Networks_LH_SomMot_18 - lookupLabel: 99 - originalLookupLabel: 99 - center: - x: -48.0 - y: -34.0 - z: 11.0 - color: '#467fb1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_19: - name: 7Networks_LH_SomMot_19 - lookupLabel: 100 - originalLookupLabel: 100 - center: - x: -55.0 - y: -47.0 - z: 14.0 - color: '#467fb2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_20: - name: 7Networks_LH_SomMot_20 - lookupLabel: 101 - originalLookupLabel: 101 - center: - x: -59.0 - y: -37.0 - z: 16.0 - color: '#467fb3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_21: - name: 7Networks_LH_SomMot_21 - lookupLabel: 102 - originalLookupLabel: 102 - center: - x: -48.0 - y: -13.0 - z: 14.0 - color: '#467fb4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_22: - name: 7Networks_LH_SomMot_22 - lookupLabel: 103 - originalLookupLabel: 103 - center: - x: -55.0 - y: -7.0 - z: 9.0 - color: '#4680ad' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_23: - name: 7Networks_LH_SomMot_23 - lookupLabel: 104 - originalLookupLabel: 104 - center: - x: -65.0 - y: -46.0 - z: 15.0 - color: '#4680ae' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_24: - name: 7Networks_LH_SomMot_24 - lookupLabel: 105 - originalLookupLabel: 105 - center: - x: -39.0 - y: -26.0 - z: 20.0 - color: '#4680af' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_25: - name: 7Networks_LH_SomMot_25 - lookupLabel: 106 - originalLookupLabel: 106 - center: - x: -40.0 - y: -37.0 - z: 17.0 - color: '#4680b0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_26: - name: 7Networks_LH_SomMot_26 - lookupLabel: 107 - originalLookupLabel: 107 - center: - x: -57.0 - y: -15.0 - z: 15.0 - color: '#4680b1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_27: - name: 7Networks_LH_SomMot_27 - lookupLabel: 108 - originalLookupLabel: 108 - center: - x: -60.0 - y: -3.0 - z: 12.0 - color: '#4680b2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_28: - name: 7Networks_LH_SomMot_28 - lookupLabel: 109 - originalLookupLabel: 109 - center: - x: -49.0 - y: -22.0 - z: 18.0 - color: '#4680b3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_29: - name: 7Networks_LH_SomMot_29 - lookupLabel: 110 - originalLookupLabel: 110 - center: - x: -65.0 - y: -11.0 - z: 16.0 - color: '#4680b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_30: - name: 7Networks_LH_SomMot_30 - lookupLabel: 111 - originalLookupLabel: 111 - center: - x: -48.0 - y: -30.0 - z: 18.0 - color: '#4681ad' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_31: - name: 7Networks_LH_SomMot_31 - lookupLabel: 112 - originalLookupLabel: 112 - center: - x: -62.0 - y: -18.0 - z: 21.0 - color: '#4681ae' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_32: - name: 7Networks_LH_SomMot_32 - lookupLabel: 113 - originalLookupLabel: 113 - center: - x: -60.0 - y: 2.0 - z: 22.0 - color: '#4681af' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_33: - name: 7Networks_LH_SomMot_33 - lookupLabel: 114 - originalLookupLabel: 114 - center: - x: -60.0 - y: -6.0 - z: 19.0 - color: '#4681b0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_34: - name: 7Networks_LH_SomMot_34 - lookupLabel: 115 - originalLookupLabel: 115 - center: - x: -64.0 - y: -10.0 - z: 28.0 - color: '#4681b1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_35: - name: 7Networks_LH_SomMot_35 - lookupLabel: 116 - originalLookupLabel: 116 - center: - x: -57.0 - y: -2.0 - z: 29.0 - color: '#4681b2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_36: - name: 7Networks_LH_SomMot_36 - lookupLabel: 117 - originalLookupLabel: 117 - center: - x: -54.0 - y: -10.0 - z: 31.0 - color: '#4681b3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_37: - name: 7Networks_LH_SomMot_37 - lookupLabel: 118 - originalLookupLabel: 118 - center: - x: -61.0 - y: -11.0 - z: 39.0 - color: '#4681b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_38: - name: 7Networks_LH_SomMot_38 - lookupLabel: 119 - originalLookupLabel: 119 - center: - x: -54.0 - y: -5.0 - z: 37.0 - color: '#4682ad' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_39: - name: 7Networks_LH_SomMot_39 - lookupLabel: 120 - originalLookupLabel: 120 - center: - x: -55.0 - y: -19.0 - z: 42.0 - color: '#4682ae' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_40: - name: 7Networks_LH_SomMot_40 - lookupLabel: 121 - originalLookupLabel: 121 - center: - x: -50.0 - y: -16.0 - z: 41.0 - color: '#4682af' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_41: - name: 7Networks_LH_SomMot_41 - lookupLabel: 122 - originalLookupLabel: 122 - center: - x: -44.0 - y: -13.0 - z: 37.0 - color: '#4682b0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_42: - name: 7Networks_LH_SomMot_42 - lookupLabel: 123 - originalLookupLabel: 123 - center: - x: -8.0 - y: -7.0 - z: 42.0 - color: '#4682b1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_43: - name: 7Networks_LH_SomMot_43 - lookupLabel: 124 - originalLookupLabel: 124 - center: - x: -52.0 - y: -4.0 - z: 47.0 - color: '#4682b2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_44: - name: 7Networks_LH_SomMot_44 - lookupLabel: 125 - originalLookupLabel: 125 - center: - x: -57.0 - y: -17.0 - z: 51.0 - color: '#4682b3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_45: - name: 7Networks_LH_SomMot_45 - lookupLabel: 126 - originalLookupLabel: 126 - center: - x: -47.0 - y: -27.0 - z: 45.0 - color: '#4682b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_46: - name: 7Networks_LH_SomMot_46 - lookupLabel: 127 - originalLookupLabel: 127 - center: - x: -39.0 - y: -19.0 - z: 40.0 - color: '#4682b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_47: - name: 7Networks_LH_SomMot_47 - lookupLabel: 128 - originalLookupLabel: 128 - center: - x: -8.0 - y: -9.0 - z: 48.0 - color: '#4682b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_48: - name: 7Networks_LH_SomMot_48 - lookupLabel: 129 - originalLookupLabel: 129 - center: - x: -51.0 - y: -26.0 - z: 55.0 - color: '#4682b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_49: - name: 7Networks_LH_SomMot_49 - lookupLabel: 130 - originalLookupLabel: 130 - center: - x: -43.0 - y: -12.0 - z: 50.0 - color: '#4682b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_50: - name: 7Networks_LH_SomMot_50 - lookupLabel: 131 - originalLookupLabel: 131 - center: - x: -47.0 - y: -17.0 - z: 54.0 - color: '#4682ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_51: - name: 7Networks_LH_SomMot_51 - lookupLabel: 132 - originalLookupLabel: 132 - center: - x: -8.0 - y: -19.0 - z: 47.0 - color: '#4682bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_52: - name: 7Networks_LH_SomMot_52 - lookupLabel: 133 - originalLookupLabel: 133 - center: - x: -35.0 - y: -20.0 - z: 45.0 - color: '#4683b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_53: - name: 7Networks_LH_SomMot_53 - lookupLabel: 134 - originalLookupLabel: 134 - center: - x: -39.0 - y: -5.0 - z: 58.0 - color: '#4683b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_54: - name: 7Networks_LH_SomMot_54 - lookupLabel: 135 - originalLookupLabel: 135 - center: - x: -6.0 - y: -28.0 - z: 50.0 - color: '#4683b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_55: - name: 7Networks_LH_SomMot_55 - lookupLabel: 136 - originalLookupLabel: 136 - center: - x: -4.0 - y: -12.0 - z: 55.0 - color: '#4683b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_56: - name: 7Networks_LH_SomMot_56 - lookupLabel: 137 - originalLookupLabel: 137 - center: - x: -40.0 - y: -16.0 - z: 58.0 - color: '#4683b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_57: - name: 7Networks_LH_SomMot_57 - lookupLabel: 138 - originalLookupLabel: 138 - center: - x: -44.0 - y: -33.0 - z: 63.0 - color: '#4683b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_58: - name: 7Networks_LH_SomMot_58 - lookupLabel: 139 - originalLookupLabel: 139 - center: - x: -39.0 - y: -26.0 - z: 54.0 - color: '#4683ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_59: - name: 7Networks_LH_SomMot_59 - lookupLabel: 140 - originalLookupLabel: 140 - center: - x: -33.0 - y: -45.0 - z: 62.0 - color: '#4683bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_60: - name: 7Networks_LH_SomMot_60 - lookupLabel: 141 - originalLookupLabel: 141 - center: - x: -5.0 - y: -23.0 - z: 57.0 - color: '#4684b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_61: - name: 7Networks_LH_SomMot_61 - lookupLabel: 142 - originalLookupLabel: 142 - center: - x: -34.0 - y: -38.0 - z: 62.0 - color: '#4684b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_62: - name: 7Networks_LH_SomMot_62 - lookupLabel: 143 - originalLookupLabel: 143 - center: - x: -9.0 - y: -41.0 - z: 58.0 - color: '#4684b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_63: - name: 7Networks_LH_SomMot_63 - lookupLabel: 144 - originalLookupLabel: 144 - center: - x: -28.0 - y: -11.0 - z: 61.0 - color: '#4684b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_64: - name: 7Networks_LH_SomMot_64 - lookupLabel: 145 - originalLookupLabel: 145 - center: - x: -35.0 - y: -17.0 - z: 68.0 - color: '#4684b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_65: - name: 7Networks_LH_SomMot_65 - lookupLabel: 146 - originalLookupLabel: 146 - center: - x: -5.0 - y: -12.0 - z: 63.0 - color: '#4684b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_66: - name: 7Networks_LH_SomMot_66 - lookupLabel: 147 - originalLookupLabel: 147 - center: - x: -31.0 - y: -29.0 - z: 63.0 - color: '#4684ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_67: - name: 7Networks_LH_SomMot_67 - lookupLabel: 148 - originalLookupLabel: 148 - center: - x: -30.0 - y: -25.0 - z: 61.0 - color: '#4684bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_68: - name: 7Networks_LH_SomMot_68 - lookupLabel: 149 - originalLookupLabel: 149 - center: - x: -3.0 - y: -33.0 - z: 59.0 - color: '#4685b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_69: - name: 7Networks_LH_SomMot_69 - lookupLabel: 150 - originalLookupLabel: 150 - center: - x: -26.0 - y: -40.0 - z: 62.0 - color: '#4685b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_70: - name: 7Networks_LH_SomMot_70 - lookupLabel: 151 - originalLookupLabel: 151 - center: - x: -24.0 - y: -47.0 - z: 64.0 - color: '#4685b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_71: - name: 7Networks_LH_SomMot_71 - lookupLabel: 152 - originalLookupLabel: 152 - center: - x: -24.0 - y: -12.0 - z: 71.0 - color: '#4685b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_72: - name: 7Networks_LH_SomMot_72 - lookupLabel: 153 - originalLookupLabel: 153 - center: - x: -29.0 - y: -33.0 - z: 72.0 - color: '#4685b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_73: - name: 7Networks_LH_SomMot_73 - lookupLabel: 154 - originalLookupLabel: 154 - center: - x: -4.0 - y: -22.0 - z: 65.0 - color: '#4685b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_74: - name: 7Networks_LH_SomMot_74 - lookupLabel: 155 - originalLookupLabel: 155 - center: - x: -22.0 - y: -29.0 - z: 56.0 - color: '#4685ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_75: - name: 7Networks_LH_SomMot_75 - lookupLabel: 156 - originalLookupLabel: 156 - center: - x: -16.0 - y: -10.0 - z: 66.0 - color: '#4685bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_76: - name: 7Networks_LH_SomMot_76 - lookupLabel: 157 - originalLookupLabel: 157 - center: - x: -11.0 - y: -45.0 - z: 70.0 - color: '#4686b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_77: - name: 7Networks_LH_SomMot_77 - lookupLabel: 158 - originalLookupLabel: 158 - center: - x: -23.0 - y: -21.0 - z: 72.0 - color: '#4686b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_78: - name: 7Networks_LH_SomMot_78 - lookupLabel: 159 - originalLookupLabel: 159 - center: - x: -5.0 - y: -43.0 - z: 66.0 - color: '#4686b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_79: - name: 7Networks_LH_SomMot_79 - lookupLabel: 160 - originalLookupLabel: 160 - center: - x: -20.0 - y: -50.0 - z: 68.0 - color: '#4686b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_80: - name: 7Networks_LH_SomMot_80 - lookupLabel: 161 - originalLookupLabel: 161 - center: - x: -18.0 - y: -26.0 - z: 64.0 - color: '#4686b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_81: - name: 7Networks_LH_SomMot_81 - lookupLabel: 162 - originalLookupLabel: 162 - center: - x: -23.0 - y: -38.0 - z: 71.0 - color: '#4686b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_82: - name: 7Networks_LH_SomMot_82 - lookupLabel: 163 - originalLookupLabel: 163 - center: - x: -12.0 - y: -8.0 - z: 71.0 - color: '#4686ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_83: - name: 7Networks_LH_SomMot_83 - lookupLabel: 164 - originalLookupLabel: 164 - center: - x: -14.0 - y: -49.0 - z: 73.0 - color: '#4686bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_84: - name: 7Networks_LH_SomMot_84 - lookupLabel: 165 - originalLookupLabel: 165 - center: - x: -20.0 - y: -31.0 - z: 68.0 - color: '#4687b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_85: - name: 7Networks_LH_SomMot_85 - lookupLabel: 166 - originalLookupLabel: 166 - center: - x: -16.0 - y: -15.0 - z: 75.0 - color: '#4687b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_86: - name: 7Networks_LH_SomMot_86 - lookupLabel: 167 - originalLookupLabel: 167 - center: - x: -7.0 - y: -16.0 - z: 75.0 - color: '#4687b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_87: - name: 7Networks_LH_SomMot_87 - lookupLabel: 168 - originalLookupLabel: 168 - center: - x: -3.0 - y: -30.0 - z: 71.0 - color: '#4687b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_88: - name: 7Networks_LH_SomMot_88 - lookupLabel: 169 - originalLookupLabel: 169 - center: - x: -8.0 - y: -40.0 - z: 76.0 - color: '#4687b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_89: - name: 7Networks_LH_SomMot_89 - lookupLabel: 170 - originalLookupLabel: 170 - center: - x: -17.0 - y: -39.0 - z: 75.0 - color: '#4687b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_90: - name: 7Networks_LH_SomMot_90 - lookupLabel: 171 - originalLookupLabel: 171 - center: - x: -12.0 - y: -26.0 - z: 74.0 - color: '#4687ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_91: - name: 7Networks_LH_SomMot_91 - lookupLabel: 172 - originalLookupLabel: 172 - center: - x: -10.0 - y: -35.0 - z: 72.0 - color: '#4687bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_DorsAttn_Post_1: - name: 7Networks_LH_DorsAttn_Post_1 - lookupLabel: 173 - originalLookupLabel: 173 - center: - x: -45.0 - y: -41.0 - z: -22.0 - color: '#007407' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_2: - name: 7Networks_LH_DorsAttn_Post_2 - lookupLabel: 174 - originalLookupLabel: 174 - center: - x: -51.0 - y: -49.0 - z: -21.0 - color: '#007408' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_3: - name: 7Networks_LH_DorsAttn_Post_3 - lookupLabel: 175 - originalLookupLabel: 175 - center: - x: -43.0 - y: -54.0 - z: -17.0 - color: '#007409' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_4: - name: 7Networks_LH_DorsAttn_Post_4 - lookupLabel: 176 - originalLookupLabel: 176 - center: - x: -45.0 - y: -58.0 - z: -10.0 - color: '#00740a' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_5: - name: 7Networks_LH_DorsAttn_Post_5 - lookupLabel: 177 - originalLookupLabel: 177 - center: - x: -47.0 - y: -62.0 - z: -5.0 - color: '#00740b' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_6: - name: 7Networks_LH_DorsAttn_Post_6 - lookupLabel: 178 - originalLookupLabel: 178 - center: - x: -57.0 - y: -59.0 - z: -5.0 - color: '#00740c' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_7: - name: 7Networks_LH_DorsAttn_Post_7 - lookupLabel: 179 - originalLookupLabel: 179 - center: - x: -48.0 - y: -65.0 - z: 2.0 - color: '#00740d' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_8: - name: 7Networks_LH_DorsAttn_Post_8 - lookupLabel: 180 - originalLookupLabel: 180 - center: - x: -54.0 - y: -68.0 - z: 6.0 - color: '#00740e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_9: - name: 7Networks_LH_DorsAttn_Post_9 - lookupLabel: 181 - originalLookupLabel: 181 - center: - x: -58.0 - y: -60.0 - z: 6.0 - color: '#007507' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_10: - name: 7Networks_LH_DorsAttn_Post_10 - lookupLabel: 182 - originalLookupLabel: 182 - center: - x: -49.0 - y: -62.0 - z: 10.0 - color: '#007508' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_11: - name: 7Networks_LH_DorsAttn_Post_11 - lookupLabel: 183 - originalLookupLabel: 183 - center: - x: -48.0 - y: -69.0 - z: 16.0 - color: '#007509' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_12: - name: 7Networks_LH_DorsAttn_Post_12 - lookupLabel: 184 - originalLookupLabel: 184 - center: - x: -45.0 - y: -62.0 - z: 16.0 - color: '#00750a' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_13: - name: 7Networks_LH_DorsAttn_Post_13 - lookupLabel: 185 - originalLookupLabel: 185 - center: - x: -42.0 - y: -71.0 - z: 23.0 - color: '#00750b' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_14: - name: 7Networks_LH_DorsAttn_Post_14 - lookupLabel: 186 - originalLookupLabel: 186 - center: - x: -39.0 - y: -87.0 - z: 24.0 - color: '#00750c' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_15: - name: 7Networks_LH_DorsAttn_Post_15 - lookupLabel: 187 - originalLookupLabel: 187 - center: - x: -43.0 - y: -78.0 - z: 28.0 - color: '#00750d' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_16: - name: 7Networks_LH_DorsAttn_Post_16 - lookupLabel: 188 - originalLookupLabel: 188 - center: - x: -35.0 - y: -85.0 - z: 34.0 - color: '#00750e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_17: - name: 7Networks_LH_DorsAttn_Post_17 - lookupLabel: 189 - originalLookupLabel: 189 - center: - x: -30.0 - y: -77.0 - z: 30.0 - color: '#007607' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_18: - name: 7Networks_LH_DorsAttn_Post_18 - lookupLabel: 190 - originalLookupLabel: 190 - center: - x: -27.0 - y: -70.0 - z: 27.0 - color: '#007608' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_19: - name: 7Networks_LH_DorsAttn_Post_19 - lookupLabel: 191 - originalLookupLabel: 191 - center: - x: -58.0 - y: -23.0 - z: 39.0 - color: '#007609' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_20: - name: 7Networks_LH_DorsAttn_Post_20 - lookupLabel: 192 - originalLookupLabel: 192 - center: - x: -23.0 - y: -73.0 - z: 36.0 - color: '#00760a' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_21: - name: 7Networks_LH_DorsAttn_Post_21 - lookupLabel: 193 - originalLookupLabel: 193 - center: - x: -27.0 - y: -67.0 - z: 37.0 - color: '#00760b' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_22: - name: 7Networks_LH_DorsAttn_Post_22 - lookupLabel: 194 - originalLookupLabel: 194 - center: - x: -59.0 - y: -30.0 - z: 45.0 - color: '#00760c' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_23: - name: 7Networks_LH_DorsAttn_Post_23 - lookupLabel: 195 - originalLookupLabel: 195 - center: - x: -52.0 - y: -27.0 - z: 41.0 - color: '#00760d' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_24: - name: 7Networks_LH_DorsAttn_Post_24 - lookupLabel: 196 - originalLookupLabel: 196 - center: - x: -51.0 - y: -34.0 - z: 45.0 - color: '#00760f' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_25: - name: 7Networks_LH_DorsAttn_Post_25 - lookupLabel: 197 - originalLookupLabel: 197 - center: - x: -41.0 - y: -39.0 - z: 42.0 - color: '#007610' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_26: - name: 7Networks_LH_DorsAttn_Post_26 - lookupLabel: 198 - originalLookupLabel: 198 - center: - x: -24.0 - y: -64.0 - z: 47.0 - color: '#007611' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_27: - name: 7Networks_LH_DorsAttn_Post_27 - lookupLabel: 199 - originalLookupLabel: 199 - center: - x: -18.0 - y: -77.0 - z: 50.0 - color: '#007612' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_28: - name: 7Networks_LH_DorsAttn_Post_28 - lookupLabel: 200 - originalLookupLabel: 200 - center: - x: -42.0 - y: -33.0 - z: 42.0 - color: '#007613' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_29: - name: 7Networks_LH_DorsAttn_Post_29 - lookupLabel: 201 - originalLookupLabel: 201 - center: - x: -19.0 - y: -69.0 - z: 46.0 - color: '#007614' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_30: - name: 7Networks_LH_DorsAttn_Post_30 - lookupLabel: 202 - originalLookupLabel: 202 - center: - x: -32.0 - y: -39.0 - z: 42.0 - color: '#007615' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_31: - name: 7Networks_LH_DorsAttn_Post_31 - lookupLabel: 203 - originalLookupLabel: 203 - center: - x: -29.0 - y: -59.0 - z: 51.0 - color: '#00770e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_32: - name: 7Networks_LH_DorsAttn_Post_32 - lookupLabel: 204 - originalLookupLabel: 204 - center: - x: -32.0 - y: -47.0 - z: 47.0 - color: '#00770f' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_33: - name: 7Networks_LH_DorsAttn_Post_33 - lookupLabel: 205 - originalLookupLabel: 205 - center: - x: -28.0 - y: -54.0 - z: 49.0 - color: '#007710' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_34: - name: 7Networks_LH_DorsAttn_Post_34 - lookupLabel: 206 - originalLookupLabel: 206 - center: - x: -6.0 - y: -77.0 - z: 52.0 - color: '#007711' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_35: - name: 7Networks_LH_DorsAttn_Post_35 - lookupLabel: 207 - originalLookupLabel: 207 - center: - x: -41.0 - y: -35.0 - z: 51.0 - color: '#007712' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_36: - name: 7Networks_LH_DorsAttn_Post_36 - lookupLabel: 208 - originalLookupLabel: 208 - center: - x: -26.0 - y: -65.0 - z: 57.0 - color: '#007713' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_37: - name: 7Networks_LH_DorsAttn_Post_37 - lookupLabel: 209 - originalLookupLabel: 209 - center: - x: -29.0 - y: -57.0 - z: 57.0 - color: '#007714' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_38: - name: 7Networks_LH_DorsAttn_Post_38 - lookupLabel: 210 - originalLookupLabel: 210 - center: - x: -15.0 - y: -72.0 - z: 55.0 - color: '#007715' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_39: - name: 7Networks_LH_DorsAttn_Post_39 - lookupLabel: 211 - originalLookupLabel: 211 - center: - x: -38.0 - y: -42.0 - z: 57.0 - color: '#00780e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_40: - name: 7Networks_LH_DorsAttn_Post_40 - lookupLabel: 212 - originalLookupLabel: 212 - center: - x: -37.0 - y: -52.0 - z: 57.0 - color: '#00780f' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_41: - name: 7Networks_LH_DorsAttn_Post_41 - lookupLabel: 213 - originalLookupLabel: 213 - center: - x: -8.0 - y: -70.0 - z: 60.0 - color: '#007810' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_42: - name: 7Networks_LH_DorsAttn_Post_42 - lookupLabel: 214 - originalLookupLabel: 214 - center: - x: -21.0 - y: -68.0 - z: 62.0 - color: '#007811' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_43: - name: 7Networks_LH_DorsAttn_Post_43 - lookupLabel: 215 - originalLookupLabel: 215 - center: - x: -29.0 - y: -61.0 - z: 63.0 - color: '#007812' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_44: - name: 7Networks_LH_DorsAttn_Post_44 - lookupLabel: 216 - originalLookupLabel: 216 - center: - x: -3.0 - y: -53.0 - z: 58.0 - color: '#007813' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_45: - name: 7Networks_LH_DorsAttn_Post_45 - lookupLabel: 217 - originalLookupLabel: 217 - center: - x: -7.0 - y: -61.0 - z: 60.0 - color: '#007814' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_46: - name: 7Networks_LH_DorsAttn_Post_46 - lookupLabel: 218 - originalLookupLabel: 218 - center: - x: -15.0 - y: -64.0 - z: 61.0 - color: '#007815' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_47: - name: 7Networks_LH_DorsAttn_Post_47 - lookupLabel: 219 - originalLookupLabel: 219 - center: - x: -32.0 - y: -52.0 - z: 67.0 - color: '#00790e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_48: - name: 7Networks_LH_DorsAttn_Post_48 - lookupLabel: 220 - originalLookupLabel: 220 - center: - x: -22.0 - y: -58.0 - z: 65.0 - color: '#00790f' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_49: - name: 7Networks_LH_DorsAttn_Post_49 - lookupLabel: 221 - originalLookupLabel: 221 - center: - x: -7.0 - y: -54.0 - z: 67.0 - color: '#007910' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_50: - name: 7Networks_LH_DorsAttn_Post_50 - lookupLabel: 222 - originalLookupLabel: 222 - center: - x: -14.0 - y: -59.0 - z: 67.0 - color: '#007911' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_1: - name: 7Networks_LH_DorsAttn_FEF_1 - lookupLabel: 223 - originalLookupLabel: 223 - center: - x: -42.0 - y: -2.0 - z: 50.0 - color: '#00760e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_2: - name: 7Networks_LH_DorsAttn_FEF_2 - lookupLabel: 224 - originalLookupLabel: 224 - center: - x: -29.0 - y: 4.0 - z: 57.0 - color: '#007616' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_3: - name: 7Networks_LH_DorsAttn_FEF_3 - lookupLabel: 225 - originalLookupLabel: 225 - center: - x: -33.0 - y: -3.0 - z: 51.0 - color: '#007716' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_4: - name: 7Networks_LH_DorsAttn_FEF_4 - lookupLabel: 226 - originalLookupLabel: 226 - center: - x: -24.0 - y: -5.0 - z: 52.0 - color: '#007816' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_5: - name: 7Networks_LH_DorsAttn_FEF_5 - lookupLabel: 227 - originalLookupLabel: 227 - center: - x: -22.0 - y: 7.0 - z: 62.0 - color: '#007912' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_6: - name: 7Networks_LH_DorsAttn_FEF_6 - lookupLabel: 228 - originalLookupLabel: 228 - center: - x: -20.0 - y: -6.0 - z: 60.0 - color: '#007913' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_7: - name: 7Networks_LH_DorsAttn_FEF_7 - lookupLabel: 229 - originalLookupLabel: 229 - center: - x: -19.0 - y: 0.0 - z: 69.0 - color: '#007914' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_PrCv_1: - name: 7Networks_LH_DorsAttn_PrCv_1 - lookupLabel: 230 - originalLookupLabel: 230 - center: - x: -52.0 - y: 6.0 - z: 27.0 - color: '#007915' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_PrCv_2: - name: 7Networks_LH_DorsAttn_PrCv_2 - lookupLabel: 231 - originalLookupLabel: 231 - center: - x: -55.0 - y: 7.0 - z: 35.0 - color: '#007a0e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_PrCv_3: - name: 7Networks_LH_DorsAttn_PrCv_3 - lookupLabel: 232 - originalLookupLabel: 232 - center: - x: -41.0 - y: 2.0 - z: 31.0 - color: '#007a0f' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_PrCv_4: - name: 7Networks_LH_DorsAttn_PrCv_4 - lookupLabel: 233 - originalLookupLabel: 233 - center: - x: -49.0 - y: 2.0 - z: 39.0 - color: '#007a10' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_SalVentAttn_ParOper_1: - name: 7Networks_LH_SalVentAttn_ParOper_1 - lookupLabel: 234 - originalLookupLabel: 234 - center: - x: -47.0 - y: -39.0 - z: 24.0 - color: '#c43af7' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_2: - name: 7Networks_LH_SalVentAttn_ParOper_2 - lookupLabel: 235 - originalLookupLabel: 235 - center: - x: -58.0 - y: -45.0 - z: 22.0 - color: '#c43af8' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_3: - name: 7Networks_LH_SalVentAttn_ParOper_3 - lookupLabel: 236 - originalLookupLabel: 236 - center: - x: -60.0 - y: -25.0 - z: 20.0 - color: '#c43af9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_4: - name: 7Networks_LH_SalVentAttn_ParOper_4 - lookupLabel: 237 - originalLookupLabel: 237 - center: - x: -53.0 - y: -41.0 - z: 30.0 - color: '#c43afb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_5: - name: 7Networks_LH_SalVentAttn_ParOper_5 - lookupLabel: 238 - originalLookupLabel: 238 - center: - x: -58.0 - y: -32.0 - z: 23.0 - color: '#c43afc' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_6: - name: 7Networks_LH_SalVentAttn_ParOper_6 - lookupLabel: 239 - originalLookupLabel: 239 - center: - x: -62.0 - y: -44.0 - z: 31.0 - color: '#c43afd' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_7: - name: 7Networks_LH_SalVentAttn_ParOper_7 - lookupLabel: 240 - originalLookupLabel: 240 - center: - x: -59.0 - y: -19.0 - z: 31.0 - color: '#c43afe' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_8: - name: 7Networks_LH_SalVentAttn_ParOper_8 - lookupLabel: 241 - originalLookupLabel: 241 - center: - x: -61.0 - y: -36.0 - z: 34.0 - color: '#c43aff' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_9: - name: 7Networks_LH_SalVentAttn_ParOper_9 - lookupLabel: 242 - originalLookupLabel: 242 - center: - x: -64.0 - y: -27.0 - z: 35.0 - color: '#c133fa' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_TempOcc_1: - name: 7Networks_LH_SalVentAttn_TempOcc_1 - lookupLabel: 243 - originalLookupLabel: 243 - center: - x: -56.0 - y: -57.0 - z: 14.0 - color: '#c133f9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_TempOcc_2: - name: 7Networks_LH_SalVentAttn_TempOcc_2 - lookupLabel: 244 - originalLookupLabel: 244 - center: - x: -48.0 - y: -51.0 - z: 12.0 - color: '#c133fb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_1: - name: 7Networks_LH_SalVentAttn_FrOperIns_1 - lookupLabel: 245 - originalLookupLabel: 245 - center: - x: -36.0 - y: 5.0 - z: -15.0 - color: '#c43afa' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_2: - name: 7Networks_LH_SalVentAttn_FrOperIns_2 - lookupLabel: 246 - originalLookupLabel: 246 - center: - x: -39.0 - y: 1.0 - z: -9.0 - color: '#c43bf3' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_3: - name: 7Networks_LH_SalVentAttn_FrOperIns_3 - lookupLabel: 247 - originalLookupLabel: 247 - center: - x: -37.0 - y: 10.0 - z: -1.0 - color: '#c43bf4' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_4: - name: 7Networks_LH_SalVentAttn_FrOperIns_4 - lookupLabel: 248 - originalLookupLabel: 248 - center: - x: -41.0 - y: -10.0 - z: -10.0 - color: '#c43bf5' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_5: - name: 7Networks_LH_SalVentAttn_FrOperIns_5 - lookupLabel: 249 - originalLookupLabel: 249 - center: - x: -35.0 - y: 30.0 - z: -1.0 - color: '#c43bf6' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_6: - name: 7Networks_LH_SalVentAttn_FrOperIns_6 - lookupLabel: 250 - originalLookupLabel: 250 - center: - x: -46.0 - y: -12.0 - z: -4.0 - color: '#c43bf7' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_7: - name: 7Networks_LH_SalVentAttn_FrOperIns_7 - lookupLabel: 251 - originalLookupLabel: 251 - center: - x: -32.0 - y: 20.0 - z: 3.0 - color: '#c43bf8' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_8: - name: 7Networks_LH_SalVentAttn_FrOperIns_8 - lookupLabel: 252 - originalLookupLabel: 252 - center: - x: -39.0 - y: -3.0 - z: 2.0 - color: '#c43bf9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_9: - name: 7Networks_LH_SalVentAttn_FrOperIns_9 - lookupLabel: 253 - originalLookupLabel: 253 - center: - x: -39.0 - y: -16.0 - z: 2.0 - color: '#c43bfb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_10: - name: 7Networks_LH_SalVentAttn_FrOperIns_10 - lookupLabel: 254 - originalLookupLabel: 254 - center: - x: -32.0 - y: 26.0 - z: 7.0 - color: '#c43bfc' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_11: - name: 7Networks_LH_SalVentAttn_FrOperIns_11 - lookupLabel: 255 - originalLookupLabel: 255 - center: - x: -32.0 - y: 13.0 - z: 10.0 - color: '#c43bfd' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_12: - name: 7Networks_LH_SalVentAttn_FrOperIns_12 - lookupLabel: 256 - originalLookupLabel: 256 - center: - x: -36.0 - y: -3.0 - z: 10.0 - color: '#c43bfe' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_13: - name: 7Networks_LH_SalVentAttn_FrOperIns_13 - lookupLabel: 257 - originalLookupLabel: 257 - center: - x: -37.0 - y: 18.0 - z: 8.0 - color: '#c43bff' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_14: - name: 7Networks_LH_SalVentAttn_FrOperIns_14 - lookupLabel: 258 - originalLookupLabel: 258 - center: - x: -38.0 - y: 6.0 - z: 10.0 - color: '#c134fa' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_15: - name: 7Networks_LH_SalVentAttn_FrOperIns_15 - lookupLabel: 259 - originalLookupLabel: 259 - center: - x: -38.0 - y: -4.0 - z: 16.0 - color: '#c135f3' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_16: - name: 7Networks_LH_SalVentAttn_FrOperIns_16 - lookupLabel: 260 - originalLookupLabel: 260 - center: - x: -43.0 - y: 13.0 - z: 2.0 - color: '#c135f4' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_17: - name: 7Networks_LH_SalVentAttn_FrOperIns_17 - lookupLabel: 261 - originalLookupLabel: 261 - center: - x: -44.0 - y: -2.0 - z: 12.0 - color: '#c135f5' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_18: - name: 7Networks_LH_SalVentAttn_FrOperIns_18 - lookupLabel: 262 - originalLookupLabel: 262 - center: - x: -46.0 - y: 7.0 - z: 1.0 - color: '#c135f6' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_19: - name: 7Networks_LH_SalVentAttn_FrOperIns_19 - lookupLabel: 263 - originalLookupLabel: 263 - center: - x: -48.0 - y: -3.0 - z: 6.0 - color: '#c135f7' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_20: - name: 7Networks_LH_SalVentAttn_FrOperIns_20 - lookupLabel: 264 - originalLookupLabel: 264 - center: - x: -54.0 - y: 6.0 - z: 2.0 - color: '#c135f8' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_21: - name: 7Networks_LH_SalVentAttn_FrOperIns_21 - lookupLabel: 265 - originalLookupLabel: 265 - center: - x: -58.0 - y: 2.0 - z: 8.0 - color: '#c135f9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_22: - name: 7Networks_LH_SalVentAttn_FrOperIns_22 - lookupLabel: 266 - originalLookupLabel: 266 - center: - x: -55.0 - y: 8.0 - z: 12.0 - color: '#c135fa' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_23: - name: 7Networks_LH_SalVentAttn_FrOperIns_23 - lookupLabel: 267 - originalLookupLabel: 267 - center: - x: -59.0 - y: 6.0 - z: 17.0 - color: '#c136f3' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_PFCl_1: - name: 7Networks_LH_SalVentAttn_PFCl_1 - lookupLabel: 268 - originalLookupLabel: 268 - center: - x: -30.0 - y: 42.0 - z: 31.0 - color: '#c134f9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_PFCl_2: - name: 7Networks_LH_SalVentAttn_PFCl_2 - lookupLabel: 269 - originalLookupLabel: 269 - center: - x: -26.0 - y: 37.0 - z: 39.0 - color: '#c134fb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_1: - name: 7Networks_LH_SalVentAttn_Med_1 - lookupLabel: 270 - originalLookupLabel: 270 - center: - x: -7.0 - y: 27.0 - z: 28.0 - color: '#c539fa' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_2: - name: 7Networks_LH_SalVentAttn_Med_2 - lookupLabel: 271 - originalLookupLabel: 271 - center: - x: -5.0 - y: 16.0 - z: 31.0 - color: '#c53af3' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_3: - name: 7Networks_LH_SalVentAttn_Med_3 - lookupLabel: 272 - originalLookupLabel: 272 - center: - x: -2.0 - y: 0.0 - z: 36.0 - color: '#c53af4' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_4: - name: 7Networks_LH_SalVentAttn_Med_4 - lookupLabel: 273 - originalLookupLabel: 273 - center: - x: -8.0 - y: 5.0 - z: 39.0 - color: '#c53af5' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_5: - name: 7Networks_LH_SalVentAttn_Med_5 - lookupLabel: 274 - originalLookupLabel: 274 - center: - x: -7.0 - y: -20.0 - z: 39.0 - color: '#c53af6' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_6: - name: 7Networks_LH_SalVentAttn_Med_6 - lookupLabel: 275 - originalLookupLabel: 275 - center: - x: -6.0 - y: 16.0 - z: 41.0 - color: '#c53af7' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_7: - name: 7Networks_LH_SalVentAttn_Med_7 - lookupLabel: 276 - originalLookupLabel: 276 - center: - x: -11.0 - y: -31.0 - z: 39.0 - color: '#c53af8' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_8: - name: 7Networks_LH_SalVentAttn_Med_8 - lookupLabel: 277 - originalLookupLabel: 277 - center: - x: -12.0 - y: -20.0 - z: 40.0 - color: '#c53af9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_9: - name: 7Networks_LH_SalVentAttn_Med_9 - lookupLabel: 278 - originalLookupLabel: 278 - center: - x: -14.0 - y: -41.0 - z: 45.0 - color: '#c53afb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_10: - name: 7Networks_LH_SalVentAttn_Med_10 - lookupLabel: 279 - originalLookupLabel: 279 - center: - x: -6.0 - y: 3.0 - z: 50.0 - color: '#c53afc' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_11: - name: 7Networks_LH_SalVentAttn_Med_11 - lookupLabel: 280 - originalLookupLabel: 280 - center: - x: -13.0 - y: -29.0 - z: 44.0 - color: '#c53afd' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_12: - name: 7Networks_LH_SalVentAttn_Med_12 - lookupLabel: 281 - originalLookupLabel: 281 - center: - x: -4.0 - y: -49.0 - z: 51.0 - color: '#c53afe' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_13: - name: 7Networks_LH_SalVentAttn_Med_13 - lookupLabel: 282 - originalLookupLabel: 282 - center: - x: -11.0 - y: -46.0 - z: 52.0 - color: '#c53aff' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_14: - name: 7Networks_LH_SalVentAttn_Med_14 - lookupLabel: 283 - originalLookupLabel: 283 - center: - x: -12.0 - y: -37.0 - z: 50.0 - color: '#c233fa' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_15: - name: 7Networks_LH_SalVentAttn_Med_15 - lookupLabel: 284 - originalLookupLabel: 284 - center: - x: -5.0 - y: 3.0 - z: 58.0 - color: '#c234f3' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_16: - name: 7Networks_LH_SalVentAttn_Med_16 - lookupLabel: 285 - originalLookupLabel: 285 - center: - x: -9.0 - y: -48.0 - z: 60.0 - color: '#c234f4' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_17: - name: 7Networks_LH_SalVentAttn_Med_17 - lookupLabel: 286 - originalLookupLabel: 286 - center: - x: -3.0 - y: -2.0 - z: 64.0 - color: '#c234f5' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_18: - name: 7Networks_LH_SalVentAttn_Med_18 - lookupLabel: 287 - originalLookupLabel: 287 - center: - x: -13.0 - y: 6.0 - z: 68.0 - color: '#c234f6' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_19: - name: 7Networks_LH_SalVentAttn_Med_19 - lookupLabel: 288 - originalLookupLabel: 288 - center: - x: -8.0 - y: -3.0 - z: 71.0 - color: '#c234f7' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_Limbic_OFC_1: - name: 7Networks_LH_Limbic_OFC_1 - lookupLabel: 289 - originalLookupLabel: 289 - center: - x: -19.0 - y: 13.0 - z: -22.0 - color: '#dcf89f' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_2: - name: 7Networks_LH_Limbic_OFC_2 - lookupLabel: 290 - originalLookupLabel: 290 - center: - x: -13.0 - y: 21.0 - z: -17.0 - color: '#dcf8a0' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_3: - name: 7Networks_LH_Limbic_OFC_3 - lookupLabel: 291 - originalLookupLabel: 291 - center: - x: -14.0 - y: 24.0 - z: -24.0 - color: '#dcf8a1' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_4: - name: 7Networks_LH_Limbic_OFC_4 - lookupLabel: 292 - originalLookupLabel: 292 - center: - x: -10.0 - y: 34.0 - z: -22.0 - color: '#dcf8a2' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_5: - name: 7Networks_LH_Limbic_OFC_5 - lookupLabel: 293 - originalLookupLabel: 293 - center: - x: -27.0 - y: 15.0 - z: -23.0 - color: '#dcf8a3' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_6: - name: 7Networks_LH_Limbic_OFC_6 - lookupLabel: 294 - originalLookupLabel: 294 - center: - x: -7.0 - y: 19.0 - z: -22.0 - color: '#dcf8a5' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_7: - name: 7Networks_LH_Limbic_OFC_7 - lookupLabel: 295 - originalLookupLabel: 295 - center: - x: -25.0 - y: 28.0 - z: -17.0 - color: '#dcf8a6' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_8: - name: 7Networks_LH_Limbic_OFC_8 - lookupLabel: 296 - originalLookupLabel: 296 - center: - x: -19.0 - y: 41.0 - z: -19.0 - color: '#dcf8a7' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_9: - name: 7Networks_LH_Limbic_OFC_9 - lookupLabel: 297 - originalLookupLabel: 297 - center: - x: -3.0 - y: 38.0 - z: -22.0 - color: '#dcf8a8' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_10: - name: 7Networks_LH_Limbic_OFC_10 - lookupLabel: 298 - originalLookupLabel: 298 - center: - x: -9.0 - y: 51.0 - z: -23.0 - color: '#dcf8a9' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_11: - name: 7Networks_LH_Limbic_OFC_11 - lookupLabel: 299 - originalLookupLabel: 299 - center: - x: -3.0 - y: 20.0 - z: -17.0 - color: '#dcf8aa' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_12: - name: 7Networks_LH_Limbic_OFC_12 - lookupLabel: 300 - originalLookupLabel: 300 - center: - x: -4.0 - y: 17.0 - z: -10.0 - color: '#dcf8ab' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_13: - name: 7Networks_LH_Limbic_OFC_13 - lookupLabel: 301 - originalLookupLabel: 301 - center: - x: -10.0 - y: 63.0 - z: -15.0 - color: '#dcf9a4' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_14: - name: 7Networks_LH_Limbic_OFC_14 - lookupLabel: 302 - originalLookupLabel: 302 - center: - x: -22.0 - y: 62.0 - z: -11.0 - color: '#dcf9a5' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_1: - name: 7Networks_LH_Limbic_TempPole_1 - lookupLabel: 303 - originalLookupLabel: 303 - center: - x: -29.0 - y: 1.0 - z: -43.0 - color: '#dcf8a4' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_2: - name: 7Networks_LH_Limbic_TempPole_2 - lookupLabel: 304 - originalLookupLabel: 304 - center: - x: -43.0 - y: -2.0 - z: -43.0 - color: '#dcf8ac' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_3: - name: 7Networks_LH_Limbic_TempPole_3 - lookupLabel: 305 - originalLookupLabel: 305 - center: - x: -38.0 - y: -11.0 - z: -37.0 - color: '#dcf9a6' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_4: - name: 7Networks_LH_Limbic_TempPole_4 - lookupLabel: 306 - originalLookupLabel: 306 - center: - x: -28.0 - y: -8.0 - z: -34.0 - color: '#dcf9a7' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_5: - name: 7Networks_LH_Limbic_TempPole_5 - lookupLabel: 307 - originalLookupLabel: 307 - center: - x: -51.0 - y: -14.0 - z: -37.0 - color: '#dcf9a8' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_6: - name: 7Networks_LH_Limbic_TempPole_6 - lookupLabel: 308 - originalLookupLabel: 308 - center: - x: -19.0 - y: -2.0 - z: -31.0 - color: '#dcf9a9' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_7: - name: 7Networks_LH_Limbic_TempPole_7 - lookupLabel: 309 - originalLookupLabel: 309 - center: - x: -39.0 - y: -18.0 - z: -29.0 - color: '#dcf9aa' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_8: - name: 7Networks_LH_Limbic_TempPole_8 - lookupLabel: 310 - originalLookupLabel: 310 - center: - x: -37.0 - y: 17.0 - z: -34.0 - color: '#dcf9ab' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_9: - name: 7Networks_LH_Limbic_TempPole_9 - lookupLabel: 311 - originalLookupLabel: 311 - center: - x: -27.0 - y: 7.0 - z: -29.0 - color: '#dcf9ac' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_10: - name: 7Networks_LH_Limbic_TempPole_10 - lookupLabel: 312 - originalLookupLabel: 312 - center: - x: -44.0 - y: -30.0 - z: -22.0 - color: '#dcfaa5' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_11: - name: 7Networks_LH_Limbic_TempPole_11 - lookupLabel: 313 - originalLookupLabel: 313 - center: - x: -53.0 - y: -31.0 - z: -27.0 - color: '#dcfaa6' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_12: - name: 7Networks_LH_Limbic_TempPole_12 - lookupLabel: 314 - originalLookupLabel: 314 - center: - x: -20.0 - y: -15.0 - z: -29.0 - color: '#dcfaa7' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_13: - name: 7Networks_LH_Limbic_TempPole_13 - lookupLabel: 315 - originalLookupLabel: 315 - center: - x: -31.0 - y: -23.0 - z: -26.0 - color: '#dcfaa8' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_14: - name: 7Networks_LH_Limbic_TempPole_14 - lookupLabel: 316 - originalLookupLabel: 316 - center: - x: -38.0 - y: 9.0 - z: -25.0 - color: '#dcfaa9' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_15: - name: 7Networks_LH_Limbic_TempPole_15 - lookupLabel: 317 - originalLookupLabel: 317 - center: - x: -44.0 - y: 6.0 - z: -17.0 - color: '#dcfaaa' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Cont_Par_1: - name: 7Networks_LH_Cont_Par_1 - lookupLabel: 318 - originalLookupLabel: 318 - center: - x: -29.0 - y: -77.0 - z: 41.0 - color: '#e6941c' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_2: - name: 7Networks_LH_Cont_Par_2 - lookupLabel: 319 - originalLookupLabel: 319 - center: - x: -59.0 - y: -41.0 - z: 44.0 - color: '#e6941d' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_3: - name: 7Networks_LH_Cont_Par_3 - lookupLabel: 320 - originalLookupLabel: 320 - center: - x: -57.0 - y: -47.0 - z: 45.0 - color: '#e6941e' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_4: - name: 7Networks_LH_Cont_Par_4 - lookupLabel: 321 - originalLookupLabel: 321 - center: - x: -32.0 - y: -69.0 - z: 51.0 - color: '#e6941f' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_5: - name: 7Networks_LH_Cont_Par_5 - lookupLabel: 322 - originalLookupLabel: 322 - center: - x: -49.0 - y: -56.0 - z: 51.0 - color: '#e69420' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_6: - name: 7Networks_LH_Cont_Par_6 - lookupLabel: 323 - originalLookupLabel: 323 - center: - x: -51.0 - y: -48.0 - z: 54.0 - color: '#e69421' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_7: - name: 7Networks_LH_Cont_Par_7 - lookupLabel: 324 - originalLookupLabel: 324 - center: - x: -55.0 - y: -39.0 - z: 50.0 - color: '#e69423' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_8: - name: 7Networks_LH_Cont_Par_8 - lookupLabel: 325 - originalLookupLabel: 325 - center: - x: -38.0 - y: -61.0 - z: 51.0 - color: '#e69424' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_9: - name: 7Networks_LH_Cont_Par_9 - lookupLabel: 326 - originalLookupLabel: 326 - center: - x: -48.0 - y: -42.0 - z: 50.0 - color: '#e69425' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_10: - name: 7Networks_LH_Cont_Par_10 - lookupLabel: 327 - originalLookupLabel: 327 - center: - x: -42.0 - y: -54.0 - z: 49.0 - color: '#e69426' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_11: - name: 7Networks_LH_Cont_Par_11 - lookupLabel: 328 - originalLookupLabel: 328 - center: - x: -44.0 - y: -47.0 - z: 48.0 - color: '#e69427' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_12: - name: 7Networks_LH_Cont_Par_12 - lookupLabel: 329 - originalLookupLabel: 329 - center: - x: -29.0 - y: -67.0 - z: 49.0 - color: '#e69428' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_13: - name: 7Networks_LH_Cont_Par_13 - lookupLabel: 330 - originalLookupLabel: 330 - center: - x: -33.0 - y: -59.0 - z: 43.0 - color: '#e69429' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_14: - name: 7Networks_LH_Cont_Par_14 - lookupLabel: 331 - originalLookupLabel: 331 - center: - x: -36.0 - y: -46.0 - z: 39.0 - color: '#e69522' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_15: - name: 7Networks_LH_Cont_Par_15 - lookupLabel: 332 - originalLookupLabel: 332 - center: - x: -32.0 - y: -53.0 - z: 41.0 - color: '#e69523' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Temp_1: - name: 7Networks_LH_Cont_Temp_1 - lookupLabel: 333 - originalLookupLabel: 333 - center: - x: -59.0 - y: -39.0 - z: -21.0 - color: '#e6942a' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Temp_2: - name: 7Networks_LH_Cont_Temp_2 - lookupLabel: 334 - originalLookupLabel: 334 - center: - x: -55.0 - y: -57.0 - z: -17.0 - color: '#e69524' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Temp_3: - name: 7Networks_LH_Cont_Temp_3 - lookupLabel: 335 - originalLookupLabel: 335 - center: - x: -60.0 - y: -47.0 - z: -12.0 - color: '#e69525' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Temp_4: - name: 7Networks_LH_Cont_Temp_4 - lookupLabel: 336 - originalLookupLabel: 336 - center: - x: -62.0 - y: -49.0 - z: -3.0 - color: '#e69526' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCd_1: - name: 7Networks_LH_Cont_PFCd_1 - lookupLabel: 337 - originalLookupLabel: 337 - center: - x: -24.0 - y: 13.0 - z: 52.0 - color: '#e69527' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_1: - name: 7Networks_LH_Cont_PFCl_1 - lookupLabel: 338 - originalLookupLabel: 338 - center: - x: -41.0 - y: 51.0 - z: -3.0 - color: '#e6951c' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_2: - name: 7Networks_LH_Cont_PFCl_2 - lookupLabel: 339 - originalLookupLabel: 339 - center: - x: -47.0 - y: 42.0 - z: 4.0 - color: '#e6951d' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_3: - name: 7Networks_LH_Cont_PFCl_3 - lookupLabel: 340 - originalLookupLabel: 340 - center: - x: -38.0 - y: 50.0 - z: 7.0 - color: '#e6951e' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_4: - name: 7Networks_LH_Cont_PFCl_4 - lookupLabel: 341 - originalLookupLabel: 341 - center: - x: -51.0 - y: 32.0 - z: 12.0 - color: '#e6951f' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_5: - name: 7Networks_LH_Cont_PFCl_5 - lookupLabel: 342 - originalLookupLabel: 342 - center: - x: -29.0 - y: 56.0 - z: 10.0 - color: '#e69520' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_6: - name: 7Networks_LH_Cont_PFCl_6 - lookupLabel: 343 - originalLookupLabel: 343 - center: - x: -43.0 - y: 38.0 - z: 13.0 - color: '#e69521' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_7: - name: 7Networks_LH_Cont_PFCl_7 - lookupLabel: 344 - originalLookupLabel: 344 - center: - x: -49.0 - y: 11.0 - z: 13.0 - color: '#e69528' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_8: - name: 7Networks_LH_Cont_PFCl_8 - lookupLabel: 345 - originalLookupLabel: 345 - center: - x: -45.0 - y: 25.0 - z: 20.0 - color: '#e69529' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_9: - name: 7Networks_LH_Cont_PFCl_9 - lookupLabel: 346 - originalLookupLabel: 346 - center: - x: -38.0 - y: 46.0 - z: 19.0 - color: '#e6952a' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_10: - name: 7Networks_LH_Cont_PFCl_10 - lookupLabel: 347 - originalLookupLabel: 347 - center: - x: -47.0 - y: 15.0 - z: 25.0 - color: '#e69623' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_11: - name: 7Networks_LH_Cont_PFCl_11 - lookupLabel: 348 - originalLookupLabel: 348 - center: - x: -48.0 - y: 7.0 - z: 22.0 - color: '#e69624' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_12: - name: 7Networks_LH_Cont_PFCl_12 - lookupLabel: 349 - originalLookupLabel: 349 - center: - x: -29.0 - y: 50.0 - z: 22.0 - color: '#e69625' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_13: - name: 7Networks_LH_Cont_PFCl_13 - lookupLabel: 350 - originalLookupLabel: 350 - center: - x: -41.0 - y: 33.0 - z: 23.0 - color: '#e69626' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_14: - name: 7Networks_LH_Cont_PFCl_14 - lookupLabel: 351 - originalLookupLabel: 351 - center: - x: -43.0 - y: 23.0 - z: 27.0 - color: '#e69627' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_15: - name: 7Networks_LH_Cont_PFCl_15 - lookupLabel: 352 - originalLookupLabel: 352 - center: - x: -43.0 - y: 37.0 - z: 29.0 - color: '#e69628' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_16: - name: 7Networks_LH_Cont_PFCl_16 - lookupLabel: 353 - originalLookupLabel: 353 - center: - x: -37.0 - y: 8.0 - z: 27.0 - color: '#e69629' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_17: - name: 7Networks_LH_Cont_PFCl_17 - lookupLabel: 354 - originalLookupLabel: 354 - center: - x: -45.0 - y: 21.0 - z: 35.0 - color: '#e6962a' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_18: - name: 7Networks_LH_Cont_PFCl_18 - lookupLabel: 355 - originalLookupLabel: 355 - center: - x: -39.0 - y: 10.0 - z: 33.0 - color: '#e69723' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_19: - name: 7Networks_LH_Cont_PFCl_19 - lookupLabel: 356 - originalLookupLabel: 356 - center: - x: -35.0 - y: 32.0 - z: 38.0 - color: '#e69724' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_20: - name: 7Networks_LH_Cont_PFCl_20 - lookupLabel: 357 - originalLookupLabel: 357 - center: - x: -40.0 - y: 3.0 - z: 37.0 - color: '#e69725' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_OFC_1: - name: 7Networks_LH_Cont_OFC_1 - lookupLabel: 358 - originalLookupLabel: 358 - center: - x: -27.0 - y: 47.0 - z: -13.0 - color: '#e79423' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCv_1: - name: 7Networks_LH_Cont_PFCv_1 - lookupLabel: 359 - originalLookupLabel: 359 - center: - x: -35.0 - y: 16.0 - z: -7.0 - color: '#e79424' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCv_2: - name: 7Networks_LH_Cont_PFCv_2 - lookupLabel: 360 - originalLookupLabel: 360 - center: - x: -31.0 - y: 24.0 - z: -3.0 - color: '#e79425' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_pCun_1: - name: 7Networks_LH_Cont_pCun_1 - lookupLabel: 361 - originalLookupLabel: 361 - center: - x: -10.0 - y: -70.0 - z: 31.0 - color: '#e79523' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_pCun_2: - name: 7Networks_LH_Cont_pCun_2 - lookupLabel: 362 - originalLookupLabel: 362 - center: - x: -10.0 - y: -73.0 - z: 39.0 - color: '#e79524' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_pCun_3: - name: 7Networks_LH_Cont_pCun_3 - lookupLabel: 363 - originalLookupLabel: 363 - center: - x: -4.0 - y: -76.0 - z: 45.0 - color: '#e79525' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_pCun_4: - name: 7Networks_LH_Cont_pCun_4 - lookupLabel: 364 - originalLookupLabel: 364 - center: - x: -4.0 - y: -66.0 - z: 52.0 - color: '#e79526' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_1: - name: 7Networks_LH_Cont_Cing_1 - lookupLabel: 365 - originalLookupLabel: 365 - center: - x: -3.0 - y: 18.0 - z: 23.0 - color: '#e79521' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_2: - name: 7Networks_LH_Cont_Cing_2 - lookupLabel: 366 - originalLookupLabel: 366 - center: - x: -7.0 - y: -38.0 - z: 25.0 - color: '#e79522' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_3: - name: 7Networks_LH_Cont_Cing_3 - lookupLabel: 367 - originalLookupLabel: 367 - center: - x: -6.0 - y: -27.0 - z: 27.0 - color: '#e79527' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_4: - name: 7Networks_LH_Cont_Cing_4 - lookupLabel: 368 - originalLookupLabel: 368 - center: - x: -4.0 - y: 9.0 - z: 27.0 - color: '#e79528' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_5: - name: 7Networks_LH_Cont_Cing_5 - lookupLabel: 369 - originalLookupLabel: 369 - center: - x: -4.0 - y: -13.0 - z: 30.0 - color: '#e79529' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_6: - name: 7Networks_LH_Cont_Cing_6 - lookupLabel: 370 - originalLookupLabel: 370 - center: - x: -4.0 - y: -1.0 - z: 31.0 - color: '#e7952a' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_7: - name: 7Networks_LH_Cont_Cing_7 - lookupLabel: 371 - originalLookupLabel: 371 - center: - x: -3.0 - y: -32.0 - z: 29.0 - color: '#e79623' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_8: - name: 7Networks_LH_Cont_Cing_8 - lookupLabel: 372 - originalLookupLabel: 372 - center: - x: -2.0 - y: -23.0 - z: 31.0 - color: '#e79624' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCmp_1: - name: 7Networks_LH_Cont_PFCmp_1 - lookupLabel: 373 - originalLookupLabel: 373 - center: - x: -4.0 - y: 24.0 - z: 47.0 - color: '#e69422' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCmp_2: - name: 7Networks_LH_Cont_PFCmp_2 - lookupLabel: 374 - originalLookupLabel: 374 - center: - x: -6.0 - y: 14.0 - z: 53.0 - color: '#e69621' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Default_Par_1: - name: 7Networks_LH_Default_Par_1 - lookupLabel: 375 - originalLookupLabel: 375 - center: - x: -47.0 - y: -58.0 - z: 18.0 - color: '#cd3d4e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_2: - name: 7Networks_LH_Default_Par_2 - lookupLabel: 376 - originalLookupLabel: 376 - center: - x: -47.0 - y: -51.0 - z: 20.0 - color: '#cd3e47' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_3: - name: 7Networks_LH_Default_Par_3 - lookupLabel: 377 - originalLookupLabel: 377 - center: - x: -60.0 - y: -53.0 - z: 19.0 - color: '#cd3e48' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_4: - name: 7Networks_LH_Default_Par_4 - lookupLabel: 378 - originalLookupLabel: 378 - center: - x: -45.0 - y: -65.0 - z: 23.0 - color: '#cd3e49' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_5: - name: 7Networks_LH_Default_Par_5 - lookupLabel: 379 - originalLookupLabel: 379 - center: - x: -44.0 - y: -56.0 - z: 26.0 - color: '#cd3e4a' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_6: - name: 7Networks_LH_Default_Par_6 - lookupLabel: 380 - originalLookupLabel: 380 - center: - x: -52.0 - y: -55.0 - z: 25.0 - color: '#cd3e4b' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_7: - name: 7Networks_LH_Default_Par_7 - lookupLabel: 381 - originalLookupLabel: 381 - center: - x: -61.0 - y: -54.0 - z: 26.0 - color: '#cd3e4c' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_8: - name: 7Networks_LH_Default_Par_8 - lookupLabel: 382 - originalLookupLabel: 382 - center: - x: -46.0 - y: -71.0 - z: 30.0 - color: '#cd3e4d' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_9: - name: 7Networks_LH_Default_Par_9 - lookupLabel: 383 - originalLookupLabel: 383 - center: - x: -48.0 - y: -64.0 - z: 31.0 - color: '#cd3e4f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_10: - name: 7Networks_LH_Default_Par_10 - lookupLabel: 384 - originalLookupLabel: 384 - center: - x: -46.0 - y: -57.0 - z: 34.0 - color: '#cd3e50' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_11: - name: 7Networks_LH_Default_Par_11 - lookupLabel: 385 - originalLookupLabel: 385 - center: - x: -55.0 - y: -58.0 - z: 33.0 - color: '#cd3e51' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_12: - name: 7Networks_LH_Default_Par_12 - lookupLabel: 386 - originalLookupLabel: 386 - center: - x: -38.0 - y: -77.0 - z: 40.0 - color: '#cd3e52' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_13: - name: 7Networks_LH_Default_Par_13 - lookupLabel: 387 - originalLookupLabel: 387 - center: - x: -59.0 - y: -51.0 - z: 34.0 - color: '#cd3e53' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_14: - name: 7Networks_LH_Default_Par_14 - lookupLabel: 388 - originalLookupLabel: 388 - center: - x: -47.0 - y: -69.0 - z: 39.0 - color: '#cd3e54' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_15: - name: 7Networks_LH_Default_Par_15 - lookupLabel: 389 - originalLookupLabel: 389 - center: - x: -46.0 - y: -62.0 - z: 43.0 - color: '#cd3e55' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_16: - name: 7Networks_LH_Default_Par_16 - lookupLabel: 390 - originalLookupLabel: 390 - center: - x: -54.0 - y: -59.0 - z: 42.0 - color: '#cd3f4e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_17: - name: 7Networks_LH_Default_Par_17 - lookupLabel: 391 - originalLookupLabel: 391 - center: - x: -37.0 - y: -72.0 - z: 49.0 - color: '#cd3f4f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_18: - name: 7Networks_LH_Default_Par_18 - lookupLabel: 392 - originalLookupLabel: 392 - center: - x: -52.0 - y: -51.0 - z: 42.0 - color: '#cd3f50' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_19: - name: 7Networks_LH_Default_Par_19 - lookupLabel: 393 - originalLookupLabel: 393 - center: - x: -43.0 - y: -65.0 - z: 52.0 - color: '#cd3f51' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_1: - name: 7Networks_LH_Default_Temp_1 - lookupLabel: 394 - originalLookupLabel: 394 - center: - x: -46.0 - y: 7.0 - z: -37.0 - color: '#cd3d4f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_2: - name: 7Networks_LH_Default_Temp_2 - lookupLabel: 395 - originalLookupLabel: 395 - center: - x: -52.0 - y: -5.0 - z: -32.0 - color: '#cd3e4e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_3: - name: 7Networks_LH_Default_Temp_3 - lookupLabel: 396 - originalLookupLabel: 396 - center: - x: -59.0 - y: -22.0 - z: -26.0 - color: '#cd3e56' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_4: - name: 7Networks_LH_Default_Temp_4 - lookupLabel: 397 - originalLookupLabel: 397 - center: - x: -55.0 - y: 4.0 - z: -26.0 - color: '#cd3f52' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_5: - name: 7Networks_LH_Default_Temp_5 - lookupLabel: 398 - originalLookupLabel: 398 - center: - x: -48.0 - y: 15.0 - z: -25.0 - color: '#cd3f53' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_6: - name: 7Networks_LH_Default_Temp_6 - lookupLabel: 399 - originalLookupLabel: 399 - center: - x: -62.0 - y: -15.0 - z: -21.0 - color: '#cd3f54' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_7: - name: 7Networks_LH_Default_Temp_7 - lookupLabel: 400 - originalLookupLabel: 400 - center: - x: -52.0 - y: 7.0 - z: -17.0 - color: '#cd3f55' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_8: - name: 7Networks_LH_Default_Temp_8 - lookupLabel: 401 - originalLookupLabel: 401 - center: - x: -62.0 - y: -33.0 - z: -14.0 - color: '#cd3f56' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_9: - name: 7Networks_LH_Default_Temp_9 - lookupLabel: 402 - originalLookupLabel: 402 - center: - x: -59.0 - y: -10.0 - z: -14.0 - color: '#cd404f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_10: - name: 7Networks_LH_Default_Temp_10 - lookupLabel: 403 - originalLookupLabel: 403 - center: - x: -65.0 - y: -25.0 - z: -9.0 - color: '#cd4050' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_11: - name: 7Networks_LH_Default_Temp_11 - lookupLabel: 404 - originalLookupLabel: 404 - center: - x: -53.0 - y: -4.0 - z: -11.0 - color: '#cd4051' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_12: - name: 7Networks_LH_Default_Temp_12 - lookupLabel: 405 - originalLookupLabel: 405 - center: - x: -66.0 - y: -37.0 - z: -6.0 - color: '#cd4052' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_13: - name: 7Networks_LH_Default_Temp_13 - lookupLabel: 406 - originalLookupLabel: 406 - center: - x: -52.0 - y: -22.0 - z: -8.0 - color: '#cd4053' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_14: - name: 7Networks_LH_Default_Temp_14 - lookupLabel: 407 - originalLookupLabel: 407 - center: - x: -57.0 - y: -31.0 - z: -5.0 - color: '#cd4054' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_15: - name: 7Networks_LH_Default_Temp_15 - lookupLabel: 408 - originalLookupLabel: 408 - center: - x: -58.0 - y: -14.0 - z: -4.0 - color: '#cd4055' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_16: - name: 7Networks_LH_Default_Temp_16 - lookupLabel: 409 - originalLookupLabel: 409 - center: - x: -63.0 - y: -42.0 - z: 1.0 - color: '#cd4056' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_17: - name: 7Networks_LH_Default_Temp_17 - lookupLabel: 410 - originalLookupLabel: 410 - center: - x: -49.0 - y: -34.0 - z: -2.0 - color: '#cd414f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_18: - name: 7Networks_LH_Default_Temp_18 - lookupLabel: 411 - originalLookupLabel: 411 - center: - x: -57.0 - y: -24.0 - z: -1.0 - color: '#cd4150' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_19: - name: 7Networks_LH_Default_Temp_19 - lookupLabel: 412 - originalLookupLabel: 412 - center: - x: -53.0 - y: -42.0 - z: 1.0 - color: '#cd4151' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_20: - name: 7Networks_LH_Default_Temp_20 - lookupLabel: 413 - originalLookupLabel: 413 - center: - x: -60.0 - y: -51.0 - z: 6.0 - color: '#cd4152' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_21: - name: 7Networks_LH_Default_Temp_21 - lookupLabel: 414 - originalLookupLabel: 414 - center: - x: -55.0 - y: -34.0 - z: 4.0 - color: '#cd4153' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_22: - name: 7Networks_LH_Default_Temp_22 - lookupLabel: 415 - originalLookupLabel: 415 - center: - x: -50.0 - y: -45.0 - z: 7.0 - color: '#cd4154' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_1: - name: 7Networks_LH_Default_PFC_1 - lookupLabel: 416 - originalLookupLabel: 416 - center: - x: -28.0 - y: 17.0 - z: -16.0 - color: '#cd3d47' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_2: - name: 7Networks_LH_Default_PFC_2 - lookupLabel: 417 - originalLookupLabel: 417 - center: - x: -33.0 - y: 12.0 - z: -12.0 - color: '#cd3d48' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_3: - name: 7Networks_LH_Default_PFC_3 - lookupLabel: 418 - originalLookupLabel: 418 - center: - x: -36.0 - y: 36.0 - z: -12.0 - color: '#cd3d49' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_4: - name: 7Networks_LH_Default_PFC_4 - lookupLabel: 419 - originalLookupLabel: 419 - center: - x: -37.0 - y: 24.0 - z: -15.0 - color: '#cd3d4a' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_5: - name: 7Networks_LH_Default_PFC_5 - lookupLabel: 420 - originalLookupLabel: 420 - center: - x: -6.0 - y: 32.0 - z: -11.0 - color: '#cd3d4b' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_6: - name: 7Networks_LH_Default_PFC_6 - lookupLabel: 421 - originalLookupLabel: 421 - center: - x: -39.0 - y: 50.0 - z: -13.0 - color: '#cd3d4c' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_7: - name: 7Networks_LH_Default_PFC_7 - lookupLabel: 422 - originalLookupLabel: 422 - center: - x: -5.0 - y: 55.0 - z: -10.0 - color: '#cd3d4d' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_8: - name: 7Networks_LH_Default_PFC_8 - lookupLabel: 423 - originalLookupLabel: 423 - center: - x: -46.0 - y: 31.0 - z: -11.0 - color: '#cd3f47' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_9: - name: 7Networks_LH_Default_PFC_9 - lookupLabel: 424 - originalLookupLabel: 424 - center: - x: -4.0 - y: 24.0 - z: -5.0 - color: '#cd3f48' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_10: - name: 7Networks_LH_Default_PFC_10 - lookupLabel: 425 - originalLookupLabel: 425 - center: - x: -8.0 - y: 46.0 - z: -4.0 - color: '#cd3f49' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_11: - name: 7Networks_LH_Default_PFC_11 - lookupLabel: 426 - originalLookupLabel: 426 - center: - x: -49.0 - y: 40.0 - z: -7.0 - color: '#cd3f4a' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_12: - name: 7Networks_LH_Default_PFC_12 - lookupLabel: 427 - originalLookupLabel: 427 - center: - x: -17.0 - y: 65.0 - z: -3.0 - color: '#cd3f4b' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_13: - name: 7Networks_LH_Default_PFC_13 - lookupLabel: 428 - originalLookupLabel: 428 - center: - x: -4.0 - y: 35.0 - z: -3.0 - color: '#cd3f4c' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_14: - name: 7Networks_LH_Default_PFC_14 - lookupLabel: 429 - originalLookupLabel: 429 - center: - x: -28.0 - y: 58.0 - z: -1.0 - color: '#cd3f4d' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_15: - name: 7Networks_LH_Default_PFC_15 - lookupLabel: 430 - originalLookupLabel: 430 - center: - x: -44.0 - y: 29.0 - z: -1.0 - color: '#cd404e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_16: - name: 7Networks_LH_Default_PFC_16 - lookupLabel: 431 - originalLookupLabel: 431 - center: - x: -9.0 - y: 68.0 - z: 2.0 - color: '#cd414e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_17: - name: 7Networks_LH_Default_PFC_17 - lookupLabel: 432 - originalLookupLabel: 432 - center: - x: -52.0 - y: 28.0 - z: 2.0 - color: '#cd4155' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_18: - name: 7Networks_LH_Default_PFC_18 - lookupLabel: 433 - originalLookupLabel: 433 - center: - x: -45.0 - y: 20.0 - z: 6.0 - color: '#cd424e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_19: - name: 7Networks_LH_Default_PFC_19 - lookupLabel: 434 - originalLookupLabel: 434 - center: - x: -6.0 - y: 59.0 - z: 8.0 - color: '#cd424f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_20: - name: 7Networks_LH_Default_PFC_20 - lookupLabel: 435 - originalLookupLabel: 435 - center: - x: -6.0 - y: 45.0 - z: 7.0 - color: '#cd4250' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_21: - name: 7Networks_LH_Default_PFC_21 - lookupLabel: 436 - originalLookupLabel: 436 - center: - x: -55.0 - y: 18.0 - z: 12.0 - color: '#cd4251' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_22: - name: 7Networks_LH_Default_PFC_22 - lookupLabel: 437 - originalLookupLabel: 437 - center: - x: -20.0 - y: 65.0 - z: 9.0 - color: '#cd4252' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_23: - name: 7Networks_LH_Default_PFC_23 - lookupLabel: 438 - originalLookupLabel: 438 - center: - x: -2.0 - y: 36.0 - z: 9.0 - color: '#cd4253' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_24: - name: 7Networks_LH_Default_PFC_24 - lookupLabel: 439 - originalLookupLabel: 439 - center: - x: -9.0 - y: 67.0 - z: 15.0 - color: '#cd4254' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_25: - name: 7Networks_LH_Default_PFC_25 - lookupLabel: 440 - originalLookupLabel: 440 - center: - x: -3.0 - y: 29.0 - z: 17.0 - color: '#cd4255' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_26: - name: 7Networks_LH_Default_PFC_26 - lookupLabel: 441 - originalLookupLabel: 441 - center: - x: -23.0 - y: 58.0 - z: 20.0 - color: '#cd434e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_27: - name: 7Networks_LH_Default_PFC_27 - lookupLabel: 442 - originalLookupLabel: 442 - center: - x: -5.0 - y: 50.0 - z: 21.0 - color: '#cd434f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_28: - name: 7Networks_LH_Default_PFC_28 - lookupLabel: 443 - originalLookupLabel: 443 - center: - x: -8.0 - y: 36.0 - z: 21.0 - color: '#cd4350' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_29: - name: 7Networks_LH_Default_PFC_29 - lookupLabel: 444 - originalLookupLabel: 444 - center: - x: -16.0 - y: 60.0 - z: 26.0 - color: '#cd4351' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_30: - name: 7Networks_LH_Default_PFC_30 - lookupLabel: 445 - originalLookupLabel: 445 - center: - x: -5.0 - y: 61.0 - z: 27.0 - color: '#cd4352' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_31: - name: 7Networks_LH_Default_PFC_31 - lookupLabel: 446 - originalLookupLabel: 446 - center: - x: -21.0 - y: 49.0 - z: 31.0 - color: '#cd4353' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_32: - name: 7Networks_LH_Default_PFC_32 - lookupLabel: 447 - originalLookupLabel: 447 - center: - x: -3.0 - y: 36.0 - z: 34.0 - color: '#cd4354' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_33: - name: 7Networks_LH_Default_PFC_33 - lookupLabel: 448 - originalLookupLabel: 448 - center: - x: -3.0 - y: 49.0 - z: 38.0 - color: '#cd4355' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_34: - name: 7Networks_LH_Default_PFC_34 - lookupLabel: 449 - originalLookupLabel: 449 - center: - x: -12.0 - y: 51.0 - z: 41.0 - color: '#cd444e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_35: - name: 7Networks_LH_Default_PFC_35 - lookupLabel: 450 - originalLookupLabel: 450 - center: - x: -20.0 - y: 43.0 - z: 42.0 - color: '#cd444f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_36: - name: 7Networks_LH_Default_PFC_36 - lookupLabel: 451 - originalLookupLabel: 451 - center: - x: -47.0 - y: 13.0 - z: 41.0 - color: '#cd4450' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_37: - name: 7Networks_LH_Default_PFC_37 - lookupLabel: 452 - originalLookupLabel: 452 - center: - x: -39.0 - y: 24.0 - z: 46.0 - color: '#cd4451' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_38: - name: 7Networks_LH_Default_PFC_38 - lookupLabel: 453 - originalLookupLabel: 453 - center: - x: -25.0 - y: 27.0 - z: 44.0 - color: '#cd4452' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_39: - name: 7Networks_LH_Default_PFC_39 - lookupLabel: 454 - originalLookupLabel: 454 - center: - x: -3.0 - y: 35.0 - z: 47.0 - color: '#cd4453' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_40: - name: 7Networks_LH_Default_PFC_40 - lookupLabel: 455 - originalLookupLabel: 455 - center: - x: -7.0 - y: 42.0 - z: 52.0 - color: '#cd4454' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_41: - name: 7Networks_LH_Default_PFC_41 - lookupLabel: 456 - originalLookupLabel: 456 - center: - x: -19.0 - y: 34.0 - z: 50.0 - color: '#cd4455' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_42: - name: 7Networks_LH_Default_PFC_42 - lookupLabel: 457 - originalLookupLabel: 457 - center: - x: -42.0 - y: 7.0 - z: 49.0 - color: '#cd454e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_43: - name: 7Networks_LH_Default_PFC_43 - lookupLabel: 458 - originalLookupLabel: 458 - center: - x: -38.0 - y: 13.0 - z: 56.0 - color: '#cd454f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_44: - name: 7Networks_LH_Default_PFC_44 - lookupLabel: 459 - originalLookupLabel: 459 - center: - x: -29.0 - y: 17.0 - z: 56.0 - color: '#cd4550' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_45: - name: 7Networks_LH_Default_PFC_45 - lookupLabel: 460 - originalLookupLabel: 460 - center: - x: -22.0 - y: 19.0 - z: 47.0 - color: '#cd4551' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_46: - name: 7Networks_LH_Default_PFC_46 - lookupLabel: 461 - originalLookupLabel: 461 - center: - x: -5.0 - y: 25.0 - z: 61.0 - color: '#cd4552' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_47: - name: 7Networks_LH_Default_PFC_47 - lookupLabel: 462 - originalLookupLabel: 462 - center: - x: -14.0 - y: 27.0 - z: 59.0 - color: '#cd4553' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_48: - name: 7Networks_LH_Default_PFC_48 - lookupLabel: 463 - originalLookupLabel: 463 - center: - x: -22.0 - y: 21.0 - z: 59.0 - color: '#cd4554' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_49: - name: 7Networks_LH_Default_PFC_49 - lookupLabel: 464 - originalLookupLabel: 464 - center: - x: -5.0 - y: 12.0 - z: 65.0 - color: '#cd4555' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_50: - name: 7Networks_LH_Default_PFC_50 - lookupLabel: 465 - originalLookupLabel: 465 - center: - x: -15.0 - y: 15.0 - z: 65.0 - color: '#cd464e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_1: - name: 7Networks_LH_Default_pCunPCC_1 - lookupLabel: 466 - originalLookupLabel: 466 - center: - x: -7.0 - y: -46.0 - z: 9.0 - color: '#cd4156' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_2: - name: 7Networks_LH_Default_pCunPCC_2 - lookupLabel: 467 - originalLookupLabel: 467 - center: - x: -9.0 - y: -54.0 - z: 9.0 - color: '#cd4256' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_3: - name: 7Networks_LH_Default_pCunPCC_3 - lookupLabel: 468 - originalLookupLabel: 468 - center: - x: -6.0 - y: -47.0 - z: 15.0 - color: '#cd4356' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_4: - name: 7Networks_LH_Default_pCunPCC_4 - lookupLabel: 469 - originalLookupLabel: 469 - center: - x: -11.0 - y: -59.0 - z: 17.0 - color: '#cd4456' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_5: - name: 7Networks_LH_Default_pCunPCC_5 - lookupLabel: 470 - originalLookupLabel: 470 - center: - x: -5.0 - y: -53.0 - z: 17.0 - color: '#cd4556' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_6: - name: 7Networks_LH_Default_pCunPCC_6 - lookupLabel: 471 - originalLookupLabel: 471 - center: - x: -6.0 - y: -44.0 - z: 21.0 - color: '#cd464f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_7: - name: 7Networks_LH_Default_pCunPCC_7 - lookupLabel: 472 - originalLookupLabel: 472 - center: - x: -15.0 - y: -63.0 - z: 22.0 - color: '#cd4650' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_8: - name: 7Networks_LH_Default_pCunPCC_8 - lookupLabel: 473 - originalLookupLabel: 473 - center: - x: -3.0 - y: -48.0 - z: 24.0 - color: '#cd4651' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_9: - name: 7Networks_LH_Default_pCunPCC_9 - lookupLabel: 474 - originalLookupLabel: 474 - center: - x: -15.0 - y: -68.0 - z: 26.0 - color: '#cd4652' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_10: - name: 7Networks_LH_Default_pCunPCC_10 - lookupLabel: 475 - originalLookupLabel: 475 - center: - x: -3.0 - y: -61.0 - z: 22.0 - color: '#cd4653' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_11: - name: 7Networks_LH_Default_pCunPCC_11 - lookupLabel: 476 - originalLookupLabel: 476 - center: - x: -3.0 - y: -41.0 - z: 26.0 - color: '#cd4654' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_12: - name: 7Networks_LH_Default_pCunPCC_12 - lookupLabel: 477 - originalLookupLabel: 477 - center: - x: -8.0 - y: -53.0 - z: 26.0 - color: '#cd4655' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_13: - name: 7Networks_LH_Default_pCunPCC_13 - lookupLabel: 478 - originalLookupLabel: 478 - center: - x: -6.0 - y: -67.0 - z: 26.0 - color: '#cd4656' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_14: - name: 7Networks_LH_Default_pCunPCC_14 - lookupLabel: 479 - originalLookupLabel: 479 - center: - x: -5.0 - y: -46.0 - z: 30.0 - color: '#ce3f4f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_15: - name: 7Networks_LH_Default_pCunPCC_15 - lookupLabel: 480 - originalLookupLabel: 480 - center: - x: -6.0 - y: -57.0 - z: 30.0 - color: '#ce3f50' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_16: - name: 7Networks_LH_Default_pCunPCC_16 - lookupLabel: 481 - originalLookupLabel: 481 - center: - x: -3.0 - y: -39.0 - z: 31.0 - color: '#ce3f51' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_17: - name: 7Networks_LH_Default_pCunPCC_17 - lookupLabel: 482 - originalLookupLabel: 482 - center: - x: -12.0 - y: -49.0 - z: 31.0 - color: '#ce3f52' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_18: - name: 7Networks_LH_Default_pCunPCC_18 - lookupLabel: 483 - originalLookupLabel: 483 - center: - x: -3.0 - y: -64.0 - z: 33.0 - color: '#ce3f53' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_19: - name: 7Networks_LH_Default_pCunPCC_19 - lookupLabel: 484 - originalLookupLabel: 484 - center: - x: -4.0 - y: -34.0 - z: 35.0 - color: '#ce3f54' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_20: - name: 7Networks_LH_Default_pCunPCC_20 - lookupLabel: 485 - originalLookupLabel: 485 - center: - x: -9.0 - y: -41.0 - z: 35.0 - color: '#ce3f55' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_21: - name: 7Networks_LH_Default_pCunPCC_21 - lookupLabel: 486 - originalLookupLabel: 486 - center: - x: -2.0 - y: -15.0 - z: 37.0 - color: '#ce3f56' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_22: - name: 7Networks_LH_Default_pCunPCC_22 - lookupLabel: 487 - originalLookupLabel: 487 - center: - x: -3.0 - y: -27.0 - z: 37.0 - color: '#ce404f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_23: - name: 7Networks_LH_Default_pCunPCC_23 - lookupLabel: 488 - originalLookupLabel: 488 - center: - x: -8.0 - y: -55.0 - z: 35.0 - color: '#ce4050' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_24: - name: 7Networks_LH_Default_pCunPCC_24 - lookupLabel: 489 - originalLookupLabel: 489 - center: - x: -2.0 - y: -70.0 - z: 36.0 - color: '#ce4051' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_25: - name: 7Networks_LH_Default_pCunPCC_25 - lookupLabel: 490 - originalLookupLabel: 490 - center: - x: -5.0 - y: -32.0 - z: 42.0 - color: '#ce4052' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_26: - name: 7Networks_LH_Default_pCunPCC_26 - lookupLabel: 491 - originalLookupLabel: 491 - center: - x: -12.0 - y: -48.0 - z: 37.0 - color: '#ce4053' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_27: - name: 7Networks_LH_Default_pCunPCC_27 - lookupLabel: 492 - originalLookupLabel: 492 - center: - x: -5.0 - y: -40.0 - z: 42.0 - color: '#ce4054' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_28: - name: 7Networks_LH_Default_pCunPCC_28 - lookupLabel: 493 - originalLookupLabel: 493 - center: - x: -5.0 - y: -62.0 - z: 39.0 - color: '#ce4055' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_29: - name: 7Networks_LH_Default_pCunPCC_29 - lookupLabel: 494 - originalLookupLabel: 494 - center: - x: -7.0 - y: -54.0 - z: 42.0 - color: '#ce4056' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_30: - name: 7Networks_LH_Default_pCunPCC_30 - lookupLabel: 495 - originalLookupLabel: 495 - center: - x: -3.0 - y: -68.0 - z: 45.0 - color: '#ce414f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_31: - name: 7Networks_LH_Default_pCunPCC_31 - lookupLabel: 496 - originalLookupLabel: 496 - center: - x: -7.0 - y: -47.0 - z: 44.0 - color: '#ce4150' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_32: - name: 7Networks_LH_Default_pCunPCC_32 - lookupLabel: 497 - originalLookupLabel: 497 - center: - x: -5.0 - y: -59.0 - z: 48.0 - color: '#ce4151' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PHC_1: - name: 7Networks_LH_Default_PHC_1 - lookupLabel: 498 - originalLookupLabel: 498 - center: - x: -31.0 - y: -32.0 - z: -18.0 - color: '#ce3e4f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PHC_2: - name: 7Networks_LH_Default_PHC_2 - lookupLabel: 499 - originalLookupLabel: 499 - center: - x: -20.0 - y: -25.0 - z: -22.0 - color: '#ce3e50' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PHC_3: - name: 7Networks_LH_Default_PHC_3 - lookupLabel: 500 - originalLookupLabel: 500 - center: - x: -21.0 - y: -36.0 - z: -14.0 - color: '#ce3e51' - hemisphere: left - hasParent: - - LH_Default - 7Networks_RH_Vis_1: - name: 7Networks_RH_Vis_1 - lookupLabel: 501 - originalLookupLabel: 501 - center: - x: 33.0 - y: -36.0 - z: -23.0 - color: '#7c0e80' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_2: - name: 7Networks_RH_Vis_2 - lookupLabel: 502 - originalLookupLabel: 502 - center: - x: 36.0 - y: -51.0 - z: -18.0 - color: '#7c0e81' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_3: - name: 7Networks_RH_Vis_3 - lookupLabel: 503 - originalLookupLabel: 503 - center: - x: 30.0 - y: -32.0 - z: -16.0 - color: '#7c0e82' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_4: - name: 7Networks_RH_Vis_4 - lookupLabel: 504 - originalLookupLabel: 504 - center: - x: 26.0 - y: -49.0 - z: -14.0 - color: '#7c0e83' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_5: - name: 7Networks_RH_Vis_5 - lookupLabel: 505 - originalLookupLabel: 505 - center: - x: 46.0 - y: -57.0 - z: -18.0 - color: '#7c0e84' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_6: - name: 7Networks_RH_Vis_6 - lookupLabel: 506 - originalLookupLabel: 506 - center: - x: 36.0 - y: -67.0 - z: -15.0 - color: '#7c0e85' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_7: - name: 7Networks_RH_Vis_7 - lookupLabel: 507 - originalLookupLabel: 507 - center: - x: 30.0 - y: -46.0 - z: -9.0 - color: '#7c0e86' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_8: - name: 7Networks_RH_Vis_8 - lookupLabel: 508 - originalLookupLabel: 508 - center: - x: 27.0 - y: -72.0 - z: -10.0 - color: '#7c0e87' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_9: - name: 7Networks_RH_Vis_9 - lookupLabel: 509 - originalLookupLabel: 509 - center: - x: 27.0 - y: -59.0 - z: -9.0 - color: '#7c0f80' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_10: - name: 7Networks_RH_Vis_10 - lookupLabel: 510 - originalLookupLabel: 510 - center: - x: 20.0 - y: -31.0 - z: -15.0 - color: '#7c0f81' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_11: - name: 7Networks_RH_Vis_11 - lookupLabel: 511 - originalLookupLabel: 511 - center: - x: 38.0 - y: -78.0 - z: -16.0 - color: '#7c0f82' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_12: - name: 7Networks_RH_Vis_12 - lookupLabel: 512 - originalLookupLabel: 512 - center: - x: 26.0 - y: -81.0 - z: -12.0 - color: '#7c0f83' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_13: - name: 7Networks_RH_Vis_13 - lookupLabel: 513 - originalLookupLabel: 513 - center: - x: 22.0 - y: -44.0 - z: -9.0 - color: '#7c0f84' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_14: - name: 7Networks_RH_Vis_14 - lookupLabel: 514 - originalLookupLabel: 514 - center: - x: 19.0 - y: -71.0 - z: -9.0 - color: '#7c0f85' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_15: - name: 7Networks_RH_Vis_15 - lookupLabel: 515 - originalLookupLabel: 515 - center: - x: 20.0 - y: -60.0 - z: -7.0 - color: '#7c0f86' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_16: - name: 7Networks_RH_Vis_16 - lookupLabel: 516 - originalLookupLabel: 516 - center: - x: 46.0 - y: -78.0 - z: -14.0 - color: '#7c0f87' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_17: - name: 7Networks_RH_Vis_17 - lookupLabel: 517 - originalLookupLabel: 517 - center: - x: 20.0 - y: -88.0 - z: -12.0 - color: '#7c1080' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_18: - name: 7Networks_RH_Vis_18 - lookupLabel: 518 - originalLookupLabel: 518 - center: - x: 14.0 - y: -80.0 - z: -13.0 - color: '#7c1081' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_19: - name: 7Networks_RH_Vis_19 - lookupLabel: 519 - originalLookupLabel: 519 - center: - x: 17.0 - y: -36.0 - z: -12.0 - color: '#7c1082' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_20: - name: 7Networks_RH_Vis_20 - lookupLabel: 520 - originalLookupLabel: 520 - center: - x: 34.0 - y: -89.0 - z: -16.0 - color: '#7c1083' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_21: - name: 7Networks_RH_Vis_21 - lookupLabel: 521 - originalLookupLabel: 521 - center: - x: 50.0 - y: -63.0 - z: -7.0 - color: '#7c1084' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_22: - name: 7Networks_RH_Vis_22 - lookupLabel: 522 - originalLookupLabel: 522 - center: - x: 15.0 - y: -50.0 - z: -7.0 - color: '#7c1085' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_23: - name: 7Networks_RH_Vis_23 - lookupLabel: 523 - originalLookupLabel: 523 - center: - x: 12.0 - y: -62.0 - z: -3.0 - color: '#7c1086' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_24: - name: 7Networks_RH_Vis_24 - lookupLabel: 524 - originalLookupLabel: 524 - center: - x: 8.0 - y: -72.0 - z: -4.0 - color: '#7c1087' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_25: - name: 7Networks_RH_Vis_25 - lookupLabel: 525 - originalLookupLabel: 525 - center: - x: 7.0 - y: -89.0 - z: -12.0 - color: '#7c1180' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_26: - name: 7Networks_RH_Vis_26 - lookupLabel: 526 - originalLookupLabel: 526 - center: - x: 49.0 - y: -75.0 - z: -7.0 - color: '#7c1181' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_27: - name: 7Networks_RH_Vis_27 - lookupLabel: 527 - originalLookupLabel: 527 - center: - x: 22.0 - y: -97.0 - z: -13.0 - color: '#7c1182' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_28: - name: 7Networks_RH_Vis_28 - lookupLabel: 528 - originalLookupLabel: 528 - center: - x: 4.0 - y: -82.0 - z: -5.0 - color: '#7c1183' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_29: - name: 7Networks_RH_Vis_29 - lookupLabel: 529 - originalLookupLabel: 529 - center: - x: 13.0 - y: -96.0 - z: -8.0 - color: '#7c1184' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_30: - name: 7Networks_RH_Vis_30 - lookupLabel: 530 - originalLookupLabel: 530 - center: - x: 33.0 - y: -93.0 - z: -7.0 - color: '#7c1185' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_31: - name: 7Networks_RH_Vis_31 - lookupLabel: 531 - originalLookupLabel: 531 - center: - x: 17.0 - y: -44.0 - z: -3.0 - color: '#7c1186' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_32: - name: 7Networks_RH_Vis_32 - lookupLabel: 532 - originalLookupLabel: 532 - center: - x: 15.0 - y: -56.0 - z: 2.0 - color: '#7c1187' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_33: - name: 7Networks_RH_Vis_33 - lookupLabel: 533 - originalLookupLabel: 533 - center: - x: 5.0 - y: -62.0 - z: 6.0 - color: '#7c1280' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_34: - name: 7Networks_RH_Vis_34 - lookupLabel: 534 - originalLookupLabel: 534 - center: - x: 46.0 - y: -66.0 - z: -1.0 - color: '#7c1281' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_35: - name: 7Networks_RH_Vis_35 - lookupLabel: 535 - originalLookupLabel: 535 - center: - x: 42.0 - y: -86.0 - z: -4.0 - color: '#7c1282' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_36: - name: 7Networks_RH_Vis_36 - lookupLabel: 536 - originalLookupLabel: 536 - center: - x: 4.0 - y: -72.0 - z: 5.0 - color: '#7c1283' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_37: - name: 7Networks_RH_Vis_37 - lookupLabel: 537 - originalLookupLabel: 537 - center: - x: 22.0 - y: -100.0 - z: -5.0 - color: '#7c1284' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_38: - name: 7Networks_RH_Vis_38 - lookupLabel: 538 - originalLookupLabel: 538 - center: - x: 9.0 - y: -91.0 - z: 0.0 - color: '#7c1285' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_39: - name: 7Networks_RH_Vis_39 - lookupLabel: 539 - originalLookupLabel: 539 - center: - x: 51.0 - y: -74.0 - z: 1.0 - color: '#7c1286' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_40: - name: 7Networks_RH_Vis_40 - lookupLabel: 540 - originalLookupLabel: 540 - center: - x: 12.0 - y: -64.0 - z: 6.0 - color: '#7c1288' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_41: - name: 7Networks_RH_Vis_41 - lookupLabel: 541 - originalLookupLabel: 541 - center: - x: 25.0 - y: -53.0 - z: 3.0 - color: '#7c1289' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_42: - name: 7Networks_RH_Vis_42 - lookupLabel: 542 - originalLookupLabel: 542 - center: - x: 13.0 - y: -44.0 - z: 3.0 - color: '#7c128a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_43: - name: 7Networks_RH_Vis_43 - lookupLabel: 543 - originalLookupLabel: 543 - center: - x: 13.0 - y: -103.0 - z: 2.0 - color: '#7c128b' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_44: - name: 7Networks_RH_Vis_44 - lookupLabel: 544 - originalLookupLabel: 544 - center: - x: 9.0 - y: -82.0 - z: 5.0 - color: '#7c128c' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_45: - name: 7Networks_RH_Vis_45 - lookupLabel: 545 - originalLookupLabel: 545 - center: - x: 26.0 - y: -98.0 - z: 3.0 - color: '#7c128d' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_46: - name: 7Networks_RH_Vis_46 - lookupLabel: 546 - originalLookupLabel: 546 - center: - x: 11.0 - y: -97.0 - z: 5.0 - color: '#7c128e' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_47: - name: 7Networks_RH_Vis_47 - lookupLabel: 547 - originalLookupLabel: 547 - center: - x: 24.0 - y: -62.0 - z: 5.0 - color: '#7c1387' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_48: - name: 7Networks_RH_Vis_48 - lookupLabel: 548 - originalLookupLabel: 548 - center: - x: 20.0 - y: -53.0 - z: 7.0 - color: '#7c1388' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_49: - name: 7Networks_RH_Vis_49 - lookupLabel: 549 - originalLookupLabel: 549 - center: - x: 49.0 - y: -66.0 - z: 9.0 - color: '#7c1389' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_50: - name: 7Networks_RH_Vis_50 - lookupLabel: 550 - originalLookupLabel: 550 - center: - x: 12.0 - y: -71.0 - z: 11.0 - color: '#7c138a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_51: - name: 7Networks_RH_Vis_51 - lookupLabel: 551 - originalLookupLabel: 551 - center: - x: 34.0 - y: -89.0 - z: 4.0 - color: '#7c138b' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_52: - name: 7Networks_RH_Vis_52 - lookupLabel: 552 - originalLookupLabel: 552 - center: - x: 43.0 - y: -79.0 - z: 5.0 - color: '#7c138c' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_53: - name: 7Networks_RH_Vis_53 - lookupLabel: 553 - originalLookupLabel: 553 - center: - x: 14.0 - y: -101.0 - z: 13.0 - color: '#7c138d' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_54: - name: 7Networks_RH_Vis_54 - lookupLabel: 554 - originalLookupLabel: 554 - center: - x: 4.0 - y: -86.0 - z: 10.0 - color: '#7c138e' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_55: - name: 7Networks_RH_Vis_55 - lookupLabel: 555 - originalLookupLabel: 555 - center: - x: 5.0 - y: -76.0 - z: 14.0 - color: '#7c1487' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_56: - name: 7Networks_RH_Vis_56 - lookupLabel: 556 - originalLookupLabel: 556 - center: - x: 49.0 - y: -73.0 - z: 12.0 - color: '#7c1488' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_57: - name: 7Networks_RH_Vis_57 - lookupLabel: 557 - originalLookupLabel: 557 - center: - x: 21.0 - y: -59.0 - z: 11.0 - color: '#7c1489' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_58: - name: 7Networks_RH_Vis_58 - lookupLabel: 558 - originalLookupLabel: 558 - center: - x: 26.0 - y: -96.0 - z: 15.0 - color: '#7c148a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_59: - name: 7Networks_RH_Vis_59 - lookupLabel: 559 - originalLookupLabel: 559 - center: - x: 7.0 - y: -94.0 - z: 15.0 - color: '#7c148b' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_60: - name: 7Networks_RH_Vis_60 - lookupLabel: 560 - originalLookupLabel: 560 - center: - x: 38.0 - y: -84.0 - z: 9.0 - color: '#7c148c' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_61: - name: 7Networks_RH_Vis_61 - lookupLabel: 561 - originalLookupLabel: 561 - center: - x: 15.0 - y: -94.0 - z: 19.0 - color: '#7c148d' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_62: - name: 7Networks_RH_Vis_62 - lookupLabel: 562 - originalLookupLabel: 562 - center: - x: 31.0 - y: -87.0 - z: 13.0 - color: '#7c148e' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_63: - name: 7Networks_RH_Vis_63 - lookupLabel: 563 - originalLookupLabel: 563 - center: - x: 8.0 - y: -66.0 - z: 18.0 - color: '#7c1587' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_64: - name: 7Networks_RH_Vis_64 - lookupLabel: 564 - originalLookupLabel: 564 - center: - x: 5.0 - y: -81.0 - z: 23.0 - color: '#7c1588' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_65: - name: 7Networks_RH_Vis_65 - lookupLabel: 565 - originalLookupLabel: 565 - center: - x: 19.0 - y: -64.0 - z: 17.0 - color: '#7c1589' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_66: - name: 7Networks_RH_Vis_66 - lookupLabel: 566 - originalLookupLabel: 566 - center: - x: 43.0 - y: -80.0 - z: 16.0 - color: '#7c158a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_67: - name: 7Networks_RH_Vis_67 - lookupLabel: 567 - originalLookupLabel: 567 - center: - x: 27.0 - y: -89.0 - z: 21.0 - color: '#7c158b' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_68: - name: 7Networks_RH_Vis_68 - lookupLabel: 568 - originalLookupLabel: 568 - center: - x: 7.0 - y: -90.0 - z: 28.0 - color: '#7c158c' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_69: - name: 7Networks_RH_Vis_69 - lookupLabel: 569 - originalLookupLabel: 569 - center: - x: 34.0 - y: -84.0 - z: 18.0 - color: '#7c158d' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_70: - name: 7Networks_RH_Vis_70 - lookupLabel: 570 - originalLookupLabel: 570 - center: - x: 7.0 - y: -74.0 - z: 28.0 - color: '#7c158e' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_71: - name: 7Networks_RH_Vis_71 - lookupLabel: 571 - originalLookupLabel: 571 - center: - x: 17.0 - y: -72.0 - z: 25.0 - color: '#7c1687' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_72: - name: 7Networks_RH_Vis_72 - lookupLabel: 572 - originalLookupLabel: 572 - center: - x: 39.0 - y: -84.0 - z: 26.0 - color: '#7c1688' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_73: - name: 7Networks_RH_Vis_73 - lookupLabel: 573 - originalLookupLabel: 573 - center: - x: 18.0 - y: -89.0 - z: 28.0 - color: '#7c1689' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_74: - name: 7Networks_RH_Vis_74 - lookupLabel: 574 - originalLookupLabel: 574 - center: - x: 18.0 - y: -63.0 - z: 27.0 - color: '#7c168a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_75: - name: 7Networks_RH_Vis_75 - lookupLabel: 575 - originalLookupLabel: 575 - center: - x: 10.0 - y: -85.0 - z: 39.0 - color: '#7c168b' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_76: - name: 7Networks_RH_Vis_76 - lookupLabel: 576 - originalLookupLabel: 576 - center: - x: 34.0 - y: -76.0 - z: 23.0 - color: '#7c168c' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_77: - name: 7Networks_RH_Vis_77 - lookupLabel: 577 - originalLookupLabel: 577 - center: - x: 28.0 - y: -82.0 - z: 28.0 - color: '#7c168d' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_78: - name: 7Networks_RH_Vis_78 - lookupLabel: 578 - originalLookupLabel: 578 - center: - x: 16.0 - y: -79.0 - z: 37.0 - color: '#7c168e' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_79: - name: 7Networks_RH_Vis_79 - lookupLabel: 579 - originalLookupLabel: 579 - center: - x: 24.0 - y: -86.0 - z: 38.0 - color: '#7c1787' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_80: - name: 7Networks_RH_Vis_80 - lookupLabel: 580 - originalLookupLabel: 580 - center: - x: 29.0 - y: -77.0 - z: 40.0 - color: '#7c1788' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_81: - name: 7Networks_RH_Vis_81 - lookupLabel: 581 - originalLookupLabel: 581 - center: - x: 23.0 - y: -81.0 - z: 48.0 - color: '#7c1789' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_SomMot_1: - name: 7Networks_RH_SomMot_1 - lookupLabel: 582 - originalLookupLabel: 582 - center: - x: 51.0 - y: 11.0 - z: -10.0 - color: '#4a7cb3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_2: - name: 7Networks_RH_SomMot_2 - lookupLabel: 583 - originalLookupLabel: 583 - center: - x: 60.0 - y: -3.0 - z: -7.0 - color: '#4a7cb4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_3: - name: 7Networks_RH_SomMot_3 - lookupLabel: 584 - originalLookupLabel: 584 - center: - x: 55.0 - y: 2.0 - z: -3.0 - color: '#4a7cb5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_4: - name: 7Networks_RH_SomMot_4 - lookupLabel: 585 - originalLookupLabel: 585 - center: - x: 56.0 - y: -13.0 - z: -5.0 - color: '#4a7dae' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_5: - name: 7Networks_RH_SomMot_5 - lookupLabel: 586 - originalLookupLabel: 586 - center: - x: 66.0 - y: -8.0 - z: -3.0 - color: '#4a7daf' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_6: - name: 7Networks_RH_SomMot_6 - lookupLabel: 587 - originalLookupLabel: 587 - center: - x: 48.0 - y: -11.0 - z: 0.0 - color: '#4a7db0' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_7: - name: 7Networks_RH_SomMot_7 - lookupLabel: 588 - originalLookupLabel: 588 - center: - x: 63.0 - y: -15.0 - z: -2.0 - color: '#4a7db1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_8: - name: 7Networks_RH_SomMot_8 - lookupLabel: 589 - originalLookupLabel: 589 - center: - x: 39.0 - y: -5.0 - z: 6.0 - color: '#4a7db2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_9: - name: 7Networks_RH_SomMot_9 - lookupLabel: 590 - originalLookupLabel: 590 - center: - x: 55.0 - y: -13.0 - z: 5.0 - color: '#4a7db3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_10: - name: 7Networks_RH_SomMot_10 - lookupLabel: 591 - originalLookupLabel: 591 - center: - x: 67.0 - y: -15.0 - z: 5.0 - color: '#4a7db4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_11: - name: 7Networks_RH_SomMot_11 - lookupLabel: 592 - originalLookupLabel: 592 - center: - x: 41.0 - y: -20.0 - z: 2.0 - color: '#4a7db5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_12: - name: 7Networks_RH_SomMot_12 - lookupLabel: 593 - originalLookupLabel: 593 - center: - x: 63.0 - y: -23.0 - z: 2.0 - color: '#4a7eae' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_13: - name: 7Networks_RH_SomMot_13 - lookupLabel: 594 - originalLookupLabel: 594 - center: - x: 49.0 - y: -37.0 - z: 4.0 - color: '#4a7eaf' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_14: - name: 7Networks_RH_SomMot_14 - lookupLabel: 595 - originalLookupLabel: 595 - center: - x: 56.0 - y: -31.0 - z: 4.0 - color: '#4a7eb0' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_15: - name: 7Networks_RH_SomMot_15 - lookupLabel: 596 - originalLookupLabel: 596 - center: - x: 37.0 - y: -10.0 - z: 12.0 - color: '#4a7eb1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_16: - name: 7Networks_RH_SomMot_16 - lookupLabel: 597 - originalLookupLabel: 597 - center: - x: 39.0 - y: -22.0 - z: 10.0 - color: '#4a7eb2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_17: - name: 7Networks_RH_SomMot_17 - lookupLabel: 598 - originalLookupLabel: 598 - center: - x: 35.0 - y: -19.0 - z: 12.0 - color: '#4a7eb3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_18: - name: 7Networks_RH_SomMot_18 - lookupLabel: 599 - originalLookupLabel: 599 - center: - x: 59.0 - y: -22.0 - z: 10.0 - color: '#4a7eb4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_19: - name: 7Networks_RH_SomMot_19 - lookupLabel: 600 - originalLookupLabel: 600 - center: - x: 37.0 - y: -10.0 - z: 18.0 - color: '#4a7eb5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_20: - name: 7Networks_RH_SomMot_20 - lookupLabel: 601 - originalLookupLabel: 601 - center: - x: 41.0 - y: -27.0 - z: 12.0 - color: '#4a7fae' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_21: - name: 7Networks_RH_SomMot_21 - lookupLabel: 602 - originalLookupLabel: 602 - center: - x: 43.0 - y: -3.0 - z: 14.0 - color: '#4a7faf' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_22: - name: 7Networks_RH_SomMot_22 - lookupLabel: 603 - originalLookupLabel: 603 - center: - x: 34.0 - y: -22.0 - z: 17.0 - color: '#4a7fb0' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_23: - name: 7Networks_RH_SomMot_23 - lookupLabel: 604 - originalLookupLabel: 604 - center: - x: 65.0 - y: -36.0 - z: 11.0 - color: '#4a7fb1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_24: - name: 7Networks_RH_SomMot_24 - lookupLabel: 605 - originalLookupLabel: 605 - center: - x: 64.0 - y: -28.0 - z: 13.0 - color: '#4a7fb2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_25: - name: 7Networks_RH_SomMot_25 - lookupLabel: 606 - originalLookupLabel: 606 - center: - x: 42.0 - y: -13.0 - z: 18.0 - color: '#4a7fb3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_26: - name: 7Networks_RH_SomMot_26 - lookupLabel: 607 - originalLookupLabel: 607 - center: - x: 38.0 - y: -27.0 - z: 20.0 - color: '#4a7fb4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_27: - name: 7Networks_RH_SomMot_27 - lookupLabel: 608 - originalLookupLabel: 608 - center: - x: 47.0 - y: -32.0 - z: 16.0 - color: '#4a7fb5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_28: - name: 7Networks_RH_SomMot_28 - lookupLabel: 609 - originalLookupLabel: 609 - center: - x: 50.0 - y: -9.0 - z: 12.0 - color: '#4a80ae' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_29: - name: 7Networks_RH_SomMot_29 - lookupLabel: 610 - originalLookupLabel: 610 - center: - x: 47.0 - y: -18.0 - z: 18.0 - color: '#4a80af' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_30: - name: 7Networks_RH_SomMot_30 - lookupLabel: 611 - originalLookupLabel: 611 - center: - x: 59.0 - y: -1.0 - z: 11.0 - color: '#4a80b0' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_31: - name: 7Networks_RH_SomMot_31 - lookupLabel: 612 - originalLookupLabel: 612 - center: - x: 44.0 - y: -29.0 - z: 21.0 - color: '#4a80b1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_32: - name: 7Networks_RH_SomMot_32 - lookupLabel: 613 - originalLookupLabel: 613 - center: - x: 59.0 - y: -12.0 - z: 15.0 - color: '#4a80b2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_33: - name: 7Networks_RH_SomMot_33 - lookupLabel: 614 - originalLookupLabel: 614 - center: - x: 52.0 - y: -21.0 - z: 18.0 - color: '#4a80b3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_34: - name: 7Networks_RH_SomMot_34 - lookupLabel: 615 - originalLookupLabel: 615 - center: - x: 66.0 - y: -8.0 - z: 15.0 - color: '#4a80b4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_35: - name: 7Networks_RH_SomMot_35 - lookupLabel: 616 - originalLookupLabel: 616 - center: - x: 62.0 - y: 3.0 - z: 22.0 - color: '#4a80b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_36: - name: 7Networks_RH_SomMot_36 - lookupLabel: 617 - originalLookupLabel: 617 - center: - x: 64.0 - y: -5.0 - z: 23.0 - color: '#4a81ae' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_37: - name: 7Networks_RH_SomMot_37 - lookupLabel: 618 - originalLookupLabel: 618 - center: - x: 65.0 - y: -12.0 - z: 26.0 - color: '#4a81af' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_38: - name: 7Networks_RH_SomMot_38 - lookupLabel: 619 - originalLookupLabel: 619 - center: - x: 56.0 - y: -4.0 - z: 24.0 - color: '#4a81b0' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_39: - name: 7Networks_RH_SomMot_39 - lookupLabel: 620 - originalLookupLabel: 620 - center: - x: 60.0 - y: -13.0 - z: 32.0 - color: '#4a81b1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_40: - name: 7Networks_RH_SomMot_40 - lookupLabel: 621 - originalLookupLabel: 621 - center: - x: 59.0 - y: 1.0 - z: 34.0 - color: '#4a81b2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_41: - name: 7Networks_RH_SomMot_41 - lookupLabel: 622 - originalLookupLabel: 622 - center: - x: 63.0 - y: -9.0 - z: 38.0 - color: '#4a81b3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_42: - name: 7Networks_RH_SomMot_42 - lookupLabel: 623 - originalLookupLabel: 623 - center: - x: 56.0 - y: -8.0 - z: 34.0 - color: '#4a81b4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_43: - name: 7Networks_RH_SomMot_43 - lookupLabel: 624 - originalLookupLabel: 624 - center: - x: 50.0 - y: -6.0 - z: 31.0 - color: '#4a81b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_44: - name: 7Networks_RH_SomMot_44 - lookupLabel: 625 - originalLookupLabel: 625 - center: - x: 55.0 - y: -16.0 - z: 37.0 - color: '#4a82ae' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_45: - name: 7Networks_RH_SomMot_45 - lookupLabel: 626 - originalLookupLabel: 626 - center: - x: 7.0 - y: -2.0 - z: 41.0 - color: '#4a82af' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_46: - name: 7Networks_RH_SomMot_46 - lookupLabel: 627 - originalLookupLabel: 627 - center: - x: 60.0 - y: -12.0 - z: 46.0 - color: '#4a82b0' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_47: - name: 7Networks_RH_SomMot_47 - lookupLabel: 628 - originalLookupLabel: 628 - center: - x: 55.0 - y: -4.0 - z: 43.0 - color: '#4a82b1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_48: - name: 7Networks_RH_SomMot_48 - lookupLabel: 629 - originalLookupLabel: 629 - center: - x: 51.0 - y: -13.0 - z: 39.0 - color: '#4a82b2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_49: - name: 7Networks_RH_SomMot_49 - lookupLabel: 630 - originalLookupLabel: 630 - center: - x: 45.0 - y: -11.0 - z: 38.0 - color: '#4a82b3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_50: - name: 7Networks_RH_SomMot_50 - lookupLabel: 631 - originalLookupLabel: 631 - center: - x: 53.0 - y: -18.0 - z: 42.0 - color: '#4a82b4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_51: - name: 7Networks_RH_SomMot_51 - lookupLabel: 632 - originalLookupLabel: 632 - center: - x: 13.0 - y: -15.0 - z: 42.0 - color: '#4a82b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_52: - name: 7Networks_RH_SomMot_52 - lookupLabel: 633 - originalLookupLabel: 633 - center: - x: 9.0 - y: 2.0 - z: 47.0 - color: '#4a82b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_53: - name: 7Networks_RH_SomMot_53 - lookupLabel: 634 - originalLookupLabel: 634 - center: - x: 50.0 - y: -22.0 - z: 47.0 - color: '#4a82b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_54: - name: 7Networks_RH_SomMot_54 - lookupLabel: 635 - originalLookupLabel: 635 - center: - x: 50.0 - y: -13.0 - z: 50.0 - color: '#4a82b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_55: - name: 7Networks_RH_SomMot_55 - lookupLabel: 636 - originalLookupLabel: 636 - center: - x: 39.0 - y: -17.0 - z: 41.0 - color: '#4a82ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_56: - name: 7Networks_RH_SomMot_56 - lookupLabel: 637 - originalLookupLabel: 637 - center: - x: 54.0 - y: -17.0 - z: 54.0 - color: '#4a82bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_57: - name: 7Networks_RH_SomMot_57 - lookupLabel: 638 - originalLookupLabel: 638 - center: - x: 9.0 - y: -9.0 - z: 47.0 - color: '#4a82bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_58: - name: 7Networks_RH_SomMot_58 - lookupLabel: 639 - originalLookupLabel: 639 - center: - x: 48.0 - y: -7.0 - z: 52.0 - color: '#4a83b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_59: - name: 7Networks_RH_SomMot_59 - lookupLabel: 640 - originalLookupLabel: 640 - center: - x: 40.0 - y: -13.0 - z: 47.0 - color: '#4a83b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_60: - name: 7Networks_RH_SomMot_60 - lookupLabel: 641 - originalLookupLabel: 641 - center: - x: 12.0 - y: -22.0 - z: 45.0 - color: '#4a83b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_61: - name: 7Networks_RH_SomMot_61 - lookupLabel: 642 - originalLookupLabel: 642 - center: - x: 49.0 - y: -27.0 - z: 57.0 - color: '#4a83b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_62: - name: 7Networks_RH_SomMot_62 - lookupLabel: 643 - originalLookupLabel: 643 - center: - x: 41.0 - y: -19.0 - z: 49.0 - color: '#4a83b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_63: - name: 7Networks_RH_SomMot_63 - lookupLabel: 644 - originalLookupLabel: 644 - center: - x: 47.0 - y: -20.0 - z: 60.0 - color: '#4a83ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_64: - name: 7Networks_RH_SomMot_64 - lookupLabel: 645 - originalLookupLabel: 645 - center: - x: 6.0 - y: -1.0 - z: 55.0 - color: '#4a83bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_65: - name: 7Networks_RH_SomMot_65 - lookupLabel: 646 - originalLookupLabel: 646 - center: - x: 43.0 - y: -9.0 - z: 60.0 - color: '#4a83bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_66: - name: 7Networks_RH_SomMot_66 - lookupLabel: 647 - originalLookupLabel: 647 - center: - x: 6.0 - y: -15.0 - z: 52.0 - color: '#4a84b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_67: - name: 7Networks_RH_SomMot_67 - lookupLabel: 648 - originalLookupLabel: 648 - center: - x: 9.0 - y: -30.0 - z: 50.0 - color: '#4a84b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_68: - name: 7Networks_RH_SomMot_68 - lookupLabel: 649 - originalLookupLabel: 649 - center: - x: 41.0 - y: -17.0 - z: 56.0 - color: '#4a84b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_69: - name: 7Networks_RH_SomMot_69 - lookupLabel: 650 - originalLookupLabel: 650 - center: - x: 29.0 - y: -37.0 - z: 56.0 - color: '#4a84b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_70: - name: 7Networks_RH_SomMot_70 - lookupLabel: 651 - originalLookupLabel: 651 - center: - x: 39.0 - y: -34.0 - z: 61.0 - color: '#4a84b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_71: - name: 7Networks_RH_SomMot_71 - lookupLabel: 652 - originalLookupLabel: 652 - center: - x: 39.0 - y: -24.0 - z: 53.0 - color: '#4a84ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_72: - name: 7Networks_RH_SomMot_72 - lookupLabel: 653 - originalLookupLabel: 653 - center: - x: 14.0 - y: -43.0 - z: 58.0 - color: '#4a84bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_73: - name: 7Networks_RH_SomMot_73 - lookupLabel: 654 - originalLookupLabel: 654 - center: - x: 41.0 - y: -29.0 - z: 66.0 - color: '#4a84bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_74: - name: 7Networks_RH_SomMot_74 - lookupLabel: 655 - originalLookupLabel: 655 - center: - x: 6.0 - y: -37.0 - z: 56.0 - color: '#4a85b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_75: - name: 7Networks_RH_SomMot_75 - lookupLabel: 656 - originalLookupLabel: 656 - center: - x: 38.0 - y: -16.0 - z: 67.0 - color: '#4a85b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_76: - name: 7Networks_RH_SomMot_76 - lookupLabel: 657 - originalLookupLabel: 657 - center: - x: 32.0 - y: -41.0 - z: 66.0 - color: '#4a85b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_77: - name: 7Networks_RH_SomMot_77 - lookupLabel: 658 - originalLookupLabel: 658 - center: - x: 5.0 - y: -23.0 - z: 58.0 - color: '#4a85b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_78: - name: 7Networks_RH_SomMot_78 - lookupLabel: 659 - originalLookupLabel: 659 - center: - x: 33.0 - y: -28.0 - z: 61.0 - color: '#4a85b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_79: - name: 7Networks_RH_SomMot_79 - lookupLabel: 660 - originalLookupLabel: 660 - center: - x: 29.0 - y: -34.0 - z: 66.0 - color: '#4a85ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_80: - name: 7Networks_RH_SomMot_80 - lookupLabel: 661 - originalLookupLabel: 661 - center: - x: 31.0 - y: -23.0 - z: 60.0 - color: '#4a85bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_81: - name: 7Networks_RH_SomMot_81 - lookupLabel: 662 - originalLookupLabel: 662 - center: - x: 28.0 - y: -11.0 - z: 65.0 - color: '#4a85bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_82: - name: 7Networks_RH_SomMot_82 - lookupLabel: 663 - originalLookupLabel: 663 - center: - x: 8.0 - y: -40.0 - z: 63.0 - color: '#4a86b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_83: - name: 7Networks_RH_SomMot_83 - lookupLabel: 664 - originalLookupLabel: 664 - center: - x: 5.0 - y: -11.0 - z: 66.0 - color: '#4a86b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_84: - name: 7Networks_RH_SomMot_84 - lookupLabel: 665 - originalLookupLabel: 665 - center: - x: 27.0 - y: -19.0 - z: 73.0 - color: '#4a86b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_85: - name: 7Networks_RH_SomMot_85 - lookupLabel: 666 - originalLookupLabel: 666 - center: - x: 3.0 - y: -33.0 - z: 64.0 - color: '#4a86b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_86: - name: 7Networks_RH_SomMot_86 - lookupLabel: 667 - originalLookupLabel: 667 - center: - x: 24.0 - y: -28.0 - z: 67.0 - color: '#4a86b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_87: - name: 7Networks_RH_SomMot_87 - lookupLabel: 668 - originalLookupLabel: 668 - center: - x: 24.0 - y: -43.0 - z: 67.0 - color: '#4a86ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_88: - name: 7Networks_RH_SomMot_88 - lookupLabel: 669 - originalLookupLabel: 669 - center: - x: 22.0 - y: -34.0 - z: 69.0 - color: '#4a86bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_89: - name: 7Networks_RH_SomMot_89 - lookupLabel: 670 - originalLookupLabel: 670 - center: - x: 14.0 - y: -41.0 - z: 69.0 - color: '#4a86bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_90: - name: 7Networks_RH_SomMot_90 - lookupLabel: 671 - originalLookupLabel: 671 - center: - x: 21.0 - y: -24.0 - z: 67.0 - color: '#4a87b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_91: - name: 7Networks_RH_SomMot_91 - lookupLabel: 672 - originalLookupLabel: 672 - center: - x: 11.0 - y: -5.0 - z: 73.0 - color: '#4a87b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_92: - name: 7Networks_RH_SomMot_92 - lookupLabel: 673 - originalLookupLabel: 673 - center: - x: 20.0 - y: -13.0 - z: 72.0 - color: '#4a87b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_93: - name: 7Networks_RH_SomMot_93 - lookupLabel: 674 - originalLookupLabel: 674 - center: - x: 5.0 - y: -41.0 - z: 70.0 - color: '#4a87b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_94: - name: 7Networks_RH_SomMot_94 - lookupLabel: 675 - originalLookupLabel: 675 - center: - x: 15.0 - y: -45.0 - z: 77.0 - color: '#4a87b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_95: - name: 7Networks_RH_SomMot_95 - lookupLabel: 676 - originalLookupLabel: 676 - center: - x: 7.0 - y: -19.0 - z: 73.0 - color: '#4a87ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_96: - name: 7Networks_RH_SomMot_96 - lookupLabel: 677 - originalLookupLabel: 677 - center: - x: 13.0 - y: -14.0 - z: 73.0 - color: '#4a87bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_97: - name: 7Networks_RH_SomMot_97 - lookupLabel: 678 - originalLookupLabel: 678 - center: - x: 21.0 - y: -38.0 - z: 75.0 - color: '#4a87bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_98: - name: 7Networks_RH_SomMot_98 - lookupLabel: 679 - originalLookupLabel: 679 - center: - x: 17.0 - y: -30.0 - z: 70.0 - color: '#4a88b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_99: - name: 7Networks_RH_SomMot_99 - lookupLabel: 680 - originalLookupLabel: 680 - center: - x: 20.0 - y: -31.0 - z: 77.0 - color: '#4a88b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_100: - name: 7Networks_RH_SomMot_100 - lookupLabel: 681 - originalLookupLabel: 681 - center: - x: 5.0 - y: -31.0 - z: 73.0 - color: '#4a88b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_101: - name: 7Networks_RH_SomMot_101 - lookupLabel: 682 - originalLookupLabel: 682 - center: - x: 12.0 - y: -38.0 - z: 77.0 - color: '#4a88b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_102: - name: 7Networks_RH_SomMot_102 - lookupLabel: 683 - originalLookupLabel: 683 - center: - x: 14.0 - y: -26.0 - z: 73.0 - color: '#4a88b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_103: - name: 7Networks_RH_SomMot_103 - lookupLabel: 684 - originalLookupLabel: 684 - center: - x: 12.0 - y: -32.0 - z: 75.0 - color: '#4a88ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_DorsAttn_Post_1: - name: 7Networks_RH_DorsAttn_Post_1 - lookupLabel: 685 - originalLookupLabel: 685 - center: - x: 49.0 - y: -35.0 - z: -23.0 - color: '#04740f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_2: - name: 7Networks_RH_DorsAttn_Post_2 - lookupLabel: 686 - originalLookupLabel: 686 - center: - x: 46.0 - y: -46.0 - z: -21.0 - color: '#047508' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_3: - name: 7Networks_RH_DorsAttn_Post_3 - lookupLabel: 687 - originalLookupLabel: 687 - center: - x: 51.0 - y: -45.0 - z: -19.0 - color: '#047509' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_4: - name: 7Networks_RH_DorsAttn_Post_4 - lookupLabel: 688 - originalLookupLabel: 688 - center: - x: 49.0 - y: -60.0 - z: -12.0 - color: '#04750a' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_5: - name: 7Networks_RH_DorsAttn_Post_5 - lookupLabel: 689 - originalLookupLabel: 689 - center: - x: 59.0 - y: -53.0 - z: -16.0 - color: '#04750b' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_6: - name: 7Networks_RH_DorsAttn_Post_6 - lookupLabel: 690 - originalLookupLabel: 690 - center: - x: 57.0 - y: -56.0 - z: -5.0 - color: '#04750c' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_7: - name: 7Networks_RH_DorsAttn_Post_7 - lookupLabel: 691 - originalLookupLabel: 691 - center: - x: 62.0 - y: -55.0 - z: 1.0 - color: '#04750d' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_8: - name: 7Networks_RH_DorsAttn_Post_8 - lookupLabel: 692 - originalLookupLabel: 692 - center: - x: 51.0 - y: -59.0 - z: 5.0 - color: '#04750e' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_9: - name: 7Networks_RH_DorsAttn_Post_9 - lookupLabel: 693 - originalLookupLabel: 693 - center: - x: 52.0 - y: -60.0 - z: 13.0 - color: '#04750f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_10: - name: 7Networks_RH_DorsAttn_Post_10 - lookupLabel: 694 - originalLookupLabel: 694 - center: - x: 50.0 - y: -53.0 - z: 14.0 - color: '#047608' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_11: - name: 7Networks_RH_DorsAttn_Post_11 - lookupLabel: 695 - originalLookupLabel: 695 - center: - x: 45.0 - y: -67.0 - z: 18.0 - color: '#047609' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_12: - name: 7Networks_RH_DorsAttn_Post_12 - lookupLabel: 696 - originalLookupLabel: 696 - center: - x: 46.0 - y: -75.0 - z: 27.0 - color: '#04760a' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_13: - name: 7Networks_RH_DorsAttn_Post_13 - lookupLabel: 697 - originalLookupLabel: 697 - center: - x: 38.0 - y: -77.0 - z: 31.0 - color: '#04760b' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_14: - name: 7Networks_RH_DorsAttn_Post_14 - lookupLabel: 698 - originalLookupLabel: 698 - center: - x: 59.0 - y: -19.0 - z: 34.0 - color: '#04760c' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_15: - name: 7Networks_RH_DorsAttn_Post_15 - lookupLabel: 699 - originalLookupLabel: 699 - center: - x: 35.0 - y: -71.0 - z: 40.0 - color: '#04760d' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_16: - name: 7Networks_RH_DorsAttn_Post_16 - lookupLabel: 700 - originalLookupLabel: 700 - center: - x: 31.0 - y: -66.0 - z: 33.0 - color: '#04760e' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_17: - name: 7Networks_RH_DorsAttn_Post_17 - lookupLabel: 701 - originalLookupLabel: 701 - center: - x: 56.0 - y: -22.0 - z: 43.0 - color: '#04760f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_18: - name: 7Networks_RH_DorsAttn_Post_18 - lookupLabel: 702 - originalLookupLabel: 702 - center: - x: 54.0 - y: -28.0 - z: 51.0 - color: '#047708' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_19: - name: 7Networks_RH_DorsAttn_Post_19 - lookupLabel: 703 - originalLookupLabel: 703 - center: - x: 32.0 - y: -68.0 - z: 48.0 - color: '#047709' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_20: - name: 7Networks_RH_DorsAttn_Post_20 - lookupLabel: 704 - originalLookupLabel: 704 - center: - x: 49.0 - y: -36.0 - z: 55.0 - color: '#04770a' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_21: - name: 7Networks_RH_DorsAttn_Post_21 - lookupLabel: 705 - originalLookupLabel: 705 - center: - x: 24.0 - y: -75.0 - z: 52.0 - color: '#04770b' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_22: - name: 7Networks_RH_DorsAttn_Post_22 - lookupLabel: 706 - originalLookupLabel: 706 - center: - x: 24.0 - y: -66.0 - z: 46.0 - color: '#04770c' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_23: - name: 7Networks_RH_DorsAttn_Post_23 - lookupLabel: 707 - originalLookupLabel: 707 - center: - x: 48.0 - y: -28.0 - z: 42.0 - color: '#04770d' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_24: - name: 7Networks_RH_DorsAttn_Post_24 - lookupLabel: 708 - originalLookupLabel: 708 - center: - x: 29.0 - y: -64.0 - z: 52.0 - color: '#04770e' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_25: - name: 7Networks_RH_DorsAttn_Post_25 - lookupLabel: 709 - originalLookupLabel: 709 - center: - x: 37.0 - y: -42.0 - z: 44.0 - color: '#047710' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_26: - name: 7Networks_RH_DorsAttn_Post_26 - lookupLabel: 710 - originalLookupLabel: 710 - center: - x: 42.0 - y: -37.0 - z: 55.0 - color: '#047711' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_27: - name: 7Networks_RH_DorsAttn_Post_27 - lookupLabel: 711 - originalLookupLabel: 711 - center: - x: 14.0 - y: -77.0 - z: 52.0 - color: '#047712' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_28: - name: 7Networks_RH_DorsAttn_Post_28 - lookupLabel: 712 - originalLookupLabel: 712 - center: - x: 39.0 - y: -33.0 - z: 44.0 - color: '#047713' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_29: - name: 7Networks_RH_DorsAttn_Post_29 - lookupLabel: 713 - originalLookupLabel: 713 - center: - x: 36.0 - y: -58.0 - z: 51.0 - color: '#047714' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_30: - name: 7Networks_RH_DorsAttn_Post_30 - lookupLabel: 714 - originalLookupLabel: 714 - center: - x: 42.0 - y: -27.0 - z: 44.0 - color: '#047715' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_31: - name: 7Networks_RH_DorsAttn_Post_31 - lookupLabel: 715 - originalLookupLabel: 715 - center: - x: 36.0 - y: -45.0 - z: 52.0 - color: '#047716' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_32: - name: 7Networks_RH_DorsAttn_Post_32 - lookupLabel: 716 - originalLookupLabel: 716 - center: - x: 32.0 - y: -59.0 - z: 58.0 - color: '#04780f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_33: - name: 7Networks_RH_DorsAttn_Post_33 - lookupLabel: 717 - originalLookupLabel: 717 - center: - x: 6.0 - y: -52.0 - z: 50.0 - color: '#047810' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_34: - name: 7Networks_RH_DorsAttn_Post_34 - lookupLabel: 718 - originalLookupLabel: 718 - center: - x: 30.0 - y: -51.0 - z: 52.0 - color: '#047811' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_35: - name: 7Networks_RH_DorsAttn_Post_35 - lookupLabel: 719 - originalLookupLabel: 719 - center: - x: 34.0 - y: -34.0 - z: 49.0 - color: '#047812' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_36: - name: 7Networks_RH_DorsAttn_Post_36 - lookupLabel: 720 - originalLookupLabel: 720 - center: - x: 37.0 - y: -40.0 - z: 58.0 - color: '#047813' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_37: - name: 7Networks_RH_DorsAttn_Post_37 - lookupLabel: 721 - originalLookupLabel: 721 - center: - x: 17.0 - y: -69.0 - z: 54.0 - color: '#047814' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_38: - name: 7Networks_RH_DorsAttn_Post_38 - lookupLabel: 722 - originalLookupLabel: 722 - center: - x: 5.0 - y: -66.0 - z: 52.0 - color: '#047815' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_39: - name: 7Networks_RH_DorsAttn_Post_39 - lookupLabel: 723 - originalLookupLabel: 723 - center: - x: 24.0 - y: -65.0 - z: 57.0 - color: '#047816' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_40: - name: 7Networks_RH_DorsAttn_Post_40 - lookupLabel: 724 - originalLookupLabel: 724 - center: - x: 10.0 - y: -71.0 - z: 54.0 - color: '#04790f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_41: - name: 7Networks_RH_DorsAttn_Post_41 - lookupLabel: 725 - originalLookupLabel: 725 - center: - x: 7.0 - y: -57.0 - z: 54.0 - color: '#047910' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_42: - name: 7Networks_RH_DorsAttn_Post_42 - lookupLabel: 726 - originalLookupLabel: 726 - center: - x: 37.0 - y: -48.0 - z: 62.0 - color: '#047911' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_43: - name: 7Networks_RH_DorsAttn_Post_43 - lookupLabel: 727 - originalLookupLabel: 727 - center: - x: 30.0 - y: -53.0 - z: 62.0 - color: '#047912' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_44: - name: 7Networks_RH_DorsAttn_Post_44 - lookupLabel: 728 - originalLookupLabel: 728 - center: - x: 24.0 - y: -59.0 - z: 62.0 - color: '#047913' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_45: - name: 7Networks_RH_DorsAttn_Post_45 - lookupLabel: 729 - originalLookupLabel: 729 - center: - x: 20.0 - y: -66.0 - z: 65.0 - color: '#047914' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_46: - name: 7Networks_RH_DorsAttn_Post_46 - lookupLabel: 730 - originalLookupLabel: 730 - center: - x: 11.0 - y: -64.0 - z: 63.0 - color: '#047915' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_47: - name: 7Networks_RH_DorsAttn_Post_47 - lookupLabel: 731 - originalLookupLabel: 731 - center: - x: 6.0 - y: -54.0 - z: 61.0 - color: '#047916' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_48: - name: 7Networks_RH_DorsAttn_Post_48 - lookupLabel: 732 - originalLookupLabel: 732 - center: - x: 30.0 - y: -49.0 - z: 69.0 - color: '#047a0f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_49: - name: 7Networks_RH_DorsAttn_Post_49 - lookupLabel: 733 - originalLookupLabel: 733 - center: - x: 23.0 - y: -56.0 - z: 70.0 - color: '#047a10' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_50: - name: 7Networks_RH_DorsAttn_Post_50 - lookupLabel: 734 - originalLookupLabel: 734 - center: - x: 16.0 - y: -56.0 - z: 67.0 - color: '#047a11' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_51: - name: 7Networks_RH_DorsAttn_Post_51 - lookupLabel: 735 - originalLookupLabel: 735 - center: - x: 9.0 - y: -51.0 - z: 70.0 - color: '#047a12' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_52: - name: 7Networks_RH_DorsAttn_Post_52 - lookupLabel: 736 - originalLookupLabel: 736 - center: - x: 19.0 - y: -48.0 - z: 70.0 - color: '#047a13' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_1: - name: 7Networks_RH_DorsAttn_FEF_1 - lookupLabel: 737 - originalLookupLabel: 737 - center: - x: 41.0 - y: -3.0 - z: 51.0 - color: '#05760d' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_2: - name: 7Networks_RH_DorsAttn_FEF_2 - lookupLabel: 738 - originalLookupLabel: 738 - center: - x: 31.0 - y: -1.0 - z: 51.0 - color: '#05760f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_3: - name: 7Networks_RH_DorsAttn_FEF_3 - lookupLabel: 739 - originalLookupLabel: 739 - center: - x: 25.0 - y: 4.0 - z: 53.0 - color: '#057610' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_4: - name: 7Networks_RH_DorsAttn_FEF_4 - lookupLabel: 740 - originalLookupLabel: 740 - center: - x: 34.0 - y: -7.0 - z: 59.0 - color: '#057611' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_5: - name: 7Networks_RH_DorsAttn_FEF_5 - lookupLabel: 741 - originalLookupLabel: 741 - center: - x: 26.0 - y: -7.0 - z: 52.0 - color: '#057612' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_6: - name: 7Networks_RH_DorsAttn_FEF_6 - lookupLabel: 742 - originalLookupLabel: 742 - center: - x: 24.0 - y: -3.0 - z: 62.0 - color: '#057613' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_PrCv_1: - name: 7Networks_RH_DorsAttn_PrCv_1 - lookupLabel: 743 - originalLookupLabel: 743 - center: - x: 50.0 - y: 13.0 - z: 22.0 - color: '#057614' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_PrCv_2: - name: 7Networks_RH_DorsAttn_PrCv_2 - lookupLabel: 744 - originalLookupLabel: 744 - center: - x: 44.0 - y: 8.0 - z: 25.0 - color: '#057615' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_PrCv_3: - name: 7Networks_RH_DorsAttn_PrCv_3 - lookupLabel: 745 - originalLookupLabel: 745 - center: - x: 55.0 - y: 9.0 - z: 30.0 - color: '#057616' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_SalVentAttn_TempOccPar_1: - name: 7Networks_RH_SalVentAttn_TempOccPar_1 - lookupLabel: 746 - originalLookupLabel: 746 - center: - x: 63.0 - y: -46.0 - z: 4.0 - color: '#c93af4' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_2: - name: 7Networks_RH_SalVentAttn_TempOccPar_2 - lookupLabel: 747 - originalLookupLabel: 747 - center: - x: 56.0 - y: -43.0 - z: 8.0 - color: '#c93af5' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_3: - name: 7Networks_RH_SalVentAttn_TempOccPar_3 - lookupLabel: 748 - originalLookupLabel: 748 - center: - x: 59.0 - y: -55.0 - z: 8.0 - color: '#c93af6' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_4: - name: 7Networks_RH_SalVentAttn_TempOccPar_4 - lookupLabel: 749 - originalLookupLabel: 749 - center: - x: 51.0 - y: -40.0 - z: 13.0 - color: '#c93af7' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_5: - name: 7Networks_RH_SalVentAttn_TempOccPar_5 - lookupLabel: 750 - originalLookupLabel: 750 - center: - x: 55.0 - y: -40.0 - z: 20.0 - color: '#c93af8' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_6: - name: 7Networks_RH_SalVentAttn_TempOccPar_6 - lookupLabel: 751 - originalLookupLabel: 751 - center: - x: 65.0 - y: -31.0 - z: 19.0 - color: '#c93af9' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_7: - name: 7Networks_RH_SalVentAttn_TempOccPar_7 - lookupLabel: 752 - originalLookupLabel: 752 - center: - x: 54.0 - y: -33.0 - z: 23.0 - color: '#c93afa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_8: - name: 7Networks_RH_SalVentAttn_TempOccPar_8 - lookupLabel: 753 - originalLookupLabel: 753 - center: - x: 65.0 - y: -39.0 - z: 20.0 - color: '#c93afc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_9: - name: 7Networks_RH_SalVentAttn_TempOccPar_9 - lookupLabel: 754 - originalLookupLabel: 754 - center: - x: 51.0 - y: -27.0 - z: 25.0 - color: '#c93afd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_10: - name: 7Networks_RH_SalVentAttn_TempOccPar_10 - lookupLabel: 755 - originalLookupLabel: 755 - center: - x: 64.0 - y: -31.0 - z: 29.0 - color: '#c93afe' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_11: - name: 7Networks_RH_SalVentAttn_TempOccPar_11 - lookupLabel: 756 - originalLookupLabel: 756 - center: - x: 61.0 - y: -20.0 - z: 19.0 - color: '#c93aff' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_12: - name: 7Networks_RH_SalVentAttn_TempOccPar_12 - lookupLabel: 757 - originalLookupLabel: 757 - center: - x: 55.0 - y: -31.0 - z: 33.0 - color: '#c633fa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_13: - name: 7Networks_RH_SalVentAttn_TempOccPar_13 - lookupLabel: 758 - originalLookupLabel: 758 - center: - x: 64.0 - y: -40.0 - z: 28.0 - color: '#c633fb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_14: - name: 7Networks_RH_SalVentAttn_TempOccPar_14 - lookupLabel: 759 - originalLookupLabel: 759 - center: - x: 61.0 - y: -25.0 - z: 28.0 - color: '#c634f4' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_15: - name: 7Networks_RH_SalVentAttn_TempOccPar_15 - lookupLabel: 760 - originalLookupLabel: 760 - center: - x: 62.0 - y: -29.0 - z: 39.0 - color: '#c634f5' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_16: - name: 7Networks_RH_SalVentAttn_TempOccPar_16 - lookupLabel: 761 - originalLookupLabel: 761 - center: - x: 64.0 - y: -18.0 - z: 28.0 - color: '#c634f6' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_17: - name: 7Networks_RH_SalVentAttn_TempOccPar_17 - lookupLabel: 762 - originalLookupLabel: 762 - center: - x: 64.0 - y: -35.0 - z: 39.0 - color: '#c634f7' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_18: - name: 7Networks_RH_SalVentAttn_TempOccPar_18 - lookupLabel: 763 - originalLookupLabel: 763 - center: - x: 64.0 - y: -22.0 - z: 41.0 - color: '#c634f8' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_PrC_1: - name: 7Networks_RH_SalVentAttn_PrC_1 - lookupLabel: 764 - originalLookupLabel: 764 - center: - x: 50.0 - y: 4.0 - z: 40.0 - color: '#c93bfb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_PrC_2: - name: 7Networks_RH_SalVentAttn_PrC_2 - lookupLabel: 765 - originalLookupLabel: 765 - center: - x: 49.0 - y: -1.0 - z: 47.0 - color: '#c93bfc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_1: - name: 7Networks_RH_SalVentAttn_FrOperIns_1 - lookupLabel: 766 - originalLookupLabel: 766 - center: - x: 38.0 - y: 7.0 - z: -20.0 - color: '#c93afb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_2: - name: 7Networks_RH_SalVentAttn_FrOperIns_2 - lookupLabel: 767 - originalLookupLabel: 767 - center: - x: 38.0 - y: 11.0 - z: -11.0 - color: '#c93bf4' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_3: - name: 7Networks_RH_SalVentAttn_FrOperIns_3 - lookupLabel: 768 - originalLookupLabel: 768 - center: - x: 46.0 - y: 6.0 - z: -15.0 - color: '#c93bf5' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_4: - name: 7Networks_RH_SalVentAttn_FrOperIns_4 - lookupLabel: 769 - originalLookupLabel: 769 - center: - x: 40.0 - y: 1.0 - z: -11.0 - color: '#c93bf6' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_5: - name: 7Networks_RH_SalVentAttn_FrOperIns_5 - lookupLabel: 770 - originalLookupLabel: 770 - center: - x: 41.0 - y: 9.0 - z: -3.0 - color: '#c93bf7' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_6: - name: 7Networks_RH_SalVentAttn_FrOperIns_6 - lookupLabel: 771 - originalLookupLabel: 771 - center: - x: 41.0 - y: -7.0 - z: -7.0 - color: '#c93bf8' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_7: - name: 7Networks_RH_SalVentAttn_FrOperIns_7 - lookupLabel: 772 - originalLookupLabel: 772 - center: - x: 47.0 - y: -9.0 - z: -6.0 - color: '#c93bf9' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_8: - name: 7Networks_RH_SalVentAttn_FrOperIns_8 - lookupLabel: 773 - originalLookupLabel: 773 - center: - x: 33.0 - y: 24.0 - z: 2.0 - color: '#c93bfa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_9: - name: 7Networks_RH_SalVentAttn_FrOperIns_9 - lookupLabel: 774 - originalLookupLabel: 774 - center: - x: 38.0 - y: 5.0 - z: 4.0 - color: '#c93bfd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_10: - name: 7Networks_RH_SalVentAttn_FrOperIns_10 - lookupLabel: 775 - originalLookupLabel: 775 - center: - x: 38.0 - y: 30.0 - z: 2.0 - color: '#c93bfe' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_11: - name: 7Networks_RH_SalVentAttn_FrOperIns_11 - lookupLabel: 776 - originalLookupLabel: 776 - center: - x: 39.0 - y: -14.0 - z: 2.0 - color: '#c93bff' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_12: - name: 7Networks_RH_SalVentAttn_FrOperIns_12 - lookupLabel: 777 - originalLookupLabel: 777 - center: - x: 34.0 - y: 20.0 - z: 10.0 - color: '#c634fa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_13: - name: 7Networks_RH_SalVentAttn_FrOperIns_13 - lookupLabel: 778 - originalLookupLabel: 778 - center: - x: 41.0 - y: 24.0 - z: 6.0 - color: '#c634fb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_14: - name: 7Networks_RH_SalVentAttn_FrOperIns_14 - lookupLabel: 779 - originalLookupLabel: 779 - center: - x: 34.0 - y: 5.0 - z: 11.0 - color: '#c635f4' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_15: - name: 7Networks_RH_SalVentAttn_FrOperIns_15 - lookupLabel: 780 - originalLookupLabel: 780 - center: - x: 47.0 - y: 21.0 - z: 3.0 - color: '#c635f5' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_16: - name: 7Networks_RH_SalVentAttn_FrOperIns_16 - lookupLabel: 781 - originalLookupLabel: 781 - center: - x: 38.0 - y: 12.0 - z: 10.0 - color: '#c635f6' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_17: - name: 7Networks_RH_SalVentAttn_FrOperIns_17 - lookupLabel: 782 - originalLookupLabel: 782 - center: - x: 44.0 - y: 13.0 - z: 4.0 - color: '#c635f7' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_18: - name: 7Networks_RH_SalVentAttn_FrOperIns_18 - lookupLabel: 783 - originalLookupLabel: 783 - center: - x: 40.0 - y: 2.0 - z: 14.0 - color: '#c635f8' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_19: - name: 7Networks_RH_SalVentAttn_FrOperIns_19 - lookupLabel: 784 - originalLookupLabel: 784 - center: - x: 49.0 - y: 9.0 - z: 0.0 - color: '#c635f9' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_20: - name: 7Networks_RH_SalVentAttn_FrOperIns_20 - lookupLabel: 785 - originalLookupLabel: 785 - center: - x: 47.0 - y: -1.0 - z: 7.0 - color: '#c635fa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_21: - name: 7Networks_RH_SalVentAttn_FrOperIns_21 - lookupLabel: 786 - originalLookupLabel: 786 - center: - x: 53.0 - y: 13.0 - z: 8.0 - color: '#c635fb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_22: - name: 7Networks_RH_SalVentAttn_FrOperIns_22 - lookupLabel: 787 - originalLookupLabel: 787 - center: - x: 58.0 - y: 4.0 - z: 6.0 - color: '#c636f4' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_23: - name: 7Networks_RH_SalVentAttn_FrOperIns_23 - lookupLabel: 788 - originalLookupLabel: 788 - center: - x: 56.0 - y: 9.0 - z: 13.0 - color: '#c636f5' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_24: - name: 7Networks_RH_SalVentAttn_FrOperIns_24 - lookupLabel: 789 - originalLookupLabel: 789 - center: - x: 60.0 - y: 9.0 - z: 20.0 - color: '#c636f6' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_PFCl_1: - name: 7Networks_RH_SalVentAttn_PFCl_1 - lookupLabel: 790 - originalLookupLabel: 790 - center: - x: 31.0 - y: 47.0 - z: 21.0 - color: '#c839fb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_PFCl_2: - name: 7Networks_RH_SalVentAttn_PFCl_2 - lookupLabel: 791 - originalLookupLabel: 791 - center: - x: 28.0 - y: 45.0 - z: 33.0 - color: '#c839fc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_1: - name: 7Networks_RH_SalVentAttn_Med_1 - lookupLabel: 792 - originalLookupLabel: 792 - center: - x: 5.0 - y: 23.0 - z: 27.0 - color: '#c838f9' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_2: - name: 7Networks_RH_SalVentAttn_Med_2 - lookupLabel: 793 - originalLookupLabel: 793 - center: - x: 4.0 - y: 9.0 - z: 34.0 - color: '#c839f2' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_3: - name: 7Networks_RH_SalVentAttn_Med_3 - lookupLabel: 794 - originalLookupLabel: 794 - center: - x: 4.0 - y: -5.0 - z: 36.0 - color: '#c839f3' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_4: - name: 7Networks_RH_SalVentAttn_Med_4 - lookupLabel: 795 - originalLookupLabel: 795 - center: - x: 9.0 - y: 25.0 - z: 38.0 - color: '#c839f4' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_5: - name: 7Networks_RH_SalVentAttn_Med_5 - lookupLabel: 796 - originalLookupLabel: 796 - center: - x: 9.0 - y: 13.0 - z: 40.0 - color: '#c839f5' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_6: - name: 7Networks_RH_SalVentAttn_Med_6 - lookupLabel: 797 - originalLookupLabel: 797 - center: - x: 9.0 - y: -25.0 - z: 40.0 - color: '#c839f6' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_7: - name: 7Networks_RH_SalVentAttn_Med_7 - lookupLabel: 798 - originalLookupLabel: 798 - center: - x: 8.0 - y: -15.0 - z: 40.0 - color: '#c839f7' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_8: - name: 7Networks_RH_SalVentAttn_Med_8 - lookupLabel: 799 - originalLookupLabel: 799 - center: - x: 10.0 - y: -34.0 - z: 43.0 - color: '#c839f8' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_9: - name: 7Networks_RH_SalVentAttn_Med_9 - lookupLabel: 800 - originalLookupLabel: 800 - center: - x: 14.0 - y: -24.0 - z: 39.0 - color: '#c839fa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_10: - name: 7Networks_RH_SalVentAttn_Med_10 - lookupLabel: 801 - originalLookupLabel: 801 - center: - x: 13.0 - y: -39.0 - z: 45.0 - color: '#c839fd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_11: - name: 7Networks_RH_SalVentAttn_Med_11 - lookupLabel: 802 - originalLookupLabel: 802 - center: - x: 7.0 - y: 14.0 - z: 50.0 - color: '#c839fe' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_12: - name: 7Networks_RH_SalVentAttn_Med_12 - lookupLabel: 803 - originalLookupLabel: 803 - center: - x: 15.0 - y: -31.0 - z: 43.0 - color: '#c839ff' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_13: - name: 7Networks_RH_SalVentAttn_Med_13 - lookupLabel: 804 - originalLookupLabel: 804 - center: - x: 9.0 - y: -43.0 - z: 51.0 - color: '#c83af9' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_14: - name: 7Networks_RH_SalVentAttn_Med_14 - lookupLabel: 805 - originalLookupLabel: 805 - center: - x: 14.0 - y: -37.0 - z: 52.0 - color: '#c83afa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_15: - name: 7Networks_RH_SalVentAttn_Med_15 - lookupLabel: 806 - originalLookupLabel: 806 - center: - x: 5.0 - y: 11.0 - z: 59.0 - color: '#c83afb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_16: - name: 7Networks_RH_SalVentAttn_Med_16 - lookupLabel: 807 - originalLookupLabel: 807 - center: - x: 6.0 - y: -47.0 - z: 57.0 - color: '#c83afc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_17: - name: 7Networks_RH_SalVentAttn_Med_17 - lookupLabel: 808 - originalLookupLabel: 808 - center: - x: 7.0 - y: 0.0 - z: 66.0 - color: '#c83afd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_18: - name: 7Networks_RH_SalVentAttn_Med_18 - lookupLabel: 809 - originalLookupLabel: 809 - center: - x: 11.0 - y: -46.0 - z: 64.0 - color: '#c83afe' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_19: - name: 7Networks_RH_SalVentAttn_Med_19 - lookupLabel: 810 - originalLookupLabel: 810 - center: - x: 16.0 - y: 6.0 - z: 69.0 - color: '#c83aff' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_20: - name: 7Networks_RH_SalVentAttn_Med_20 - lookupLabel: 811 - originalLookupLabel: 811 - center: - x: 19.0 - y: -5.0 - z: 69.0 - color: '#c83bf9' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_Limbic_OFC_1: - name: 7Networks_RH_Limbic_OFC_1 - lookupLabel: 812 - originalLookupLabel: 812 - center: - x: 21.0 - y: 14.0 - z: -22.0 - color: '#e0f99f' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_2: - name: 7Networks_RH_Limbic_OFC_2 - lookupLabel: 813 - originalLookupLabel: 813 - center: - x: 14.0 - y: 16.0 - z: -17.0 - color: '#e0f9a0' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_3: - name: 7Networks_RH_Limbic_OFC_3 - lookupLabel: 814 - originalLookupLabel: 814 - center: - x: 15.0 - y: 27.0 - z: -24.0 - color: '#e0f9a1' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_4: - name: 7Networks_RH_Limbic_OFC_4 - lookupLabel: 815 - originalLookupLabel: 815 - center: - x: 10.0 - y: 28.0 - z: -20.0 - color: '#e0f9a2' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_5: - name: 7Networks_RH_Limbic_OFC_5 - lookupLabel: 816 - originalLookupLabel: 816 - center: - x: 10.0 - y: 41.0 - z: -23.0 - color: '#e0f9a3' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_6: - name: 7Networks_RH_Limbic_OFC_6 - lookupLabel: 817 - originalLookupLabel: 817 - center: - x: 23.0 - y: 28.0 - z: -19.0 - color: '#e0f9a5' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_7: - name: 7Networks_RH_Limbic_OFC_7 - lookupLabel: 818 - originalLookupLabel: 818 - center: - x: 16.0 - y: 48.0 - z: -19.0 - color: '#e0f9a6' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_8: - name: 7Networks_RH_Limbic_OFC_8 - lookupLabel: 819 - originalLookupLabel: 819 - center: - x: 5.0 - y: 20.0 - z: -20.0 - color: '#e0f9a7' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_9: - name: 7Networks_RH_Limbic_OFC_9 - lookupLabel: 820 - originalLookupLabel: 820 - center: - x: 3.0 - y: 41.0 - z: -25.0 - color: '#e0f9a8' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_10: - name: 7Networks_RH_Limbic_OFC_10 - lookupLabel: 821 - originalLookupLabel: 821 - center: - x: 7.0 - y: 55.0 - z: -22.0 - color: '#e0f9a9' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_11: - name: 7Networks_RH_Limbic_OFC_11 - lookupLabel: 822 - originalLookupLabel: 822 - center: - x: 15.0 - y: 60.0 - z: -18.0 - color: '#e0f9aa' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_12: - name: 7Networks_RH_Limbic_OFC_12 - lookupLabel: 823 - originalLookupLabel: 823 - center: - x: 4.0 - y: 26.0 - z: -12.0 - color: '#e0f9ab' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_13: - name: 7Networks_RH_Limbic_OFC_13 - lookupLabel: 824 - originalLookupLabel: 824 - center: - x: 7.0 - y: 64.0 - z: -11.0 - color: '#e0faa4' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_14: - name: 7Networks_RH_Limbic_OFC_14 - lookupLabel: 825 - originalLookupLabel: 825 - center: - x: 21.0 - y: 62.0 - z: -10.0 - color: '#e0faa5' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_1: - name: 7Networks_RH_Limbic_TempPole_1 - lookupLabel: 826 - originalLookupLabel: 826 - center: - x: 28.0 - y: 2.0 - z: -44.0 - color: '#e0f99e' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_2: - name: 7Networks_RH_Limbic_TempPole_2 - lookupLabel: 827 - originalLookupLabel: 827 - center: - x: 35.0 - y: 11.0 - z: -40.0 - color: '#e0f9a4' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_3: - name: 7Networks_RH_Limbic_TempPole_3 - lookupLabel: 828 - originalLookupLabel: 828 - center: - x: 49.0 - y: -5.0 - z: -40.0 - color: '#e0f9ac' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_4: - name: 7Networks_RH_Limbic_TempPole_4 - lookupLabel: 829 - originalLookupLabel: 829 - center: - x: 40.0 - y: -9.0 - z: -35.0 - color: '#e0faa6' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_5: - name: 7Networks_RH_Limbic_TempPole_5 - lookupLabel: 830 - originalLookupLabel: 830 - center: - x: 31.0 - y: -9.0 - z: -35.0 - color: '#e0faa7' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_6: - name: 7Networks_RH_Limbic_TempPole_6 - lookupLabel: 831 - originalLookupLabel: 831 - center: - x: 20.0 - y: 0.0 - z: -31.0 - color: '#e0faa8' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_7: - name: 7Networks_RH_Limbic_TempPole_7 - lookupLabel: 832 - originalLookupLabel: 832 - center: - x: 24.0 - y: 8.0 - z: -31.0 - color: '#e0faa9' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_8: - name: 7Networks_RH_Limbic_TempPole_8 - lookupLabel: 833 - originalLookupLabel: 833 - center: - x: 50.0 - y: -19.0 - z: -31.0 - color: '#e0faaa' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_9: - name: 7Networks_RH_Limbic_TempPole_9 - lookupLabel: 834 - originalLookupLabel: 834 - center: - x: 42.0 - y: -21.0 - z: -25.0 - color: '#e0faab' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_10: - name: 7Networks_RH_Limbic_TempPole_10 - lookupLabel: 835 - originalLookupLabel: 835 - center: - x: 37.0 - y: 21.0 - z: -32.0 - color: '#e0faac' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_11: - name: 7Networks_RH_Limbic_TempPole_11 - lookupLabel: 836 - originalLookupLabel: 836 - center: - x: 59.0 - y: -20.0 - z: -30.0 - color: '#e0fba5' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_12: - name: 7Networks_RH_Limbic_TempPole_12 - lookupLabel: 837 - originalLookupLabel: 837 - center: - x: 22.0 - y: -13.0 - z: -30.0 - color: '#e0fba6' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_13: - name: 7Networks_RH_Limbic_TempPole_13 - lookupLabel: 838 - originalLookupLabel: 838 - center: - x: 44.0 - y: -30.0 - z: -23.0 - color: '#e0fba7' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_14: - name: 7Networks_RH_Limbic_TempPole_14 - lookupLabel: 839 - originalLookupLabel: 839 - center: - x: 32.0 - y: 10.0 - z: -27.0 - color: '#e0fba8' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_15: - name: 7Networks_RH_Limbic_TempPole_15 - lookupLabel: 840 - originalLookupLabel: 840 - center: - x: 33.0 - y: -22.0 - z: -26.0 - color: '#e0fba9' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_16: - name: 7Networks_RH_Limbic_TempPole_16 - lookupLabel: 841 - originalLookupLabel: 841 - center: - x: 22.0 - y: -22.0 - z: -24.0 - color: '#e0fbaa' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_17: - name: 7Networks_RH_Limbic_TempPole_17 - lookupLabel: 842 - originalLookupLabel: 842 - center: - x: 42.0 - y: 13.0 - z: -21.0 - color: '#e0fbab' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Cont_Par_1: - name: 7Networks_RH_Cont_Par_1 - lookupLabel: 843 - originalLookupLabel: 843 - center: - x: 61.0 - y: -45.0 - z: 32.0 - color: '#ea931b' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_2: - name: 7Networks_RH_Cont_Par_2 - lookupLabel: 844 - originalLookupLabel: 844 - center: - x: 59.0 - y: -46.0 - z: 41.0 - color: '#ea931c' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_3: - name: 7Networks_RH_Cont_Par_3 - lookupLabel: 845 - originalLookupLabel: 845 - center: - x: 59.0 - y: -38.0 - z: 39.0 - color: '#ea931d' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_4: - name: 7Networks_RH_Cont_Par_4 - lookupLabel: 846 - originalLookupLabel: 846 - center: - x: 40.0 - y: -76.0 - z: 42.0 - color: '#ea931e' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_5: - name: 7Networks_RH_Cont_Par_5 - lookupLabel: 847 - originalLookupLabel: 847 - center: - x: 55.0 - y: -51.0 - z: 46.0 - color: '#ea931f' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_6: - name: 7Networks_RH_Cont_Par_6 - lookupLabel: 848 - originalLookupLabel: 848 - center: - x: 60.0 - y: -32.0 - z: 50.0 - color: '#ea9320' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_7: - name: 7Networks_RH_Cont_Par_7 - lookupLabel: 849 - originalLookupLabel: 849 - center: - x: 55.0 - y: -41.0 - z: 48.0 - color: '#ea9321' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_8: - name: 7Networks_RH_Cont_Par_8 - lookupLabel: 850 - originalLookupLabel: 850 - center: - x: 47.0 - y: -57.0 - z: 54.0 - color: '#ea9323' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_9: - name: 7Networks_RH_Cont_Par_9 - lookupLabel: 851 - originalLookupLabel: 851 - center: - x: 53.0 - y: -34.0 - z: 49.0 - color: '#ea9324' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_10: - name: 7Networks_RH_Cont_Par_10 - lookupLabel: 852 - originalLookupLabel: 852 - center: - x: 49.0 - y: -44.0 - z: 49.0 - color: '#ea9325' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_11: - name: 7Networks_RH_Cont_Par_11 - lookupLabel: 853 - originalLookupLabel: 853 - center: - x: 48.0 - y: -50.0 - z: 55.0 - color: '#ea9326' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_12: - name: 7Networks_RH_Cont_Par_12 - lookupLabel: 854 - originalLookupLabel: 854 - center: - x: 49.0 - y: -39.0 - z: 47.0 - color: '#ea9327' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_13: - name: 7Networks_RH_Cont_Par_13 - lookupLabel: 855 - originalLookupLabel: 855 - center: - x: 38.0 - y: -68.0 - z: 50.0 - color: '#ea9328' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_14: - name: 7Networks_RH_Cont_Par_14 - lookupLabel: 856 - originalLookupLabel: 856 - center: - x: 42.0 - y: -58.0 - z: 50.0 - color: '#ea9329' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_15: - name: 7Networks_RH_Cont_Par_15 - lookupLabel: 857 - originalLookupLabel: 857 - center: - x: 43.0 - y: -49.0 - z: 47.0 - color: '#ea9422' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_16: - name: 7Networks_RH_Cont_Par_16 - lookupLabel: 858 - originalLookupLabel: 858 - center: - x: 44.0 - y: -39.0 - z: 44.0 - color: '#ea9423' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_17: - name: 7Networks_RH_Cont_Par_17 - lookupLabel: 859 - originalLookupLabel: 859 - center: - x: 35.0 - y: -52.0 - z: 42.0 - color: '#ea9424' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Temp_1: - name: 7Networks_RH_Cont_Temp_1 - lookupLabel: 860 - originalLookupLabel: 860 - center: - x: 59.0 - y: -29.0 - z: -23.0 - color: '#ea9322' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Temp_2: - name: 7Networks_RH_Cont_Temp_2 - lookupLabel: 861 - originalLookupLabel: 861 - center: - x: 60.0 - y: -39.0 - z: -19.0 - color: '#ea9421' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Temp_3: - name: 7Networks_RH_Cont_Temp_3 - lookupLabel: 862 - originalLookupLabel: 862 - center: - x: 64.0 - y: -41.0 - z: -10.0 - color: '#ea9425' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Temp_4: - name: 7Networks_RH_Cont_Temp_4 - lookupLabel: 863 - originalLookupLabel: 863 - center: - x: 65.0 - y: -47.0 - z: -3.0 - color: '#ea9426' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCv_1: - name: 7Networks_RH_Cont_PFCv_1 - lookupLabel: 864 - originalLookupLabel: 864 - center: - x: 34.0 - y: 20.0 - z: -7.0 - color: '#e99423' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCv_2: - name: 7Networks_RH_Cont_PFCv_2 - lookupLabel: 865 - originalLookupLabel: 865 - center: - x: 35.0 - y: 26.0 - z: -7.0 - color: '#e99424' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_1: - name: 7Networks_RH_Cont_PFCl_1 - lookupLabel: 866 - originalLookupLabel: 866 - center: - x: 24.0 - y: 40.0 - z: -16.0 - color: '#e9931a' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_2: - name: 7Networks_RH_Cont_PFCl_2 - lookupLabel: 867 - originalLookupLabel: 867 - center: - x: 28.0 - y: 52.0 - z: -14.0 - color: '#e9931b' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_3: - name: 7Networks_RH_Cont_PFCl_3 - lookupLabel: 868 - originalLookupLabel: 868 - center: - x: 40.0 - y: 52.0 - z: -12.0 - color: '#e9931c' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_4: - name: 7Networks_RH_Cont_PFCl_4 - lookupLabel: 869 - originalLookupLabel: 869 - center: - x: 32.0 - y: 59.0 - z: -2.0 - color: '#e9931d' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_5: - name: 7Networks_RH_Cont_PFCl_5 - lookupLabel: 870 - originalLookupLabel: 870 - center: - x: 44.0 - y: 49.0 - z: -4.0 - color: '#e9931e' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_6: - name: 7Networks_RH_Cont_PFCl_6 - lookupLabel: 871 - originalLookupLabel: 871 - center: - x: 23.0 - y: 63.0 - z: 2.0 - color: '#e9931f' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_7: - name: 7Networks_RH_Cont_PFCl_7 - lookupLabel: 872 - originalLookupLabel: 872 - center: - x: 50.0 - y: 40.0 - z: 4.0 - color: '#e99320' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_8: - name: 7Networks_RH_Cont_PFCl_8 - lookupLabel: 873 - originalLookupLabel: 873 - center: - x: 41.0 - y: 50.0 - z: 7.0 - color: '#e99321' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_9: - name: 7Networks_RH_Cont_PFCl_9 - lookupLabel: 874 - originalLookupLabel: 874 - center: - x: 31.0 - y: 55.0 - z: 10.0 - color: '#e9941a' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_10: - name: 7Networks_RH_Cont_PFCl_10 - lookupLabel: 875 - originalLookupLabel: 875 - center: - x: 54.0 - y: 31.0 - z: 14.0 - color: '#e9941b' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_11: - name: 7Networks_RH_Cont_PFCl_11 - lookupLabel: 876 - originalLookupLabel: 876 - center: - x: 26.0 - y: 61.0 - z: 15.0 - color: '#e9941c' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_12: - name: 7Networks_RH_Cont_PFCl_12 - lookupLabel: 877 - originalLookupLabel: 877 - center: - x: 42.0 - y: 39.0 - z: 12.0 - color: '#e9941d' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_13: - name: 7Networks_RH_Cont_PFCl_13 - lookupLabel: 878 - originalLookupLabel: 878 - center: - x: 54.0 - y: 18.0 - z: 20.0 - color: '#e9941e' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_14: - name: 7Networks_RH_Cont_PFCl_14 - lookupLabel: 879 - originalLookupLabel: 879 - center: - x: 42.0 - y: 48.0 - z: 18.0 - color: '#e9941f' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_15: - name: 7Networks_RH_Cont_PFCl_15 - lookupLabel: 880 - originalLookupLabel: 880 - center: - x: 46.0 - y: 29.0 - z: 21.0 - color: '#e99420' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_16: - name: 7Networks_RH_Cont_PFCl_16 - lookupLabel: 881 - originalLookupLabel: 881 - center: - x: 44.0 - y: 18.0 - z: 24.0 - color: '#e99422' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_17: - name: 7Networks_RH_Cont_PFCl_17 - lookupLabel: 882 - originalLookupLabel: 882 - center: - x: 25.0 - y: 55.0 - z: 26.0 - color: '#e99425' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_18: - name: 7Networks_RH_Cont_PFCl_18 - lookupLabel: 883 - originalLookupLabel: 883 - center: - x: 46.0 - y: 36.0 - z: 26.0 - color: '#e99426' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_19: - name: 7Networks_RH_Cont_PFCl_19 - lookupLabel: 884 - originalLookupLabel: 884 - center: - x: 38.0 - y: 41.0 - z: 29.0 - color: '#e99427' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_20: - name: 7Networks_RH_Cont_PFCl_20 - lookupLabel: 885 - originalLookupLabel: 885 - center: - x: 51.0 - y: 24.0 - z: 31.0 - color: '#e99428' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_21: - name: 7Networks_RH_Cont_PFCl_21 - lookupLabel: 886 - originalLookupLabel: 886 - center: - x: 41.0 - y: 17.0 - z: 30.0 - color: '#e99521' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_22: - name: 7Networks_RH_Cont_PFCl_22 - lookupLabel: 887 - originalLookupLabel: 887 - center: - x: 44.0 - y: 30.0 - z: 36.0 - color: '#e99522' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_23: - name: 7Networks_RH_Cont_PFCl_23 - lookupLabel: 888 - originalLookupLabel: 888 - center: - x: 37.0 - y: 9.0 - z: 35.0 - color: '#e99523' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_24: - name: 7Networks_RH_Cont_PFCl_24 - lookupLabel: 889 - originalLookupLabel: 889 - center: - x: 35.0 - y: 36.0 - z: 40.0 - color: '#e99524' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_25: - name: 7Networks_RH_Cont_PFCl_25 - lookupLabel: 890 - originalLookupLabel: 890 - center: - x: 47.0 - y: 16.0 - z: 39.0 - color: '#e99525' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_26: - name: 7Networks_RH_Cont_PFCl_26 - lookupLabel: 891 - originalLookupLabel: 891 - center: - x: 40.0 - y: 10.0 - z: 45.0 - color: '#e99526' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_27: - name: 7Networks_RH_Cont_PFCl_27 - lookupLabel: 892 - originalLookupLabel: 892 - center: - x: 41.0 - y: 23.0 - z: 47.0 - color: '#e99527' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_28: - name: 7Networks_RH_Cont_PFCl_28 - lookupLabel: 893 - originalLookupLabel: 893 - center: - x: 33.0 - y: 30.0 - z: 47.0 - color: '#e99528' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_29: - name: 7Networks_RH_Cont_PFCl_29 - lookupLabel: 894 - originalLookupLabel: 894 - center: - x: 45.0 - y: 6.0 - z: 51.0 - color: '#e99621' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_30: - name: 7Networks_RH_Cont_PFCl_30 - lookupLabel: 895 - originalLookupLabel: 895 - center: - x: 38.0 - y: 10.0 - z: 58.0 - color: '#e99622' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_31: - name: 7Networks_RH_Cont_PFCl_31 - lookupLabel: 896 - originalLookupLabel: 896 - center: - x: 31.0 - y: 17.0 - z: 53.0 - color: '#e99623' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_32: - name: 7Networks_RH_Cont_PFCl_32 - lookupLabel: 897 - originalLookupLabel: 897 - center: - x: 25.0 - y: 17.0 - z: 46.0 - color: '#e99624' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_33: - name: 7Networks_RH_Cont_PFCl_33 - lookupLabel: 898 - originalLookupLabel: 898 - center: - x: 20.0 - y: 18.0 - z: 62.0 - color: '#e99625' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_34: - name: 7Networks_RH_Cont_PFCl_34 - lookupLabel: 899 - originalLookupLabel: 899 - center: - x: 24.0 - y: 9.0 - z: 63.0 - color: '#e99626' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_pCun_1: - name: 7Networks_RH_Cont_pCun_1 - lookupLabel: 900 - originalLookupLabel: 900 - center: - x: 14.0 - y: -68.0 - z: 35.0 - color: '#e99323' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_pCun_3: - name: 7Networks_RH_Cont_pCun_3 - lookupLabel: 901 - originalLookupLabel: 901 - center: - x: 14.0 - y: -75.0 - z: 44.0 - color: '#e99324' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_pCun_5: - name: 7Networks_RH_Cont_pCun_5 - lookupLabel: 902 - originalLookupLabel: 902 - center: - x: 5.0 - y: -74.0 - z: 46.0 - color: '#e99325' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Cing_1: - name: 7Networks_RH_Cont_Cing_1 - lookupLabel: 903 - originalLookupLabel: 903 - center: - x: 6.0 - y: -23.0 - z: 27.0 - color: '#e99322' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Cing_2: - name: 7Networks_RH_Cont_Cing_2 - lookupLabel: 904 - originalLookupLabel: 904 - center: - x: 6.0 - y: 9.0 - z: 28.0 - color: '#e99326' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Cing_3: - name: 7Networks_RH_Cont_Cing_3 - lookupLabel: 905 - originalLookupLabel: 905 - center: - x: 7.0 - y: -32.0 - z: 27.0 - color: '#e99327' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Cing_4: - name: 7Networks_RH_Cont_Cing_4 - lookupLabel: 906 - originalLookupLabel: 906 - center: - x: 5.0 - y: -2.0 - z: 30.0 - color: '#e99328' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Cing_5: - name: 7Networks_RH_Cont_Cing_5 - lookupLabel: 907 - originalLookupLabel: 907 - center: - x: 5.0 - y: -16.0 - z: 30.0 - color: '#e99421' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCmp_1: - name: 7Networks_RH_Cont_PFCmp_1 - lookupLabel: 908 - originalLookupLabel: 908 - center: - x: 8.0 - y: 35.0 - z: 20.0 - color: '#ea9427' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCmp_2: - name: 7Networks_RH_Cont_PFCmp_2 - lookupLabel: 909 - originalLookupLabel: 909 - center: - x: 10.0 - y: 28.0 - z: 28.0 - color: '#ea9428' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCmp_3: - name: 7Networks_RH_Cont_PFCmp_3 - lookupLabel: 910 - originalLookupLabel: 910 - center: - x: 6.0 - y: 35.0 - z: 33.0 - color: '#ea9429' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCmp_4: - name: 7Networks_RH_Cont_PFCmp_4 - lookupLabel: 911 - originalLookupLabel: 911 - center: - x: 4.0 - y: 38.0 - z: 47.0 - color: '#ea942a' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCmp_5: - name: 7Networks_RH_Cont_PFCmp_5 - lookupLabel: 912 - originalLookupLabel: 912 - center: - x: 5.0 - y: 25.0 - z: 48.0 - color: '#ea942b' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Default_Par_1: - name: 7Networks_RH_Default_Par_1 - lookupLabel: 913 - originalLookupLabel: 913 - center: - x: 58.0 - y: -48.0 - z: 11.0 - color: '#d13e47' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_2: - name: 7Networks_RH_Default_Par_2 - lookupLabel: 914 - originalLookupLabel: 914 - center: - x: 53.0 - y: -45.0 - z: 18.0 - color: '#d13e48' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_3: - name: 7Networks_RH_Default_Par_3 - lookupLabel: 915 - originalLookupLabel: 915 - center: - x: 48.0 - y: -58.0 - z: 19.0 - color: '#d13e49' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_4: - name: 7Networks_RH_Default_Par_4 - lookupLabel: 916 - originalLookupLabel: 916 - center: - x: 50.0 - y: -50.0 - z: 19.0 - color: '#d13e4a' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_5: - name: 7Networks_RH_Default_Par_5 - lookupLabel: 917 - originalLookupLabel: 917 - center: - x: 56.0 - y: -47.0 - z: 22.0 - color: '#d13e4b' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_6: - name: 7Networks_RH_Default_Par_6 - lookupLabel: 918 - originalLookupLabel: 918 - center: - x: 51.0 - y: -63.0 - z: 25.0 - color: '#d13e4c' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_7: - name: 7Networks_RH_Default_Par_7 - lookupLabel: 919 - originalLookupLabel: 919 - center: - x: 54.0 - y: -43.0 - z: 28.0 - color: '#d13e4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_8: - name: 7Networks_RH_Default_Par_8 - lookupLabel: 920 - originalLookupLabel: 920 - center: - x: 46.0 - y: -55.0 - z: 28.0 - color: '#d13e4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_9: - name: 7Networks_RH_Default_Par_9 - lookupLabel: 921 - originalLookupLabel: 921 - center: - x: 57.0 - y: -53.0 - z: 24.0 - color: '#d13e50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_10: - name: 7Networks_RH_Default_Par_10 - lookupLabel: 922 - originalLookupLabel: 922 - center: - x: 53.0 - y: -46.0 - z: 33.0 - color: '#d13e51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_11: - name: 7Networks_RH_Default_Par_11 - lookupLabel: 923 - originalLookupLabel: 923 - center: - x: 49.0 - y: -61.0 - z: 34.0 - color: '#d13e52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_12: - name: 7Networks_RH_Default_Par_12 - lookupLabel: 924 - originalLookupLabel: 924 - center: - x: 47.0 - y: -69.0 - z: 36.0 - color: '#d13e53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_13: - name: 7Networks_RH_Default_Par_13 - lookupLabel: 925 - originalLookupLabel: 925 - center: - x: 57.0 - y: -53.0 - z: 33.0 - color: '#d13e54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_14: - name: 7Networks_RH_Default_Par_14 - lookupLabel: 926 - originalLookupLabel: 926 - center: - x: 49.0 - y: -63.0 - z: 42.0 - color: '#d13f4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_15: - name: 7Networks_RH_Default_Par_15 - lookupLabel: 927 - originalLookupLabel: 927 - center: - x: 53.0 - y: -58.0 - z: 44.0 - color: '#d13f4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_16: - name: 7Networks_RH_Default_Par_16 - lookupLabel: 928 - originalLookupLabel: 928 - center: - x: 44.0 - y: -68.0 - z: 49.0 - color: '#d13f4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_1: - name: 7Networks_RH_Default_Temp_1 - lookupLabel: 929 - originalLookupLabel: 929 - center: - x: 47.0 - y: 10.0 - z: -37.0 - color: '#d13d47' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_2: - name: 7Networks_RH_Default_Temp_2 - lookupLabel: 930 - originalLookupLabel: 930 - center: - x: 50.0 - y: 0.0 - z: -32.0 - color: '#d13d48' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_3: - name: 7Networks_RH_Default_Temp_3 - lookupLabel: 931 - originalLookupLabel: 931 - center: - x: 60.0 - y: -8.0 - z: -25.0 - color: '#d13d49' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_4: - name: 7Networks_RH_Default_Temp_4 - lookupLabel: 932 - originalLookupLabel: 932 - center: - x: 52.0 - y: 8.0 - z: -26.0 - color: '#d13d4a' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_5: - name: 7Networks_RH_Default_Temp_5 - lookupLabel: 933 - originalLookupLabel: 933 - center: - x: 49.0 - y: 17.0 - z: -22.0 - color: '#d13d4b' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_6: - name: 7Networks_RH_Default_Temp_6 - lookupLabel: 934 - originalLookupLabel: 934 - center: - x: 58.0 - y: -4.0 - z: -18.0 - color: '#d13d4c' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_7: - name: 7Networks_RH_Default_Temp_7 - lookupLabel: 935 - originalLookupLabel: 935 - center: - x: 64.0 - y: -24.0 - z: -17.0 - color: '#d13d4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_8: - name: 7Networks_RH_Default_Temp_8 - lookupLabel: 936 - originalLookupLabel: 936 - center: - x: 66.0 - y: -12.0 - z: -13.0 - color: '#d13d4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_9: - name: 7Networks_RH_Default_Temp_9 - lookupLabel: 937 - originalLookupLabel: 937 - center: - x: 53.0 - y: 4.0 - z: -15.0 - color: '#d13d50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_10: - name: 7Networks_RH_Default_Temp_10 - lookupLabel: 938 - originalLookupLabel: 938 - center: - x: 67.0 - y: -30.0 - z: -13.0 - color: '#d13d51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_11: - name: 7Networks_RH_Default_Temp_11 - lookupLabel: 939 - originalLookupLabel: 939 - center: - x: 51.0 - y: -8.0 - z: -13.0 - color: '#d13d52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_12: - name: 7Networks_RH_Default_Temp_12 - lookupLabel: 940 - originalLookupLabel: 940 - center: - x: 64.0 - y: -22.0 - z: -8.0 - color: '#d13d53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_13: - name: 7Networks_RH_Default_Temp_13 - lookupLabel: 941 - originalLookupLabel: 941 - center: - x: 50.0 - y: -17.0 - z: -11.0 - color: '#d13d54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_14: - name: 7Networks_RH_Default_Temp_14 - lookupLabel: 942 - originalLookupLabel: 942 - center: - x: 54.0 - y: -27.0 - z: -6.0 - color: '#d13d55' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_15: - name: 7Networks_RH_Default_Temp_15 - lookupLabel: 943 - originalLookupLabel: 943 - center: - x: 65.0 - y: -33.0 - z: -2.0 - color: '#d13e55' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_16: - name: 7Networks_RH_Default_Temp_16 - lookupLabel: 944 - originalLookupLabel: 944 - center: - x: 48.0 - y: -23.0 - z: -5.0 - color: '#d13f50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_17: - name: 7Networks_RH_Default_Temp_17 - lookupLabel: 945 - originalLookupLabel: 945 - center: - x: 48.0 - y: -30.0 - z: -1.0 - color: '#d13f51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_18: - name: 7Networks_RH_Default_Temp_18 - lookupLabel: 946 - originalLookupLabel: 946 - center: - x: 55.0 - y: -37.0 - z: -1.0 - color: '#d13f52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_1: - name: 7Networks_RH_Default_PFCv_1 - lookupLabel: 947 - originalLookupLabel: 947 - center: - x: 29.0 - y: 19.0 - z: -20.0 - color: '#d13d4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_2: - name: 7Networks_RH_Default_PFCv_2 - lookupLabel: 948 - originalLookupLabel: 948 - center: - x: 31.0 - y: 20.0 - z: -13.0 - color: '#d13e4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_3: - name: 7Networks_RH_Default_PFCv_3 - lookupLabel: 949 - originalLookupLabel: 949 - center: - x: 35.0 - y: 27.0 - z: -19.0 - color: '#d13f53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_4: - name: 7Networks_RH_Default_PFCv_4 - lookupLabel: 950 - originalLookupLabel: 950 - center: - x: 35.0 - y: 37.0 - z: -13.0 - color: '#d13f54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_5: - name: 7Networks_RH_Default_PFCv_5 - lookupLabel: 951 - originalLookupLabel: 951 - center: - x: 41.0 - y: 25.0 - z: -14.0 - color: '#d1404d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_6: - name: 7Networks_RH_Default_PFCv_6 - lookupLabel: 952 - originalLookupLabel: 952 - center: - x: 48.0 - y: 35.0 - z: -14.0 - color: '#d1404e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_7: - name: 7Networks_RH_Default_PFCv_7 - lookupLabel: 953 - originalLookupLabel: 953 - center: - x: 42.0 - y: 26.0 - z: -5.0 - color: '#d1404f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_8: - name: 7Networks_RH_Default_PFCv_8 - lookupLabel: 954 - originalLookupLabel: 954 - center: - x: 50.0 - y: 34.0 - z: -6.0 - color: '#d14050' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_9: - name: 7Networks_RH_Default_PFCv_9 - lookupLabel: 955 - originalLookupLabel: 955 - center: - x: 53.0 - y: 29.0 - z: 1.0 - color: '#d14051' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_10: - name: 7Networks_RH_Default_PFCv_10 - lookupLabel: 956 - originalLookupLabel: 956 - center: - x: 56.0 - y: 21.0 - z: 9.0 - color: '#d14052' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_1: - name: 7Networks_RH_Default_PFCdPFCm_1 - lookupLabel: 957 - originalLookupLabel: 957 - center: - x: 5.0 - y: 45.0 - z: -12.0 - color: '#d03d4c' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_2: - name: 7Networks_RH_Default_PFCdPFCm_2 - lookupLabel: 958 - originalLookupLabel: 958 - center: - x: 5.0 - y: 34.0 - z: -5.0 - color: '#d03d4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_3: - name: 7Networks_RH_Default_PFCdPFCm_3 - lookupLabel: 959 - originalLookupLabel: 959 - center: - x: 8.0 - y: 52.0 - z: -4.0 - color: '#d03d4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_4: - name: 7Networks_RH_Default_PFCdPFCm_4 - lookupLabel: 960 - originalLookupLabel: 960 - center: - x: 9.0 - y: 67.0 - z: 0.0 - color: '#d03e47' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_5: - name: 7Networks_RH_Default_PFCdPFCm_5 - lookupLabel: 961 - originalLookupLabel: 961 - center: - x: 11.0 - y: 46.0 - z: -1.0 - color: '#d03e48' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_6: - name: 7Networks_RH_Default_PFCdPFCm_6 - lookupLabel: 962 - originalLookupLabel: 962 - center: - x: 17.0 - y: 67.0 - z: 10.0 - color: '#d03e49' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_7: - name: 7Networks_RH_Default_PFCdPFCm_7 - lookupLabel: 963 - originalLookupLabel: 963 - center: - x: 8.0 - y: 42.0 - z: 7.0 - color: '#d03e4a' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_8: - name: 7Networks_RH_Default_PFCdPFCm_8 - lookupLabel: 964 - originalLookupLabel: 964 - center: - x: 7.0 - y: 57.0 - z: 11.0 - color: '#d03e4b' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_9: - name: 7Networks_RH_Default_PFCdPFCm_9 - lookupLabel: 965 - originalLookupLabel: 965 - center: - x: 6.0 - y: 29.0 - z: 14.0 - color: '#d03e4c' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_10: - name: 7Networks_RH_Default_PFCdPFCm_10 - lookupLabel: 966 - originalLookupLabel: 966 - center: - x: 16.0 - y: 64.0 - z: 21.0 - color: '#d03e4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_11: - name: 7Networks_RH_Default_PFCdPFCm_11 - lookupLabel: 967 - originalLookupLabel: 967 - center: - x: 8.0 - y: 45.0 - z: 22.0 - color: '#d03e4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_12: - name: 7Networks_RH_Default_PFCdPFCm_12 - lookupLabel: 968 - originalLookupLabel: 968 - center: - x: 6.0 - y: 19.0 - z: 22.0 - color: '#d03e50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_13: - name: 7Networks_RH_Default_PFCdPFCm_13 - lookupLabel: 969 - originalLookupLabel: 969 - center: - x: 6.0 - y: 57.0 - z: 28.0 - color: '#d03e51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_14: - name: 7Networks_RH_Default_PFCdPFCm_14 - lookupLabel: 970 - originalLookupLabel: 970 - center: - x: 15.0 - y: 54.0 - z: 35.0 - color: '#d03e52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_15: - name: 7Networks_RH_Default_PFCdPFCm_15 - lookupLabel: 971 - originalLookupLabel: 971 - center: - x: 5.0 - y: 46.0 - z: 35.0 - color: '#d03e53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_16: - name: 7Networks_RH_Default_PFCdPFCm_16 - lookupLabel: 972 - originalLookupLabel: 972 - center: - x: 20.0 - y: 46.0 - z: 36.0 - color: '#d03e54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_17: - name: 7Networks_RH_Default_PFCdPFCm_17 - lookupLabel: 973 - originalLookupLabel: 973 - center: - x: 26.0 - y: 34.0 - z: 34.0 - color: '#d03e55' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_18: - name: 7Networks_RH_Default_PFCdPFCm_18 - lookupLabel: 974 - originalLookupLabel: 974 - center: - x: 9.0 - y: 48.0 - z: 48.0 - color: '#d03f4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_19: - name: 7Networks_RH_Default_PFCdPFCm_19 - lookupLabel: 975 - originalLookupLabel: 975 - center: - x: 22.0 - y: 40.0 - z: 46.0 - color: '#d03f4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_20: - name: 7Networks_RH_Default_PFCdPFCm_20 - lookupLabel: 976 - originalLookupLabel: 976 - center: - x: 27.0 - y: 29.0 - z: 42.0 - color: '#d03f50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_21: - name: 7Networks_RH_Default_PFCdPFCm_21 - lookupLabel: 977 - originalLookupLabel: 977 - center: - x: 14.0 - y: 34.0 - z: 56.0 - color: '#d03f51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_22: - name: 7Networks_RH_Default_PFCdPFCm_22 - lookupLabel: 978 - originalLookupLabel: 978 - center: - x: 24.0 - y: 27.0 - z: 53.0 - color: '#d03f52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_23: - name: 7Networks_RH_Default_PFCdPFCm_23 - lookupLabel: 979 - originalLookupLabel: 979 - center: - x: 5.0 - y: 24.0 - z: 61.0 - color: '#d03f53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_24: - name: 7Networks_RH_Default_PFCdPFCm_24 - lookupLabel: 980 - originalLookupLabel: 980 - center: - x: 11.0 - y: 19.0 - z: 64.0 - color: '#d03f54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_1: - name: 7Networks_RH_Default_pCunPCC_1 - lookupLabel: 981 - originalLookupLabel: 981 - center: - x: 10.0 - y: -48.0 - z: 7.0 - color: '#d03e46' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_2: - name: 7Networks_RH_Default_pCunPCC_2 - lookupLabel: 982 - originalLookupLabel: 982 - center: - x: 11.0 - y: -54.0 - z: 13.0 - color: '#d03e4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_3: - name: 7Networks_RH_Default_pCunPCC_3 - lookupLabel: 983 - originalLookupLabel: 983 - center: - x: 7.0 - y: -47.0 - z: 14.0 - color: '#d03f4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_4: - name: 7Networks_RH_Default_pCunPCC_4 - lookupLabel: 984 - originalLookupLabel: 984 - center: - x: 16.0 - y: -58.0 - z: 22.0 - color: '#d0404d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_5: - name: 7Networks_RH_Default_pCunPCC_5 - lookupLabel: 985 - originalLookupLabel: 985 - center: - x: 8.0 - y: -42.0 - z: 23.0 - color: '#d0404e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_6: - name: 7Networks_RH_Default_pCunPCC_6 - lookupLabel: 986 - originalLookupLabel: 986 - center: - x: 5.0 - y: -53.0 - z: 20.0 - color: '#d0404f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_7: - name: 7Networks_RH_Default_pCunPCC_7 - lookupLabel: 987 - originalLookupLabel: 987 - center: - x: 4.0 - y: -61.0 - z: 23.0 - color: '#d04050' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_8: - name: 7Networks_RH_Default_pCunPCC_8 - lookupLabel: 988 - originalLookupLabel: 988 - center: - x: 5.0 - y: -45.0 - z: 29.0 - color: '#d04051' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_9: - name: 7Networks_RH_Default_pCunPCC_9 - lookupLabel: 989 - originalLookupLabel: 989 - center: - x: 6.0 - y: -66.0 - z: 28.0 - color: '#d04052' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_10: - name: 7Networks_RH_Default_pCunPCC_10 - lookupLabel: 990 - originalLookupLabel: 990 - center: - x: 8.0 - y: -54.0 - z: 29.0 - color: '#d04053' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_11: - name: 7Networks_RH_Default_pCunPCC_11 - lookupLabel: 991 - originalLookupLabel: 991 - center: - x: 6.0 - y: -38.0 - z: 32.0 - color: '#d04054' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_12: - name: 7Networks_RH_Default_pCunPCC_12 - lookupLabel: 992 - originalLookupLabel: 992 - center: - x: 4.0 - y: -29.0 - z: 36.0 - color: '#d0414d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_13: - name: 7Networks_RH_Default_pCunPCC_13 - lookupLabel: 993 - originalLookupLabel: 993 - center: - x: 12.0 - y: -44.0 - z: 34.0 - color: '#d0414e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_14: - name: 7Networks_RH_Default_pCunPCC_14 - lookupLabel: 994 - originalLookupLabel: 994 - center: - x: 4.0 - y: -16.0 - z: 37.0 - color: '#d0414f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_15: - name: 7Networks_RH_Default_pCunPCC_15 - lookupLabel: 995 - originalLookupLabel: 995 - center: - x: 4.0 - y: -65.0 - z: 36.0 - color: '#d04150' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_16: - name: 7Networks_RH_Default_pCunPCC_16 - lookupLabel: 996 - originalLookupLabel: 996 - center: - x: 10.0 - y: -53.0 - z: 36.0 - color: '#d04151' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_17: - name: 7Networks_RH_Default_pCunPCC_17 - lookupLabel: 997 - originalLookupLabel: 997 - center: - x: 7.0 - y: -50.0 - z: 44.0 - color: '#d04152' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_18: - name: 7Networks_RH_Default_pCunPCC_18 - lookupLabel: 998 - originalLookupLabel: 998 - center: - x: 6.0 - y: -62.0 - z: 44.0 - color: '#d04153' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Cont_pCun_2: - name: 7Networks_RH_Cont_pCun_2 - lookupLabel: 999 - originalLookupLabel: 999 - center: - x: 6.0 - y: -37.0 - z: 39.0 - color: '#eb9525' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_pCun_4: - name: 7Networks_RH_Cont_pCun_4 - lookupLabel: 1000 - originalLookupLabel: 1000 - center: - x: 8.0 - y: -44.0 - z: 41.0 - color: '#eb9526' - hemisphere: right - hasParent: - - RH_Cont - versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_1000Parcels_7Networks_order_FSLMNI152_1mm.nii.gz diff --git a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-1000_res-1_desc-ordered_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-1000_res-1_desc-ordered_dseg.yaml similarity index 99% rename from tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-1000_res-1_desc-ordered_dseg.yaml rename to tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-1000_res-1_desc-ordered_dseg.yaml index 6f4ff4a58..11c850791 100644 --- a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-1000_res-1_desc-ordered_dseg.yaml +++ b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-1000_res-1_desc-ordered_dseg.yaml @@ -1,14 +1,12 @@ name: Schaefer2018 abbreviation: Schaefer2018 versionIdentifier: '2018' -coordinateSpace: - name: MNI152 - abbreviation: FSLMNI152 - nativeUnit: mm +coordinateSpace: FSLMNI152 terminology: label: Schaefer2018_1000Parcels_7Networks_order versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_1000Parcels_7Networks_order_FSLMNI152_1mm.nii.gz + dataLocation: + schaefer2018_original_mni/Schaefer2018_1000Parcels_7Networks_order_FSLMNI152_1mm.nii.gz entities: 7Networks_LH_Vis_1: name: 7Networks_LH_Vis_1 diff --git a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-100_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-100_dseg.yaml deleted file mode 100644 index d0cde85fc..000000000 --- a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-100_dseg.yaml +++ /dev/null @@ -1,1321 +0,0 @@ -name: Schaefer2018 -abbreviation: Schaefer2018 -versionIdentifier: '2018' -coordinateSpace: MNI152NLin6Asym -terminology: - label: Schaefer2018_100Parcels_7Networks_order - entities: - LH_Vis: - name: LH_Vis - lookupLabel: -1 - hemisphere: left - center: - x: -21.2 - y: -74.0 - z: 2.2 - LH_SomMot: - name: LH_SomMot - lookupLabel: -2 - hemisphere: left - center: - x: -40.7 - y: -19.3 - z: 33.3 - LH_DorsAttn: - name: LH_DorsAttn - lookupLabel: -3 - hemisphere: left - center: - x: -34.0 - y: -36.6 - z: 41.5 - LH_SalVentAttn: - name: LH_SalVentAttn - lookupLabel: -4 - hemisphere: left - center: - x: -27.1 - y: 1.0 - z: 28.4 - LH_Limbic: - name: LH_Limbic - lookupLabel: -5 - hemisphere: left - center: - x: -34.3 - y: 0.3 - z: -26.0 - LH_Cont: - name: LH_Cont - lookupLabel: -6 - hemisphere: left - center: - x: -23.2 - y: -29.8 - z: 34.5 - LH_Default: - name: LH_Default - lookupLabel: -7 - hemisphere: left - center: - x: -32.5 - y: -1.1 - z: 15.2 - RH_Vis: - name: RH_Vis - lookupLabel: -8 - hemisphere: right - center: - x: 25.5 - y: -69.2 - z: 0.6 - RH_SomMot: - name: RH_SomMot - lookupLabel: -9 - hemisphere: right - center: - x: 41.5 - y: -17.0 - z: 38.2 - RH_DorsAttn: - name: RH_DorsAttn - lookupLabel: -10 - hemisphere: right - center: - x: 36.6 - y: -34.7 - z: 44.3 - RH_SalVentAttn: - name: RH_SalVentAttn - lookupLabel: -11 - hemisphere: right - center: - x: 35.4 - y: -17.0 - z: 27.6 - RH_Limbic: - name: RH_Limbic - lookupLabel: -12 - hemisphere: right - center: - x: 25.0 - y: 18.0 - z: -29.0 - RH_Cont: - name: RH_Cont - lookupLabel: -13 - hemisphere: right - center: - x: 30.2 - y: -0.9 - z: 31.3 - RH_Default: - name: RH_Default - lookupLabel: -14 - hemisphere: right - center: - x: 34.0 - y: -2.1 - z: 10.2 - 7Networks_LH_Vis_1: - name: 7Networks_LH_Vis_1 - lookupLabel: 1 - originalLookupLabel: 1 - center: - x: -26.0 - y: -34.0 - z: -17.0 - color: '#781283' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_2: - name: 7Networks_LH_Vis_2 - lookupLabel: 2 - originalLookupLabel: 2 - center: - x: -26.0 - y: -77.0 - z: -14.0 - color: '#781284' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_3: - name: 7Networks_LH_Vis_3 - lookupLabel: 3 - originalLookupLabel: 3 - center: - x: -17.0 - y: -60.0 - z: -7.0 - color: '#781285' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_4: - name: 7Networks_LH_Vis_4 - lookupLabel: 4 - originalLookupLabel: 4 - center: - x: -27.0 - y: -95.0 - z: -4.0 - color: '#781287' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_5: - name: 7Networks_LH_Vis_5 - lookupLabel: 5 - originalLookupLabel: 5 - center: - x: -5.0 - y: -92.0 - z: -2.0 - color: '#781288' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_6: - name: 7Networks_LH_Vis_6 - lookupLabel: 6 - originalLookupLabel: 6 - center: - x: -12.0 - y: -67.0 - z: 7.0 - color: '#781289' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_7: - name: 7Networks_LH_Vis_7 - lookupLabel: 7 - originalLookupLabel: 7 - center: - x: -47.0 - y: -71.0 - z: 11.0 - color: '#78128a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_8: - name: 7Networks_LH_Vis_8 - lookupLabel: 8 - originalLookupLabel: 8 - center: - x: -25.0 - y: -88.0 - z: 20.0 - color: '#78128b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_9: - name: 7Networks_LH_Vis_9 - lookupLabel: 9 - originalLookupLabel: 9 - center: - x: -6.0 - y: -82.0 - z: 26.0 - color: '#78128c' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_SomMot_1: - name: 7Networks_LH_SomMot_1 - lookupLabel: 10 - originalLookupLabel: 10 - center: - x: -53.0 - y: -23.0 - z: 8.0 - color: '#4682b3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_2: - name: 7Networks_LH_SomMot_2 - lookupLabel: 11 - originalLookupLabel: 11 - center: - x: -37.0 - y: -21.0 - z: 16.0 - color: '#4682b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_3: - name: 7Networks_LH_SomMot_3 - lookupLabel: 12 - originalLookupLabel: 12 - center: - x: -54.0 - y: -12.0 - z: 13.0 - color: '#4682b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_4: - name: 7Networks_LH_SomMot_4 - lookupLabel: 13 - originalLookupLabel: 13 - center: - x: -55.0 - y: -8.0 - z: 34.0 - color: '#4682b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_5: - name: 7Networks_LH_SomMot_5 - lookupLabel: 14 - originalLookupLabel: 14 - center: - x: -39.0 - y: -23.0 - z: 59.0 - color: '#4682b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_6: - name: 7Networks_LH_SomMot_6 - lookupLabel: 15 - originalLookupLabel: 15 - center: - x: -6.0 - y: -29.0 - z: 70.0 - color: '#4682b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_DorsAttn_Post_1: - name: 7Networks_LH_DorsAttn_Post_1 - lookupLabel: 16 - originalLookupLabel: 16 - center: - x: -47.0 - y: -58.0 - z: -13.0 - color: '#00760d' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_2: - name: 7Networks_LH_DorsAttn_Post_2 - lookupLabel: 17 - originalLookupLabel: 17 - center: - x: -57.0 - y: -25.0 - z: 39.0 - color: '#00760f' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_3: - name: 7Networks_LH_DorsAttn_Post_3 - lookupLabel: 18 - originalLookupLabel: 18 - center: - x: -24.0 - y: -68.0 - z: 49.0 - color: '#007610' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_4: - name: 7Networks_LH_DorsAttn_Post_4 - lookupLabel: 19 - originalLookupLabel: 19 - center: - x: -42.0 - y: -34.0 - z: 48.0 - color: '#007611' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_5: - name: 7Networks_LH_DorsAttn_Post_5 - lookupLabel: 20 - originalLookupLabel: 20 - center: - x: -6.0 - y: -60.0 - z: 56.0 - color: '#007612' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_6: - name: 7Networks_LH_DorsAttn_Post_6 - lookupLabel: 21 - originalLookupLabel: 21 - center: - x: -22.0 - y: -51.0 - z: 66.0 - color: '#007613' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_PrCv_1: - name: 7Networks_LH_DorsAttn_PrCv_1 - lookupLabel: 22 - originalLookupLabel: 22 - center: - x: -48.0 - y: 6.0 - z: 28.0 - color: '#007614' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_1: - name: 7Networks_LH_DorsAttn_FEF_1 - lookupLabel: 23 - originalLookupLabel: 23 - center: - x: -26.0 - y: -3.0 - z: 59.0 - color: '#007615' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_SalVentAttn_ParOper_1: - name: 7Networks_LH_SalVentAttn_ParOper_1 - lookupLabel: 24 - originalLookupLabel: 24 - center: - x: -59.0 - y: -38.0 - z: 29.0 - color: '#c43afb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_1: - name: 7Networks_LH_SalVentAttn_FrOperIns_1 - lookupLabel: 25 - originalLookupLabel: 25 - center: - x: -41.0 - y: -1.0 - z: -7.0 - color: '#c43bfb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_2: - name: 7Networks_LH_SalVentAttn_FrOperIns_2 - lookupLabel: 26 - originalLookupLabel: 26 - center: - x: -38.0 - y: 12.0 - z: 6.0 - color: '#c43bfc' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_PFCl_1: - name: 7Networks_LH_SalVentAttn_PFCl_1 - lookupLabel: 27 - originalLookupLabel: 27 - center: - x: -30.0 - y: 44.0 - z: 30.0 - color: '#c43bfd' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_1: - name: 7Networks_LH_SalVentAttn_Med_1 - lookupLabel: 28 - originalLookupLabel: 28 - center: - x: -5.0 - y: 20.0 - z: 34.0 - color: '#c53afb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_2: - name: 7Networks_LH_SalVentAttn_Med_2 - lookupLabel: 29 - originalLookupLabel: 29 - center: - x: -11.0 - y: -34.0 - z: 45.0 - color: '#c53afc' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_3: - name: 7Networks_LH_SalVentAttn_Med_3 - lookupLabel: 30 - originalLookupLabel: 30 - center: - x: -6.0 - y: 4.0 - z: 62.0 - color: '#c53afd' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_Limbic_OFC_1: - name: 7Networks_LH_Limbic_OFC_1 - lookupLabel: 31 - originalLookupLabel: 31 - center: - x: -14.0 - y: 32.0 - z: -20.0 - color: '#dcf8a5' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_1: - name: 7Networks_LH_Limbic_TempPole_1 - lookupLabel: 32 - originalLookupLabel: 32 - center: - x: -32.0 - y: 2.0 - z: -37.0 - color: '#dcf8a6' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_2: - name: 7Networks_LH_Limbic_TempPole_2 - lookupLabel: 33 - originalLookupLabel: 33 - center: - x: -57.0 - y: -33.0 - z: -21.0 - color: '#dcf8a7' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Cont_Par_1: - name: 7Networks_LH_Cont_Par_1 - lookupLabel: 34 - originalLookupLabel: 34 - center: - x: -37.0 - y: -53.0 - z: 46.0 - color: '#e69423' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_1: - name: 7Networks_LH_Cont_PFCl_1 - lookupLabel: 35 - originalLookupLabel: 35 - center: - x: -43.0 - y: 33.0 - z: 21.0 - color: '#e69524' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_pCun_1: - name: 7Networks_LH_Cont_pCun_1 - lookupLabel: 36 - originalLookupLabel: 36 - center: - x: -9.0 - y: -73.0 - z: 38.0 - color: '#e79523' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_1: - name: 7Networks_LH_Cont_Cing_1 - lookupLabel: 37 - originalLookupLabel: 37 - center: - x: -4.0 - y: -26.0 - z: 33.0 - color: '#e79524' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Default_Temp_1: - name: 7Networks_LH_Default_Temp_1 - lookupLabel: 38 - originalLookupLabel: 38 - center: - x: -55.0 - y: -4.0 - z: -20.0 - color: '#cd3e50' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_2: - name: 7Networks_LH_Default_Temp_2 - lookupLabel: 39 - originalLookupLabel: 39 - center: - x: -58.0 - y: -32.0 - z: -1.0 - color: '#cd3e51' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_1: - name: 7Networks_LH_Default_Par_1 - lookupLabel: 40 - originalLookupLabel: 40 - center: - x: -57.0 - y: -50.0 - z: 12.0 - color: '#cd3e52' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_2: - name: 7Networks_LH_Default_Par_2 - lookupLabel: 41 - originalLookupLabel: 41 - center: - x: -48.0 - y: -63.0 - z: 35.0 - color: '#cd3e53' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_1: - name: 7Networks_LH_Default_PFC_1 - lookupLabel: 42 - originalLookupLabel: 42 - center: - x: -35.0 - y: 21.0 - z: -11.0 - color: '#cd3f4c' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_2: - name: 7Networks_LH_Default_PFC_2 - lookupLabel: 43 - originalLookupLabel: 43 - center: - x: -47.0 - y: 33.0 - z: -3.0 - color: '#cd3f4d' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_3: - name: 7Networks_LH_Default_PFC_3 - lookupLabel: 44 - originalLookupLabel: 44 - center: - x: -6.0 - y: 47.0 - z: 0.0 - color: '#cd3f4f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_4: - name: 7Networks_LH_Default_PFC_4 - lookupLabel: 45 - originalLookupLabel: 45 - center: - x: -24.0 - y: 61.0 - z: -1.0 - color: '#cd3f50' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_5: - name: 7Networks_LH_Default_PFC_5 - lookupLabel: 46 - originalLookupLabel: 46 - center: - x: -9.0 - y: 48.0 - z: 41.0 - color: '#cd3f51' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_6: - name: 7Networks_LH_Default_PFC_6 - lookupLabel: 47 - originalLookupLabel: 47 - center: - x: -41.0 - y: 14.0 - z: 48.0 - color: '#cd3f52' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_7: - name: 7Networks_LH_Default_PFC_7 - lookupLabel: 48 - originalLookupLabel: 48 - center: - x: -25.0 - y: 20.0 - z: 51.0 - color: '#cd3f53' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_1: - name: 7Networks_LH_Default_pCunPCC_1 - lookupLabel: 49 - originalLookupLabel: 49 - center: - x: -11.0 - y: -56.0 - z: 13.0 - color: '#cd3f54' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_2: - name: 7Networks_LH_Default_pCunPCC_2 - lookupLabel: 50 - originalLookupLabel: 50 - center: - x: -6.0 - y: -53.0 - z: 33.0 - color: '#cd3f55' - hemisphere: left - hasParent: - - LH_Default - 7Networks_RH_Vis_1: - name: 7Networks_RH_Vis_1 - lookupLabel: 51 - originalLookupLabel: 51 - center: - x: 32.0 - y: -31.0 - z: -22.0 - color: '#7c1285' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_2: - name: 7Networks_RH_Vis_2 - lookupLabel: 52 - originalLookupLabel: 52 - center: - x: 27.0 - y: -66.0 - z: -12.0 - color: '#7c1286' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_3: - name: 7Networks_RH_Vis_3 - lookupLabel: 53 - originalLookupLabel: 53 - center: - x: 49.0 - y: -60.0 - z: -11.0 - color: '#7c1288' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_4: - name: 7Networks_RH_Vis_4 - lookupLabel: 54 - originalLookupLabel: 54 - center: - x: 22.0 - y: -96.0 - z: -5.0 - color: '#7c1289' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_5: - name: 7Networks_RH_Vis_5 - lookupLabel: 55 - originalLookupLabel: 55 - center: - x: 8.0 - y: -76.0 - z: 5.0 - color: '#7c128a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_6: - name: 7Networks_RH_Vis_6 - lookupLabel: 56 - originalLookupLabel: 56 - center: - x: 17.0 - y: -57.0 - z: 5.0 - color: '#7c128b' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_7: - name: 7Networks_RH_Vis_7 - lookupLabel: 57 - originalLookupLabel: 57 - center: - x: 36.0 - y: -82.0 - z: 16.0 - color: '#7c128c' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_8: - name: 7Networks_RH_Vis_8 - lookupLabel: 58 - originalLookupLabel: 58 - center: - x: 13.0 - y: -86.0 - z: 29.0 - color: '#7c128d' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_SomMot_1: - name: 7Networks_RH_SomMot_1 - lookupLabel: 59 - originalLookupLabel: 59 - center: - x: 53.0 - y: -16.0 - z: 7.0 - color: '#4a82b3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_2: - name: 7Networks_RH_SomMot_2 - lookupLabel: 60 - originalLookupLabel: 60 - center: - x: 40.0 - y: -15.0 - z: 15.0 - color: '#4a82b4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_3: - name: 7Networks_RH_SomMot_3 - lookupLabel: 61 - originalLookupLabel: 61 - center: - x: 57.0 - y: -4.0 - z: 11.0 - color: '#4a82b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_4: - name: 7Networks_RH_SomMot_4 - lookupLabel: 62 - originalLookupLabel: 62 - center: - x: 58.0 - y: -5.0 - z: 31.0 - color: '#4a82b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_5: - name: 7Networks_RH_SomMot_5 - lookupLabel: 63 - originalLookupLabel: 63 - center: - x: 47.0 - y: -11.0 - z: 48.0 - color: '#4a82b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_6: - name: 7Networks_RH_SomMot_6 - lookupLabel: 64 - originalLookupLabel: 64 - center: - x: 41.0 - y: -22.0 - z: 60.0 - color: '#4a82b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_7: - name: 7Networks_RH_SomMot_7 - lookupLabel: 65 - originalLookupLabel: 65 - center: - x: 30.0 - y: -37.0 - z: 64.0 - color: '#4a82ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_8: - name: 7Networks_RH_SomMot_8 - lookupLabel: 66 - originalLookupLabel: 66 - center: - x: 6.0 - y: -26.0 - z: 70.0 - color: '#4a82bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_DorsAttn_Post_1: - name: 7Networks_RH_DorsAttn_Post_1 - lookupLabel: 67 - originalLookupLabel: 67 - center: - x: 50.0 - y: -62.0 - z: 16.0 - color: '#04770e' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_2: - name: 7Networks_RH_DorsAttn_Post_2 - lookupLabel: 68 - originalLookupLabel: 68 - center: - x: 50.0 - y: -24.0 - z: 42.0 - color: '#047710' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_3: - name: 7Networks_RH_DorsAttn_Post_3 - lookupLabel: 69 - originalLookupLabel: 69 - center: - x: 38.0 - y: -45.0 - z: 49.0 - color: '#047711' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_4: - name: 7Networks_RH_DorsAttn_Post_4 - lookupLabel: 70 - originalLookupLabel: 70 - center: - x: 27.0 - y: -67.0 - z: 51.0 - color: '#047712' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_5: - name: 7Networks_RH_DorsAttn_Post_5 - lookupLabel: 71 - originalLookupLabel: 71 - center: - x: 14.0 - y: -52.0 - z: 66.0 - color: '#047713' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_PrCv_1: - name: 7Networks_RH_DorsAttn_PrCv_1 - lookupLabel: 72 - originalLookupLabel: 72 - center: - x: 49.0 - y: 10.0 - z: 27.0 - color: '#05760f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_1: - name: 7Networks_RH_DorsAttn_FEF_1 - lookupLabel: 73 - originalLookupLabel: 73 - center: - x: 28.0 - y: -3.0 - z: 59.0 - color: '#057610' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_SalVentAttn_TempOccPar_1: - name: 7Networks_RH_SalVentAttn_TempOccPar_1 - lookupLabel: 74 - originalLookupLabel: 74 - center: - x: 58.0 - y: -42.0 - z: 13.0 - color: '#c93afc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_2: - name: 7Networks_RH_SalVentAttn_TempOccPar_2 - lookupLabel: 75 - originalLookupLabel: 75 - center: - x: 61.0 - y: -26.0 - z: 27.0 - color: '#c93afd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_1: - name: 7Networks_RH_SalVentAttn_FrOperIns_1 - lookupLabel: 76 - originalLookupLabel: 76 - center: - x: 40.0 - y: 8.0 - z: 1.0 - color: '#c93bfc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_1: - name: 7Networks_RH_SalVentAttn_Med_1 - lookupLabel: 77 - originalLookupLabel: 77 - center: - x: 11.0 - y: -31.0 - z: 45.0 - color: '#c839fa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_2: - name: 7Networks_RH_SalVentAttn_Med_2 - lookupLabel: 78 - originalLookupLabel: 78 - center: - x: 7.0 - y: 6.0 - z: 52.0 - color: '#c839fb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_Limbic_OFC_1: - name: 7Networks_RH_Limbic_OFC_1 - lookupLabel: 79 - originalLookupLabel: 79 - center: - x: 12.0 - y: 35.0 - z: -20.0 - color: '#e0f9a5' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_1: - name: 7Networks_RH_Limbic_TempPole_1 - lookupLabel: 80 - originalLookupLabel: 80 - center: - x: 38.0 - y: 1.0 - z: -38.0 - color: '#e0f9a6' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Cont_Par_1: - name: 7Networks_RH_Cont_Par_1 - lookupLabel: 81 - originalLookupLabel: 81 - center: - x: 57.0 - y: -39.0 - z: 44.0 - color: '#ea9323' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_2: - name: 7Networks_RH_Cont_Par_2 - lookupLabel: 82 - originalLookupLabel: 82 - center: - x: 45.0 - y: -63.0 - z: 46.0 - color: '#ea9324' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_1: - name: 7Networks_RH_Cont_PFCl_1 - lookupLabel: 83 - originalLookupLabel: 83 - center: - x: 30.0 - y: 58.0 - z: -3.0 - color: '#e99422' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_2: - name: 7Networks_RH_Cont_PFCl_2 - lookupLabel: 84 - originalLookupLabel: 84 - center: - x: 45.0 - y: 39.0 - z: 15.0 - color: '#e99423' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_3: - name: 7Networks_RH_Cont_PFCl_3 - lookupLabel: 85 - originalLookupLabel: 85 - center: - x: 32.0 - y: 46.0 - z: 29.0 - color: '#e99424' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_4: - name: 7Networks_RH_Cont_PFCl_4 - lookupLabel: 86 - originalLookupLabel: 86 - center: - x: 43.0 - y: 16.0 - z: 45.0 - color: '#e99425' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Cing_1: - name: 7Networks_RH_Cont_Cing_1 - lookupLabel: 87 - originalLookupLabel: 87 - center: - x: 5.0 - y: -27.0 - z: 33.0 - color: '#ea9425' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCmp_1: - name: 7Networks_RH_Cont_PFCmp_1 - lookupLabel: 88 - originalLookupLabel: 88 - center: - x: 6.0 - y: 28.0 - z: 30.0 - color: '#ea9426' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_pCun_1: - name: 7Networks_RH_Cont_pCun_1 - lookupLabel: 89 - originalLookupLabel: 89 - center: - x: 9.0 - y: -66.0 - z: 43.0 - color: '#ea9427' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Default_Par_1: - name: 7Networks_RH_Default_Par_1 - lookupLabel: 90 - originalLookupLabel: 90 - center: - x: 55.0 - y: -51.0 - z: 31.0 - color: '#d13e4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_1: - name: 7Networks_RH_Default_Temp_1 - lookupLabel: 91 - originalLookupLabel: 91 - center: - x: 62.0 - y: -23.0 - z: -19.0 - color: '#d13d4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_2: - name: 7Networks_RH_Default_Temp_2 - lookupLabel: 92 - originalLookupLabel: 92 - center: - x: 51.0 - y: 7.0 - z: -18.0 - color: '#d13d50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_3: - name: 7Networks_RH_Default_Temp_3 - lookupLabel: 93 - originalLookupLabel: 93 - center: - x: 57.0 - y: -26.0 - z: -2.0 - color: '#d13d51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_1: - name: 7Networks_RH_Default_PFCv_1 - lookupLabel: 94 - originalLookupLabel: 94 - center: - x: 35.0 - y: 26.0 - z: -15.0 - color: '#d13d4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_2: - name: 7Networks_RH_Default_PFCv_2 - lookupLabel: 95 - originalLookupLabel: 95 - center: - x: 51.0 - y: 28.0 - z: 0.0 - color: '#d13d52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_1: - name: 7Networks_RH_Default_PFCdPFCm_1 - lookupLabel: 96 - originalLookupLabel: 96 - center: - x: 7.0 - y: 48.0 - z: 1.0 - color: '#d03e4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_2: - name: 7Networks_RH_Default_PFCdPFCm_2 - lookupLabel: 97 - originalLookupLabel: 97 - center: - x: 11.0 - y: 50.0 - z: 39.0 - color: '#d03e50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_3: - name: 7Networks_RH_Default_PFCdPFCm_3 - lookupLabel: 98 - originalLookupLabel: 98 - center: - x: 26.0 - y: 24.0 - z: 50.0 - color: '#d03e51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_1: - name: 7Networks_RH_Default_pCunPCC_1 - lookupLabel: 99 - originalLookupLabel: 99 - center: - x: 12.0 - y: -54.0 - z: 14.0 - color: '#d03e4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_2: - name: 7Networks_RH_Default_pCunPCC_2 - lookupLabel: 100 - originalLookupLabel: 100 - center: - x: 7.0 - y: -52.0 - z: 31.0 - color: '#d03e52' - hemisphere: right - hasParent: - - RH_Default - versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_100Parcels_7Networks_order_FSLMNI152_1mm.nii.gz diff --git a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-100_res-1_desc-ordered_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-100_res-1_desc-ordered_dseg.yaml similarity index 99% rename from tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-100_res-1_desc-ordered_dseg.yaml rename to tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-100_res-1_desc-ordered_dseg.yaml index 7c7bfa49b..20cb2d220 100644 --- a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-100_res-1_desc-ordered_dseg.yaml +++ b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-100_res-1_desc-ordered_dseg.yaml @@ -1,14 +1,12 @@ name: Schaefer2018 abbreviation: Schaefer2018 versionIdentifier: '2018' -coordinateSpace: - name: MNI152 - abbreviation: FSLMNI152 - nativeUnit: mm +coordinateSpace: FSLMNI152 terminology: label: Schaefer2018_100Parcels_7Networks_order versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_100Parcels_7Networks_order_FSLMNI152_1mm.nii.gz + dataLocation: + schaefer2018_original_mni/Schaefer2018_100Parcels_7Networks_order_FSLMNI152_1mm.nii.gz entities: 7Networks_LH_Vis_1: name: 7Networks_LH_Vis_1 diff --git a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-200_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-200_dseg.yaml deleted file mode 100644 index fc245d413..000000000 --- a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-200_dseg.yaml +++ /dev/null @@ -1,2521 +0,0 @@ -name: Schaefer2018 -abbreviation: Schaefer2018 -versionIdentifier: '2018' -coordinateSpace: MNI152NLin6Asym -terminology: - label: Schaefer2018_200Parcels_7Networks_order - entities: - LH_Vis: - name: LH_Vis - lookupLabel: -1 - hemisphere: left - center: - x: -22.4 - y: -76.2 - z: 3.8 - LH_SomMot: - name: LH_SomMot - lookupLabel: -2 - hemisphere: left - center: - x: -36.3 - y: -20.9 - z: 42.9 - LH_DorsAttn: - name: LH_DorsAttn - lookupLabel: -3 - hemisphere: left - center: - x: -32.6 - y: -40.5 - z: 41.2 - LH_SalVentAttn: - name: LH_SalVentAttn - lookupLabel: -4 - hemisphere: left - center: - x: -35.5 - y: -5.9 - z: 26.4 - LH_Limbic: - name: LH_Limbic - lookupLabel: -5 - hemisphere: left - center: - x: -29.8 - y: 8.2 - z: -27.2 - LH_Cont: - name: LH_Cont - lookupLabel: -6 - hemisphere: left - center: - x: -34.0 - y: -6.2 - z: 22.9 - LH_Default: - name: LH_Default - lookupLabel: -7 - hemisphere: left - center: - x: -28.9 - y: -4.8 - z: 15.7 - RH_Vis: - name: RH_Vis - lookupLabel: -8 - hemisphere: right - center: - x: 24.5 - y: -69.8 - z: 5.0 - RH_SomMot: - name: RH_SomMot - lookupLabel: -9 - hemisphere: right - center: - x: 35.6 - y: -19.6 - z: 43.1 - RH_DorsAttn: - name: RH_DorsAttn - lookupLabel: -10 - hemisphere: right - center: - x: 35.7 - y: -36.2 - z: 42.1 - RH_SalVentAttn: - name: RH_SalVentAttn - lookupLabel: -11 - hemisphere: right - center: - x: 38.2 - y: -8.8 - z: 21.5 - RH_Limbic: - name: RH_Limbic - lookupLabel: -12 - hemisphere: right - center: - x: 26.2 - y: 18.5 - z: -25.7 - RH_Cont: - name: RH_Cont - lookupLabel: -13 - hemisphere: right - center: - x: 32.6 - y: 4.2 - z: 25.5 - RH_Default: - name: RH_Default - lookupLabel: -14 - hemisphere: right - center: - x: 31.6 - y: -5.8 - z: 15.1 - 7Networks_LH_Vis_1: - name: 7Networks_LH_Vis_1 - lookupLabel: 1 - originalLookupLabel: 1 - center: - x: -24.0 - y: -53.0 - z: -9.0 - color: '#781281' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_2: - name: 7Networks_LH_Vis_2 - lookupLabel: 2 - originalLookupLabel: 2 - center: - x: -26.0 - y: -77.0 - z: -14.0 - color: '#781282' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_3: - name: 7Networks_LH_Vis_3 - lookupLabel: 3 - originalLookupLabel: 3 - center: - x: -45.0 - y: -69.0 - z: -8.0 - color: '#781283' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_4: - name: 7Networks_LH_Vis_4 - lookupLabel: 4 - originalLookupLabel: 4 - center: - x: -10.0 - y: -67.0 - z: -4.0 - color: '#781284' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_5: - name: 7Networks_LH_Vis_5 - lookupLabel: 5 - originalLookupLabel: 5 - center: - x: -27.0 - y: -95.0 - z: -12.0 - color: '#781285' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_6: - name: 7Networks_LH_Vis_6 - lookupLabel: 6 - originalLookupLabel: 6 - center: - x: -14.0 - y: -44.0 - z: -3.0 - color: '#781287' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_7: - name: 7Networks_LH_Vis_7 - lookupLabel: 7 - originalLookupLabel: 7 - center: - x: -5.0 - y: -93.0 - z: -4.0 - color: '#781288' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_8: - name: 7Networks_LH_Vis_8 - lookupLabel: 8 - originalLookupLabel: 8 - center: - x: -47.0 - y: -70.0 - z: 10.0 - color: '#781289' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_9: - name: 7Networks_LH_Vis_9 - lookupLabel: 9 - originalLookupLabel: 9 - center: - x: -23.0 - y: -97.0 - z: 6.0 - color: '#78128a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_10: - name: 7Networks_LH_Vis_10 - lookupLabel: 10 - originalLookupLabel: 10 - center: - x: -11.0 - y: -70.0 - z: 7.0 - color: '#78128b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_11: - name: 7Networks_LH_Vis_11 - lookupLabel: 11 - originalLookupLabel: 11 - center: - x: -40.0 - y: -85.0 - z: 11.0 - color: '#78128c' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_12: - name: 7Networks_LH_Vis_12 - lookupLabel: 12 - originalLookupLabel: 12 - center: - x: -12.0 - y: -73.0 - z: 22.0 - color: '#78128d' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_13: - name: 7Networks_LH_Vis_13 - lookupLabel: 13 - originalLookupLabel: 13 - center: - x: -7.0 - y: -87.0 - z: 28.0 - color: '#781386' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_14: - name: 7Networks_LH_Vis_14 - lookupLabel: 14 - originalLookupLabel: 14 - center: - x: -23.0 - y: -87.0 - z: 23.0 - color: '#781387' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_SomMot_1: - name: 7Networks_LH_SomMot_1 - lookupLabel: 15 - originalLookupLabel: 15 - center: - x: -51.0 - y: -4.0 - z: -2.0 - color: '#4682ae' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_2: - name: 7Networks_LH_SomMot_2 - lookupLabel: 16 - originalLookupLabel: 16 - center: - x: -53.0 - y: -24.0 - z: 9.0 - color: '#4682af' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_3: - name: 7Networks_LH_SomMot_3 - lookupLabel: 17 - originalLookupLabel: 17 - center: - x: -37.0 - y: -21.0 - z: 16.0 - color: '#4682b0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_4: - name: 7Networks_LH_SomMot_4 - lookupLabel: 18 - originalLookupLabel: 18 - center: - x: -55.0 - y: -4.0 - z: 10.0 - color: '#4682b1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_5: - name: 7Networks_LH_SomMot_5 - lookupLabel: 19 - originalLookupLabel: 19 - center: - x: -53.0 - y: -22.0 - z: 18.0 - color: '#4682b2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_6: - name: 7Networks_LH_SomMot_6 - lookupLabel: 20 - originalLookupLabel: 20 - center: - x: -56.0 - y: -8.0 - z: 31.0 - color: '#4682b3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_7: - name: 7Networks_LH_SomMot_7 - lookupLabel: 21 - originalLookupLabel: 21 - center: - x: -47.0 - y: -9.0 - z: 46.0 - color: '#4682b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_8: - name: 7Networks_LH_SomMot_8 - lookupLabel: 22 - originalLookupLabel: 22 - center: - x: -7.0 - y: -12.0 - z: 46.0 - color: '#4682b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_9: - name: 7Networks_LH_SomMot_9 - lookupLabel: 23 - originalLookupLabel: 23 - center: - x: -49.0 - y: -28.0 - z: 57.0 - color: '#4682b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_10: - name: 7Networks_LH_SomMot_10 - lookupLabel: 24 - originalLookupLabel: 24 - center: - x: -40.0 - y: -25.0 - z: 57.0 - color: '#4682b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_11: - name: 7Networks_LH_SomMot_11 - lookupLabel: 25 - originalLookupLabel: 25 - center: - x: -31.0 - y: -46.0 - z: 63.0 - color: '#4682b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_12: - name: 7Networks_LH_SomMot_12 - lookupLabel: 26 - originalLookupLabel: 26 - center: - x: -32.0 - y: -22.0 - z: 64.0 - color: '#4682ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_13: - name: 7Networks_LH_SomMot_13 - lookupLabel: 27 - originalLookupLabel: 27 - center: - x: -26.0 - y: -38.0 - z: 68.0 - color: '#4682bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_14: - name: 7Networks_LH_SomMot_14 - lookupLabel: 28 - originalLookupLabel: 28 - center: - x: -20.0 - y: -11.0 - z: 68.0 - color: '#4683b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_15: - name: 7Networks_LH_SomMot_15 - lookupLabel: 29 - originalLookupLabel: 29 - center: - x: -5.0 - y: -29.0 - z: 67.0 - color: '#4683b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_16: - name: 7Networks_LH_SomMot_16 - lookupLabel: 30 - originalLookupLabel: 30 - center: - x: -19.0 - y: -31.0 - z: 68.0 - color: '#4683b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_DorsAttn_Post_1: - name: 7Networks_LH_DorsAttn_Post_1 - lookupLabel: 31 - originalLookupLabel: 31 - center: - x: -43.0 - y: -48.0 - z: -19.0 - color: '#00760b' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_2: - name: 7Networks_LH_DorsAttn_Post_2 - lookupLabel: 32 - originalLookupLabel: 32 - center: - x: -57.0 - y: -60.0 - z: -1.0 - color: '#00760c' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_3: - name: 7Networks_LH_DorsAttn_Post_3 - lookupLabel: 33 - originalLookupLabel: 33 - center: - x: -26.0 - y: -70.0 - z: 38.0 - color: '#00760d' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_4: - name: 7Networks_LH_DorsAttn_Post_4 - lookupLabel: 34 - originalLookupLabel: 34 - center: - x: -54.0 - y: -27.0 - z: 42.0 - color: '#00760f' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_5: - name: 7Networks_LH_DorsAttn_Post_5 - lookupLabel: 35 - originalLookupLabel: 35 - center: - x: -41.0 - y: -35.0 - z: 47.0 - color: '#007610' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_6: - name: 7Networks_LH_DorsAttn_Post_6 - lookupLabel: 36 - originalLookupLabel: 36 - center: - x: -33.0 - y: -49.0 - z: 47.0 - color: '#007611' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_7: - name: 7Networks_LH_DorsAttn_Post_7 - lookupLabel: 37 - originalLookupLabel: 37 - center: - x: -17.0 - y: -73.0 - z: 54.0 - color: '#007612' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_8: - name: 7Networks_LH_DorsAttn_Post_8 - lookupLabel: 38 - originalLookupLabel: 38 - center: - x: -29.0 - y: -60.0 - z: 59.0 - color: '#007613' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_9: - name: 7Networks_LH_DorsAttn_Post_9 - lookupLabel: 39 - originalLookupLabel: 39 - center: - x: -6.0 - y: -60.0 - z: 57.0 - color: '#007614' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_10: - name: 7Networks_LH_DorsAttn_Post_10 - lookupLabel: 40 - originalLookupLabel: 40 - center: - x: -17.0 - y: -53.0 - z: 68.0 - color: '#007615' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_1: - name: 7Networks_LH_DorsAttn_FEF_1 - lookupLabel: 41 - originalLookupLabel: 41 - center: - x: -31.0 - y: -4.0 - z: 53.0 - color: '#007616' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_2: - name: 7Networks_LH_DorsAttn_FEF_2 - lookupLabel: 42 - originalLookupLabel: 42 - center: - x: -22.0 - y: 6.0 - z: 62.0 - color: '#00770f' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_PrCv_1: - name: 7Networks_LH_DorsAttn_PrCv_1 - lookupLabel: 43 - originalLookupLabel: 43 - center: - x: -48.0 - y: 6.0 - z: 29.0 - color: '#007710' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_SalVentAttn_ParOper_1: - name: 7Networks_LH_SalVentAttn_ParOper_1 - lookupLabel: 44 - originalLookupLabel: 44 - center: - x: -56.0 - y: -40.0 - z: 20.0 - color: '#c43afb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_2: - name: 7Networks_LH_SalVentAttn_ParOper_2 - lookupLabel: 45 - originalLookupLabel: 45 - center: - x: -61.0 - y: -26.0 - z: 28.0 - color: '#c43afc' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_3: - name: 7Networks_LH_SalVentAttn_ParOper_3 - lookupLabel: 46 - originalLookupLabel: 46 - center: - x: -60.0 - y: -39.0 - z: 36.0 - color: '#c43afd' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_1: - name: 7Networks_LH_SalVentAttn_FrOperIns_1 - lookupLabel: 47 - originalLookupLabel: 47 - center: - x: -39.0 - y: -4.0 - z: -4.0 - color: '#c43bfb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_2: - name: 7Networks_LH_SalVentAttn_FrOperIns_2 - lookupLabel: 48 - originalLookupLabel: 48 - center: - x: -33.0 - y: 20.0 - z: 5.0 - color: '#c43bfc' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_3: - name: 7Networks_LH_SalVentAttn_FrOperIns_3 - lookupLabel: 49 - originalLookupLabel: 49 - center: - x: -39.0 - y: 1.0 - z: 11.0 - color: '#c43bfd' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_4: - name: 7Networks_LH_SalVentAttn_FrOperIns_4 - lookupLabel: 50 - originalLookupLabel: 50 - center: - x: -51.0 - y: 9.0 - z: 11.0 - color: '#c43bfe' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_PFCl_1: - name: 7Networks_LH_SalVentAttn_PFCl_1 - lookupLabel: 51 - originalLookupLabel: 51 - center: - x: -28.0 - y: 43.0 - z: 31.0 - color: '#c43bff' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_1: - name: 7Networks_LH_SalVentAttn_Med_1 - lookupLabel: 52 - originalLookupLabel: 52 - center: - x: -6.0 - y: 9.0 - z: 41.0 - color: '#c53afb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_2: - name: 7Networks_LH_SalVentAttn_Med_2 - lookupLabel: 53 - originalLookupLabel: 53 - center: - x: -11.0 - y: -35.0 - z: 46.0 - color: '#c53afc' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_3: - name: 7Networks_LH_SalVentAttn_Med_3 - lookupLabel: 54 - originalLookupLabel: 54 - center: - x: -6.0 - y: -3.0 - z: 65.0 - color: '#c53afd' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_Limbic_OFC_1: - name: 7Networks_LH_Limbic_OFC_1 - lookupLabel: 55 - originalLookupLabel: 55 - center: - x: -24.0 - y: 22.0 - z: -20.0 - color: '#dcf8a5' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_2: - name: 7Networks_LH_Limbic_OFC_2 - lookupLabel: 56 - originalLookupLabel: 56 - center: - x: -10.0 - y: 35.0 - z: -21.0 - color: '#dcf8a6' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_1: - name: 7Networks_LH_Limbic_TempPole_1 - lookupLabel: 57 - originalLookupLabel: 57 - center: - x: -29.0 - y: -6.0 - z: -39.0 - color: '#dcf8a7' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_2: - name: 7Networks_LH_Limbic_TempPole_2 - lookupLabel: 58 - originalLookupLabel: 58 - center: - x: -45.0 - y: -20.0 - z: -30.0 - color: '#dcf8a8' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_3: - name: 7Networks_LH_Limbic_TempPole_3 - lookupLabel: 59 - originalLookupLabel: 59 - center: - x: -28.0 - y: 10.0 - z: -34.0 - color: '#dcf8a9' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_4: - name: 7Networks_LH_Limbic_TempPole_4 - lookupLabel: 60 - originalLookupLabel: 60 - center: - x: -43.0 - y: 8.0 - z: -19.0 - color: '#dcf8aa' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Cont_Par_1: - name: 7Networks_LH_Cont_Par_1 - lookupLabel: 61 - originalLookupLabel: 61 - center: - x: -53.0 - y: -51.0 - z: 46.0 - color: '#e69423' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_2: - name: 7Networks_LH_Cont_Par_2 - lookupLabel: 62 - originalLookupLabel: 62 - center: - x: -35.0 - y: -62.0 - z: 48.0 - color: '#e69424' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_3: - name: 7Networks_LH_Cont_Par_3 - lookupLabel: 63 - originalLookupLabel: 63 - center: - x: -45.0 - y: -42.0 - z: 46.0 - color: '#e69425' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Temp_1: - name: 7Networks_LH_Cont_Temp_1 - lookupLabel: 64 - originalLookupLabel: 64 - center: - x: -61.0 - y: -43.0 - z: -13.0 - color: '#e69426' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_OFC_1: - name: 7Networks_LH_Cont_OFC_1 - lookupLabel: 65 - originalLookupLabel: 65 - center: - x: -32.0 - y: 42.0 - z: -13.0 - color: '#e69522' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_1: - name: 7Networks_LH_Cont_PFCl_1 - lookupLabel: 66 - originalLookupLabel: 66 - center: - x: -42.0 - y: 49.0 - z: -6.0 - color: '#e69524' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_2: - name: 7Networks_LH_Cont_PFCl_2 - lookupLabel: 67 - originalLookupLabel: 67 - center: - x: -28.0 - y: 58.0 - z: 8.0 - color: '#e69525' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_3: - name: 7Networks_LH_Cont_PFCl_3 - lookupLabel: 68 - originalLookupLabel: 68 - center: - x: -42.0 - y: 40.0 - z: 16.0 - color: '#e69526' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_4: - name: 7Networks_LH_Cont_PFCl_4 - lookupLabel: 69 - originalLookupLabel: 69 - center: - x: -44.0 - y: 20.0 - z: 27.0 - color: '#e69527' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_5: - name: 7Networks_LH_Cont_PFCl_5 - lookupLabel: 70 - originalLookupLabel: 70 - center: - x: -43.0 - y: 6.0 - z: 43.0 - color: '#e69528' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_pCun_1: - name: 7Networks_LH_Cont_pCun_1 - lookupLabel: 71 - originalLookupLabel: 71 - center: - x: -9.0 - y: -73.0 - z: 38.0 - color: '#e79523' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_1: - name: 7Networks_LH_Cont_Cing_1 - lookupLabel: 72 - originalLookupLabel: 72 - center: - x: -5.0 - y: -29.0 - z: 28.0 - color: '#e79524' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_2: - name: 7Networks_LH_Cont_Cing_2 - lookupLabel: 73 - originalLookupLabel: 73 - center: - x: -3.0 - y: 4.0 - z: 30.0 - color: '#e79525' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Default_Temp_1: - name: 7Networks_LH_Default_Temp_1 - lookupLabel: 74 - originalLookupLabel: 74 - center: - x: -47.0 - y: 8.0 - z: -33.0 - color: '#cd3e4c' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_2: - name: 7Networks_LH_Default_Temp_2 - lookupLabel: 75 - originalLookupLabel: 75 - center: - x: -60.0 - y: -19.0 - z: -22.0 - color: '#cd3e4d' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_3: - name: 7Networks_LH_Default_Temp_3 - lookupLabel: 76 - originalLookupLabel: 76 - center: - x: -56.0 - y: -6.0 - z: -12.0 - color: '#cd3e4e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_4: - name: 7Networks_LH_Default_Temp_4 - lookupLabel: 77 - originalLookupLabel: 77 - center: - x: -58.0 - y: -30.0 - z: -4.0 - color: '#cd3e50' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_5: - name: 7Networks_LH_Default_Temp_5 - lookupLabel: 78 - originalLookupLabel: 78 - center: - x: -58.0 - y: -43.0 - z: 7.0 - color: '#cd3e51' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_1: - name: 7Networks_LH_Default_Par_1 - lookupLabel: 79 - originalLookupLabel: 79 - center: - x: -48.0 - y: -57.0 - z: 18.0 - color: '#cd3e52' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_2: - name: 7Networks_LH_Default_Par_2 - lookupLabel: 80 - originalLookupLabel: 80 - center: - x: -39.0 - y: -80.0 - z: 31.0 - color: '#cd3e53' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_3: - name: 7Networks_LH_Default_Par_3 - lookupLabel: 81 - originalLookupLabel: 81 - center: - x: -57.0 - y: -54.0 - z: 28.0 - color: '#cd3e54' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_4: - name: 7Networks_LH_Default_Par_4 - lookupLabel: 82 - originalLookupLabel: 82 - center: - x: -46.0 - y: -66.0 - z: 38.0 - color: '#cd3e55' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_1: - name: 7Networks_LH_Default_PFC_1 - lookupLabel: 83 - originalLookupLabel: 83 - center: - x: -35.0 - y: 20.0 - z: -13.0 - color: '#cd3f49' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_2: - name: 7Networks_LH_Default_PFC_2 - lookupLabel: 84 - originalLookupLabel: 84 - center: - x: -6.0 - y: 36.0 - z: -10.0 - color: '#cd3f4a' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_3: - name: 7Networks_LH_Default_PFC_3 - lookupLabel: 85 - originalLookupLabel: 85 - center: - x: -46.0 - y: 31.0 - z: -7.0 - color: '#cd3f4b' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_4: - name: 7Networks_LH_Default_PFC_4 - lookupLabel: 86 - originalLookupLabel: 86 - center: - x: -12.0 - y: 63.0 - z: -6.0 - color: '#cd3f4c' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_5: - name: 7Networks_LH_Default_PFC_5 - lookupLabel: 87 - originalLookupLabel: 87 - center: - x: -52.0 - y: 22.0 - z: 8.0 - color: '#cd3f4d' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_6: - name: 7Networks_LH_Default_PFC_6 - lookupLabel: 88 - originalLookupLabel: 88 - center: - x: -6.0 - y: 44.0 - z: 7.0 - color: '#cd3f4f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_7: - name: 7Networks_LH_Default_PFC_7 - lookupLabel: 89 - originalLookupLabel: 89 - center: - x: -8.0 - y: 59.0 - z: 21.0 - color: '#cd3f50' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_8: - name: 7Networks_LH_Default_PFC_8 - lookupLabel: 90 - originalLookupLabel: 90 - center: - x: -6.0 - y: 30.0 - z: 25.0 - color: '#cd3f51' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_9: - name: 7Networks_LH_Default_PFC_9 - lookupLabel: 91 - originalLookupLabel: 91 - center: - x: -11.0 - y: 47.0 - z: 45.0 - color: '#cd3f52' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_10: - name: 7Networks_LH_Default_PFC_10 - lookupLabel: 92 - originalLookupLabel: 92 - center: - x: -3.0 - y: 33.0 - z: 43.0 - color: '#cd3f53' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_11: - name: 7Networks_LH_Default_PFC_11 - lookupLabel: 93 - originalLookupLabel: 93 - center: - x: -40.0 - y: 19.0 - z: 49.0 - color: '#cd3f54' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_12: - name: 7Networks_LH_Default_PFC_12 - lookupLabel: 94 - originalLookupLabel: 94 - center: - x: -24.0 - y: 25.0 - z: 49.0 - color: '#cd3f55' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_13: - name: 7Networks_LH_Default_PFC_13 - lookupLabel: 95 - originalLookupLabel: 95 - center: - x: -9.0 - y: 17.0 - z: 63.0 - color: '#cd404e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_1: - name: 7Networks_LH_Default_pCunPCC_1 - lookupLabel: 96 - originalLookupLabel: 96 - center: - x: -11.0 - y: -56.0 - z: 13.0 - color: '#cd3f56' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_2: - name: 7Networks_LH_Default_pCunPCC_2 - lookupLabel: 97 - originalLookupLabel: 97 - center: - x: -5.0 - y: -55.0 - z: 27.0 - color: '#cd404f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_3: - name: 7Networks_LH_Default_pCunPCC_3 - lookupLabel: 98 - originalLookupLabel: 98 - center: - x: -4.0 - y: -31.0 - z: 36.0 - color: '#cd4050' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_4: - name: 7Networks_LH_Default_pCunPCC_4 - lookupLabel: 99 - originalLookupLabel: 99 - center: - x: -6.0 - y: -54.0 - z: 42.0 - color: '#cd4051' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PHC_1: - name: 7Networks_LH_Default_PHC_1 - lookupLabel: 100 - originalLookupLabel: 100 - center: - x: -26.0 - y: -32.0 - z: -18.0 - color: '#ce3e4f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_RH_Vis_1: - name: 7Networks_RH_Vis_1 - lookupLabel: 101 - originalLookupLabel: 101 - center: - x: 39.0 - y: -35.0 - z: -23.0 - color: '#7c1281' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_2: - name: 7Networks_RH_Vis_2 - lookupLabel: 102 - originalLookupLabel: 102 - center: - x: 28.0 - y: -36.0 - z: -14.0 - color: '#7c1282' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_3: - name: 7Networks_RH_Vis_3 - lookupLabel: 103 - originalLookupLabel: 103 - center: - x: 29.0 - y: -69.0 - z: -12.0 - color: '#7c1283' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_4: - name: 7Networks_RH_Vis_4 - lookupLabel: 104 - originalLookupLabel: 104 - center: - x: 12.0 - y: -65.0 - z: -5.0 - color: '#7c1284' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_5: - name: 7Networks_RH_Vis_5 - lookupLabel: 105 - originalLookupLabel: 105 - center: - x: 48.0 - y: -71.0 - z: -6.0 - color: '#7c1285' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_6: - name: 7Networks_RH_Vis_6 - lookupLabel: 106 - originalLookupLabel: 106 - center: - x: 11.0 - y: -92.0 - z: -5.0 - color: '#7c1286' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_7: - name: 7Networks_RH_Vis_7 - lookupLabel: 107 - originalLookupLabel: 107 - center: - x: 16.0 - y: -46.0 - z: -1.0 - color: '#7c1288' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_8: - name: 7Networks_RH_Vis_8 - lookupLabel: 108 - originalLookupLabel: 108 - center: - x: 31.0 - y: -94.0 - z: -4.0 - color: '#7c1289' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_9: - name: 7Networks_RH_Vis_9 - lookupLabel: 109 - originalLookupLabel: 109 - center: - x: 9.0 - y: -75.0 - z: 9.0 - color: '#7c128a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_10: - name: 7Networks_RH_Vis_10 - lookupLabel: 110 - originalLookupLabel: 110 - center: - x: 22.0 - y: -60.0 - z: 7.0 - color: '#7c128b' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_11: - name: 7Networks_RH_Vis_11 - lookupLabel: 111 - originalLookupLabel: 111 - center: - x: 42.0 - y: -80.0 - z: 10.0 - color: '#7c128c' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_12: - name: 7Networks_RH_Vis_12 - lookupLabel: 112 - originalLookupLabel: 112 - center: - x: 20.0 - y: -90.0 - z: 22.0 - color: '#7c128d' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_13: - name: 7Networks_RH_Vis_13 - lookupLabel: 113 - originalLookupLabel: 113 - center: - x: 11.0 - y: -74.0 - z: 26.0 - color: '#7c128e' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_14: - name: 7Networks_RH_Vis_14 - lookupLabel: 114 - originalLookupLabel: 114 - center: - x: 16.0 - y: -85.0 - z: 39.0 - color: '#7c1387' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_15: - name: 7Networks_RH_Vis_15 - lookupLabel: 115 - originalLookupLabel: 115 - center: - x: 33.0 - y: -75.0 - z: 32.0 - color: '#7c1388' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_SomMot_1: - name: 7Networks_RH_SomMot_1 - lookupLabel: 116 - originalLookupLabel: 116 - center: - x: 51.0 - y: -15.0 - z: 5.0 - color: '#4a81b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_2: - name: 7Networks_RH_SomMot_2 - lookupLabel: 117 - originalLookupLabel: 117 - center: - x: 64.0 - y: -23.0 - z: 8.0 - color: '#4a82ae' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_3: - name: 7Networks_RH_SomMot_3 - lookupLabel: 118 - originalLookupLabel: 118 - center: - x: 38.0 - y: -13.0 - z: 15.0 - color: '#4a82af' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_4: - name: 7Networks_RH_SomMot_4 - lookupLabel: 119 - originalLookupLabel: 119 - center: - x: 44.0 - y: -27.0 - z: 18.0 - color: '#4a82b0' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_5: - name: 7Networks_RH_SomMot_5 - lookupLabel: 120 - originalLookupLabel: 120 - center: - x: 59.0 - y: 0.0 - z: 10.0 - color: '#4a82b1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_6: - name: 7Networks_RH_SomMot_6 - lookupLabel: 121 - originalLookupLabel: 121 - center: - x: 56.0 - y: -11.0 - z: 14.0 - color: '#4a82b2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_7: - name: 7Networks_RH_SomMot_7 - lookupLabel: 122 - originalLookupLabel: 122 - center: - x: 58.0 - y: -5.0 - z: 31.0 - color: '#4a82b3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_8: - name: 7Networks_RH_SomMot_8 - lookupLabel: 123 - originalLookupLabel: 123 - center: - x: 10.0 - y: -15.0 - z: 41.0 - color: '#4a82b4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_9: - name: 7Networks_RH_SomMot_9 - lookupLabel: 124 - originalLookupLabel: 124 - center: - x: 51.0 - y: -22.0 - z: 52.0 - color: '#4a82b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_10: - name: 7Networks_RH_SomMot_10 - lookupLabel: 125 - originalLookupLabel: 125 - center: - x: 47.0 - y: -11.0 - z: 48.0 - color: '#4a82b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_11: - name: 7Networks_RH_SomMot_11 - lookupLabel: 126 - originalLookupLabel: 126 - center: - x: 7.0 - y: -11.0 - z: 51.0 - color: '#4a82b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_12: - name: 7Networks_RH_SomMot_12 - lookupLabel: 127 - originalLookupLabel: 127 - center: - x: 40.0 - y: -24.0 - z: 57.0 - color: '#4a82b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_13: - name: 7Networks_RH_SomMot_13 - lookupLabel: 128 - originalLookupLabel: 128 - center: - x: 32.0 - y: -40.0 - z: 64.0 - color: '#4a82ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_14: - name: 7Networks_RH_SomMot_14 - lookupLabel: 129 - originalLookupLabel: 129 - center: - x: 33.0 - y: -21.0 - z: 65.0 - color: '#4a82bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_15: - name: 7Networks_RH_SomMot_15 - lookupLabel: 130 - originalLookupLabel: 130 - center: - x: 29.0 - y: -34.0 - z: 65.0 - color: '#4a82bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_16: - name: 7Networks_RH_SomMot_16 - lookupLabel: 131 - originalLookupLabel: 131 - center: - x: 22.0 - y: -9.0 - z: 67.0 - color: '#4a83b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_17: - name: 7Networks_RH_SomMot_17 - lookupLabel: 132 - originalLookupLabel: 132 - center: - x: 10.0 - y: -39.0 - z: 69.0 - color: '#4a83b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_18: - name: 7Networks_RH_SomMot_18 - lookupLabel: 133 - originalLookupLabel: 133 - center: - x: 6.0 - y: -23.0 - z: 69.0 - color: '#4a83b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_19: - name: 7Networks_RH_SomMot_19 - lookupLabel: 134 - originalLookupLabel: 134 - center: - x: 20.0 - y: -29.0 - z: 70.0 - color: '#4a83b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_DorsAttn_Post_1: - name: 7Networks_RH_DorsAttn_Post_1 - lookupLabel: 135 - originalLookupLabel: 135 - center: - x: 50.0 - y: -53.0 - z: -15.0 - color: '#04770c' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_2: - name: 7Networks_RH_DorsAttn_Post_2 - lookupLabel: 136 - originalLookupLabel: 136 - center: - x: 52.0 - y: -60.0 - z: 9.0 - color: '#04770d' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_3: - name: 7Networks_RH_DorsAttn_Post_3 - lookupLabel: 137 - originalLookupLabel: 137 - center: - x: 59.0 - y: -16.0 - z: 34.0 - color: '#04770e' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_4: - name: 7Networks_RH_DorsAttn_Post_4 - lookupLabel: 138 - originalLookupLabel: 138 - center: - x: 46.0 - y: -38.0 - z: 49.0 - color: '#047710' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_5: - name: 7Networks_RH_DorsAttn_Post_5 - lookupLabel: 139 - originalLookupLabel: 139 - center: - x: 41.0 - y: -31.0 - z: 46.0 - color: '#047711' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_6: - name: 7Networks_RH_DorsAttn_Post_6 - lookupLabel: 140 - originalLookupLabel: 140 - center: - x: 15.0 - y: -73.0 - z: 53.0 - color: '#047712' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_7: - name: 7Networks_RH_DorsAttn_Post_7 - lookupLabel: 141 - originalLookupLabel: 141 - center: - x: 34.0 - y: -48.0 - z: 51.0 - color: '#047713' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_8: - name: 7Networks_RH_DorsAttn_Post_8 - lookupLabel: 142 - originalLookupLabel: 142 - center: - x: 26.0 - y: -61.0 - z: 58.0 - color: '#047714' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_9: - name: 7Networks_RH_DorsAttn_Post_9 - lookupLabel: 143 - originalLookupLabel: 143 - center: - x: 8.0 - y: -56.0 - z: 61.0 - color: '#047715' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_10: - name: 7Networks_RH_DorsAttn_Post_10 - lookupLabel: 144 - originalLookupLabel: 144 - center: - x: 21.0 - y: -48.0 - z: 70.0 - color: '#047716' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_1: - name: 7Networks_RH_DorsAttn_FEF_1 - lookupLabel: 145 - originalLookupLabel: 145 - center: - x: 34.0 - y: -4.0 - z: 52.0 - color: '#05760f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_2: - name: 7Networks_RH_DorsAttn_FEF_2 - lookupLabel: 146 - originalLookupLabel: 146 - center: - x: 26.0 - y: 7.0 - z: 58.0 - color: '#057610' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_PrCv_1: - name: 7Networks_RH_DorsAttn_PrCv_1 - lookupLabel: 147 - originalLookupLabel: 147 - center: - x: 52.0 - y: 11.0 - z: 21.0 - color: '#057611' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_SalVentAttn_TempOccPar_1: - name: 7Networks_RH_SalVentAttn_TempOccPar_1 - lookupLabel: 148 - originalLookupLabel: 148 - center: - x: 57.0 - y: -45.0 - z: 9.0 - color: '#c93afc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_2: - name: 7Networks_RH_SalVentAttn_TempOccPar_2 - lookupLabel: 149 - originalLookupLabel: 149 - center: - x: 60.0 - y: -39.0 - z: 17.0 - color: '#c93afd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_3: - name: 7Networks_RH_SalVentAttn_TempOccPar_3 - lookupLabel: 150 - originalLookupLabel: 150 - center: - x: 60.0 - y: -26.0 - z: 27.0 - color: '#c93afe' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_PrC_1: - name: 7Networks_RH_SalVentAttn_PrC_1 - lookupLabel: 151 - originalLookupLabel: 151 - center: - x: 51.0 - y: 4.0 - z: 40.0 - color: '#c93bfb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_1: - name: 7Networks_RH_SalVentAttn_FrOperIns_1 - lookupLabel: 152 - originalLookupLabel: 152 - center: - x: 41.0 - y: 6.0 - z: -15.0 - color: '#c93bfc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_2: - name: 7Networks_RH_SalVentAttn_FrOperIns_2 - lookupLabel: 153 - originalLookupLabel: 153 - center: - x: 46.0 - y: -4.0 - z: -4.0 - color: '#c93bfd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_3: - name: 7Networks_RH_SalVentAttn_FrOperIns_3 - lookupLabel: 154 - originalLookupLabel: 154 - center: - x: 36.0 - y: 24.0 - z: 5.0 - color: '#c93bfe' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_4: - name: 7Networks_RH_SalVentAttn_FrOperIns_4 - lookupLabel: 155 - originalLookupLabel: 155 - center: - x: 43.0 - y: 7.0 - z: 4.0 - color: '#c93bff' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_1: - name: 7Networks_RH_SalVentAttn_Med_1 - lookupLabel: 156 - originalLookupLabel: 156 - center: - x: 7.0 - y: 9.0 - z: 41.0 - color: '#c839fa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_2: - name: 7Networks_RH_SalVentAttn_Med_2 - lookupLabel: 157 - originalLookupLabel: 157 - center: - x: 11.0 - y: -36.0 - z: 47.0 - color: '#c839fb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_3: - name: 7Networks_RH_SalVentAttn_Med_3 - lookupLabel: 158 - originalLookupLabel: 158 - center: - x: 8.0 - y: 3.0 - z: 66.0 - color: '#c839fc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_Limbic_OFC_1: - name: 7Networks_RH_Limbic_OFC_1 - lookupLabel: 159 - originalLookupLabel: 159 - center: - x: 12.0 - y: 39.0 - z: -22.0 - color: '#e0f9a5' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_2: - name: 7Networks_RH_Limbic_OFC_2 - lookupLabel: 160 - originalLookupLabel: 160 - center: - x: 28.0 - y: 22.0 - z: -19.0 - color: '#e0f9a6' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_3: - name: 7Networks_RH_Limbic_OFC_3 - lookupLabel: 161 - originalLookupLabel: 161 - center: - x: 15.0 - y: 64.0 - z: -8.0 - color: '#e0f9a7' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_1: - name: 7Networks_RH_Limbic_TempPole_1 - lookupLabel: 162 - originalLookupLabel: 162 - center: - x: 30.0 - y: 9.0 - z: -38.0 - color: '#e0f9a8' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_2: - name: 7Networks_RH_Limbic_TempPole_2 - lookupLabel: 163 - originalLookupLabel: 163 - center: - x: 47.0 - y: -12.0 - z: -35.0 - color: '#e0f9a9' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_3: - name: 7Networks_RH_Limbic_TempPole_3 - lookupLabel: 164 - originalLookupLabel: 164 - center: - x: 25.0 - y: -11.0 - z: -32.0 - color: '#e0f9aa' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Cont_Par_1: - name: 7Networks_RH_Cont_Par_1 - lookupLabel: 165 - originalLookupLabel: 165 - center: - x: 62.0 - y: -37.0 - z: 37.0 - color: '#ea9323' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_2: - name: 7Networks_RH_Cont_Par_2 - lookupLabel: 166 - originalLookupLabel: 166 - center: - x: 53.0 - y: -42.0 - z: 48.0 - color: '#ea9324' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_3: - name: 7Networks_RH_Cont_Par_3 - lookupLabel: 167 - originalLookupLabel: 167 - center: - x: 37.0 - y: -63.0 - z: 47.0 - color: '#ea9325' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Temp_1: - name: 7Networks_RH_Cont_Temp_1 - lookupLabel: 168 - originalLookupLabel: 168 - center: - x: 63.0 - y: -41.0 - z: -12.0 - color: '#ea9322' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCv_1: - name: 7Networks_RH_Cont_PFCv_1 - lookupLabel: 169 - originalLookupLabel: 169 - center: - x: 34.0 - y: 21.0 - z: -8.0 - color: '#e99423' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_1: - name: 7Networks_RH_Cont_PFCl_1 - lookupLabel: 170 - originalLookupLabel: 170 - center: - x: 36.0 - y: 46.0 - z: -13.0 - color: '#e9941f' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_2: - name: 7Networks_RH_Cont_PFCl_2 - lookupLabel: 171 - originalLookupLabel: 171 - center: - x: 29.0 - y: 58.0 - z: 5.0 - color: '#e99420' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_3: - name: 7Networks_RH_Cont_PFCl_3 - lookupLabel: 172 - originalLookupLabel: 172 - center: - x: 43.0 - y: 45.0 - z: 10.0 - color: '#e99422' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_4: - name: 7Networks_RH_Cont_PFCl_4 - lookupLabel: 173 - originalLookupLabel: 173 - center: - x: 46.0 - y: 24.0 - z: 26.0 - color: '#e99424' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_5: - name: 7Networks_RH_Cont_PFCl_5 - lookupLabel: 174 - originalLookupLabel: 174 - center: - x: 30.0 - y: 48.0 - z: 27.0 - color: '#e99425' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_6: - name: 7Networks_RH_Cont_PFCl_6 - lookupLabel: 175 - originalLookupLabel: 175 - center: - x: 41.0 - y: 33.0 - z: 37.0 - color: '#e99426' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_7: - name: 7Networks_RH_Cont_PFCl_7 - lookupLabel: 176 - originalLookupLabel: 176 - center: - x: 42.0 - y: 14.0 - z: 49.0 - color: '#e99427' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_pCun_1: - name: 7Networks_RH_Cont_pCun_1 - lookupLabel: 177 - originalLookupLabel: 177 - center: - x: 14.0 - y: -70.0 - z: 37.0 - color: '#e99323' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Cing_1: - name: 7Networks_RH_Cont_Cing_1 - lookupLabel: 178 - originalLookupLabel: 178 - center: - x: 5.0 - y: -24.0 - z: 31.0 - color: '#ea9425' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Cing_2: - name: 7Networks_RH_Cont_Cing_2 - lookupLabel: 179 - originalLookupLabel: 179 - center: - x: 5.0 - y: 3.0 - z: 30.0 - color: '#ea9426' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCmp_1: - name: 7Networks_RH_Cont_PFCmp_1 - lookupLabel: 180 - originalLookupLabel: 180 - center: - x: 7.0 - y: 31.0 - z: 28.0 - color: '#ea9427' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCmp_2: - name: 7Networks_RH_Cont_PFCmp_2 - lookupLabel: 181 - originalLookupLabel: 181 - center: - x: 7.0 - y: 25.0 - z: 55.0 - color: '#ea9428' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Default_Par_1: - name: 7Networks_RH_Default_Par_1 - lookupLabel: 182 - originalLookupLabel: 182 - center: - x: 47.0 - y: -69.0 - z: 27.0 - color: '#d13e4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_2: - name: 7Networks_RH_Default_Par_2 - lookupLabel: 183 - originalLookupLabel: 183 - center: - x: 54.0 - y: -50.0 - z: 28.0 - color: '#d13e4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_3: - name: 7Networks_RH_Default_Par_3 - lookupLabel: 184 - originalLookupLabel: 184 - center: - x: 51.0 - y: -59.0 - z: 44.0 - color: '#d13e50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_1: - name: 7Networks_RH_Default_Temp_1 - lookupLabel: 185 - originalLookupLabel: 185 - center: - x: 47.0 - y: 13.0 - z: -30.0 - color: '#d13d4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_2: - name: 7Networks_RH_Default_Temp_2 - lookupLabel: 186 - originalLookupLabel: 186 - center: - x: 61.0 - y: -13.0 - z: -21.0 - color: '#d13d4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_3: - name: 7Networks_RH_Default_Temp_3 - lookupLabel: 187 - originalLookupLabel: 187 - center: - x: 55.0 - y: -6.0 - z: -10.0 - color: '#d13d50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_4: - name: 7Networks_RH_Default_Temp_4 - lookupLabel: 188 - originalLookupLabel: 188 - center: - x: 63.0 - y: -27.0 - z: -6.0 - color: '#d13d51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_5: - name: 7Networks_RH_Default_Temp_5 - lookupLabel: 189 - originalLookupLabel: 189 - center: - x: 52.0 - y: -31.0 - z: 2.0 - color: '#d13d52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_1: - name: 7Networks_RH_Default_PFCv_1 - lookupLabel: 190 - originalLookupLabel: 190 - center: - x: 51.0 - y: 28.0 - z: 0.0 - color: '#d13d4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_1: - name: 7Networks_RH_Default_PFCdPFCm_1 - lookupLabel: 191 - originalLookupLabel: 191 - center: - x: 5.0 - y: 37.0 - z: -14.0 - color: '#d03e4c' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_2: - name: 7Networks_RH_Default_PFCdPFCm_2 - lookupLabel: 192 - originalLookupLabel: 192 - center: - x: 8.0 - y: 42.0 - z: 4.0 - color: '#d03e4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_3: - name: 7Networks_RH_Default_PFCdPFCm_3 - lookupLabel: 193 - originalLookupLabel: 193 - center: - x: 6.0 - y: 29.0 - z: 15.0 - color: '#d03e4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_4: - name: 7Networks_RH_Default_PFCdPFCm_4 - lookupLabel: 194 - originalLookupLabel: 194 - center: - x: 8.0 - y: 58.0 - z: 18.0 - color: '#d03e50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_5: - name: 7Networks_RH_Default_PFCdPFCm_5 - lookupLabel: 195 - originalLookupLabel: 195 - center: - x: 15.0 - y: 46.0 - z: 44.0 - color: '#d03e51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_6: - name: 7Networks_RH_Default_PFCdPFCm_6 - lookupLabel: 196 - originalLookupLabel: 196 - center: - x: 29.0 - y: 30.0 - z: 42.0 - color: '#d03e52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_7: - name: 7Networks_RH_Default_PFCdPFCm_7 - lookupLabel: 197 - originalLookupLabel: 197 - center: - x: 23.0 - y: 24.0 - z: 53.0 - color: '#d03e53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_1: - name: 7Networks_RH_Default_pCunPCC_1 - lookupLabel: 198 - originalLookupLabel: 198 - center: - x: 12.0 - y: -55.0 - z: 15.0 - color: '#d03e4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_2: - name: 7Networks_RH_Default_pCunPCC_2 - lookupLabel: 199 - originalLookupLabel: 199 - center: - x: 7.0 - y: -49.0 - z: 31.0 - color: '#d03e54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_3: - name: 7Networks_RH_Default_pCunPCC_3 - lookupLabel: 200 - originalLookupLabel: 200 - center: - x: 6.0 - y: -58.0 - z: 44.0 - color: '#d03f4d' - hemisphere: right - hasParent: - - RH_Default - versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_200Parcels_7Networks_order_FSLMNI152_1mm.nii.gz diff --git a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-200_res-1_desc-ordered_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-200_res-1_desc-ordered_dseg.yaml similarity index 99% rename from tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-200_res-1_desc-ordered_dseg.yaml rename to tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-200_res-1_desc-ordered_dseg.yaml index 79185ea4e..137d82a1b 100644 --- a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-200_res-1_desc-ordered_dseg.yaml +++ b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-200_res-1_desc-ordered_dseg.yaml @@ -1,14 +1,12 @@ name: Schaefer2018 abbreviation: Schaefer2018 versionIdentifier: '2018' -coordinateSpace: - name: MNI152 - abbreviation: FSLMNI152 - nativeUnit: mm +coordinateSpace: FSLMNI152 terminology: label: Schaefer2018_200Parcels_7Networks_order versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_200Parcels_7Networks_order_FSLMNI152_1mm.nii.gz + dataLocation: + schaefer2018_original_mni/Schaefer2018_200Parcels_7Networks_order_FSLMNI152_1mm.nii.gz entities: 7Networks_LH_Vis_1: name: 7Networks_LH_Vis_1 diff --git a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-300_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-300_dseg.yaml deleted file mode 100644 index 695f48b63..000000000 --- a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-300_dseg.yaml +++ /dev/null @@ -1,3721 +0,0 @@ -name: Schaefer2018 -abbreviation: Schaefer2018 -versionIdentifier: '2018' -coordinateSpace: MNI152NLin6Asym -terminology: - label: Schaefer2018_300Parcels_7Networks_order - entities: - LH_Vis: - name: LH_Vis - lookupLabel: -1 - hemisphere: left - center: - x: -21.4 - y: -73.0 - z: 2.9 - LH_SomMot: - name: LH_SomMot - lookupLabel: -2 - hemisphere: left - center: - x: -35.4 - y: -22.4 - z: 43.4 - LH_DorsAttn: - name: LH_DorsAttn - lookupLabel: -3 - hemisphere: left - center: - x: -35.7 - y: -41.9 - z: 37.8 - LH_SalVentAttn: - name: LH_SalVentAttn - lookupLabel: -4 - hemisphere: left - center: - x: -36.6 - y: -8.5 - z: 24.1 - LH_Limbic: - name: LH_Limbic - lookupLabel: -5 - hemisphere: left - center: - x: -29.6 - y: 6.3 - z: -27.8 - LH_Cont: - name: LH_Cont - lookupLabel: -6 - hemisphere: left - center: - x: -31.1 - y: -8.4 - z: 27.9 - LH_Default: - name: LH_Default - lookupLabel: -7 - hemisphere: left - center: - x: -29.2 - y: -6.1 - z: 18.4 - RH_Vis: - name: RH_Vis - lookupLabel: -8 - hemisphere: right - center: - x: 23.6 - y: -71.2 - z: 3.2 - RH_SomMot: - name: RH_SomMot - lookupLabel: -9 - hemisphere: right - center: - x: 37.9 - y: -21.2 - z: 42.9 - RH_DorsAttn: - name: RH_DorsAttn - lookupLabel: -10 - hemisphere: right - center: - x: 36.2 - y: -39.6 - z: 42.4 - RH_SalVentAttn: - name: RH_SalVentAttn - lookupLabel: -11 - hemisphere: right - center: - x: 37.1 - y: -10.3 - z: 27.2 - RH_Limbic: - name: RH_Limbic - lookupLabel: -12 - hemisphere: right - center: - x: 28.3 - y: 10.3 - z: -27.3 - RH_Cont: - name: RH_Cont - lookupLabel: -13 - hemisphere: right - center: - x: 31.5 - y: 8.9 - z: 24.7 - RH_Default: - name: RH_Default - lookupLabel: -14 - hemisphere: right - center: - x: 29.6 - y: -4.8 - z: 15.5 - 7Networks_LH_Vis_1: - name: 7Networks_LH_Vis_1 - lookupLabel: 1 - originalLookupLabel: 1 - center: - x: -34.0 - y: -41.0 - z: -21.0 - color: '#781184' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_2: - name: 7Networks_LH_Vis_2 - lookupLabel: 2 - originalLookupLabel: 2 - center: - x: -29.0 - y: -34.0 - z: -17.0 - color: '#781185' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_3: - name: 7Networks_LH_Vis_3 - lookupLabel: 3 - originalLookupLabel: 3 - center: - x: -35.0 - y: -65.0 - z: -16.0 - color: '#781186' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_4: - name: 7Networks_LH_Vis_4 - lookupLabel: 4 - originalLookupLabel: 4 - center: - x: -24.0 - y: -54.0 - z: -8.0 - color: '#78127f' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_5: - name: 7Networks_LH_Vis_5 - lookupLabel: 5 - originalLookupLabel: 5 - center: - x: -22.0 - y: -73.0 - z: -9.0 - color: '#781280' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_6: - name: 7Networks_LH_Vis_6 - lookupLabel: 6 - originalLookupLabel: 6 - center: - x: -21.0 - y: -85.0 - z: -15.0 - color: '#781281' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_7: - name: 7Networks_LH_Vis_7 - lookupLabel: 7 - originalLookupLabel: 7 - center: - x: -16.0 - y: -38.0 - z: -11.0 - color: '#781282' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_8: - name: 7Networks_LH_Vis_8 - lookupLabel: 8 - originalLookupLabel: 8 - center: - x: -42.0 - y: -84.0 - z: -10.0 - color: '#781283' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_9: - name: 7Networks_LH_Vis_9 - lookupLabel: 9 - originalLookupLabel: 9 - center: - x: -12.0 - y: -62.0 - z: -5.0 - color: '#781284' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_10: - name: 7Networks_LH_Vis_10 - lookupLabel: 10 - originalLookupLabel: 10 - center: - x: -7.0 - y: -76.0 - z: -6.0 - color: '#781285' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_11: - name: 7Networks_LH_Vis_11 - lookupLabel: 11 - originalLookupLabel: 11 - center: - x: -23.0 - y: -97.0 - z: -12.0 - color: '#781287' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_12: - name: 7Networks_LH_Vis_12 - lookupLabel: 12 - originalLookupLabel: 12 - center: - x: -14.0 - y: -52.0 - z: -1.0 - color: '#781288' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_13: - name: 7Networks_LH_Vis_13 - lookupLabel: 13 - originalLookupLabel: 13 - center: - x: -46.0 - y: -74.0 - z: 6.0 - color: '#781289' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_14: - name: 7Networks_LH_Vis_14 - lookupLabel: 14 - originalLookupLabel: 14 - center: - x: -6.0 - y: -94.0 - z: -4.0 - color: '#78128a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_15: - name: 7Networks_LH_Vis_15 - lookupLabel: 15 - originalLookupLabel: 15 - center: - x: -26.0 - y: -95.0 - z: 5.0 - color: '#78128b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_16: - name: 7Networks_LH_Vis_16 - lookupLabel: 16 - originalLookupLabel: 16 - center: - x: -6.0 - y: -77.0 - z: 8.0 - color: '#78128c' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_17: - name: 7Networks_LH_Vis_17 - lookupLabel: 17 - originalLookupLabel: 17 - center: - x: -18.0 - y: -65.0 - z: 7.0 - color: '#78128d' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_18: - name: 7Networks_LH_Vis_18 - lookupLabel: 18 - originalLookupLabel: 18 - center: - x: -40.0 - y: -84.0 - z: 14.0 - color: '#781386' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_19: - name: 7Networks_LH_Vis_19 - lookupLabel: 19 - originalLookupLabel: 19 - center: - x: -13.0 - y: -95.0 - z: 19.0 - color: '#781387' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_20: - name: 7Networks_LH_Vis_20 - lookupLabel: 20 - originalLookupLabel: 20 - center: - x: -3.0 - y: -86.0 - z: 23.0 - color: '#781388' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_21: - name: 7Networks_LH_Vis_21 - lookupLabel: 21 - originalLookupLabel: 21 - center: - x: -11.0 - y: -73.0 - z: 23.0 - color: '#781389' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_22: - name: 7Networks_LH_Vis_22 - lookupLabel: 22 - originalLookupLabel: 22 - center: - x: -28.0 - y: -83.0 - z: 23.0 - color: '#78138a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_23: - name: 7Networks_LH_Vis_23 - lookupLabel: 23 - originalLookupLabel: 23 - center: - x: -14.0 - y: -86.0 - z: 37.0 - color: '#78138b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_24: - name: 7Networks_LH_Vis_24 - lookupLabel: 24 - originalLookupLabel: 24 - center: - x: -23.0 - y: -79.0 - z: 40.0 - color: '#78138c' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_SomMot_1: - name: 7Networks_LH_SomMot_1 - lookupLabel: 25 - originalLookupLabel: 25 - center: - x: -49.0 - y: -11.0 - z: 1.0 - color: '#4681af' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_2: - name: 7Networks_LH_SomMot_2 - lookupLabel: 26 - originalLookupLabel: 26 - center: - x: -54.0 - y: -23.0 - z: 8.0 - color: '#4681b0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_3: - name: 7Networks_LH_SomMot_3 - lookupLabel: 27 - originalLookupLabel: 27 - center: - x: -38.0 - y: -13.0 - z: 15.0 - color: '#4681b1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_4: - name: 7Networks_LH_SomMot_4 - lookupLabel: 28 - originalLookupLabel: 28 - center: - x: -35.0 - y: -26.0 - z: 16.0 - color: '#4681b2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_5: - name: 7Networks_LH_SomMot_5 - lookupLabel: 29 - originalLookupLabel: 29 - center: - x: -51.0 - y: -13.0 - z: 14.0 - color: '#4681b3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_6: - name: 7Networks_LH_SomMot_6 - lookupLabel: 30 - originalLookupLabel: 30 - center: - x: -56.0 - y: -38.0 - z: 17.0 - color: '#4681b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_7: - name: 7Networks_LH_SomMot_7 - lookupLabel: 31 - originalLookupLabel: 31 - center: - x: -44.0 - y: -30.0 - z: 18.0 - color: '#4682ad' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_8: - name: 7Networks_LH_SomMot_8 - lookupLabel: 32 - originalLookupLabel: 32 - center: - x: -61.0 - y: -4.0 - z: 13.0 - color: '#4682ae' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_9: - name: 7Networks_LH_SomMot_9 - lookupLabel: 33 - originalLookupLabel: 33 - center: - x: -59.0 - y: -19.0 - z: 20.0 - color: '#4682af' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_10: - name: 7Networks_LH_SomMot_10 - lookupLabel: 34 - originalLookupLabel: 34 - center: - x: -58.0 - y: -7.0 - z: 29.0 - color: '#4682b0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_11: - name: 7Networks_LH_SomMot_11 - lookupLabel: 35 - originalLookupLabel: 35 - center: - x: -59.0 - y: -21.0 - z: 35.0 - color: '#4682b1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_12: - name: 7Networks_LH_SomMot_12 - lookupLabel: 36 - originalLookupLabel: 36 - center: - x: -51.0 - y: -8.0 - z: 42.0 - color: '#4682b2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_13: - name: 7Networks_LH_SomMot_13 - lookupLabel: 37 - originalLookupLabel: 37 - center: - x: -50.0 - y: -17.0 - z: 44.0 - color: '#4682b3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_14: - name: 7Networks_LH_SomMot_14 - lookupLabel: 38 - originalLookupLabel: 38 - center: - x: -8.0 - y: -11.0 - z: 45.0 - color: '#4682b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_15: - name: 7Networks_LH_SomMot_15 - lookupLabel: 39 - originalLookupLabel: 39 - center: - x: -42.0 - y: -13.0 - z: 49.0 - color: '#4682b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_16: - name: 7Networks_LH_SomMot_16 - lookupLabel: 40 - originalLookupLabel: 40 - center: - x: -49.0 - y: -28.0 - z: 57.0 - color: '#4682b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_17: - name: 7Networks_LH_SomMot_17 - lookupLabel: 41 - originalLookupLabel: 41 - center: - x: -43.0 - y: -21.0 - z: 54.0 - color: '#4682b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_18: - name: 7Networks_LH_SomMot_18 - lookupLabel: 42 - originalLookupLabel: 42 - center: - x: -5.0 - y: -24.0 - z: 52.0 - color: '#4682b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_19: - name: 7Networks_LH_SomMot_19 - lookupLabel: 43 - originalLookupLabel: 43 - center: - x: -36.0 - y: -20.0 - z: 64.0 - color: '#4682ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_20: - name: 7Networks_LH_SomMot_20 - lookupLabel: 44 - originalLookupLabel: 44 - center: - x: -4.0 - y: -7.0 - z: 60.0 - color: '#4682bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_21: - name: 7Networks_LH_SomMot_21 - lookupLabel: 45 - originalLookupLabel: 45 - center: - x: -31.0 - y: -47.0 - z: 63.0 - color: '#4683b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_22: - name: 7Networks_LH_SomMot_22 - lookupLabel: 46 - originalLookupLabel: 46 - center: - x: -31.0 - y: -29.0 - z: 62.0 - color: '#4683b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_23: - name: 7Networks_LH_SomMot_23 - lookupLabel: 47 - originalLookupLabel: 47 - center: - x: -27.0 - y: -38.0 - z: 68.0 - color: '#4683b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_24: - name: 7Networks_LH_SomMot_24 - lookupLabel: 48 - originalLookupLabel: 48 - center: - x: -21.0 - y: -12.0 - z: 68.0 - color: '#4683b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_25: - name: 7Networks_LH_SomMot_25 - lookupLabel: 49 - originalLookupLabel: 49 - center: - x: -8.0 - y: -42.0 - z: 67.0 - color: '#4683b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_26: - name: 7Networks_LH_SomMot_26 - lookupLabel: 50 - originalLookupLabel: 50 - center: - x: -4.0 - y: -25.0 - z: 67.0 - color: '#4683b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_27: - name: 7Networks_LH_SomMot_27 - lookupLabel: 51 - originalLookupLabel: 51 - center: - x: -17.0 - y: -48.0 - z: 71.0 - color: '#4683ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_28: - name: 7Networks_LH_SomMot_28 - lookupLabel: 52 - originalLookupLabel: 52 - center: - x: -19.0 - y: -31.0 - z: 69.0 - color: '#4683bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_29: - name: 7Networks_LH_SomMot_29 - lookupLabel: 53 - originalLookupLabel: 53 - center: - x: -17.0 - y: -25.0 - z: 70.0 - color: '#4684b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_DorsAttn_Post_1: - name: 7Networks_LH_DorsAttn_Post_1 - lookupLabel: 54 - originalLookupLabel: 54 - center: - x: -48.0 - y: -50.0 - z: -19.0 - color: '#00760a' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_2: - name: 7Networks_LH_DorsAttn_Post_2 - lookupLabel: 55 - originalLookupLabel: 55 - center: - x: -45.0 - y: -68.0 - z: -8.0 - color: '#00760b' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_3: - name: 7Networks_LH_DorsAttn_Post_3 - lookupLabel: 56 - originalLookupLabel: 56 - center: - x: -55.0 - y: -63.0 - z: 2.0 - color: '#00760c' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_4: - name: 7Networks_LH_DorsAttn_Post_4 - lookupLabel: 57 - originalLookupLabel: 57 - center: - x: -48.0 - y: -66.0 - z: 15.0 - color: '#00760d' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_5: - name: 7Networks_LH_DorsAttn_Post_5 - lookupLabel: 58 - originalLookupLabel: 58 - center: - x: -26.0 - y: -68.0 - z: 39.0 - color: '#00760f' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_6: - name: 7Networks_LH_DorsAttn_Post_6 - lookupLabel: 59 - originalLookupLabel: 59 - center: - x: -55.0 - y: -31.0 - z: 44.0 - color: '#007610' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_7: - name: 7Networks_LH_DorsAttn_Post_7 - lookupLabel: 60 - originalLookupLabel: 60 - center: - x: -30.0 - y: -58.0 - z: 48.0 - color: '#007611' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_8: - name: 7Networks_LH_DorsAttn_Post_8 - lookupLabel: 61 - originalLookupLabel: 61 - center: - x: -42.0 - y: -34.0 - z: 47.0 - color: '#007612' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_9: - name: 7Networks_LH_DorsAttn_Post_9 - lookupLabel: 62 - originalLookupLabel: 62 - center: - x: -33.0 - y: -48.0 - z: 47.0 - color: '#007613' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_10: - name: 7Networks_LH_DorsAttn_Post_10 - lookupLabel: 63 - originalLookupLabel: 63 - center: - x: -17.0 - y: -72.0 - z: 54.0 - color: '#007614' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_11: - name: 7Networks_LH_DorsAttn_Post_11 - lookupLabel: 64 - originalLookupLabel: 64 - center: - x: -29.0 - y: -60.0 - z: 61.0 - color: '#007615' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_12: - name: 7Networks_LH_DorsAttn_Post_12 - lookupLabel: 65 - originalLookupLabel: 65 - center: - x: -13.0 - y: -59.0 - z: 64.0 - color: '#00770e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_1: - name: 7Networks_LH_DorsAttn_FEF_1 - lookupLabel: 66 - originalLookupLabel: 66 - center: - x: -27.0 - y: 5.0 - z: 56.0 - color: '#007616' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_2: - name: 7Networks_LH_DorsAttn_FEF_2 - lookupLabel: 67 - originalLookupLabel: 67 - center: - x: -32.0 - y: -5.0 - z: 52.0 - color: '#00770f' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_3: - name: 7Networks_LH_DorsAttn_FEF_3 - lookupLabel: 68 - originalLookupLabel: 68 - center: - x: -22.0 - y: 5.0 - z: 64.0 - color: '#007710' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_PrCv_1: - name: 7Networks_LH_DorsAttn_PrCv_1 - lookupLabel: 69 - originalLookupLabel: 69 - center: - x: -49.0 - y: 2.0 - z: 38.0 - color: '#007711' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_SalVentAttn_ParOper_1: - name: 7Networks_LH_SalVentAttn_ParOper_1 - lookupLabel: 70 - originalLookupLabel: 70 - center: - x: -58.0 - y: -44.0 - z: 27.0 - color: '#c43afb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_2: - name: 7Networks_LH_SalVentAttn_ParOper_2 - lookupLabel: 71 - originalLookupLabel: 71 - center: - x: -60.0 - y: -30.0 - z: 24.0 - color: '#c43afc' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_3: - name: 7Networks_LH_SalVentAttn_ParOper_3 - lookupLabel: 72 - originalLookupLabel: 72 - center: - x: -61.0 - y: -38.0 - z: 39.0 - color: '#c43afd' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_TempOcc_1: - name: 7Networks_LH_SalVentAttn_TempOcc_1 - lookupLabel: 73 - originalLookupLabel: 73 - center: - x: -54.0 - y: -53.0 - z: 13.0 - color: '#c43afe' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_1: - name: 7Networks_LH_SalVentAttn_FrOperIns_1 - lookupLabel: 74 - originalLookupLabel: 74 - center: - x: -39.0 - y: -3.0 - z: -4.0 - color: '#c43bf8' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_2: - name: 7Networks_LH_SalVentAttn_FrOperIns_2 - lookupLabel: 75 - originalLookupLabel: 75 - center: - x: -33.0 - y: 24.0 - z: -1.0 - color: '#c43bf9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_3: - name: 7Networks_LH_SalVentAttn_FrOperIns_3 - lookupLabel: 76 - originalLookupLabel: 76 - center: - x: -33.0 - y: 19.0 - z: 8.0 - color: '#c43bfb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_4: - name: 7Networks_LH_SalVentAttn_FrOperIns_4 - lookupLabel: 77 - originalLookupLabel: 77 - center: - x: -38.0 - y: 1.0 - z: 11.0 - color: '#c43bfc' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_5: - name: 7Networks_LH_SalVentAttn_FrOperIns_5 - lookupLabel: 78 - originalLookupLabel: 78 - center: - x: -44.0 - y: 11.0 - z: 2.0 - color: '#c43bfd' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_6: - name: 7Networks_LH_SalVentAttn_FrOperIns_6 - lookupLabel: 79 - originalLookupLabel: 79 - center: - x: -52.0 - y: 1.0 - z: 6.0 - color: '#c43bfe' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_7: - name: 7Networks_LH_SalVentAttn_FrOperIns_7 - lookupLabel: 80 - originalLookupLabel: 80 - center: - x: -51.0 - y: 7.0 - z: 20.0 - color: '#c43bff' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_PFCl_1: - name: 7Networks_LH_SalVentAttn_PFCl_1 - lookupLabel: 81 - originalLookupLabel: 81 - center: - x: -27.0 - y: 46.0 - z: 29.0 - color: '#c134f9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_1: - name: 7Networks_LH_SalVentAttn_Med_1 - lookupLabel: 82 - originalLookupLabel: 82 - center: - x: -6.0 - y: 9.0 - z: 41.0 - color: '#c53afb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_2: - name: 7Networks_LH_SalVentAttn_Med_2 - lookupLabel: 83 - originalLookupLabel: 83 - center: - x: -12.0 - y: -33.0 - z: 44.0 - color: '#c53afc' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_3: - name: 7Networks_LH_SalVentAttn_Med_3 - lookupLabel: 84 - originalLookupLabel: 84 - center: - x: -6.0 - y: -50.0 - z: 56.0 - color: '#c53afd' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_4: - name: 7Networks_LH_SalVentAttn_Med_4 - lookupLabel: 85 - originalLookupLabel: 85 - center: - x: -11.0 - y: -3.0 - z: 71.0 - color: '#c53afe' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_Limbic_OFC_1: - name: 7Networks_LH_Limbic_OFC_1 - lookupLabel: 86 - originalLookupLabel: 86 - center: - x: -24.0 - y: 22.0 - z: -20.0 - color: '#dcf8a5' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_2: - name: 7Networks_LH_Limbic_OFC_2 - lookupLabel: 87 - originalLookupLabel: 87 - center: - x: -8.0 - y: 23.0 - z: -20.0 - color: '#dcf8a6' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_3: - name: 7Networks_LH_Limbic_OFC_3 - lookupLabel: 88 - originalLookupLabel: 88 - center: - x: -11.0 - y: 48.0 - z: -21.0 - color: '#dcf8a7' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_1: - name: 7Networks_LH_Limbic_TempPole_1 - lookupLabel: 89 - originalLookupLabel: 89 - center: - x: -29.0 - y: -4.0 - z: -40.0 - color: '#dcf8a3' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_2: - name: 7Networks_LH_Limbic_TempPole_2 - lookupLabel: 90 - originalLookupLabel: 90 - center: - x: -52.0 - y: -17.0 - z: -34.0 - color: '#dcf8a4' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_3: - name: 7Networks_LH_Limbic_TempPole_3 - lookupLabel: 91 - originalLookupLabel: 91 - center: - x: -39.0 - y: -20.0 - z: -28.0 - color: '#dcf8a8' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_4: - name: 7Networks_LH_Limbic_TempPole_4 - lookupLabel: 92 - originalLookupLabel: 92 - center: - x: -27.0 - y: 10.0 - z: -34.0 - color: '#dcf8a9' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_5: - name: 7Networks_LH_Limbic_TempPole_5 - lookupLabel: 93 - originalLookupLabel: 93 - center: - x: -43.0 - y: 12.0 - z: -35.0 - color: '#dcf8aa' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_6: - name: 7Networks_LH_Limbic_TempPole_6 - lookupLabel: 94 - originalLookupLabel: 94 - center: - x: -21.0 - y: -18.0 - z: -27.0 - color: '#dcf8ab' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_7: - name: 7Networks_LH_Limbic_TempPole_7 - lookupLabel: 95 - originalLookupLabel: 95 - center: - x: -42.0 - y: 7.0 - z: -19.0 - color: '#dcf8ac' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Cont_Par_1: - name: 7Networks_LH_Cont_Par_1 - lookupLabel: 96 - originalLookupLabel: 96 - center: - x: -54.0 - y: -50.0 - z: 45.0 - color: '#e69423' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_2: - name: 7Networks_LH_Cont_Par_2 - lookupLabel: 97 - originalLookupLabel: 97 - center: - x: -33.0 - y: -66.0 - z: 48.0 - color: '#e69424' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_3: - name: 7Networks_LH_Cont_Par_3 - lookupLabel: 98 - originalLookupLabel: 98 - center: - x: -42.0 - y: -52.0 - z: 48.0 - color: '#e69425' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_4: - name: 7Networks_LH_Cont_Par_4 - lookupLabel: 99 - originalLookupLabel: 99 - center: - x: -45.0 - y: -41.0 - z: 46.0 - color: '#e69426' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Temp_1: - name: 7Networks_LH_Cont_Temp_1 - lookupLabel: 100 - originalLookupLabel: 100 - center: - x: -60.0 - y: -52.0 - z: -9.0 - color: '#e69427' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_OFC_1: - name: 7Networks_LH_Cont_OFC_1 - lookupLabel: 101 - originalLookupLabel: 101 - center: - x: -32.0 - y: 41.0 - z: -13.0 - color: '#e69521' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_1: - name: 7Networks_LH_Cont_PFCl_1 - lookupLabel: 102 - originalLookupLabel: 102 - center: - x: -42.0 - y: 49.0 - z: -6.0 - color: '#e69522' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_2: - name: 7Networks_LH_Cont_PFCl_2 - lookupLabel: 103 - originalLookupLabel: 103 - center: - x: -29.0 - y: 57.0 - z: 7.0 - color: '#e69524' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_3: - name: 7Networks_LH_Cont_PFCl_3 - lookupLabel: 104 - originalLookupLabel: 104 - center: - x: -41.0 - y: 41.0 - z: 14.0 - color: '#e69525' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_4: - name: 7Networks_LH_Cont_PFCl_4 - lookupLabel: 105 - originalLookupLabel: 105 - center: - x: -45.0 - y: 21.0 - z: 25.0 - color: '#e69526' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_5: - name: 7Networks_LH_Cont_PFCl_5 - lookupLabel: 106 - originalLookupLabel: 106 - center: - x: -38.0 - y: 33.0 - z: 36.0 - color: '#e69527' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_6: - name: 7Networks_LH_Cont_PFCl_6 - lookupLabel: 107 - originalLookupLabel: 107 - center: - x: -42.0 - y: 12.0 - z: 34.0 - color: '#e69528' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_pCun_1: - name: 7Networks_LH_Cont_pCun_1 - lookupLabel: 108 - originalLookupLabel: 108 - center: - x: -9.0 - y: -76.0 - z: 44.0 - color: '#e79523' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_pCun_2: - name: 7Networks_LH_Cont_pCun_2 - lookupLabel: 109 - originalLookupLabel: 109 - center: - x: -5.0 - y: -65.0 - z: 52.0 - color: '#e79524' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_1: - name: 7Networks_LH_Cont_Cing_1 - lookupLabel: 110 - originalLookupLabel: 110 - center: - x: -5.0 - y: -28.0 - z: 28.0 - color: '#e79525' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_2: - name: 7Networks_LH_Cont_Cing_2 - lookupLabel: 111 - originalLookupLabel: 111 - center: - x: -3.0 - y: 6.0 - z: 29.0 - color: '#e79526' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCmp_1: - name: 7Networks_LH_Cont_PFCmp_1 - lookupLabel: 112 - originalLookupLabel: 112 - center: - x: -4.0 - y: 27.0 - z: 47.0 - color: '#e69422' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Default_Temp_1: - name: 7Networks_LH_Default_Temp_1 - lookupLabel: 113 - originalLookupLabel: 113 - center: - x: -58.0 - y: -8.0 - z: -21.0 - color: '#cd3e4b' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_2: - name: 7Networks_LH_Default_Temp_2 - lookupLabel: 114 - originalLookupLabel: 114 - center: - x: -61.0 - y: -35.0 - z: -17.0 - color: '#cd3e4c' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_3: - name: 7Networks_LH_Default_Temp_3 - lookupLabel: 115 - originalLookupLabel: 115 - center: - x: -52.0 - y: 8.0 - z: -12.0 - color: '#cd3e4d' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_4: - name: 7Networks_LH_Default_Temp_4 - lookupLabel: 116 - originalLookupLabel: 116 - center: - x: -57.0 - y: -9.0 - z: -6.0 - color: '#cd3e4e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_5: - name: 7Networks_LH_Default_Temp_5 - lookupLabel: 117 - originalLookupLabel: 117 - center: - x: -52.0 - y: -21.0 - z: -8.0 - color: '#cd3e50' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_6: - name: 7Networks_LH_Default_Temp_6 - lookupLabel: 118 - originalLookupLabel: 118 - center: - x: -61.0 - y: -35.0 - z: -3.0 - color: '#cd3e51' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_7: - name: 7Networks_LH_Default_Temp_7 - lookupLabel: 119 - originalLookupLabel: 119 - center: - x: -60.0 - y: -28.0 - z: 2.0 - color: '#cd3e52' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_8: - name: 7Networks_LH_Default_Temp_8 - lookupLabel: 120 - originalLookupLabel: 120 - center: - x: -56.0 - y: -44.0 - z: 9.0 - color: '#cd3e53' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_1: - name: 7Networks_LH_Default_Par_1 - lookupLabel: 121 - originalLookupLabel: 121 - center: - x: -45.0 - y: -61.0 - z: 24.0 - color: '#cd3e54' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_2: - name: 7Networks_LH_Default_Par_2 - lookupLabel: 122 - originalLookupLabel: 122 - center: - x: -38.0 - y: -81.0 - z: 33.0 - color: '#cd3e55' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_3: - name: 7Networks_LH_Default_Par_3 - lookupLabel: 123 - originalLookupLabel: 123 - center: - x: -57.0 - y: -54.0 - z: 28.0 - color: '#cd3e56' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_4: - name: 7Networks_LH_Default_Par_4 - lookupLabel: 124 - originalLookupLabel: 124 - center: - x: -46.0 - y: -66.0 - z: 41.0 - color: '#cd3f4f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_1: - name: 7Networks_LH_Default_PFC_1 - lookupLabel: 125 - originalLookupLabel: 125 - center: - x: -35.0 - y: 20.0 - z: -13.0 - color: '#cd3f47' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_2: - name: 7Networks_LH_Default_PFC_2 - lookupLabel: 126 - originalLookupLabel: 126 - center: - x: -6.0 - y: 36.0 - z: -10.0 - color: '#cd3f48' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_3: - name: 7Networks_LH_Default_PFC_3 - lookupLabel: 127 - originalLookupLabel: 127 - center: - x: -46.0 - y: 31.0 - z: -10.0 - color: '#cd3f49' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_4: - name: 7Networks_LH_Default_PFC_4 - lookupLabel: 128 - originalLookupLabel: 128 - center: - x: -19.0 - y: 63.0 - z: -8.0 - color: '#cd3f4a' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_5: - name: 7Networks_LH_Default_PFC_5 - lookupLabel: 129 - originalLookupLabel: 129 - center: - x: -6.0 - y: 60.0 - z: -1.0 - color: '#cd3f4b' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_6: - name: 7Networks_LH_Default_PFC_6 - lookupLabel: 130 - originalLookupLabel: 130 - center: - x: -48.0 - y: 28.0 - z: 1.0 - color: '#cd3f4c' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_7: - name: 7Networks_LH_Default_PFC_7 - lookupLabel: 131 - originalLookupLabel: 131 - center: - x: -6.0 - y: 44.0 - z: 7.0 - color: '#cd3f4d' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_8: - name: 7Networks_LH_Default_PFC_8 - lookupLabel: 132 - originalLookupLabel: 132 - center: - x: -54.0 - y: 19.0 - z: 12.0 - color: '#cd3f50' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_9: - name: 7Networks_LH_Default_PFC_9 - lookupLabel: 133 - originalLookupLabel: 133 - center: - x: -18.0 - y: 63.0 - z: 19.0 - color: '#cd3f51' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_10: - name: 7Networks_LH_Default_PFC_10 - lookupLabel: 134 - originalLookupLabel: 134 - center: - x: -6.0 - y: 30.0 - z: 25.0 - color: '#cd3f52' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_11: - name: 7Networks_LH_Default_PFC_11 - lookupLabel: 135 - originalLookupLabel: 135 - center: - x: -4.0 - y: 50.0 - z: 31.0 - color: '#cd3f53' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_12: - name: 7Networks_LH_Default_PFC_12 - lookupLabel: 136 - originalLookupLabel: 136 - center: - x: -14.0 - y: 46.0 - z: 45.0 - color: '#cd3f54' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_13: - name: 7Networks_LH_Default_PFC_13 - lookupLabel: 137 - originalLookupLabel: 137 - center: - x: -23.0 - y: 31.0 - z: 43.0 - color: '#cd3f55' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_14: - name: 7Networks_LH_Default_PFC_14 - lookupLabel: 138 - originalLookupLabel: 138 - center: - x: -39.0 - y: 19.0 - z: 50.0 - color: '#cd404e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_15: - name: 7Networks_LH_Default_PFC_15 - lookupLabel: 139 - originalLookupLabel: 139 - center: - x: -42.0 - y: 7.0 - z: 49.0 - color: '#cd404f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_16: - name: 7Networks_LH_Default_PFC_16 - lookupLabel: 140 - originalLookupLabel: 140 - center: - x: -25.0 - y: 19.0 - z: 53.0 - color: '#cd4050' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_17: - name: 7Networks_LH_Default_PFC_17 - lookupLabel: 141 - originalLookupLabel: 141 - center: - x: -12.0 - y: 24.0 - z: 61.0 - color: '#cd4051' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_18: - name: 7Networks_LH_Default_PFC_18 - lookupLabel: 142 - originalLookupLabel: 142 - center: - x: -6.0 - y: 10.0 - z: 64.0 - color: '#cd4052' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_1: - name: 7Networks_LH_Default_pCunPCC_1 - lookupLabel: 143 - originalLookupLabel: 143 - center: - x: -11.0 - y: -51.0 - z: 6.0 - color: '#cd3f4e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_2: - name: 7Networks_LH_Default_pCunPCC_2 - lookupLabel: 144 - originalLookupLabel: 144 - center: - x: -5.0 - y: -52.0 - z: 16.0 - color: '#cd3f56' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_3: - name: 7Networks_LH_Default_pCunPCC_3 - lookupLabel: 145 - originalLookupLabel: 145 - center: - x: -13.0 - y: -61.0 - z: 19.0 - color: '#cd4053' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_4: - name: 7Networks_LH_Default_pCunPCC_4 - lookupLabel: 146 - originalLookupLabel: 146 - center: - x: -5.0 - y: -56.0 - z: 28.0 - color: '#cd4054' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_5: - name: 7Networks_LH_Default_pCunPCC_5 - lookupLabel: 147 - originalLookupLabel: 147 - center: - x: -11.0 - y: -69.0 - z: 31.0 - color: '#cd4055' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_6: - name: 7Networks_LH_Default_pCunPCC_6 - lookupLabel: 148 - originalLookupLabel: 148 - center: - x: -5.0 - y: -38.0 - z: 35.0 - color: '#cd4056' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_7: - name: 7Networks_LH_Default_pCunPCC_7 - lookupLabel: 149 - originalLookupLabel: 149 - center: - x: -3.0 - y: -17.0 - z: 37.0 - color: '#cd414f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_8: - name: 7Networks_LH_Default_pCunPCC_8 - lookupLabel: 150 - originalLookupLabel: 150 - center: - x: -6.0 - y: -55.0 - z: 41.0 - color: '#cd4150' - hemisphere: left - hasParent: - - LH_Default - 7Networks_RH_Vis_1: - name: 7Networks_RH_Vis_1 - lookupLabel: 151 - originalLookupLabel: 151 - center: - x: 35.0 - y: -44.0 - z: -20.0 - color: '#781185' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_2: - name: 7Networks_RH_Vis_2 - lookupLabel: 152 - originalLookupLabel: 152 - center: - x: 28.0 - y: -28.0 - z: -20.0 - color: '#781186' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_3: - name: 7Networks_RH_Vis_3 - lookupLabel: 153 - originalLookupLabel: 153 - center: - x: 26.0 - y: -54.0 - z: -9.0 - color: '#781187' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_4: - name: 7Networks_RH_Vis_4 - lookupLabel: 154 - originalLookupLabel: 154 - center: - x: 28.0 - y: -75.0 - z: -13.0 - color: '#781280' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_5: - name: 7Networks_RH_Vis_5 - lookupLabel: 155 - originalLookupLabel: 155 - center: - x: 18.0 - y: -36.0 - z: -12.0 - color: '#781281' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_6: - name: 7Networks_RH_Vis_6 - lookupLabel: 156 - originalLookupLabel: 156 - center: - x: 47.0 - y: -76.0 - z: -11.0 - color: '#781282' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_7: - name: 7Networks_RH_Vis_7 - lookupLabel: 157 - originalLookupLabel: 157 - center: - x: 9.0 - y: -72.0 - z: -5.0 - color: '#781283' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_8: - name: 7Networks_RH_Vis_8 - lookupLabel: 158 - originalLookupLabel: 158 - center: - x: 13.0 - y: -58.0 - z: -3.0 - color: '#781284' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_9: - name: 7Networks_RH_Vis_9 - lookupLabel: 159 - originalLookupLabel: 159 - center: - x: 7.0 - y: -88.0 - z: -9.0 - color: '#781285' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_10: - name: 7Networks_RH_Vis_10 - lookupLabel: 160 - originalLookupLabel: 160 - center: - x: 24.0 - y: -95.0 - z: -10.0 - color: '#781286' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_11: - name: 7Networks_RH_Vis_11 - lookupLabel: 161 - originalLookupLabel: 161 - center: - x: 17.0 - y: -45.0 - z: -1.0 - color: '#781288' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_12: - name: 7Networks_RH_Vis_12 - lookupLabel: 162 - originalLookupLabel: 162 - center: - x: 49.0 - y: -64.0 - z: 4.0 - color: '#781289' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_13: - name: 7Networks_RH_Vis_13 - lookupLabel: 163 - originalLookupLabel: 163 - center: - x: 10.0 - y: -95.0 - z: 2.0 - color: '#78128a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_14: - name: 7Networks_RH_Vis_14 - lookupLabel: 164 - originalLookupLabel: 164 - center: - x: 35.0 - y: -89.0 - z: 1.0 - color: '#78128b' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_15: - name: 7Networks_RH_Vis_15 - lookupLabel: 165 - originalLookupLabel: 165 - center: - x: 9.0 - y: -74.0 - z: 9.0 - color: '#78128c' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_16: - name: 7Networks_RH_Vis_16 - lookupLabel: 166 - originalLookupLabel: 166 - center: - x: 22.0 - y: -60.0 - z: 7.0 - color: '#78128d' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_17: - name: 7Networks_RH_Vis_17 - lookupLabel: 167 - originalLookupLabel: 167 - center: - x: 18.0 - y: -97.0 - z: 14.0 - color: '#78128e' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_18: - name: 7Networks_RH_Vis_18 - lookupLabel: 168 - originalLookupLabel: 168 - center: - x: 43.0 - y: -79.0 - z: 10.0 - color: '#781387' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_19: - name: 7Networks_RH_Vis_19 - lookupLabel: 169 - originalLookupLabel: 169 - center: - x: 9.0 - y: -88.0 - z: 24.0 - color: '#781388' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_20: - name: 7Networks_RH_Vis_20 - lookupLabel: 170 - originalLookupLabel: 170 - center: - x: 13.0 - y: -73.0 - z: 26.0 - color: '#781389' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_21: - name: 7Networks_RH_Vis_21 - lookupLabel: 171 - originalLookupLabel: 171 - center: - x: 27.0 - y: -86.0 - z: 23.0 - color: '#78138a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_22: - name: 7Networks_RH_Vis_22 - lookupLabel: 172 - originalLookupLabel: 172 - center: - x: 35.0 - y: -77.0 - z: 25.0 - color: '#78138b' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_23: - name: 7Networks_RH_Vis_23 - lookupLabel: 173 - originalLookupLabel: 173 - center: - x: 20.0 - y: -84.0 - z: 41.0 - color: '#78138c' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_SomMot_1: - name: 7Networks_RH_SomMot_1 - lookupLabel: 174 - originalLookupLabel: 174 - center: - x: 53.0 - y: -10.0 - z: 3.0 - color: '#4681b1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_2: - name: 7Networks_RH_SomMot_2 - lookupLabel: 175 - originalLookupLabel: 175 - center: - x: 63.0 - y: -19.0 - z: 0.0 - color: '#4681b2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_3: - name: 7Networks_RH_SomMot_3 - lookupLabel: 176 - originalLookupLabel: 176 - center: - x: 35.0 - y: -21.0 - z: 14.0 - color: '#4681b3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_4: - name: 7Networks_RH_SomMot_4 - lookupLabel: 177 - originalLookupLabel: 177 - center: - x: 40.0 - y: -10.0 - z: 15.0 - color: '#4681b4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_5: - name: 7Networks_RH_SomMot_5 - lookupLabel: 178 - originalLookupLabel: 178 - center: - x: 61.0 - y: -24.0 - z: 11.0 - color: '#4681b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_6: - name: 7Networks_RH_SomMot_6 - lookupLabel: 179 - originalLookupLabel: 179 - center: - x: 60.0 - y: -37.0 - z: 12.0 - color: '#4682ae' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_7: - name: 7Networks_RH_SomMot_7 - lookupLabel: 180 - originalLookupLabel: 180 - center: - x: 42.0 - y: -28.0 - z: 18.0 - color: '#4682af' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_8: - name: 7Networks_RH_SomMot_8 - lookupLabel: 181 - originalLookupLabel: 181 - center: - x: 59.0 - y: 0.0 - z: 11.0 - color: '#4682b0' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_9: - name: 7Networks_RH_SomMot_9 - lookupLabel: 182 - originalLookupLabel: 182 - center: - x: 54.0 - y: -14.0 - z: 16.0 - color: '#4682b1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_10: - name: 7Networks_RH_SomMot_10 - lookupLabel: 183 - originalLookupLabel: 183 - center: - x: 61.0 - y: -4.0 - z: 26.0 - color: '#4682b2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_11: - name: 7Networks_RH_SomMot_11 - lookupLabel: 184 - originalLookupLabel: 184 - center: - x: 58.0 - y: -14.0 - z: 35.0 - color: '#4682b3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_12: - name: 7Networks_RH_SomMot_12 - lookupLabel: 185 - originalLookupLabel: 185 - center: - x: 52.0 - y: -8.0 - z: 37.0 - color: '#4682b4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_13: - name: 7Networks_RH_SomMot_13 - lookupLabel: 186 - originalLookupLabel: 186 - center: - x: 52.0 - y: -13.0 - z: 50.0 - color: '#4682b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_14: - name: 7Networks_RH_SomMot_14 - lookupLabel: 187 - originalLookupLabel: 187 - center: - x: 46.0 - y: -10.0 - z: 48.0 - color: '#4682b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_15: - name: 7Networks_RH_SomMot_15 - lookupLabel: 188 - originalLookupLabel: 188 - center: - x: 50.0 - y: -24.0 - z: 54.0 - color: '#4682b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_16: - name: 7Networks_RH_SomMot_16 - lookupLabel: 189 - originalLookupLabel: 189 - center: - x: 7.0 - y: -11.0 - z: 50.0 - color: '#4682b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_17: - name: 7Networks_RH_SomMot_17 - lookupLabel: 190 - originalLookupLabel: 190 - center: - x: 39.0 - y: -25.0 - z: 57.0 - color: '#4682ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_18: - name: 7Networks_RH_SomMot_18 - lookupLabel: 191 - originalLookupLabel: 191 - center: - x: 33.0 - y: -41.0 - z: 64.0 - color: '#4682bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_19: - name: 7Networks_RH_SomMot_19 - lookupLabel: 192 - originalLookupLabel: 192 - center: - x: 33.0 - y: -34.0 - z: 62.0 - color: '#4682bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_20: - name: 7Networks_RH_SomMot_20 - lookupLabel: 193 - originalLookupLabel: 193 - center: - x: 37.0 - y: -20.0 - z: 64.0 - color: '#4683b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_21: - name: 7Networks_RH_SomMot_21 - lookupLabel: 194 - originalLookupLabel: 194 - center: - x: 9.0 - y: -40.0 - z: 65.0 - color: '#4683b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_22: - name: 7Networks_RH_SomMot_22 - lookupLabel: 195 - originalLookupLabel: 195 - center: - x: 5.0 - y: -23.0 - z: 65.0 - color: '#4683b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_23: - name: 7Networks_RH_SomMot_23 - lookupLabel: 196 - originalLookupLabel: 196 - center: - x: 24.0 - y: -28.0 - z: 66.0 - color: '#4683b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_24: - name: 7Networks_RH_SomMot_24 - lookupLabel: 197 - originalLookupLabel: 197 - center: - x: 23.0 - y: -35.0 - z: 70.0 - color: '#4683b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_25: - name: 7Networks_RH_SomMot_25 - lookupLabel: 198 - originalLookupLabel: 198 - center: - x: 22.0 - y: -24.0 - z: 68.0 - color: '#4683ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_26: - name: 7Networks_RH_SomMot_26 - lookupLabel: 199 - originalLookupLabel: 199 - center: - x: 18.0 - y: -10.0 - z: 71.0 - color: '#4683bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_27: - name: 7Networks_RH_SomMot_27 - lookupLabel: 200 - originalLookupLabel: 200 - center: - x: 12.0 - y: -37.0 - z: 77.0 - color: '#4683bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_28: - name: 7Networks_RH_SomMot_28 - lookupLabel: 201 - originalLookupLabel: 201 - center: - x: 13.0 - y: -29.0 - z: 73.0 - color: '#4684b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_DorsAttn_Post_1: - name: 7Networks_RH_DorsAttn_Post_1 - lookupLabel: 202 - originalLookupLabel: 202 - center: - x: 50.0 - y: -53.0 - z: -16.0 - color: '#00770a' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_2: - name: 7Networks_RH_DorsAttn_Post_2 - lookupLabel: 203 - originalLookupLabel: 203 - center: - x: 60.0 - y: -53.0 - z: -4.0 - color: '#00770b' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_3: - name: 7Networks_RH_DorsAttn_Post_3 - lookupLabel: 204 - originalLookupLabel: 204 - center: - x: 54.0 - y: -56.0 - z: 14.0 - color: '#00770c' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_4: - name: 7Networks_RH_DorsAttn_Post_4 - lookupLabel: 205 - originalLookupLabel: 205 - center: - x: 35.0 - y: -70.0 - z: 45.0 - color: '#00770d' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_5: - name: 7Networks_RH_DorsAttn_Post_5 - lookupLabel: 206 - originalLookupLabel: 206 - center: - x: 52.0 - y: -34.0 - z: 52.0 - color: '#00770e' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_6: - name: 7Networks_RH_DorsAttn_Post_6 - lookupLabel: 207 - originalLookupLabel: 207 - center: - x: 54.0 - y: -24.0 - z: 43.0 - color: '#007710' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_7: - name: 7Networks_RH_DorsAttn_Post_7 - lookupLabel: 208 - originalLookupLabel: 208 - center: - x: 27.0 - y: -67.0 - z: 42.0 - color: '#007711' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_8: - name: 7Networks_RH_DorsAttn_Post_8 - lookupLabel: 209 - originalLookupLabel: 209 - center: - x: 40.0 - y: -41.0 - z: 45.0 - color: '#007712' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_9: - name: 7Networks_RH_DorsAttn_Post_9 - lookupLabel: 210 - originalLookupLabel: 210 - center: - x: 39.0 - y: -32.0 - z: 46.0 - color: '#007713' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_10: - name: 7Networks_RH_DorsAttn_Post_10 - lookupLabel: 211 - originalLookupLabel: 211 - center: - x: 16.0 - y: -72.0 - z: 54.0 - color: '#007714' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_11: - name: 7Networks_RH_DorsAttn_Post_11 - lookupLabel: 212 - originalLookupLabel: 212 - center: - x: 34.0 - y: -50.0 - z: 52.0 - color: '#007715' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_12: - name: 7Networks_RH_DorsAttn_Post_12 - lookupLabel: 213 - originalLookupLabel: 213 - center: - x: 26.0 - y: -59.0 - z: 61.0 - color: '#007716' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_13: - name: 7Networks_RH_DorsAttn_Post_13 - lookupLabel: 214 - originalLookupLabel: 214 - center: - x: 8.0 - y: -56.0 - z: 61.0 - color: '#00780f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_14: - name: 7Networks_RH_DorsAttn_Post_14 - lookupLabel: 215 - originalLookupLabel: 215 - center: - x: 21.0 - y: -48.0 - z: 71.0 - color: '#007810' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_1: - name: 7Networks_RH_DorsAttn_FEF_1 - lookupLabel: 216 - originalLookupLabel: 216 - center: - x: 35.0 - y: -4.0 - z: 52.0 - color: '#01760f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_2: - name: 7Networks_RH_DorsAttn_FEF_2 - lookupLabel: 217 - originalLookupLabel: 217 - center: - x: 25.0 - y: 8.0 - z: 58.0 - color: '#017610' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_3: - name: 7Networks_RH_DorsAttn_FEF_3 - lookupLabel: 218 - originalLookupLabel: 218 - center: - x: 26.0 - y: -9.0 - z: 62.0 - color: '#017611' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_PrCv_1: - name: 7Networks_RH_DorsAttn_PrCv_1 - lookupLabel: 219 - originalLookupLabel: 219 - center: - x: 49.0 - y: 8.0 - z: 25.0 - color: '#017612' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_SalVentAttn_TempOccPar_1: - name: 7Networks_RH_SalVentAttn_TempOccPar_1 - lookupLabel: 220 - originalLookupLabel: 220 - center: - x: 57.0 - y: -45.0 - z: 9.0 - color: '#c53afa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_2: - name: 7Networks_RH_SalVentAttn_TempOccPar_2 - lookupLabel: 221 - originalLookupLabel: 221 - center: - x: 64.0 - y: -33.0 - z: 23.0 - color: '#c53afc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_3: - name: 7Networks_RH_SalVentAttn_TempOccPar_3 - lookupLabel: 222 - originalLookupLabel: 222 - center: - x: 53.0 - y: -29.0 - z: 26.0 - color: '#c53afd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_4: - name: 7Networks_RH_SalVentAttn_TempOccPar_4 - lookupLabel: 223 - originalLookupLabel: 223 - center: - x: 62.0 - y: -20.0 - z: 24.0 - color: '#c53afe' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_5: - name: 7Networks_RH_SalVentAttn_TempOccPar_5 - lookupLabel: 224 - originalLookupLabel: 224 - center: - x: 63.0 - y: -26.0 - z: 39.0 - color: '#c53aff' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_PrC_1: - name: 7Networks_RH_SalVentAttn_PrC_1 - lookupLabel: 225 - originalLookupLabel: 225 - center: - x: 51.0 - y: 4.0 - z: 40.0 - color: '#c53bfb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_1: - name: 7Networks_RH_SalVentAttn_FrOperIns_1 - lookupLabel: 226 - originalLookupLabel: 226 - center: - x: 40.0 - y: 5.0 - z: -11.0 - color: '#c53bfa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_2: - name: 7Networks_RH_SalVentAttn_FrOperIns_2 - lookupLabel: 227 - originalLookupLabel: 227 - center: - x: 40.0 - y: -11.0 - z: -2.0 - color: '#c53bfc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_3: - name: 7Networks_RH_SalVentAttn_FrOperIns_3 - lookupLabel: 228 - originalLookupLabel: 228 - center: - x: 38.0 - y: 21.0 - z: 4.0 - color: '#c53bfd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_4: - name: 7Networks_RH_SalVentAttn_FrOperIns_4 - lookupLabel: 229 - originalLookupLabel: 229 - center: - x: 39.0 - y: 4.0 - z: 7.0 - color: '#c53bfe' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_5: - name: 7Networks_RH_SalVentAttn_FrOperIns_5 - lookupLabel: 230 - originalLookupLabel: 230 - center: - x: 50.0 - y: 5.0 - z: 4.0 - color: '#c53bff' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_6: - name: 7Networks_RH_SalVentAttn_FrOperIns_6 - lookupLabel: 231 - originalLookupLabel: 231 - center: - x: 53.0 - y: 13.0 - z: 14.0 - color: '#c234fa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_1: - name: 7Networks_RH_SalVentAttn_Med_1 - lookupLabel: 232 - originalLookupLabel: 232 - center: - x: 7.0 - y: 9.0 - z: 41.0 - color: '#c439f8' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_2: - name: 7Networks_RH_SalVentAttn_Med_2 - lookupLabel: 233 - originalLookupLabel: 233 - center: - x: 7.0 - y: -16.0 - z: 40.0 - color: '#c439fa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_3: - name: 7Networks_RH_SalVentAttn_Med_3 - lookupLabel: 234 - originalLookupLabel: 234 - center: - x: 11.0 - y: -37.0 - z: 45.0 - color: '#c439fb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_4: - name: 7Networks_RH_SalVentAttn_Med_4 - lookupLabel: 235 - originalLookupLabel: 235 - center: - x: 11.0 - y: -35.0 - z: 53.0 - color: '#c439fc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_5: - name: 7Networks_RH_SalVentAttn_Med_5 - lookupLabel: 236 - originalLookupLabel: 236 - center: - x: 6.0 - y: 0.0 - z: 64.0 - color: '#c439fd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_6: - name: 7Networks_RH_SalVentAttn_Med_6 - lookupLabel: 237 - originalLookupLabel: 237 - center: - x: 16.0 - y: 6.0 - z: 69.0 - color: '#c439fe' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_Limbic_OFC_1: - name: 7Networks_RH_Limbic_OFC_1 - lookupLabel: 238 - originalLookupLabel: 238 - center: - x: 13.0 - y: 27.0 - z: -21.0 - color: '#dcf9a5' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_2: - name: 7Networks_RH_Limbic_OFC_2 - lookupLabel: 239 - originalLookupLabel: 239 - center: - x: 26.0 - y: 21.0 - z: -20.0 - color: '#dcf9a6' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_3: - name: 7Networks_RH_Limbic_OFC_3 - lookupLabel: 240 - originalLookupLabel: 240 - center: - x: 4.0 - y: 25.0 - z: -22.0 - color: '#dcf9a7' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_4: - name: 7Networks_RH_Limbic_OFC_4 - lookupLabel: 241 - originalLookupLabel: 241 - center: - x: 10.0 - y: 52.0 - z: -21.0 - color: '#dcf9a8' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_1: - name: 7Networks_RH_Limbic_TempPole_1 - lookupLabel: 242 - originalLookupLabel: 242 - center: - x: 35.0 - y: -1.0 - z: -44.0 - color: '#dcf9a4' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_2: - name: 7Networks_RH_Limbic_TempPole_2 - lookupLabel: 243 - originalLookupLabel: 243 - center: - x: 29.0 - y: 12.0 - z: -34.0 - color: '#dcf9a9' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_3: - name: 7Networks_RH_Limbic_TempPole_3 - lookupLabel: 244 - originalLookupLabel: 244 - center: - x: 26.0 - y: -9.0 - z: -33.0 - color: '#dcf9aa' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_4: - name: 7Networks_RH_Limbic_TempPole_4 - lookupLabel: 245 - originalLookupLabel: 245 - center: - x: 52.0 - y: -14.0 - z: -34.0 - color: '#dcf9ab' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_5: - name: 7Networks_RH_Limbic_TempPole_5 - lookupLabel: 246 - originalLookupLabel: 246 - center: - x: 42.0 - y: -20.0 - z: -28.0 - color: '#dcf9ac' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_6: - name: 7Networks_RH_Limbic_TempPole_6 - lookupLabel: 247 - originalLookupLabel: 247 - center: - x: 46.0 - y: 10.0 - z: -16.0 - color: '#dcfaa5' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Cont_Par_1: - name: 7Networks_RH_Cont_Par_1 - lookupLabel: 248 - originalLookupLabel: 248 - center: - x: 62.0 - y: -38.0 - z: 38.0 - color: '#e69323' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_2: - name: 7Networks_RH_Cont_Par_2 - lookupLabel: 249 - originalLookupLabel: 249 - center: - x: 53.0 - y: -42.0 - z: 48.0 - color: '#e69324' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_3: - name: 7Networks_RH_Cont_Par_3 - lookupLabel: 250 - originalLookupLabel: 250 - center: - x: 41.0 - y: -54.0 - z: 48.0 - color: '#e69325' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Temp_1: - name: 7Networks_RH_Cont_Temp_1 - lookupLabel: 251 - originalLookupLabel: 251 - center: - x: 62.0 - y: -34.0 - z: -17.0 - color: '#e69322' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCv_1: - name: 7Networks_RH_Cont_PFCv_1 - lookupLabel: 252 - originalLookupLabel: 252 - center: - x: 34.0 - y: 21.0 - z: -9.0 - color: '#e59423' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_1: - name: 7Networks_RH_Cont_PFCl_1 - lookupLabel: 253 - originalLookupLabel: 253 - center: - x: 30.0 - y: 42.0 - z: -14.0 - color: '#e5941d' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_2: - name: 7Networks_RH_Cont_PFCl_2 - lookupLabel: 254 - originalLookupLabel: 254 - center: - x: 22.0 - y: 63.0 - z: -7.0 - color: '#e5941e' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_3: - name: 7Networks_RH_Cont_PFCl_3 - lookupLabel: 255 - originalLookupLabel: 255 - center: - x: 42.0 - y: 51.0 - z: -7.0 - color: '#e5941f' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_4: - name: 7Networks_RH_Cont_PFCl_4 - lookupLabel: 256 - originalLookupLabel: 256 - center: - x: 30.0 - y: 57.0 - z: 7.0 - color: '#e59420' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_5: - name: 7Networks_RH_Cont_PFCl_5 - lookupLabel: 257 - originalLookupLabel: 257 - center: - x: 44.0 - y: 44.0 - z: 11.0 - color: '#e59422' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_6: - name: 7Networks_RH_Cont_PFCl_6 - lookupLabel: 258 - originalLookupLabel: 258 - center: - x: 48.0 - y: 31.0 - z: 21.0 - color: '#e59424' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_7: - name: 7Networks_RH_Cont_PFCl_7 - lookupLabel: 259 - originalLookupLabel: 259 - center: - x: 35.0 - y: 45.0 - z: 27.0 - color: '#e59425' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_8: - name: 7Networks_RH_Cont_PFCl_8 - lookupLabel: 260 - originalLookupLabel: 260 - center: - x: 26.0 - y: 51.0 - z: 28.0 - color: '#e59426' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_9: - name: 7Networks_RH_Cont_PFCl_9 - lookupLabel: 261 - originalLookupLabel: 261 - center: - x: 41.0 - y: 15.0 - z: 30.0 - color: '#e59427' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_10: - name: 7Networks_RH_Cont_PFCl_10 - lookupLabel: 262 - originalLookupLabel: 262 - center: - x: 39.0 - y: 33.0 - z: 38.0 - color: '#e59428' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_11: - name: 7Networks_RH_Cont_PFCl_11 - lookupLabel: 263 - originalLookupLabel: 263 - center: - x: 43.0 - y: 15.0 - z: 47.0 - color: '#e59521' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_12: - name: 7Networks_RH_Cont_PFCl_12 - lookupLabel: 264 - originalLookupLabel: 264 - center: - x: 31.0 - y: 17.0 - z: 53.0 - color: '#e59522' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_pCun_1: - name: 7Networks_RH_Cont_pCun_1 - lookupLabel: 265 - originalLookupLabel: 265 - center: - x: 14.0 - y: -70.0 - z: 37.0 - color: '#e59323' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_pCun_2: - name: 7Networks_RH_Cont_pCun_2 - lookupLabel: 266 - originalLookupLabel: 266 - center: - x: 5.0 - y: -66.0 - z: 47.0 - color: '#e59324' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Cing_1: - name: 7Networks_RH_Cont_Cing_1 - lookupLabel: 267 - originalLookupLabel: 267 - center: - x: 6.0 - y: -26.0 - z: 29.0 - color: '#e59322' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Cing_2: - name: 7Networks_RH_Cont_Cing_2 - lookupLabel: 268 - originalLookupLabel: 268 - center: - x: 5.0 - y: 1.0 - z: 30.0 - color: '#e59325' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCmp_1: - name: 7Networks_RH_Cont_PFCmp_1 - lookupLabel: 269 - originalLookupLabel: 269 - center: - x: 7.0 - y: 30.0 - z: 28.0 - color: '#e69425' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCmp_2: - name: 7Networks_RH_Cont_PFCmp_2 - lookupLabel: 270 - originalLookupLabel: 270 - center: - x: 5.0 - y: 19.0 - z: 54.0 - color: '#e69426' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Default_Par_1: - name: 7Networks_RH_Default_Par_1 - lookupLabel: 271 - originalLookupLabel: 271 - center: - x: 55.0 - y: -43.0 - z: 26.0 - color: '#cd3e4c' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_2: - name: 7Networks_RH_Default_Par_2 - lookupLabel: 272 - originalLookupLabel: 272 - center: - x: 53.0 - y: -52.0 - z: 24.0 - color: '#cd3e4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_3: - name: 7Networks_RH_Default_Par_3 - lookupLabel: 273 - originalLookupLabel: 273 - center: - x: 47.0 - y: -69.0 - z: 26.0 - color: '#cd3e4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_4: - name: 7Networks_RH_Default_Par_4 - lookupLabel: 274 - originalLookupLabel: 274 - center: - x: 47.0 - y: -65.0 - z: 42.0 - color: '#cd3e50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_5: - name: 7Networks_RH_Default_Par_5 - lookupLabel: 275 - originalLookupLabel: 275 - center: - x: 55.0 - y: -52.0 - z: 41.0 - color: '#cd3e51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_1: - name: 7Networks_RH_Default_Temp_1 - lookupLabel: 276 - originalLookupLabel: 276 - center: - x: 47.0 - y: 13.0 - z: -32.0 - color: '#cd3d4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_2: - name: 7Networks_RH_Default_Temp_2 - lookupLabel: 277 - originalLookupLabel: 277 - center: - x: 60.0 - y: -7.0 - z: -21.0 - color: '#cd3d4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_3: - name: 7Networks_RH_Default_Temp_3 - lookupLabel: 278 - originalLookupLabel: 278 - center: - x: 54.0 - y: -1.0 - z: -13.0 - color: '#cd3d50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_4: - name: 7Networks_RH_Default_Temp_4 - lookupLabel: 279 - originalLookupLabel: 279 - center: - x: 50.0 - y: -19.0 - z: -9.0 - color: '#cd3d51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_5: - name: 7Networks_RH_Default_Temp_5 - lookupLabel: 280 - originalLookupLabel: 280 - center: - x: 63.0 - y: -28.0 - z: -5.0 - color: '#cd3d52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_6: - name: 7Networks_RH_Default_Temp_6 - lookupLabel: 281 - originalLookupLabel: 281 - center: - x: 51.0 - y: -32.0 - z: 1.0 - color: '#cd3d53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_1: - name: 7Networks_RH_Default_PFCv_1 - lookupLabel: 282 - originalLookupLabel: 282 - center: - x: 42.0 - y: 28.0 - z: -15.0 - color: '#cd3d4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_2: - name: 7Networks_RH_Default_PFCv_2 - lookupLabel: 283 - originalLookupLabel: 283 - center: - x: 49.0 - y: 32.0 - z: -4.0 - color: '#cd3d54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_3: - name: 7Networks_RH_Default_PFCv_3 - lookupLabel: 284 - originalLookupLabel: 284 - center: - x: 54.0 - y: 24.0 - z: 7.0 - color: '#cd3e4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_1: - name: 7Networks_RH_Default_PFCdPFCm_1 - lookupLabel: 285 - originalLookupLabel: 285 - center: - x: 5.0 - y: 39.0 - z: -11.0 - color: '#cc3e4b' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_2: - name: 7Networks_RH_Default_PFCdPFCm_2 - lookupLabel: 286 - originalLookupLabel: 286 - center: - x: 7.0 - y: 64.0 - z: -7.0 - color: '#cc3e4c' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_3: - name: 7Networks_RH_Default_PFCdPFCm_3 - lookupLabel: 287 - originalLookupLabel: 287 - center: - x: 8.0 - y: 43.0 - z: 5.0 - color: '#cc3e4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_4: - name: 7Networks_RH_Default_PFCdPFCm_4 - lookupLabel: 288 - originalLookupLabel: 288 - center: - x: 18.0 - y: 65.0 - z: 16.0 - color: '#cc3e4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_5: - name: 7Networks_RH_Default_PFCdPFCm_5 - lookupLabel: 289 - originalLookupLabel: 289 - center: - x: 6.0 - y: 55.0 - z: 17.0 - color: '#cc3e50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_6: - name: 7Networks_RH_Default_PFCdPFCm_6 - lookupLabel: 290 - originalLookupLabel: 290 - center: - x: 6.0 - y: 25.0 - z: 18.0 - color: '#cc3e51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_7: - name: 7Networks_RH_Default_PFCdPFCm_7 - lookupLabel: 291 - originalLookupLabel: 291 - center: - x: 16.0 - y: 49.0 - z: 41.0 - color: '#cc3e52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_8: - name: 7Networks_RH_Default_PFCdPFCm_8 - lookupLabel: 292 - originalLookupLabel: 292 - center: - x: 5.0 - y: 40.0 - z: 43.0 - color: '#cc3e53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_9: - name: 7Networks_RH_Default_PFCdPFCm_9 - lookupLabel: 293 - originalLookupLabel: 293 - center: - x: 25.0 - y: 30.0 - z: 45.0 - color: '#cc3e54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_10: - name: 7Networks_RH_Default_PFCdPFCm_10 - lookupLabel: 294 - originalLookupLabel: 294 - center: - x: 14.0 - y: 24.0 - z: 60.0 - color: '#cc3e55' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_1: - name: 7Networks_RH_Default_pCunPCC_1 - lookupLabel: 295 - originalLookupLabel: 295 - center: - x: 10.0 - y: -51.0 - z: 10.0 - color: '#cc3e4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_2: - name: 7Networks_RH_Default_pCunPCC_2 - lookupLabel: 296 - originalLookupLabel: 296 - center: - x: 16.0 - y: -58.0 - z: 21.0 - color: '#cc3f4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_3: - name: 7Networks_RH_Default_pCunPCC_3 - lookupLabel: 297 - originalLookupLabel: 297 - center: - x: 5.0 - y: -54.0 - z: 24.0 - color: '#cc3f4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_4: - name: 7Networks_RH_Default_pCunPCC_4 - lookupLabel: 298 - originalLookupLabel: 298 - center: - x: 6.0 - y: -37.0 - z: 36.0 - color: '#cc3f4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_5: - name: 7Networks_RH_Default_pCunPCC_5 - lookupLabel: 299 - originalLookupLabel: 299 - center: - x: 7.0 - y: -57.0 - z: 35.0 - color: '#cc3f50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_6: - name: 7Networks_RH_Default_pCunPCC_6 - lookupLabel: 300 - originalLookupLabel: 300 - center: - x: 7.0 - y: -50.0 - z: 45.0 - color: '#cc3f51' - hemisphere: right - hasParent: - - RH_Default - versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_300Parcels_7Networks_order_FSLMNI152_1mm.nii.gz diff --git a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-300_res-1_desc-ordered_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-300_res-1_desc-ordered_dseg.yaml similarity index 99% rename from tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-300_res-1_desc-ordered_dseg.yaml rename to tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-300_res-1_desc-ordered_dseg.yaml index f7775e8ce..550cab37c 100644 --- a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-300_res-1_desc-ordered_dseg.yaml +++ b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-300_res-1_desc-ordered_dseg.yaml @@ -1,14 +1,12 @@ name: Schaefer2018 abbreviation: Schaefer2018 versionIdentifier: '2018' -coordinateSpace: - name: MNI152 - abbreviation: FSLMNI152 - nativeUnit: mm +coordinateSpace: FSLMNI152 terminology: label: Schaefer2018_300Parcels_7Networks_order versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_300Parcels_7Networks_order_FSLMNI152_1mm.nii.gz + dataLocation: + schaefer2018_original_mni/Schaefer2018_300Parcels_7Networks_order_FSLMNI152_1mm.nii.gz entities: 7Networks_LH_Vis_1: name: 7Networks_LH_Vis_1 diff --git a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-400_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-400_dseg.yaml deleted file mode 100644 index 32deac77e..000000000 --- a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-400_dseg.yaml +++ /dev/null @@ -1,4921 +0,0 @@ -name: Schaefer2018 -abbreviation: Schaefer2018 -versionIdentifier: '2018' -coordinateSpace: MNI152NLin6Asym -terminology: - label: Schaefer2018_400Parcels_7Networks_order - entities: - LH_Vis: - name: LH_Vis - lookupLabel: -1 - hemisphere: left - center: - x: -21.5 - y: -72.8 - z: 3.5 - LH_SomMot: - name: LH_SomMot - lookupLabel: -2 - hemisphere: left - center: - x: -35.5 - y: -21.6 - z: 43.0 - LH_DorsAttn: - name: LH_DorsAttn - lookupLabel: -3 - hemisphere: left - center: - x: -34.0 - y: -39.6 - z: 41.2 - LH_SalVentAttn: - name: LH_SalVentAttn - lookupLabel: -4 - hemisphere: left - center: - x: -34.0 - y: -7.9 - z: 23.0 - LH_Limbic: - name: LH_Limbic - lookupLabel: -5 - hemisphere: left - center: - x: -26.5 - y: 10.5 - z: -26.9 - LH_Cont: - name: LH_Cont - lookupLabel: -6 - hemisphere: left - center: - x: -33.0 - y: -6.7 - z: 27.0 - LH_Default: - name: LH_Default - lookupLabel: -7 - hemisphere: left - center: - x: -29.2 - y: -6.5 - z: 19.3 - RH_Vis: - name: RH_Vis - lookupLabel: -8 - hemisphere: right - center: - x: 24.7 - y: -70.6 - z: 3.1 - RH_SomMot: - name: RH_SomMot - lookupLabel: -9 - hemisphere: right - center: - x: 37.7 - y: -19.1 - z: 40.6 - RH_DorsAttn: - name: RH_DorsAttn - lookupLabel: -10 - hemisphere: right - center: - x: 34.0 - y: -44.7 - z: 43.5 - RH_SalVentAttn: - name: RH_SalVentAttn - lookupLabel: -11 - hemisphere: right - center: - x: 36.5 - y: -8.8 - z: 26.6 - RH_Limbic: - name: RH_Limbic - lookupLabel: -12 - hemisphere: right - center: - x: 25.6 - y: 13.9 - z: -26.8 - RH_Cont: - name: RH_Cont - lookupLabel: -13 - hemisphere: right - center: - x: 35.7 - y: 1.1 - z: 27.9 - RH_Default: - name: RH_Default - lookupLabel: -14 - hemisphere: right - center: - x: 28.1 - y: -3.3 - z: 16.1 - 7Networks_LH_Vis_1: - name: 7Networks_LH_Vis_1 - lookupLabel: 1 - originalLookupLabel: 1 - center: - x: -33.0 - y: -42.0 - z: -21.0 - color: '#781180' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_2: - name: 7Networks_LH_Vis_2 - lookupLabel: 2 - originalLookupLabel: 2 - center: - x: -30.0 - y: -33.0 - z: -18.0 - color: '#781181' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_3: - name: 7Networks_LH_Vis_3 - lookupLabel: 3 - originalLookupLabel: 3 - center: - x: -36.0 - y: -62.0 - z: -17.0 - color: '#781182' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_4: - name: 7Networks_LH_Vis_4 - lookupLabel: 4 - originalLookupLabel: 4 - center: - x: -24.0 - y: -55.0 - z: -8.0 - color: '#781183' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_5: - name: 7Networks_LH_Vis_5 - lookupLabel: 5 - originalLookupLabel: 5 - center: - x: -23.0 - y: -73.0 - z: -10.0 - color: '#781184' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_6: - name: 7Networks_LH_Vis_6 - lookupLabel: 6 - originalLookupLabel: 6 - center: - x: -36.0 - y: -81.0 - z: -16.0 - color: '#781185' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_7: - name: 7Networks_LH_Vis_7 - lookupLabel: 7 - originalLookupLabel: 7 - center: - x: -18.0 - y: -37.0 - z: -12.0 - color: '#781186' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_8: - name: 7Networks_LH_Vis_8 - lookupLabel: 8 - originalLookupLabel: 8 - center: - x: -45.0 - y: -70.0 - z: -8.0 - color: '#78127f' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_9: - name: 7Networks_LH_Vis_9 - lookupLabel: 9 - originalLookupLabel: 9 - center: - x: -17.0 - y: -86.0 - z: -15.0 - color: '#781280' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_10: - name: 7Networks_LH_Vis_10 - lookupLabel: 10 - originalLookupLabel: 10 - center: - x: -12.0 - y: -62.0 - z: -5.0 - color: '#781281' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_11: - name: 7Networks_LH_Vis_11 - lookupLabel: 11 - originalLookupLabel: 11 - center: - x: -7.0 - y: -76.0 - z: -6.0 - color: '#781282' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_12: - name: 7Networks_LH_Vis_12 - lookupLabel: 12 - originalLookupLabel: 12 - center: - x: -24.0 - y: -97.0 - z: -12.0 - color: '#781283' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_13: - name: 7Networks_LH_Vis_13 - lookupLabel: 13 - originalLookupLabel: 13 - center: - x: -13.0 - y: -43.0 - z: -5.0 - color: '#781284' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_14: - name: 7Networks_LH_Vis_14 - lookupLabel: 14 - originalLookupLabel: 14 - center: - x: -41.0 - y: -87.0 - z: -3.0 - color: '#781285' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_15: - name: 7Networks_LH_Vis_15 - lookupLabel: 15 - originalLookupLabel: 15 - center: - x: -7.0 - y: -98.0 - z: -7.0 - color: '#781287' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_16: - name: 7Networks_LH_Vis_16 - lookupLabel: 16 - originalLookupLabel: 16 - center: - x: -14.0 - y: -57.0 - z: 1.0 - color: '#781288' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_17: - name: 7Networks_LH_Vis_17 - lookupLabel: 17 - originalLookupLabel: 17 - center: - x: -46.0 - y: -73.0 - z: 6.0 - color: '#781289' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_18: - name: 7Networks_LH_Vis_18 - lookupLabel: 18 - originalLookupLabel: 18 - center: - x: -5.0 - y: -88.0 - z: 2.0 - color: '#78128a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_19: - name: 7Networks_LH_Vis_19 - lookupLabel: 19 - originalLookupLabel: 19 - center: - x: -24.0 - y: -96.0 - z: 6.0 - color: '#78128b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_20: - name: 7Networks_LH_Vis_20 - lookupLabel: 20 - originalLookupLabel: 20 - center: - x: -13.0 - y: -49.0 - z: 4.0 - color: '#78128c' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_21: - name: 7Networks_LH_Vis_21 - lookupLabel: 21 - originalLookupLabel: 21 - center: - x: -7.0 - y: -74.0 - z: 9.0 - color: '#78128d' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_22: - name: 7Networks_LH_Vis_22 - lookupLabel: 22 - originalLookupLabel: 22 - center: - x: -19.0 - y: -65.0 - z: 7.0 - color: '#781386' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_23: - name: 7Networks_LH_Vis_23 - lookupLabel: 23 - originalLookupLabel: 23 - center: - x: -39.0 - y: -84.0 - z: 14.0 - color: '#781387' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_24: - name: 7Networks_LH_Vis_24 - lookupLabel: 24 - originalLookupLabel: 24 - center: - x: -11.0 - y: -97.0 - z: 17.0 - color: '#781388' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_25: - name: 7Networks_LH_Vis_25 - lookupLabel: 25 - originalLookupLabel: 25 - center: - x: -3.0 - y: -84.0 - z: 24.0 - color: '#781389' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_26: - name: 7Networks_LH_Vis_26 - lookupLabel: 26 - originalLookupLabel: 26 - center: - x: -12.0 - y: -71.0 - z: 20.0 - color: '#78138a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_27: - name: 7Networks_LH_Vis_27 - lookupLabel: 27 - originalLookupLabel: 27 - center: - x: -25.0 - y: -85.0 - z: 21.0 - color: '#78138b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_28: - name: 7Networks_LH_Vis_28 - lookupLabel: 28 - originalLookupLabel: 28 - center: - x: -32.0 - y: -84.0 - z: 27.0 - color: '#78138c' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_29: - name: 7Networks_LH_Vis_29 - lookupLabel: 29 - originalLookupLabel: 29 - center: - x: -16.0 - y: -89.0 - z: 33.0 - color: '#78138d' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_30: - name: 7Networks_LH_Vis_30 - lookupLabel: 30 - originalLookupLabel: 30 - center: - x: -12.0 - y: -81.0 - z: 36.0 - color: '#781486' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_31: - name: 7Networks_LH_Vis_31 - lookupLabel: 31 - originalLookupLabel: 31 - center: - x: -21.0 - y: -79.0 - z: 45.0 - color: '#781487' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_SomMot_1: - name: 7Networks_LH_SomMot_1 - lookupLabel: 32 - originalLookupLabel: 32 - center: - x: -50.0 - y: -9.0 - z: 0.0 - color: '#4680b3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_2: - name: 7Networks_LH_SomMot_2 - lookupLabel: 33 - originalLookupLabel: 33 - center: - x: -56.0 - y: -22.0 - z: 8.0 - color: '#4680b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_3: - name: 7Networks_LH_SomMot_3 - lookupLabel: 34 - originalLookupLabel: 34 - center: - x: -36.0 - y: -24.0 - z: 10.0 - color: '#4681ad' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_4: - name: 7Networks_LH_SomMot_4 - lookupLabel: 35 - originalLookupLabel: 35 - center: - x: -38.0 - y: -9.0 - z: 13.0 - color: '#4681ae' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_5: - name: 7Networks_LH_SomMot_5 - lookupLabel: 36 - originalLookupLabel: 36 - center: - x: -36.0 - y: -26.0 - z: 19.0 - color: '#4681af' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_6: - name: 7Networks_LH_SomMot_6 - lookupLabel: 37 - originalLookupLabel: 37 - center: - x: -59.0 - y: -37.0 - z: 16.0 - color: '#4681b0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_7: - name: 7Networks_LH_SomMot_7 - lookupLabel: 38 - originalLookupLabel: 38 - center: - x: -41.0 - y: -35.0 - z: 14.0 - color: '#4681b1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_8: - name: 7Networks_LH_SomMot_8 - lookupLabel: 39 - originalLookupLabel: 39 - center: - x: -49.0 - y: -13.0 - z: 14.0 - color: '#4681b2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_9: - name: 7Networks_LH_SomMot_9 - lookupLabel: 40 - originalLookupLabel: 40 - center: - x: -60.0 - y: -2.0 - z: 11.0 - color: '#4681b3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_10: - name: 7Networks_LH_SomMot_10 - lookupLabel: 41 - originalLookupLabel: 41 - center: - x: -48.0 - y: -24.0 - z: 18.0 - color: '#4681b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_11: - name: 7Networks_LH_SomMot_11 - lookupLabel: 42 - originalLookupLabel: 42 - center: - x: -61.0 - y: -18.0 - z: 19.0 - color: '#4682ad' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_12: - name: 7Networks_LH_SomMot_12 - lookupLabel: 43 - originalLookupLabel: 43 - center: - x: -59.0 - y: -2.0 - z: 23.0 - color: '#4682ae' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_13: - name: 7Networks_LH_SomMot_13 - lookupLabel: 44 - originalLookupLabel: 44 - center: - x: -63.0 - y: -10.0 - z: 31.0 - color: '#4682af' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_14: - name: 7Networks_LH_SomMot_14 - lookupLabel: 45 - originalLookupLabel: 45 - center: - x: -53.0 - y: -9.0 - z: 30.0 - color: '#4682b0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_15: - name: 7Networks_LH_SomMot_15 - lookupLabel: 46 - originalLookupLabel: 46 - center: - x: -55.0 - y: -20.0 - z: 41.0 - color: '#4682b1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_16: - name: 7Networks_LH_SomMot_16 - lookupLabel: 47 - originalLookupLabel: 47 - center: - x: -51.0 - y: -7.0 - z: 43.0 - color: '#4682b2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_17: - name: 7Networks_LH_SomMot_17 - lookupLabel: 48 - originalLookupLabel: 48 - center: - x: -48.0 - y: -16.0 - z: 40.0 - color: '#4682b3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_18: - name: 7Networks_LH_SomMot_18 - lookupLabel: 49 - originalLookupLabel: 49 - center: - x: -8.0 - y: -15.0 - z: 47.0 - color: '#4682b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_19: - name: 7Networks_LH_SomMot_19 - lookupLabel: 50 - originalLookupLabel: 50 - center: - x: -41.0 - y: -14.0 - z: 47.0 - color: '#4682b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_20: - name: 7Networks_LH_SomMot_20 - lookupLabel: 51 - originalLookupLabel: 51 - center: - x: -49.0 - y: -17.0 - z: 54.0 - color: '#4682b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_21: - name: 7Networks_LH_SomMot_21 - lookupLabel: 52 - originalLookupLabel: 52 - center: - x: -48.0 - y: -29.0 - z: 58.0 - color: '#4682b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_22: - name: 7Networks_LH_SomMot_22 - lookupLabel: 53 - originalLookupLabel: 53 - center: - x: -39.0 - y: -25.0 - z: 53.0 - color: '#4682b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_23: - name: 7Networks_LH_SomMot_23 - lookupLabel: 54 - originalLookupLabel: 54 - center: - x: -9.0 - y: -38.0 - z: 54.0 - color: '#4682ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_24: - name: 7Networks_LH_SomMot_24 - lookupLabel: 55 - originalLookupLabel: 55 - center: - x: -4.0 - y: -25.0 - z: 56.0 - color: '#4682bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_25: - name: 7Networks_LH_SomMot_25 - lookupLabel: 56 - originalLookupLabel: 56 - center: - x: -4.0 - y: -9.0 - z: 59.0 - color: '#4683b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_26: - name: 7Networks_LH_SomMot_26 - lookupLabel: 57 - originalLookupLabel: 57 - center: - x: -36.0 - y: -19.0 - z: 65.0 - color: '#4683b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_27: - name: 7Networks_LH_SomMot_27 - lookupLabel: 58 - originalLookupLabel: 58 - center: - x: -30.0 - y: -46.0 - z: 63.0 - color: '#4683b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_28: - name: 7Networks_LH_SomMot_28 - lookupLabel: 59 - originalLookupLabel: 59 - center: - x: -32.0 - y: -29.0 - z: 63.0 - color: '#4683b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_29: - name: 7Networks_LH_SomMot_29 - lookupLabel: 60 - originalLookupLabel: 60 - center: - x: -30.0 - y: -38.0 - z: 65.0 - color: '#4683b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_30: - name: 7Networks_LH_SomMot_30 - lookupLabel: 61 - originalLookupLabel: 61 - center: - x: -23.0 - y: -11.0 - z: 65.0 - color: '#4683b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_31: - name: 7Networks_LH_SomMot_31 - lookupLabel: 62 - originalLookupLabel: 62 - center: - x: -19.0 - y: -24.0 - z: 67.0 - color: '#4683ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_32: - name: 7Networks_LH_SomMot_32 - lookupLabel: 63 - originalLookupLabel: 63 - center: - x: -9.0 - y: -42.0 - z: 70.0 - color: '#4683bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_33: - name: 7Networks_LH_SomMot_33 - lookupLabel: 64 - originalLookupLabel: 64 - center: - x: -4.0 - y: -25.0 - z: 69.0 - color: '#4684b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_34: - name: 7Networks_LH_SomMot_34 - lookupLabel: 65 - originalLookupLabel: 65 - center: - x: -14.0 - y: -11.0 - z: 73.0 - color: '#4684b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_35: - name: 7Networks_LH_SomMot_35 - lookupLabel: 66 - originalLookupLabel: 66 - center: - x: -19.0 - y: -31.0 - z: 69.0 - color: '#4684b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_36: - name: 7Networks_LH_SomMot_36 - lookupLabel: 67 - originalLookupLabel: 67 - center: - x: -19.0 - y: -40.0 - z: 72.0 - color: '#4684b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_37: - name: 7Networks_LH_SomMot_37 - lookupLabel: 68 - originalLookupLabel: 68 - center: - x: -12.0 - y: -27.0 - z: 73.0 - color: '#4684b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_DorsAttn_Post_1: - name: 7Networks_LH_DorsAttn_Post_1 - lookupLabel: 69 - originalLookupLabel: 69 - center: - x: -45.0 - y: -42.0 - z: -21.0 - color: '#007607' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_2: - name: 7Networks_LH_DorsAttn_Post_2 - lookupLabel: 70 - originalLookupLabel: 70 - center: - x: -49.0 - y: -56.0 - z: -15.0 - color: '#007608' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_3: - name: 7Networks_LH_DorsAttn_Post_3 - lookupLabel: 71 - originalLookupLabel: 71 - center: - x: -55.0 - y: -62.0 - z: -1.0 - color: '#007609' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_4: - name: 7Networks_LH_DorsAttn_Post_4 - lookupLabel: 72 - originalLookupLabel: 72 - center: - x: -48.0 - y: -65.0 - z: 15.0 - color: '#00760a' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_5: - name: 7Networks_LH_DorsAttn_Post_5 - lookupLabel: 73 - originalLookupLabel: 73 - center: - x: -26.0 - y: -70.0 - z: 31.0 - color: '#00760b' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_6: - name: 7Networks_LH_DorsAttn_Post_6 - lookupLabel: 74 - originalLookupLabel: 74 - center: - x: -55.0 - y: -32.0 - z: 45.0 - color: '#00760c' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_7: - name: 7Networks_LH_DorsAttn_Post_7 - lookupLabel: 75 - originalLookupLabel: 75 - center: - x: -23.0 - y: -65.0 - z: 46.0 - color: '#00760d' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_8: - name: 7Networks_LH_DorsAttn_Post_8 - lookupLabel: 76 - originalLookupLabel: 76 - center: - x: -46.0 - y: -29.0 - z: 44.0 - color: '#00760f' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_9: - name: 7Networks_LH_DorsAttn_Post_9 - lookupLabel: 77 - originalLookupLabel: 77 - center: - x: -33.0 - y: -46.0 - z: 41.0 - color: '#007610' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_10: - name: 7Networks_LH_DorsAttn_Post_10 - lookupLabel: 78 - originalLookupLabel: 78 - center: - x: -29.0 - y: -58.0 - z: 50.0 - color: '#007611' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_11: - name: 7Networks_LH_DorsAttn_Post_11 - lookupLabel: 79 - originalLookupLabel: 79 - center: - x: -39.0 - y: -37.0 - z: 49.0 - color: '#007612' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_12: - name: 7Networks_LH_DorsAttn_Post_12 - lookupLabel: 80 - originalLookupLabel: 80 - center: - x: -36.0 - y: -52.0 - z: 56.0 - color: '#007613' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_13: - name: 7Networks_LH_DorsAttn_Post_13 - lookupLabel: 81 - originalLookupLabel: 81 - center: - x: -15.0 - y: -71.0 - z: 57.0 - color: '#007614' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_14: - name: 7Networks_LH_DorsAttn_Post_14 - lookupLabel: 82 - originalLookupLabel: 82 - center: - x: -29.0 - y: -61.0 - z: 62.0 - color: '#007615' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_15: - name: 7Networks_LH_DorsAttn_Post_15 - lookupLabel: 83 - originalLookupLabel: 83 - center: - x: -7.0 - y: -59.0 - z: 63.0 - color: '#00770e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_16: - name: 7Networks_LH_DorsAttn_Post_16 - lookupLabel: 84 - originalLookupLabel: 84 - center: - x: -20.0 - y: -57.0 - z: 66.0 - color: '#00770f' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_17: - name: 7Networks_LH_DorsAttn_Post_17 - lookupLabel: 85 - originalLookupLabel: 85 - center: - x: -13.0 - y: -50.0 - z: 72.0 - color: '#007710' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_1: - name: 7Networks_LH_DorsAttn_FEF_1 - lookupLabel: 86 - originalLookupLabel: 86 - center: - x: -40.0 - y: -3.0 - z: 51.0 - color: '#007616' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_2: - name: 7Networks_LH_DorsAttn_FEF_2 - lookupLabel: 87 - originalLookupLabel: 87 - center: - x: -25.0 - y: -1.0 - z: 55.0 - color: '#007711' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_3: - name: 7Networks_LH_DorsAttn_FEF_3 - lookupLabel: 88 - originalLookupLabel: 88 - center: - x: -30.0 - y: -8.0 - z: 52.0 - color: '#007712' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_4: - name: 7Networks_LH_DorsAttn_FEF_4 - lookupLabel: 89 - originalLookupLabel: 89 - center: - x: -21.0 - y: 5.0 - z: 65.0 - color: '#007713' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_PrCv_1: - name: 7Networks_LH_DorsAttn_PrCv_1 - lookupLabel: 90 - originalLookupLabel: 90 - center: - x: -49.0 - y: 6.0 - z: 26.0 - color: '#007714' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_PrCv_2: - name: 7Networks_LH_DorsAttn_PrCv_2 - lookupLabel: 91 - originalLookupLabel: 91 - center: - x: -50.0 - y: 3.0 - z: 38.0 - color: '#007715' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_SalVentAttn_ParOper_1: - name: 7Networks_LH_SalVentAttn_ParOper_1 - lookupLabel: 92 - originalLookupLabel: 92 - center: - x: -55.0 - y: -32.0 - z: 22.0 - color: '#c43afb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_2: - name: 7Networks_LH_SalVentAttn_ParOper_2 - lookupLabel: 93 - originalLookupLabel: 93 - center: - x: -58.0 - y: -44.0 - z: 27.0 - color: '#c43afc' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_3: - name: 7Networks_LH_SalVentAttn_ParOper_3 - lookupLabel: 94 - originalLookupLabel: 94 - center: - x: -61.0 - y: -23.0 - z: 33.0 - color: '#c43afd' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_4: - name: 7Networks_LH_SalVentAttn_ParOper_4 - lookupLabel: 95 - originalLookupLabel: 95 - center: - x: -61.0 - y: -36.0 - z: 33.0 - color: '#c43afe' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_TempOcc_1: - name: 7Networks_LH_SalVentAttn_TempOcc_1 - lookupLabel: 96 - originalLookupLabel: 96 - center: - x: -57.0 - y: -54.0 - z: 10.0 - color: '#c43aff' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_1: - name: 7Networks_LH_SalVentAttn_FrOperIns_1 - lookupLabel: 97 - originalLookupLabel: 97 - center: - x: -44.0 - y: 5.0 - z: -17.0 - color: '#c43bf7' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_2: - name: 7Networks_LH_SalVentAttn_FrOperIns_2 - lookupLabel: 98 - originalLookupLabel: 98 - center: - x: -39.0 - y: 2.0 - z: -4.0 - color: '#c43bf8' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_3: - name: 7Networks_LH_SalVentAttn_FrOperIns_3 - lookupLabel: 99 - originalLookupLabel: 99 - center: - x: -33.0 - y: 25.0 - z: -1.0 - color: '#c43bf9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_4: - name: 7Networks_LH_SalVentAttn_FrOperIns_4 - lookupLabel: 100 - originalLookupLabel: 100 - center: - x: -40.0 - y: -15.0 - z: -2.0 - color: '#c43bfb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_5: - name: 7Networks_LH_SalVentAttn_FrOperIns_5 - lookupLabel: 101 - originalLookupLabel: 101 - center: - x: -33.0 - y: 19.0 - z: 8.0 - color: '#c43bfc' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_6: - name: 7Networks_LH_SalVentAttn_FrOperIns_6 - lookupLabel: 102 - originalLookupLabel: 102 - center: - x: -36.0 - y: 4.0 - z: 11.0 - color: '#c43bfd' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_7: - name: 7Networks_LH_SalVentAttn_FrOperIns_7 - lookupLabel: 103 - originalLookupLabel: 103 - center: - x: -43.0 - y: 12.0 - z: 2.0 - color: '#c43bfe' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_8: - name: 7Networks_LH_SalVentAttn_FrOperIns_8 - lookupLabel: 104 - originalLookupLabel: 104 - center: - x: -50.0 - y: 1.0 - z: 5.0 - color: '#c43bff' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_9: - name: 7Networks_LH_SalVentAttn_FrOperIns_9 - lookupLabel: 105 - originalLookupLabel: 105 - center: - x: -52.0 - y: 9.0 - z: 13.0 - color: '#c134fa' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_PFCl_1: - name: 7Networks_LH_SalVentAttn_PFCl_1 - lookupLabel: 106 - originalLookupLabel: 106 - center: - x: -29.0 - y: 43.0 - z: 30.0 - color: '#c134f9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_1: - name: 7Networks_LH_SalVentAttn_Med_1 - lookupLabel: 107 - originalLookupLabel: 107 - center: - x: -6.0 - y: 22.0 - z: 31.0 - color: '#c53af8' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_2: - name: 7Networks_LH_SalVentAttn_Med_2 - lookupLabel: 108 - originalLookupLabel: 108 - center: - x: -7.0 - y: 0.0 - z: 41.0 - color: '#c53af9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_3: - name: 7Networks_LH_SalVentAttn_Med_3 - lookupLabel: 109 - originalLookupLabel: 109 - center: - x: -11.0 - y: -27.0 - z: 41.0 - color: '#c53afb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_4: - name: 7Networks_LH_SalVentAttn_Med_4 - lookupLabel: 110 - originalLookupLabel: 110 - center: - x: -5.0 - y: 9.0 - z: 48.0 - color: '#c53afc' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_5: - name: 7Networks_LH_SalVentAttn_Med_5 - lookupLabel: 111 - originalLookupLabel: 111 - center: - x: -13.0 - y: -41.0 - z: 47.0 - color: '#c53afd' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_6: - name: 7Networks_LH_SalVentAttn_Med_6 - lookupLabel: 112 - originalLookupLabel: 112 - center: - x: -6.0 - y: -49.0 - z: 57.0 - color: '#c53afe' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_7: - name: 7Networks_LH_SalVentAttn_Med_7 - lookupLabel: 113 - originalLookupLabel: 113 - center: - x: -8.0 - y: -3.0 - z: 71.0 - color: '#c53aff' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_Limbic_OFC_1: - name: 7Networks_LH_Limbic_OFC_1 - lookupLabel: 114 - originalLookupLabel: 114 - center: - x: -12.0 - y: 25.0 - z: -21.0 - color: '#dcf8a3' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_2: - name: 7Networks_LH_Limbic_OFC_2 - lookupLabel: 115 - originalLookupLabel: 115 - center: - x: -24.0 - y: 23.0 - z: -20.0 - color: '#dcf8a5' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_3: - name: 7Networks_LH_Limbic_OFC_3 - lookupLabel: 116 - originalLookupLabel: 116 - center: - x: -10.0 - y: 47.0 - z: -21.0 - color: '#dcf8a6' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_4: - name: 7Networks_LH_Limbic_OFC_4 - lookupLabel: 117 - originalLookupLabel: 117 - center: - x: -4.0 - y: 23.0 - z: -19.0 - color: '#dcf8a7' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_5: - name: 7Networks_LH_Limbic_OFC_5 - lookupLabel: 118 - originalLookupLabel: 118 - center: - x: -15.0 - y: 65.0 - z: -8.0 - color: '#dcf8a8' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_1: - name: 7Networks_LH_Limbic_TempPole_1 - lookupLabel: 119 - originalLookupLabel: 119 - center: - x: -37.0 - y: -5.0 - z: -42.0 - color: '#dcf8a4' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_2: - name: 7Networks_LH_Limbic_TempPole_2 - lookupLabel: 120 - originalLookupLabel: 120 - center: - x: -25.0 - y: 6.0 - z: -39.0 - color: '#dcf8a9' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_3: - name: 7Networks_LH_Limbic_TempPole_3 - lookupLabel: 121 - originalLookupLabel: 121 - center: - x: -26.0 - y: -9.0 - z: -33.0 - color: '#dcf8aa' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_4: - name: 7Networks_LH_Limbic_TempPole_4 - lookupLabel: 122 - originalLookupLabel: 122 - center: - x: -54.0 - y: -21.0 - z: -31.0 - color: '#dcf8ab' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_5: - name: 7Networks_LH_Limbic_TempPole_5 - lookupLabel: 123 - originalLookupLabel: 123 - center: - x: -40.0 - y: -21.0 - z: -27.0 - color: '#dcf8ac' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_6: - name: 7Networks_LH_Limbic_TempPole_6 - lookupLabel: 124 - originalLookupLabel: 124 - center: - x: -44.0 - y: 13.0 - z: -34.0 - color: '#dcf9a5' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_7: - name: 7Networks_LH_Limbic_TempPole_7 - lookupLabel: 125 - originalLookupLabel: 125 - center: - x: -32.0 - y: 12.0 - z: -29.0 - color: '#dcf9a6' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_8: - name: 7Networks_LH_Limbic_TempPole_8 - lookupLabel: 126 - originalLookupLabel: 126 - center: - x: -21.0 - y: -21.0 - z: -26.0 - color: '#dcf9a7' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Cont_Par_1: - name: 7Networks_LH_Cont_Par_1 - lookupLabel: 127 - originalLookupLabel: 127 - center: - x: -29.0 - y: -74.0 - z: 42.0 - color: '#e69421' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_2: - name: 7Networks_LH_Cont_Par_2 - lookupLabel: 128 - originalLookupLabel: 128 - center: - x: -58.0 - y: -42.0 - z: 45.0 - color: '#e69423' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_3: - name: 7Networks_LH_Cont_Par_3 - lookupLabel: 129 - originalLookupLabel: 129 - center: - x: -53.0 - y: -50.0 - z: 45.0 - color: '#e69424' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_4: - name: 7Networks_LH_Cont_Par_4 - lookupLabel: 130 - originalLookupLabel: 130 - center: - x: -35.0 - y: -62.0 - z: 48.0 - color: '#e69425' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_5: - name: 7Networks_LH_Cont_Par_5 - lookupLabel: 131 - originalLookupLabel: 131 - center: - x: -42.0 - y: -52.0 - z: 49.0 - color: '#e69426' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_6: - name: 7Networks_LH_Cont_Par_6 - lookupLabel: 132 - originalLookupLabel: 132 - center: - x: -45.0 - y: -41.0 - z: 47.0 - color: '#e69427' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Temp_1: - name: 7Networks_LH_Cont_Temp_1 - lookupLabel: 133 - originalLookupLabel: 133 - center: - x: -60.0 - y: -49.0 - z: -10.0 - color: '#e69428' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_OFC_1: - name: 7Networks_LH_Cont_OFC_1 - lookupLabel: 134 - originalLookupLabel: 134 - center: - x: -27.0 - y: 49.0 - z: -14.0 - color: '#e69520' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_1: - name: 7Networks_LH_Cont_PFCl_1 - lookupLabel: 135 - originalLookupLabel: 135 - center: - x: -42.0 - y: 49.0 - z: -6.0 - color: '#e69521' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_2: - name: 7Networks_LH_Cont_PFCl_2 - lookupLabel: 136 - originalLookupLabel: 136 - center: - x: -48.0 - y: 35.0 - z: 10.0 - color: '#e69522' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_3: - name: 7Networks_LH_Cont_PFCl_3 - lookupLabel: 137 - originalLookupLabel: 137 - center: - x: -38.0 - y: 49.0 - z: 11.0 - color: '#e69524' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_4: - name: 7Networks_LH_Cont_PFCl_4 - lookupLabel: 138 - originalLookupLabel: 138 - center: - x: -28.0 - y: 57.0 - z: 13.0 - color: '#e69525' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_5: - name: 7Networks_LH_Cont_PFCl_5 - lookupLabel: 139 - originalLookupLabel: 139 - center: - x: -42.0 - y: 38.0 - z: 22.0 - color: '#e69526' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_6: - name: 7Networks_LH_Cont_PFCl_6 - lookupLabel: 140 - originalLookupLabel: 140 - center: - x: -45.0 - y: 20.0 - z: 27.0 - color: '#e69527' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_7: - name: 7Networks_LH_Cont_PFCl_7 - lookupLabel: 141 - originalLookupLabel: 141 - center: - x: -39.0 - y: 7.0 - z: 34.0 - color: '#e69528' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_8: - name: 7Networks_LH_Cont_PFCl_8 - lookupLabel: 142 - originalLookupLabel: 142 - center: - x: -36.0 - y: 32.0 - z: 38.0 - color: '#e69529' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCv_1: - name: 7Networks_LH_Cont_PFCv_1 - lookupLabel: 143 - originalLookupLabel: 143 - center: - x: -34.0 - y: 16.0 - z: -8.0 - color: '#e79424' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_pCun_1: - name: 7Networks_LH_Cont_pCun_1 - lookupLabel: 144 - originalLookupLabel: 144 - center: - x: -9.0 - y: -77.0 - z: 45.0 - color: '#e79523' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_pCun_2: - name: 7Networks_LH_Cont_pCun_2 - lookupLabel: 145 - originalLookupLabel: 145 - center: - x: -5.0 - y: -64.0 - z: 52.0 - color: '#e79524' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_1: - name: 7Networks_LH_Cont_Cing_1 - lookupLabel: 146 - originalLookupLabel: 146 - center: - x: -3.0 - y: 5.0 - z: 29.0 - color: '#e79525' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_2: - name: 7Networks_LH_Cont_Cing_2 - lookupLabel: 147 - originalLookupLabel: 147 - center: - x: -4.0 - y: -22.0 - z: 29.0 - color: '#e79526' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCmp_1: - name: 7Networks_LH_Cont_PFCmp_1 - lookupLabel: 148 - originalLookupLabel: 148 - center: - x: -4.0 - y: 28.0 - z: 47.0 - color: '#e69422' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Default_Temp_1: - name: 7Networks_LH_Default_Temp_1 - lookupLabel: 149 - originalLookupLabel: 149 - center: - x: -54.0 - y: -2.0 - z: -30.0 - color: '#cd3e48' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_2: - name: 7Networks_LH_Default_Temp_2 - lookupLabel: 150 - originalLookupLabel: 150 - center: - x: -62.0 - y: -18.0 - z: -21.0 - color: '#cd3e49' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_3: - name: 7Networks_LH_Default_Temp_3 - lookupLabel: 151 - originalLookupLabel: 151 - center: - x: -60.0 - y: -36.0 - z: -18.0 - color: '#cd3e4a' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_4: - name: 7Networks_LH_Default_Temp_4 - lookupLabel: 152 - originalLookupLabel: 152 - center: - x: -57.0 - y: -9.0 - z: -14.0 - color: '#cd3e4b' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_5: - name: 7Networks_LH_Default_Temp_5 - lookupLabel: 153 - originalLookupLabel: 153 - center: - x: -53.0 - y: 6.0 - z: -11.0 - color: '#cd3e4c' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_6: - name: 7Networks_LH_Default_Temp_6 - lookupLabel: 154 - originalLookupLabel: 154 - center: - x: -61.0 - y: -35.0 - z: -3.0 - color: '#cd3e4d' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_7: - name: 7Networks_LH_Default_Temp_7 - lookupLabel: 155 - originalLookupLabel: 155 - center: - x: -52.0 - y: -22.0 - z: -6.0 - color: '#cd3e4e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_8: - name: 7Networks_LH_Default_Temp_8 - lookupLabel: 156 - originalLookupLabel: 156 - center: - x: -61.0 - y: -13.0 - z: -3.0 - color: '#cd3e50' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_9: - name: 7Networks_LH_Default_Temp_9 - lookupLabel: 157 - originalLookupLabel: 157 - center: - x: -62.0 - y: -32.0 - z: 5.0 - color: '#cd3e51' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_10: - name: 7Networks_LH_Default_Temp_10 - lookupLabel: 158 - originalLookupLabel: 158 - center: - x: -52.0 - y: -43.0 - z: 5.0 - color: '#cd3e52' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_1: - name: 7Networks_LH_Default_Par_1 - lookupLabel: 159 - originalLookupLabel: 159 - center: - x: -59.0 - y: -49.0 - z: 16.0 - color: '#cd3e53' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_2: - name: 7Networks_LH_Default_Par_2 - lookupLabel: 160 - originalLookupLabel: 160 - center: - x: -45.0 - y: -58.0 - z: 21.0 - color: '#cd3e54' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_3: - name: 7Networks_LH_Default_Par_3 - lookupLabel: 161 - originalLookupLabel: 161 - center: - x: -40.0 - y: -79.0 - z: 30.0 - color: '#cd3e55' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_4: - name: 7Networks_LH_Default_Par_4 - lookupLabel: 162 - originalLookupLabel: 162 - center: - x: -47.0 - y: -64.0 - z: 31.0 - color: '#cd3e56' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_5: - name: 7Networks_LH_Default_Par_5 - lookupLabel: 163 - originalLookupLabel: 163 - center: - x: -57.0 - y: -55.0 - z: 30.0 - color: '#cd3f4f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_6: - name: 7Networks_LH_Default_Par_6 - lookupLabel: 164 - originalLookupLabel: 164 - center: - x: -41.0 - y: -72.0 - z: 43.0 - color: '#cd3f50' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_7: - name: 7Networks_LH_Default_Par_7 - lookupLabel: 165 - originalLookupLabel: 165 - center: - x: -49.0 - y: -60.0 - z: 47.0 - color: '#cd3f51' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_1: - name: 7Networks_LH_Default_PFC_1 - lookupLabel: 166 - originalLookupLabel: 166 - center: - x: -36.0 - y: 22.0 - z: -16.0 - color: '#cd3f47' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_2: - name: 7Networks_LH_Default_PFC_2 - lookupLabel: 167 - originalLookupLabel: 167 - center: - x: -36.0 - y: 37.0 - z: -13.0 - color: '#cd3f48' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_3: - name: 7Networks_LH_Default_PFC_3 - lookupLabel: 168 - originalLookupLabel: 168 - center: - x: -5.0 - y: 55.0 - z: -10.0 - color: '#cd3f49' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_4: - name: 7Networks_LH_Default_PFC_4 - lookupLabel: 169 - originalLookupLabel: 169 - center: - x: -6.0 - y: 35.0 - z: -9.0 - color: '#cd3f4a' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_5: - name: 7Networks_LH_Default_PFC_5 - lookupLabel: 170 - originalLookupLabel: 170 - center: - x: -46.0 - y: 32.0 - z: -10.0 - color: '#cd3f4b' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_6: - name: 7Networks_LH_Default_PFC_6 - lookupLabel: 171 - originalLookupLabel: 171 - center: - x: -28.0 - y: 58.0 - z: -1.0 - color: '#cd3f4c' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_7: - name: 7Networks_LH_Default_PFC_7 - lookupLabel: 172 - originalLookupLabel: 172 - center: - x: -48.0 - y: 28.0 - z: 0.0 - color: '#cd3f4d' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_8: - name: 7Networks_LH_Default_PFC_8 - lookupLabel: 173 - originalLookupLabel: 173 - center: - x: -6.0 - y: 59.0 - z: 7.0 - color: '#cd3f52' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_9: - name: 7Networks_LH_Default_PFC_9 - lookupLabel: 174 - originalLookupLabel: 174 - center: - x: -6.0 - y: 45.0 - z: 6.0 - color: '#cd3f53' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_10: - name: 7Networks_LH_Default_PFC_10 - lookupLabel: 175 - originalLookupLabel: 175 - center: - x: -53.0 - y: 19.0 - z: 11.0 - color: '#cd3f54' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_11: - name: 7Networks_LH_Default_PFC_11 - lookupLabel: 176 - originalLookupLabel: 176 - center: - x: -16.0 - y: 67.0 - z: 8.0 - color: '#cd3f55' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_12: - name: 7Networks_LH_Default_PFC_12 - lookupLabel: 177 - originalLookupLabel: 177 - center: - x: -5.0 - y: 34.0 - z: 21.0 - color: '#cd404e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_13: - name: 7Networks_LH_Default_PFC_13 - lookupLabel: 178 - originalLookupLabel: 178 - center: - x: -4.0 - y: 51.0 - z: 28.0 - color: '#cd404f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_14: - name: 7Networks_LH_Default_PFC_14 - lookupLabel: 179 - originalLookupLabel: 179 - center: - x: -14.0 - y: 58.0 - z: 31.0 - color: '#cd4050' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_15: - name: 7Networks_LH_Default_PFC_15 - lookupLabel: 180 - originalLookupLabel: 180 - center: - x: -22.0 - y: 51.0 - z: 31.0 - color: '#cd4051' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_16: - name: 7Networks_LH_Default_PFC_16 - lookupLabel: 181 - originalLookupLabel: 181 - center: - x: -25.0 - y: 28.0 - z: 43.0 - color: '#cd4052' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_17: - name: 7Networks_LH_Default_PFC_17 - lookupLabel: 182 - originalLookupLabel: 182 - center: - x: -41.0 - y: 19.0 - z: 48.0 - color: '#cd4053' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_18: - name: 7Networks_LH_Default_PFC_18 - lookupLabel: 183 - originalLookupLabel: 183 - center: - x: -8.0 - y: 43.0 - z: 51.0 - color: '#cd4054' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_19: - name: 7Networks_LH_Default_PFC_19 - lookupLabel: 184 - originalLookupLabel: 184 - center: - x: -18.0 - y: 36.0 - z: 48.0 - color: '#cd4055' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_20: - name: 7Networks_LH_Default_PFC_20 - lookupLabel: 185 - originalLookupLabel: 185 - center: - x: -42.0 - y: 7.0 - z: 48.0 - color: '#cd414e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_21: - name: 7Networks_LH_Default_PFC_21 - lookupLabel: 186 - originalLookupLabel: 186 - center: - x: -30.0 - y: 14.0 - z: 57.0 - color: '#cd414f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_22: - name: 7Networks_LH_Default_PFC_22 - lookupLabel: 187 - originalLookupLabel: 187 - center: - x: -22.0 - y: 20.0 - z: 52.0 - color: '#cd4150' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_23: - name: 7Networks_LH_Default_PFC_23 - lookupLabel: 188 - originalLookupLabel: 188 - center: - x: -13.0 - y: 24.0 - z: 61.0 - color: '#cd4151' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_24: - name: 7Networks_LH_Default_PFC_24 - lookupLabel: 189 - originalLookupLabel: 189 - center: - x: -6.0 - y: 10.0 - z: 65.0 - color: '#cd4152' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_1: - name: 7Networks_LH_Default_pCunPCC_1 - lookupLabel: 190 - originalLookupLabel: 190 - center: - x: -8.0 - y: -52.0 - z: 9.0 - color: '#cd3f4e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_2: - name: 7Networks_LH_Default_pCunPCC_2 - lookupLabel: 191 - originalLookupLabel: 191 - center: - x: -13.0 - y: -61.0 - z: 19.0 - color: '#cd3f56' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_3: - name: 7Networks_LH_Default_pCunPCC_3 - lookupLabel: 192 - originalLookupLabel: 192 - center: - x: -4.0 - y: -53.0 - z: 20.0 - color: '#cd4056' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_4: - name: 7Networks_LH_Default_pCunPCC_4 - lookupLabel: 193 - originalLookupLabel: 193 - center: - x: -6.0 - y: -41.0 - z: 24.0 - color: '#cd4153' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_5: - name: 7Networks_LH_Default_pCunPCC_5 - lookupLabel: 194 - originalLookupLabel: 194 - center: - x: -10.0 - y: -70.0 - z: 32.0 - color: '#cd4154' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_6: - name: 7Networks_LH_Default_pCunPCC_6 - lookupLabel: 195 - originalLookupLabel: 195 - center: - x: -5.0 - y: -60.0 - z: 30.0 - color: '#cd4155' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_7: - name: 7Networks_LH_Default_pCunPCC_7 - lookupLabel: 196 - originalLookupLabel: 196 - center: - x: -7.0 - y: -44.0 - z: 32.0 - color: '#cd4156' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_8: - name: 7Networks_LH_Default_pCunPCC_8 - lookupLabel: 197 - originalLookupLabel: 197 - center: - x: -4.0 - y: -34.0 - z: 38.0 - color: '#cd424f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_9: - name: 7Networks_LH_Default_pCunPCC_9 - lookupLabel: 198 - originalLookupLabel: 198 - center: - x: -3.0 - y: -15.0 - z: 37.0 - color: '#cd4250' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_10: - name: 7Networks_LH_Default_pCunPCC_10 - lookupLabel: 199 - originalLookupLabel: 199 - center: - x: -3.0 - y: -68.0 - z: 41.0 - color: '#cd4251' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_11: - name: 7Networks_LH_Default_pCunPCC_11 - lookupLabel: 200 - originalLookupLabel: 200 - center: - x: -7.0 - y: -51.0 - z: 43.0 - color: '#cd4252' - hemisphere: left - hasParent: - - LH_Default - 7Networks_RH_Vis_1: - name: 7Networks_RH_Vis_1 - lookupLabel: 201 - originalLookupLabel: 201 - center: - x: 34.0 - y: -37.0 - z: -23.0 - color: '#7c1182' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_2: - name: 7Networks_RH_Vis_2 - lookupLabel: 202 - originalLookupLabel: 202 - center: - x: 31.0 - y: -31.0 - z: -18.0 - color: '#7c1183' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_3: - name: 7Networks_RH_Vis_3 - lookupLabel: 203 - originalLookupLabel: 203 - center: - x: 36.0 - y: -53.0 - z: -17.0 - color: '#7c1184' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_4: - name: 7Networks_RH_Vis_4 - lookupLabel: 204 - originalLookupLabel: 204 - center: - x: 37.0 - y: -73.0 - z: -16.0 - color: '#7c1185' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_5: - name: 7Networks_RH_Vis_5 - lookupLabel: 205 - originalLookupLabel: 205 - center: - x: 26.0 - y: -52.0 - z: -9.0 - color: '#7c1186' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_6: - name: 7Networks_RH_Vis_6 - lookupLabel: 206 - originalLookupLabel: 206 - center: - x: 23.0 - y: -74.0 - z: -11.0 - color: '#7c1187' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_7: - name: 7Networks_RH_Vis_7 - lookupLabel: 207 - originalLookupLabel: 207 - center: - x: 18.0 - y: -36.0 - z: -12.0 - color: '#7c1280' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_8: - name: 7Networks_RH_Vis_8 - lookupLabel: 208 - originalLookupLabel: 208 - center: - x: 20.0 - y: -88.0 - z: -13.0 - color: '#7c1281' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_9: - name: 7Networks_RH_Vis_9 - lookupLabel: 209 - originalLookupLabel: 209 - center: - x: 50.0 - y: -64.0 - z: -9.0 - color: '#7c1282' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_10: - name: 7Networks_RH_Vis_10 - lookupLabel: 210 - originalLookupLabel: 210 - center: - x: 42.0 - y: -84.0 - z: -12.0 - color: '#7c1283' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_11: - name: 7Networks_RH_Vis_11 - lookupLabel: 211 - originalLookupLabel: 211 - center: - x: 9.0 - y: -72.0 - z: -5.0 - color: '#7c1284' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_12: - name: 7Networks_RH_Vis_12 - lookupLabel: 212 - originalLookupLabel: 212 - center: - x: 13.0 - y: -58.0 - z: -3.0 - color: '#7c1285' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_13: - name: 7Networks_RH_Vis_13 - lookupLabel: 213 - originalLookupLabel: 213 - center: - x: 25.0 - y: -97.0 - z: -10.0 - color: '#7c1286' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_14: - name: 7Networks_RH_Vis_14 - lookupLabel: 214 - originalLookupLabel: 214 - center: - x: 18.0 - y: -45.0 - z: -3.0 - color: '#7c1288' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_15: - name: 7Networks_RH_Vis_15 - lookupLabel: 215 - originalLookupLabel: 215 - center: - x: 8.0 - y: -92.0 - z: -2.0 - color: '#7c1289' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_16: - name: 7Networks_RH_Vis_16 - lookupLabel: 216 - originalLookupLabel: 216 - center: - x: 48.0 - y: -66.0 - z: 4.0 - color: '#7c128a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_17: - name: 7Networks_RH_Vis_17 - lookupLabel: 217 - originalLookupLabel: 217 - center: - x: 14.0 - y: -46.0 - z: 4.0 - color: '#7c128b' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_18: - name: 7Networks_RH_Vis_18 - lookupLabel: 218 - originalLookupLabel: 218 - center: - x: 35.0 - y: -89.0 - z: 2.0 - color: '#7c128c' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_19: - name: 7Networks_RH_Vis_19 - lookupLabel: 219 - originalLookupLabel: 219 - center: - x: 9.0 - y: -74.0 - z: 9.0 - color: '#7c128d' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_20: - name: 7Networks_RH_Vis_20 - lookupLabel: 220 - originalLookupLabel: 220 - center: - x: 22.0 - y: -59.0 - z: 6.0 - color: '#7c128e' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_21: - name: 7Networks_RH_Vis_21 - lookupLabel: 221 - originalLookupLabel: 221 - center: - x: 24.0 - y: -99.0 - z: 7.0 - color: '#7c1387' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_22: - name: 7Networks_RH_Vis_22 - lookupLabel: 222 - originalLookupLabel: 222 - center: - x: 43.0 - y: -79.0 - z: 10.0 - color: '#7c1388' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_23: - name: 7Networks_RH_Vis_23 - lookupLabel: 223 - originalLookupLabel: 223 - center: - x: 13.0 - y: -94.0 - z: 19.0 - color: '#7c1389' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_24: - name: 7Networks_RH_Vis_24 - lookupLabel: 224 - originalLookupLabel: 224 - center: - x: 16.0 - y: -66.0 - z: 19.0 - color: '#7c138a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_25: - name: 7Networks_RH_Vis_25 - lookupLabel: 225 - originalLookupLabel: 225 - center: - x: 5.0 - y: -80.0 - z: 24.0 - color: '#7c138b' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_26: - name: 7Networks_RH_Vis_26 - lookupLabel: 226 - originalLookupLabel: 226 - center: - x: 27.0 - y: -87.0 - z: 21.0 - color: '#7c138c' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_27: - name: 7Networks_RH_Vis_27 - lookupLabel: 227 - originalLookupLabel: 227 - center: - x: 36.0 - y: -79.0 - z: 24.0 - color: '#7c138d' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_28: - name: 7Networks_RH_Vis_28 - lookupLabel: 228 - originalLookupLabel: 228 - center: - x: 14.0 - y: -78.0 - z: 34.0 - color: '#7c138e' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_29: - name: 7Networks_RH_Vis_29 - lookupLabel: 229 - originalLookupLabel: 229 - center: - x: 16.0 - y: -87.0 - z: 36.0 - color: '#7c1487' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_30: - name: 7Networks_RH_Vis_30 - lookupLabel: 230 - originalLookupLabel: 230 - center: - x: 29.0 - y: -78.0 - z: 37.0 - color: '#7c1488' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_SomMot_1: - name: 7Networks_RH_SomMot_1 - lookupLabel: 231 - originalLookupLabel: 231 - center: - x: 53.0 - y: 3.0 - z: -6.0 - color: '#4a80b3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_2: - name: 7Networks_RH_SomMot_2 - lookupLabel: 232 - originalLookupLabel: 232 - center: - x: 62.0 - y: -19.0 - z: 0.0 - color: '#4a80b4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_3: - name: 7Networks_RH_SomMot_3 - lookupLabel: 233 - originalLookupLabel: 233 - center: - x: 53.0 - y: -14.0 - z: 6.0 - color: '#4a80b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_4: - name: 7Networks_RH_SomMot_4 - lookupLabel: 234 - originalLookupLabel: 234 - center: - x: 39.0 - y: -19.0 - z: 5.0 - color: '#4a81ae' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_5: - name: 7Networks_RH_SomMot_5 - lookupLabel: 235 - originalLookupLabel: 235 - center: - x: 37.0 - y: -8.0 - z: 14.0 - color: '#4a81af' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_6: - name: 7Networks_RH_SomMot_6 - lookupLabel: 236 - originalLookupLabel: 236 - center: - x: 35.0 - y: -21.0 - z: 14.0 - color: '#4a81b0' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_7: - name: 7Networks_RH_SomMot_7 - lookupLabel: 237 - originalLookupLabel: 237 - center: - x: 60.0 - y: -24.0 - z: 11.0 - color: '#4a81b1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_8: - name: 7Networks_RH_SomMot_8 - lookupLabel: 238 - originalLookupLabel: 238 - center: - x: 65.0 - y: -34.0 - z: 11.0 - color: '#4a81b2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_9: - name: 7Networks_RH_SomMot_9 - lookupLabel: 239 - originalLookupLabel: 239 - center: - x: 41.0 - y: -13.0 - z: 18.0 - color: '#4a81b3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_10: - name: 7Networks_RH_SomMot_10 - lookupLabel: 240 - originalLookupLabel: 240 - center: - x: 41.0 - y: -29.0 - z: 18.0 - color: '#4a81b4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_11: - name: 7Networks_RH_SomMot_11 - lookupLabel: 241 - originalLookupLabel: 241 - center: - x: 50.0 - y: -10.0 - z: 13.0 - color: '#4a81b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_12: - name: 7Networks_RH_SomMot_12 - lookupLabel: 242 - originalLookupLabel: 242 - center: - x: 59.0 - y: 1.0 - z: 10.0 - color: '#4a82ae' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_13: - name: 7Networks_RH_SomMot_13 - lookupLabel: 243 - originalLookupLabel: 243 - center: - x: 49.0 - y: -21.0 - z: 19.0 - color: '#4a82af' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_14: - name: 7Networks_RH_SomMot_14 - lookupLabel: 244 - originalLookupLabel: 244 - center: - x: 62.0 - y: -12.0 - z: 15.0 - color: '#4a82b0' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_15: - name: 7Networks_RH_SomMot_15 - lookupLabel: 245 - originalLookupLabel: 245 - center: - x: 61.0 - y: 6.0 - z: 30.0 - color: '#4a82b1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_16: - name: 7Networks_RH_SomMot_16 - lookupLabel: 246 - originalLookupLabel: 246 - center: - x: 60.0 - y: -5.0 - z: 27.0 - color: '#4a82b2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_17: - name: 7Networks_RH_SomMot_17 - lookupLabel: 247 - originalLookupLabel: 247 - center: - x: 61.0 - y: -14.0 - z: 30.0 - color: '#4a82b3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_18: - name: 7Networks_RH_SomMot_18 - lookupLabel: 248 - originalLookupLabel: 248 - center: - x: 52.0 - y: -6.0 - z: 37.0 - color: '#4a82b4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_19: - name: 7Networks_RH_SomMot_19 - lookupLabel: 249 - originalLookupLabel: 249 - center: - x: 54.0 - y: -17.0 - z: 40.0 - color: '#4a82b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_20: - name: 7Networks_RH_SomMot_20 - lookupLabel: 250 - originalLookupLabel: 250 - center: - x: 11.0 - y: -17.0 - z: 41.0 - color: '#4a82b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_21: - name: 7Networks_RH_SomMot_21 - lookupLabel: 251 - originalLookupLabel: 251 - center: - x: 52.0 - y: -13.0 - z: 49.0 - color: '#4a82b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_22: - name: 7Networks_RH_SomMot_22 - lookupLabel: 252 - originalLookupLabel: 252 - center: - x: 44.0 - y: -10.0 - z: 49.0 - color: '#4a82b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_23: - name: 7Networks_RH_SomMot_23 - lookupLabel: 253 - originalLookupLabel: 253 - center: - x: 49.0 - y: -26.0 - z: 56.0 - color: '#4a82ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_24: - name: 7Networks_RH_SomMot_24 - lookupLabel: 254 - originalLookupLabel: 254 - center: - x: 7.0 - y: -10.0 - z: 51.0 - color: '#4a82bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_25: - name: 7Networks_RH_SomMot_25 - lookupLabel: 255 - originalLookupLabel: 255 - center: - x: 43.0 - y: -21.0 - z: 54.0 - color: '#4a82bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_26: - name: 7Networks_RH_SomMot_26 - lookupLabel: 256 - originalLookupLabel: 256 - center: - x: 37.0 - y: -20.0 - z: 64.0 - color: '#4a83b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_27: - name: 7Networks_RH_SomMot_27 - lookupLabel: 257 - originalLookupLabel: 257 - center: - x: 32.0 - y: -34.0 - z: 63.0 - color: '#4a83b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_28: - name: 7Networks_RH_SomMot_28 - lookupLabel: 258 - originalLookupLabel: 258 - center: - x: 31.0 - y: -41.0 - z: 64.0 - color: '#4a83b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_29: - name: 7Networks_RH_SomMot_29 - lookupLabel: 259 - originalLookupLabel: 259 - center: - x: 34.0 - y: -27.0 - z: 61.0 - color: '#4a83b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_30: - name: 7Networks_RH_SomMot_30 - lookupLabel: 260 - originalLookupLabel: 260 - center: - x: 4.0 - y: -25.0 - z: 58.0 - color: '#4a83b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_31: - name: 7Networks_RH_SomMot_31 - lookupLabel: 261 - originalLookupLabel: 261 - center: - x: 29.0 - y: -11.0 - z: 65.0 - color: '#4a83ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_32: - name: 7Networks_RH_SomMot_32 - lookupLabel: 262 - originalLookupLabel: 262 - center: - x: 9.0 - y: -40.0 - z: 68.0 - color: '#4a83bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_33: - name: 7Networks_RH_SomMot_33 - lookupLabel: 263 - originalLookupLabel: 263 - center: - x: 21.0 - y: -24.0 - z: 67.0 - color: '#4a83bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_34: - name: 7Networks_RH_SomMot_34 - lookupLabel: 264 - originalLookupLabel: 264 - center: - x: 22.0 - y: -29.0 - z: 68.0 - color: '#4a84b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_35: - name: 7Networks_RH_SomMot_35 - lookupLabel: 265 - originalLookupLabel: 265 - center: - x: 22.0 - y: -35.0 - z: 71.0 - color: '#4a84b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_36: - name: 7Networks_RH_SomMot_36 - lookupLabel: 266 - originalLookupLabel: 266 - center: - x: 17.0 - y: -6.0 - z: 69.0 - color: '#4a84b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_37: - name: 7Networks_RH_SomMot_37 - lookupLabel: 267 - originalLookupLabel: 267 - center: - x: 16.0 - y: -47.0 - z: 74.0 - color: '#4a84b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_38: - name: 7Networks_RH_SomMot_38 - lookupLabel: 268 - originalLookupLabel: 268 - center: - x: 5.0 - y: -22.0 - z: 72.0 - color: '#4a84b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_39: - name: 7Networks_RH_SomMot_39 - lookupLabel: 269 - originalLookupLabel: 269 - center: - x: 17.0 - y: -18.0 - z: 73.0 - color: '#4a84ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_40: - name: 7Networks_RH_SomMot_40 - lookupLabel: 270 - originalLookupLabel: 270 - center: - x: 13.0 - y: -33.0 - z: 76.0 - color: '#4a84bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_DorsAttn_Post_1: - name: 7Networks_RH_DorsAttn_Post_1 - lookupLabel: 271 - originalLookupLabel: 271 - center: - x: 50.0 - y: -49.0 - z: -18.0 - color: '#04760f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_2: - name: 7Networks_RH_DorsAttn_Post_2 - lookupLabel: 272 - originalLookupLabel: 272 - center: - x: 59.0 - y: -55.0 - z: -2.0 - color: '#047708' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_3: - name: 7Networks_RH_DorsAttn_Post_3 - lookupLabel: 273 - originalLookupLabel: 273 - center: - x: 54.0 - y: -56.0 - z: 12.0 - color: '#047709' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_4: - name: 7Networks_RH_DorsAttn_Post_4 - lookupLabel: 274 - originalLookupLabel: 274 - center: - x: 45.0 - y: -75.0 - z: 31.0 - color: '#04770a' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_5: - name: 7Networks_RH_DorsAttn_Post_5 - lookupLabel: 275 - originalLookupLabel: 275 - center: - x: 32.0 - y: -66.0 - z: 35.0 - color: '#04770b' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_6: - name: 7Networks_RH_DorsAttn_Post_6 - lookupLabel: 276 - originalLookupLabel: 276 - center: - x: 57.0 - y: -23.0 - z: 44.0 - color: '#04770c' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_7: - name: 7Networks_RH_DorsAttn_Post_7 - lookupLabel: 277 - originalLookupLabel: 277 - center: - x: 19.0 - y: -79.0 - z: 50.0 - color: '#04770d' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_8: - name: 7Networks_RH_DorsAttn_Post_8 - lookupLabel: 278 - originalLookupLabel: 278 - center: - x: 44.0 - y: -37.0 - z: 50.0 - color: '#04770e' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_9: - name: 7Networks_RH_DorsAttn_Post_9 - lookupLabel: 279 - originalLookupLabel: 279 - center: - x: 45.0 - y: -28.0 - z: 42.0 - color: '#047710' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_10: - name: 7Networks_RH_DorsAttn_Post_10 - lookupLabel: 280 - originalLookupLabel: 280 - center: - x: 31.0 - y: -64.0 - z: 53.0 - color: '#047711' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_11: - name: 7Networks_RH_DorsAttn_Post_11 - lookupLabel: 281 - originalLookupLabel: 281 - center: - x: 36.0 - y: -44.0 - z: 45.0 - color: '#047712' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_12: - name: 7Networks_RH_DorsAttn_Post_12 - lookupLabel: 282 - originalLookupLabel: 282 - center: - x: 21.0 - y: -69.0 - z: 53.0 - color: '#047713' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_13: - name: 7Networks_RH_DorsAttn_Post_13 - lookupLabel: 283 - originalLookupLabel: 283 - center: - x: 35.0 - y: -36.0 - z: 51.0 - color: '#047714' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_14: - name: 7Networks_RH_DorsAttn_Post_14 - lookupLabel: 284 - originalLookupLabel: 284 - center: - x: 34.0 - y: -50.0 - z: 54.0 - color: '#047715' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_15: - name: 7Networks_RH_DorsAttn_Post_15 - lookupLabel: 285 - originalLookupLabel: 285 - center: - x: 8.0 - y: -71.0 - z: 53.0 - color: '#047716' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_16: - name: 7Networks_RH_DorsAttn_Post_16 - lookupLabel: 286 - originalLookupLabel: 286 - center: - x: 27.0 - y: -58.0 - z: 61.0 - color: '#04780f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_17: - name: 7Networks_RH_DorsAttn_Post_17 - lookupLabel: 287 - originalLookupLabel: 287 - center: - x: 7.0 - y: -54.0 - z: 59.0 - color: '#047810' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_18: - name: 7Networks_RH_DorsAttn_Post_18 - lookupLabel: 288 - originalLookupLabel: 288 - center: - x: 14.0 - y: -64.0 - z: 65.0 - color: '#047811' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_19: - name: 7Networks_RH_DorsAttn_Post_19 - lookupLabel: 289 - originalLookupLabel: 289 - center: - x: 24.0 - y: -50.0 - z: 68.0 - color: '#047812' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_1: - name: 7Networks_RH_DorsAttn_FEF_1 - lookupLabel: 290 - originalLookupLabel: 290 - center: - x: 39.0 - y: -3.0 - z: 53.0 - color: '#05760f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_2: - name: 7Networks_RH_DorsAttn_FEF_2 - lookupLabel: 291 - originalLookupLabel: 291 - center: - x: 27.0 - y: -3.0 - z: 52.0 - color: '#057610' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_3: - name: 7Networks_RH_DorsAttn_FEF_3 - lookupLabel: 292 - originalLookupLabel: 292 - center: - x: 25.0 - y: -3.0 - z: 64.0 - color: '#057611' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_PrCv_1: - name: 7Networks_RH_DorsAttn_PrCv_1 - lookupLabel: 293 - originalLookupLabel: 293 - center: - x: 49.0 - y: 8.0 - z: 25.0 - color: '#057612' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_SalVentAttn_TempOccPar_1: - name: 7Networks_RH_SalVentAttn_TempOccPar_1 - lookupLabel: 294 - originalLookupLabel: 294 - center: - x: 59.0 - y: -46.0 - z: 7.0 - color: '#c93af9' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_2: - name: 7Networks_RH_SalVentAttn_TempOccPar_2 - lookupLabel: 295 - originalLookupLabel: 295 - center: - x: 51.0 - y: -41.0 - z: 13.0 - color: '#c93afa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_3: - name: 7Networks_RH_SalVentAttn_TempOccPar_3 - lookupLabel: 296 - originalLookupLabel: 296 - center: - x: 62.0 - y: -40.0 - z: 22.0 - color: '#c93afc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_4: - name: 7Networks_RH_SalVentAttn_TempOccPar_4 - lookupLabel: 297 - originalLookupLabel: 297 - center: - x: 58.0 - y: -31.0 - z: 24.0 - color: '#c93afd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_5: - name: 7Networks_RH_SalVentAttn_TempOccPar_5 - lookupLabel: 298 - originalLookupLabel: 298 - center: - x: 60.0 - y: -22.0 - z: 22.0 - color: '#c93afe' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_6: - name: 7Networks_RH_SalVentAttn_TempOccPar_6 - lookupLabel: 299 - originalLookupLabel: 299 - center: - x: 63.0 - y: -26.0 - z: 38.0 - color: '#c93aff' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_7: - name: 7Networks_RH_SalVentAttn_TempOccPar_7 - lookupLabel: 300 - originalLookupLabel: 300 - center: - x: 62.0 - y: -37.0 - z: 37.0 - color: '#c633fa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_PrC_1: - name: 7Networks_RH_SalVentAttn_PrC_1 - lookupLabel: 301 - originalLookupLabel: 301 - center: - x: 51.0 - y: 3.0 - z: 41.0 - color: '#c93bfb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_1: - name: 7Networks_RH_SalVentAttn_FrOperIns_1 - lookupLabel: 302 - originalLookupLabel: 302 - center: - x: 40.0 - y: 5.0 - z: -15.0 - color: '#c93bf9' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_2: - name: 7Networks_RH_SalVentAttn_FrOperIns_2 - lookupLabel: 303 - originalLookupLabel: 303 - center: - x: 41.0 - y: 8.0 - z: -3.0 - color: '#c93bfa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_3: - name: 7Networks_RH_SalVentAttn_FrOperIns_3 - lookupLabel: 304 - originalLookupLabel: 304 - center: - x: 40.0 - y: -10.0 - z: -4.0 - color: '#c93bfc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_4: - name: 7Networks_RH_SalVentAttn_FrOperIns_4 - lookupLabel: 305 - originalLookupLabel: 305 - center: - x: 39.0 - y: -2.0 - z: 6.0 - color: '#c93bfd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_5: - name: 7Networks_RH_SalVentAttn_FrOperIns_5 - lookupLabel: 306 - originalLookupLabel: 306 - center: - x: 37.0 - y: 23.0 - z: 5.0 - color: '#c93bfe' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_6: - name: 7Networks_RH_SalVentAttn_FrOperIns_6 - lookupLabel: 307 - originalLookupLabel: 307 - center: - x: 38.0 - y: 7.0 - z: 11.0 - color: '#c93bff' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_7: - name: 7Networks_RH_SalVentAttn_FrOperIns_7 - lookupLabel: 308 - originalLookupLabel: 308 - center: - x: 49.0 - y: 5.0 - z: 3.0 - color: '#c634fa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_8: - name: 7Networks_RH_SalVentAttn_FrOperIns_8 - lookupLabel: 309 - originalLookupLabel: 309 - center: - x: 54.0 - y: 12.0 - z: 12.0 - color: '#c634fb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_PFCl_1: - name: 7Networks_RH_SalVentAttn_PFCl_1 - lookupLabel: 310 - originalLookupLabel: 310 - center: - x: 33.0 - y: 45.0 - z: 28.0 - color: '#c839fb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_1: - name: 7Networks_RH_SalVentAttn_Med_1 - lookupLabel: 311 - originalLookupLabel: 311 - center: - x: 7.0 - y: 19.0 - z: 35.0 - color: '#c839f7' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_2: - name: 7Networks_RH_SalVentAttn_Med_2 - lookupLabel: 312 - originalLookupLabel: 312 - center: - x: 7.0 - y: 2.0 - z: 43.0 - color: '#c839f8' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_3: - name: 7Networks_RH_SalVentAttn_Med_3 - lookupLabel: 313 - originalLookupLabel: 313 - center: - x: 12.0 - y: -34.0 - z: 43.0 - color: '#c839fa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_4: - name: 7Networks_RH_SalVentAttn_Med_4 - lookupLabel: 314 - originalLookupLabel: 314 - center: - x: 6.0 - y: 11.0 - z: 58.0 - color: '#c839fc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_5: - name: 7Networks_RH_SalVentAttn_Med_5 - lookupLabel: 315 - originalLookupLabel: 315 - center: - x: 10.0 - y: -43.0 - z: 53.0 - color: '#c839fd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_6: - name: 7Networks_RH_SalVentAttn_Med_6 - lookupLabel: 316 - originalLookupLabel: 316 - center: - x: 11.0 - y: -32.0 - z: 50.0 - color: '#c839fe' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_7: - name: 7Networks_RH_SalVentAttn_Med_7 - lookupLabel: 317 - originalLookupLabel: 317 - center: - x: 7.0 - y: -2.0 - z: 67.0 - color: '#c839ff' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_8: - name: 7Networks_RH_SalVentAttn_Med_8 - lookupLabel: 318 - originalLookupLabel: 318 - center: - x: 16.0 - y: 7.0 - z: 69.0 - color: '#c83af9' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_Limbic_OFC_1: - name: 7Networks_RH_Limbic_OFC_1 - lookupLabel: 319 - originalLookupLabel: 319 - center: - x: 13.0 - y: 24.0 - z: -21.0 - color: '#e0f9a3' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_2: - name: 7Networks_RH_Limbic_OFC_2 - lookupLabel: 320 - originalLookupLabel: 320 - center: - x: 23.0 - y: 22.0 - z: -21.0 - color: '#e0f9a5' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_3: - name: 7Networks_RH_Limbic_OFC_3 - lookupLabel: 321 - originalLookupLabel: 321 - center: - x: 8.0 - y: 47.0 - z: -23.0 - color: '#e0f9a6' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_4: - name: 7Networks_RH_Limbic_OFC_4 - lookupLabel: 322 - originalLookupLabel: 322 - center: - x: 20.0 - y: 43.0 - z: -18.0 - color: '#e0f9a7' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_5: - name: 7Networks_RH_Limbic_OFC_5 - lookupLabel: 323 - originalLookupLabel: 323 - center: - x: 5.0 - y: 22.0 - z: -21.0 - color: '#e0f9a8' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_6: - name: 7Networks_RH_Limbic_OFC_6 - lookupLabel: 324 - originalLookupLabel: 324 - center: - x: 9.0 - y: 63.0 - z: -14.0 - color: '#e0f9a9' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_1: - name: 7Networks_RH_Limbic_TempPole_1 - lookupLabel: 325 - originalLookupLabel: 325 - center: - x: 28.0 - y: -1.0 - z: -40.0 - color: '#e0f9a4' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_2: - name: 7Networks_RH_Limbic_TempPole_2 - lookupLabel: 326 - originalLookupLabel: 326 - center: - x: 49.0 - y: -7.0 - z: -39.0 - color: '#e0f9aa' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_3: - name: 7Networks_RH_Limbic_TempPole_3 - lookupLabel: 327 - originalLookupLabel: 327 - center: - x: 37.0 - y: 17.0 - z: -38.0 - color: '#e0f9ab' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_4: - name: 7Networks_RH_Limbic_TempPole_4 - lookupLabel: 328 - originalLookupLabel: 328 - center: - x: 39.0 - y: -15.0 - z: -31.0 - color: '#e0f9ac' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_5: - name: 7Networks_RH_Limbic_TempPole_5 - lookupLabel: 329 - originalLookupLabel: 329 - center: - x: 29.0 - y: 12.0 - z: -30.0 - color: '#e0faa5' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_6: - name: 7Networks_RH_Limbic_TempPole_6 - lookupLabel: 330 - originalLookupLabel: 330 - center: - x: 50.0 - y: -28.0 - z: -26.0 - color: '#e0faa6' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_7: - name: 7Networks_RH_Limbic_TempPole_7 - lookupLabel: 331 - originalLookupLabel: 331 - center: - x: 23.0 - y: -18.0 - z: -27.0 - color: '#e0faa7' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Cont_Par_1: - name: 7Networks_RH_Cont_Par_1 - lookupLabel: 332 - originalLookupLabel: 332 - center: - x: 54.0 - y: -53.0 - z: 44.0 - color: '#ea9321' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_2: - name: 7Networks_RH_Cont_Par_2 - lookupLabel: 333 - originalLookupLabel: 333 - center: - x: 56.0 - y: -41.0 - z: 48.0 - color: '#ea9323' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_3: - name: 7Networks_RH_Cont_Par_3 - lookupLabel: 334 - originalLookupLabel: 334 - center: - x: 35.0 - y: -71.0 - z: 47.0 - color: '#ea9324' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_4: - name: 7Networks_RH_Cont_Par_4 - lookupLabel: 335 - originalLookupLabel: 335 - center: - x: 54.0 - y: -33.0 - z: 51.0 - color: '#ea9325' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_5: - name: 7Networks_RH_Cont_Par_5 - lookupLabel: 336 - originalLookupLabel: 336 - center: - x: 47.0 - y: -44.0 - z: 46.0 - color: '#ea9326' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_6: - name: 7Networks_RH_Cont_Par_6 - lookupLabel: 337 - originalLookupLabel: 337 - center: - x: 41.0 - y: -55.0 - z: 48.0 - color: '#ea9327' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Temp_1: - name: 7Networks_RH_Cont_Temp_1 - lookupLabel: 338 - originalLookupLabel: 338 - center: - x: 62.0 - y: -28.0 - z: -20.0 - color: '#ea9322' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Temp_2: - name: 7Networks_RH_Cont_Temp_2 - lookupLabel: 339 - originalLookupLabel: 339 - center: - x: 63.0 - y: -42.0 - z: -11.0 - color: '#ea9328' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCv_1: - name: 7Networks_RH_Cont_PFCv_1 - lookupLabel: 340 - originalLookupLabel: 340 - center: - x: 34.0 - y: 21.0 - z: -8.0 - color: '#e99423' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_1: - name: 7Networks_RH_Cont_PFCl_1 - lookupLabel: 341 - originalLookupLabel: 341 - center: - x: 28.0 - y: 55.0 - z: -14.0 - color: '#e9941b' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_2: - name: 7Networks_RH_Cont_PFCl_2 - lookupLabel: 342 - originalLookupLabel: 342 - center: - x: 42.0 - y: 51.0 - z: -6.0 - color: '#e9941c' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_3: - name: 7Networks_RH_Cont_PFCl_3 - lookupLabel: 343 - originalLookupLabel: 343 - center: - x: 27.0 - y: 59.0 - z: 3.0 - color: '#e9941d' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_4: - name: 7Networks_RH_Cont_PFCl_4 - lookupLabel: 344 - originalLookupLabel: 344 - center: - x: 49.0 - y: 40.0 - z: 5.0 - color: '#e9941e' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_5: - name: 7Networks_RH_Cont_PFCl_5 - lookupLabel: 345 - originalLookupLabel: 345 - center: - x: 42.0 - y: 46.0 - z: 14.0 - color: '#e9941f' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_6: - name: 7Networks_RH_Cont_PFCl_6 - lookupLabel: 346 - originalLookupLabel: 346 - center: - x: 50.0 - y: 30.0 - z: 18.0 - color: '#e99420' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_7: - name: 7Networks_RH_Cont_PFCl_7 - lookupLabel: 347 - originalLookupLabel: 347 - center: - x: 48.0 - y: 18.0 - z: 23.0 - color: '#e99422' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_8: - name: 7Networks_RH_Cont_PFCl_8 - lookupLabel: 348 - originalLookupLabel: 348 - center: - x: 25.0 - y: 54.0 - z: 25.0 - color: '#e99424' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_9: - name: 7Networks_RH_Cont_PFCl_9 - lookupLabel: 349 - originalLookupLabel: 349 - center: - x: 47.0 - y: 29.0 - z: 28.0 - color: '#e99425' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_10: - name: 7Networks_RH_Cont_PFCl_10 - lookupLabel: 350 - originalLookupLabel: 350 - center: - x: 39.0 - y: 11.0 - z: 34.0 - color: '#e99426' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_11: - name: 7Networks_RH_Cont_PFCl_11 - lookupLabel: 351 - originalLookupLabel: 351 - center: - x: 39.0 - y: 33.0 - z: 38.0 - color: '#e99427' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_12: - name: 7Networks_RH_Cont_PFCl_12 - lookupLabel: 352 - originalLookupLabel: 352 - center: - x: 45.0 - y: 19.0 - z: 44.0 - color: '#e99428' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_13: - name: 7Networks_RH_Cont_PFCl_13 - lookupLabel: 353 - originalLookupLabel: 353 - center: - x: 43.0 - y: 7.0 - z: 51.0 - color: '#e99521' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_14: - name: 7Networks_RH_Cont_PFCl_14 - lookupLabel: 354 - originalLookupLabel: 354 - center: - x: 34.0 - y: 15.0 - z: 56.0 - color: '#e99522' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_15: - name: 7Networks_RH_Cont_PFCl_15 - lookupLabel: 355 - originalLookupLabel: 355 - center: - x: 24.0 - y: 10.0 - z: 58.0 - color: '#e99523' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_pCun_1: - name: 7Networks_RH_Cont_pCun_1 - lookupLabel: 356 - originalLookupLabel: 356 - center: - x: 13.0 - y: -71.0 - z: 39.0 - color: '#e99323' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_pCun_2: - name: 7Networks_RH_Cont_pCun_2 - lookupLabel: 357 - originalLookupLabel: 357 - center: - x: 5.0 - y: -64.0 - z: 44.0 - color: '#e99324' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Cing_1: - name: 7Networks_RH_Cont_Cing_1 - lookupLabel: 358 - originalLookupLabel: 358 - center: - x: 6.0 - y: -26.0 - z: 28.0 - color: '#e99322' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Cing_2: - name: 7Networks_RH_Cont_Cing_2 - lookupLabel: 359 - originalLookupLabel: 359 - center: - x: 5.0 - y: 1.0 - z: 30.0 - color: '#e99325' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCmp_1: - name: 7Networks_RH_Cont_PFCmp_1 - lookupLabel: 360 - originalLookupLabel: 360 - center: - x: 8.0 - y: 35.0 - z: 25.0 - color: '#ea9425' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCmp_2: - name: 7Networks_RH_Cont_PFCmp_2 - lookupLabel: 361 - originalLookupLabel: 361 - center: - x: 5.0 - y: 28.0 - z: 48.0 - color: '#ea9426' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Default_Par_1: - name: 7Networks_RH_Default_Par_1 - lookupLabel: 362 - originalLookupLabel: 362 - center: - x: 55.0 - y: -46.0 - z: 19.0 - color: '#d13e4c' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_2: - name: 7Networks_RH_Default_Par_2 - lookupLabel: 363 - originalLookupLabel: 363 - center: - x: 48.0 - y: -64.0 - z: 22.0 - color: '#d13e4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_3: - name: 7Networks_RH_Default_Par_3 - lookupLabel: 364 - originalLookupLabel: 364 - center: - x: 53.0 - y: -53.0 - z: 26.0 - color: '#d13e4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_4: - name: 7Networks_RH_Default_Par_4 - lookupLabel: 365 - originalLookupLabel: 365 - center: - x: 55.0 - y: -45.0 - z: 33.0 - color: '#d13e50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_5: - name: 7Networks_RH_Default_Par_5 - lookupLabel: 366 - originalLookupLabel: 366 - center: - x: 47.0 - y: -64.0 - z: 42.0 - color: '#d13e51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_1: - name: 7Networks_RH_Default_Temp_1 - lookupLabel: 367 - originalLookupLabel: 367 - center: - x: 49.0 - y: 9.0 - z: -33.0 - color: '#d13d4c' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_2: - name: 7Networks_RH_Default_Temp_2 - lookupLabel: 368 - originalLookupLabel: 368 - center: - x: 61.0 - y: -8.0 - z: -23.0 - color: '#d13d4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_3: - name: 7Networks_RH_Default_Temp_3 - lookupLabel: 369 - originalLookupLabel: 369 - center: - x: 47.0 - y: 16.0 - z: -20.0 - color: '#d13d4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_4: - name: 7Networks_RH_Default_Temp_4 - lookupLabel: 370 - originalLookupLabel: 370 - center: - x: 55.0 - y: -4.0 - z: -14.0 - color: '#d13d50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_5: - name: 7Networks_RH_Default_Temp_5 - lookupLabel: 371 - originalLookupLabel: 371 - center: - x: 63.0 - y: -23.0 - z: -7.0 - color: '#d13d51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_6: - name: 7Networks_RH_Default_Temp_6 - lookupLabel: 372 - originalLookupLabel: 372 - center: - x: 49.0 - y: -20.0 - z: -8.0 - color: '#d13d52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_7: - name: 7Networks_RH_Default_Temp_7 - lookupLabel: 373 - originalLookupLabel: 373 - center: - x: 63.0 - y: -38.0 - z: 0.0 - color: '#d13d53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_8: - name: 7Networks_RH_Default_Temp_8 - lookupLabel: 374 - originalLookupLabel: 374 - center: - x: 50.0 - y: -33.0 - z: 2.0 - color: '#d13d54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_1: - name: 7Networks_RH_Default_PFCv_1 - lookupLabel: 375 - originalLookupLabel: 375 - center: - x: 35.0 - y: 23.0 - z: -18.0 - color: '#d13d4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_2: - name: 7Networks_RH_Default_PFCv_2 - lookupLabel: 376 - originalLookupLabel: 376 - center: - x: 35.0 - y: 38.0 - z: -13.0 - color: '#d13e4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_3: - name: 7Networks_RH_Default_PFCv_3 - lookupLabel: 377 - originalLookupLabel: 377 - center: - x: 48.0 - y: 32.0 - z: -8.0 - color: '#d13e52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_4: - name: 7Networks_RH_Default_PFCv_4 - lookupLabel: 378 - originalLookupLabel: 378 - center: - x: 54.0 - y: 24.0 - z: 6.0 - color: '#d13e53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_1: - name: 7Networks_RH_Default_PFCdPFCm_1 - lookupLabel: 379 - originalLookupLabel: 379 - center: - x: 5.0 - y: 41.0 - z: -11.0 - color: '#d03e49' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_2: - name: 7Networks_RH_Default_PFCdPFCm_2 - lookupLabel: 380 - originalLookupLabel: 380 - center: - x: 9.0 - y: 67.0 - z: 1.0 - color: '#d03e4a' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_3: - name: 7Networks_RH_Default_PFCdPFCm_3 - lookupLabel: 381 - originalLookupLabel: 381 - center: - x: 7.0 - y: 42.0 - z: 4.0 - color: '#d03e4b' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_4: - name: 7Networks_RH_Default_PFCdPFCm_4 - lookupLabel: 382 - originalLookupLabel: 382 - center: - x: 7.0 - y: 54.0 - z: 13.0 - color: '#d03e4c' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_5: - name: 7Networks_RH_Default_PFCdPFCm_5 - lookupLabel: 383 - originalLookupLabel: 383 - center: - x: 17.0 - y: 65.0 - z: 16.0 - color: '#d03e4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_6: - name: 7Networks_RH_Default_PFCdPFCm_6 - lookupLabel: 384 - originalLookupLabel: 384 - center: - x: 6.0 - y: 25.0 - z: 18.0 - color: '#d03e4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_7: - name: 7Networks_RH_Default_PFCdPFCm_7 - lookupLabel: 385 - originalLookupLabel: 385 - center: - x: 6.0 - y: 58.0 - z: 29.0 - color: '#d03e50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_8: - name: 7Networks_RH_Default_PFCdPFCm_8 - lookupLabel: 386 - originalLookupLabel: 386 - center: - x: 16.0 - y: 52.0 - z: 36.0 - color: '#d03e51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_9: - name: 7Networks_RH_Default_PFCdPFCm_9 - lookupLabel: 387 - originalLookupLabel: 387 - center: - x: 5.0 - y: 44.0 - z: 40.0 - color: '#d03e52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_10: - name: 7Networks_RH_Default_PFCdPFCm_10 - lookupLabel: 388 - originalLookupLabel: 388 - center: - x: 26.0 - y: 34.0 - z: 39.0 - color: '#d03e53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_11: - name: 7Networks_RH_Default_PFCdPFCm_11 - lookupLabel: 389 - originalLookupLabel: 389 - center: - x: 14.0 - y: 39.0 - z: 52.0 - color: '#d03e54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_12: - name: 7Networks_RH_Default_PFCdPFCm_12 - lookupLabel: 390 - originalLookupLabel: 390 - center: - x: 24.0 - y: 26.0 - z: 51.0 - color: '#d03e55' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_13: - name: 7Networks_RH_Default_PFCdPFCm_13 - lookupLabel: 391 - originalLookupLabel: 391 - center: - x: 12.0 - y: 20.0 - z: 63.0 - color: '#d03f4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_1: - name: 7Networks_RH_Default_pCunPCC_1 - lookupLabel: 392 - originalLookupLabel: 392 - center: - x: 12.0 - y: -55.0 - z: 15.0 - color: '#d03e4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_2: - name: 7Networks_RH_Default_pCunPCC_2 - lookupLabel: 393 - originalLookupLabel: 393 - center: - x: 7.0 - y: -44.0 - z: 20.0 - color: '#d03f4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_3: - name: 7Networks_RH_Default_pCunPCC_3 - lookupLabel: 394 - originalLookupLabel: 394 - center: - x: 17.0 - y: -63.0 - z: 28.0 - color: '#d03f4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_4: - name: 7Networks_RH_Default_pCunPCC_4 - lookupLabel: 395 - originalLookupLabel: 395 - center: - x: 6.0 - y: -52.0 - z: 23.0 - color: '#d03f50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_5: - name: 7Networks_RH_Default_pCunPCC_5 - lookupLabel: 396 - originalLookupLabel: 396 - center: - x: 5.0 - y: -63.0 - z: 31.0 - color: '#d03f51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_6: - name: 7Networks_RH_Default_pCunPCC_6 - lookupLabel: 397 - originalLookupLabel: 397 - center: - x: 7.0 - y: -39.0 - z: 35.0 - color: '#d03f52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_7: - name: 7Networks_RH_Default_pCunPCC_7 - lookupLabel: 398 - originalLookupLabel: 398 - center: - x: 4.0 - y: -20.0 - z: 37.0 - color: '#d03f53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_8: - name: 7Networks_RH_Default_pCunPCC_8 - lookupLabel: 399 - originalLookupLabel: 399 - center: - x: 10.0 - y: -53.0 - z: 35.0 - color: '#d03f54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_9: - name: 7Networks_RH_Default_pCunPCC_9 - lookupLabel: 400 - originalLookupLabel: 400 - center: - x: 7.0 - y: -50.0 - z: 45.0 - color: '#d0404d' - hemisphere: right - hasParent: - - RH_Default - versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_400Parcels_7Networks_order_FSLMNI152_1mm.nii.gz diff --git a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-400_res-1_desc-ordered_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-400_res-1_desc-ordered_dseg.yaml similarity index 99% rename from tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-400_res-1_desc-ordered_dseg.yaml rename to tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-400_res-1_desc-ordered_dseg.yaml index 7684f2070..b0d81cd55 100644 --- a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-400_res-1_desc-ordered_dseg.yaml +++ b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-400_res-1_desc-ordered_dseg.yaml @@ -1,14 +1,12 @@ name: Schaefer2018 abbreviation: Schaefer2018 versionIdentifier: '2018' -coordinateSpace: - name: MNI152 - abbreviation: FSLMNI152 - nativeUnit: mm +coordinateSpace: FSLMNI152 terminology: label: Schaefer2018_400Parcels_7Networks_order versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_400Parcels_7Networks_order_FSLMNI152_1mm.nii.gz + dataLocation: + schaefer2018_original_mni/Schaefer2018_400Parcels_7Networks_order_FSLMNI152_1mm.nii.gz entities: 7Networks_LH_Vis_1: name: 7Networks_LH_Vis_1 diff --git a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-500_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-500_dseg.yaml deleted file mode 100644 index e46cf2511..000000000 --- a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-500_dseg.yaml +++ /dev/null @@ -1,6121 +0,0 @@ -name: Schaefer2018 -abbreviation: Schaefer2018 -versionIdentifier: '2018' -coordinateSpace: MNI152NLin6Asym -terminology: - label: Schaefer2018_500Parcels_7Networks_order - entities: - LH_Vis: - name: LH_Vis - lookupLabel: -1 - hemisphere: left - center: - x: -20.4 - y: -73.8 - z: 4.1 - LH_SomMot: - name: LH_SomMot - lookupLabel: -2 - hemisphere: left - center: - x: -36.4 - y: -22.7 - z: 42.0 - LH_DorsAttn: - name: LH_DorsAttn - lookupLabel: -3 - hemisphere: left - center: - x: -33.3 - y: -42.2 - z: 41.5 - LH_SalVentAttn: - name: LH_SalVentAttn - lookupLabel: -4 - hemisphere: left - center: - x: -32.1 - y: -10.4 - z: 26.2 - LH_Limbic: - name: LH_Limbic - lookupLabel: -5 - hemisphere: left - center: - x: -27.1 - y: 10.6 - z: -27.2 - LH_Cont: - name: LH_Cont - lookupLabel: -6 - hemisphere: left - center: - x: -29.9 - y: -7.5 - z: 32.6 - LH_Default: - name: LH_Default - lookupLabel: -7 - hemisphere: left - center: - x: -29.3 - y: -5.9 - z: 15.9 - RH_Vis: - name: RH_Vis - lookupLabel: -8 - hemisphere: right - center: - x: 23.7 - y: -70.9 - z: 3.0 - RH_SomMot: - name: RH_SomMot - lookupLabel: -9 - hemisphere: right - center: - x: 35.3 - y: -20.2 - z: 43.2 - RH_DorsAttn: - name: RH_DorsAttn - lookupLabel: -10 - hemisphere: right - center: - x: 36.5 - y: -38.4 - z: 41.3 - RH_SalVentAttn: - name: RH_SalVentAttn - lookupLabel: -11 - hemisphere: right - center: - x: 33.2 - y: -7.8 - z: 29.2 - RH_Limbic: - name: RH_Limbic - lookupLabel: -12 - hemisphere: right - center: - x: 26.2 - y: 11.4 - z: -26.1 - RH_Cont: - name: RH_Cont - lookupLabel: -13 - hemisphere: right - center: - x: 33.9 - y: 5.9 - z: 27.0 - RH_Default: - name: RH_Default - lookupLabel: -14 - hemisphere: right - center: - x: 29.0 - y: -7.4 - z: 15.2 - 7Networks_LH_Vis_1: - name: 7Networks_LH_Vis_1 - lookupLabel: 1 - originalLookupLabel: 1 - center: - x: -37.0 - y: -36.0 - z: -23.0 - color: '#781084' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_2: - name: 7Networks_LH_Vis_2 - lookupLabel: 2 - originalLookupLabel: 2 - center: - x: -29.0 - y: -37.0 - z: -15.0 - color: '#781085' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_3: - name: 7Networks_LH_Vis_3 - lookupLabel: 3 - originalLookupLabel: 3 - center: - x: -35.0 - y: -60.0 - z: -17.0 - color: '#781086' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_4: - name: 7Networks_LH_Vis_4 - lookupLabel: 4 - originalLookupLabel: 4 - center: - x: -25.0 - y: -57.0 - z: -10.0 - color: '#78117f' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_5: - name: 7Networks_LH_Vis_5 - lookupLabel: 5 - originalLookupLabel: 5 - center: - x: -37.0 - y: -80.0 - z: -16.0 - color: '#781180' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_6: - name: 7Networks_LH_Vis_6 - lookupLabel: 6 - originalLookupLabel: 6 - center: - x: -23.0 - y: -73.0 - z: -10.0 - color: '#781181' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_7: - name: 7Networks_LH_Vis_7 - lookupLabel: 7 - originalLookupLabel: 7 - center: - x: -23.0 - y: -48.0 - z: -6.0 - color: '#781182' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_8: - name: 7Networks_LH_Vis_8 - lookupLabel: 8 - originalLookupLabel: 8 - center: - x: -45.0 - y: -70.0 - z: -8.0 - color: '#781183' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_9: - name: 7Networks_LH_Vis_9 - lookupLabel: 9 - originalLookupLabel: 9 - center: - x: -19.0 - y: -86.0 - z: -15.0 - color: '#781184' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_10: - name: 7Networks_LH_Vis_10 - lookupLabel: 10 - originalLookupLabel: 10 - center: - x: -15.0 - y: -38.0 - z: -10.0 - color: '#781185' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_11: - name: 7Networks_LH_Vis_11 - lookupLabel: 11 - originalLookupLabel: 11 - center: - x: -13.0 - y: -61.0 - z: -5.0 - color: '#781186' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_12: - name: 7Networks_LH_Vis_12 - lookupLabel: 12 - originalLookupLabel: 12 - center: - x: -7.0 - y: -75.0 - z: -6.0 - color: '#78127f' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_13: - name: 7Networks_LH_Vis_13 - lookupLabel: 13 - originalLookupLabel: 13 - center: - x: -25.0 - y: -97.0 - z: -12.0 - color: '#781280' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_14: - name: 7Networks_LH_Vis_14 - lookupLabel: 14 - originalLookupLabel: 14 - center: - x: -43.0 - y: -85.0 - z: -5.0 - color: '#781281' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_15: - name: 7Networks_LH_Vis_15 - lookupLabel: 15 - originalLookupLabel: 15 - center: - x: -5.0 - y: -87.0 - z: -12.0 - color: '#781282' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_16: - name: 7Networks_LH_Vis_16 - lookupLabel: 16 - originalLookupLabel: 16 - center: - x: -9.0 - y: -98.0 - z: -11.0 - color: '#781283' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_17: - name: 7Networks_LH_Vis_17 - lookupLabel: 17 - originalLookupLabel: 17 - center: - x: -15.0 - y: -47.0 - z: -3.0 - color: '#781284' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_18: - name: 7Networks_LH_Vis_18 - lookupLabel: 18 - originalLookupLabel: 18 - center: - x: -8.0 - y: -61.0 - z: 3.0 - color: '#781285' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_19: - name: 7Networks_LH_Vis_19 - lookupLabel: 19 - originalLookupLabel: 19 - center: - x: -45.0 - y: -75.0 - z: 5.0 - color: '#781287' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_20: - name: 7Networks_LH_Vis_20 - lookupLabel: 20 - originalLookupLabel: 20 - center: - x: -5.0 - y: -74.0 - z: 5.0 - color: '#781288' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_21: - name: 7Networks_LH_Vis_21 - lookupLabel: 21 - originalLookupLabel: 21 - center: - x: -5.0 - y: -91.0 - z: 1.0 - color: '#781289' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_22: - name: 7Networks_LH_Vis_22 - lookupLabel: 22 - originalLookupLabel: 22 - center: - x: -25.0 - y: -96.0 - z: 5.0 - color: '#78128a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_23: - name: 7Networks_LH_Vis_23 - lookupLabel: 23 - originalLookupLabel: 23 - center: - x: -11.0 - y: -46.0 - z: 3.0 - color: '#78128b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_24: - name: 7Networks_LH_Vis_24 - lookupLabel: 24 - originalLookupLabel: 24 - center: - x: -20.0 - y: -58.0 - z: 4.0 - color: '#78128c' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_25: - name: 7Networks_LH_Vis_25 - lookupLabel: 25 - originalLookupLabel: 25 - center: - x: -10.0 - y: -102.0 - z: 6.0 - color: '#78128d' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_26: - name: 7Networks_LH_Vis_26 - lookupLabel: 26 - originalLookupLabel: 26 - center: - x: -34.0 - y: -88.0 - z: 9.0 - color: '#781386' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_27: - name: 7Networks_LH_Vis_27 - lookupLabel: 27 - originalLookupLabel: 27 - center: - x: -16.0 - y: -68.0 - z: 7.0 - color: '#781387' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_28: - name: 7Networks_LH_Vis_28 - lookupLabel: 28 - originalLookupLabel: 28 - center: - x: -6.0 - y: -78.0 - z: 11.0 - color: '#781388' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_29: - name: 7Networks_LH_Vis_29 - lookupLabel: 29 - originalLookupLabel: 29 - center: - x: -42.0 - y: -81.0 - z: 17.0 - color: '#781389' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_30: - name: 7Networks_LH_Vis_30 - lookupLabel: 30 - originalLookupLabel: 30 - center: - x: -6.0 - y: -95.0 - z: 17.0 - color: '#78138a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_31: - name: 7Networks_LH_Vis_31 - lookupLabel: 31 - originalLookupLabel: 31 - center: - x: -18.0 - y: -93.0 - z: 21.0 - color: '#78138b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_32: - name: 7Networks_LH_Vis_32 - lookupLabel: 32 - originalLookupLabel: 32 - center: - x: -17.0 - y: -64.0 - z: 21.0 - color: '#78138c' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_33: - name: 7Networks_LH_Vis_33 - lookupLabel: 33 - originalLookupLabel: 33 - center: - x: -3.0 - y: -84.0 - z: 25.0 - color: '#78138d' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_34: - name: 7Networks_LH_Vis_34 - lookupLabel: 34 - originalLookupLabel: 34 - center: - x: -11.0 - y: -72.0 - z: 21.0 - color: '#781486' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_35: - name: 7Networks_LH_Vis_35 - lookupLabel: 35 - originalLookupLabel: 35 - center: - x: -26.0 - y: -82.0 - z: 22.0 - color: '#781487' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_36: - name: 7Networks_LH_Vis_36 - lookupLabel: 36 - originalLookupLabel: 36 - center: - x: -32.0 - y: -84.0 - z: 26.0 - color: '#781488' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_37: - name: 7Networks_LH_Vis_37 - lookupLabel: 37 - originalLookupLabel: 37 - center: - x: -16.0 - y: -89.0 - z: 34.0 - color: '#781489' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_38: - name: 7Networks_LH_Vis_38 - lookupLabel: 38 - originalLookupLabel: 38 - center: - x: -12.0 - y: -81.0 - z: 36.0 - color: '#78148a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_39: - name: 7Networks_LH_Vis_39 - lookupLabel: 39 - originalLookupLabel: 39 - center: - x: -21.0 - y: -82.0 - z: 44.0 - color: '#78148b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_SomMot_1: - name: 7Networks_LH_SomMot_1 - lookupLabel: 40 - originalLookupLabel: 40 - center: - x: -53.0 - y: -1.0 - z: -3.0 - color: '#4680ae' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_2: - name: 7Networks_LH_SomMot_2 - lookupLabel: 41 - originalLookupLabel: 41 - center: - x: -57.0 - y: -16.0 - z: 6.0 - color: '#4680af' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_3: - name: 7Networks_LH_SomMot_3 - lookupLabel: 42 - originalLookupLabel: 42 - center: - x: -43.0 - y: -19.0 - z: 4.0 - color: '#4680b0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_4: - name: 7Networks_LH_SomMot_4 - lookupLabel: 43 - originalLookupLabel: 43 - center: - x: -61.0 - y: -27.0 - z: 10.0 - color: '#4680b1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_5: - name: 7Networks_LH_SomMot_5 - lookupLabel: 44 - originalLookupLabel: 44 - center: - x: -35.0 - y: -24.0 - z: 11.0 - color: '#4680b2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_6: - name: 7Networks_LH_SomMot_6 - lookupLabel: 45 - originalLookupLabel: 45 - center: - x: -44.0 - y: -28.0 - z: 9.0 - color: '#4680b3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_7: - name: 7Networks_LH_SomMot_7 - lookupLabel: 46 - originalLookupLabel: 46 - center: - x: -38.0 - y: -13.0 - z: 16.0 - color: '#4680b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_8: - name: 7Networks_LH_SomMot_8 - lookupLabel: 47 - originalLookupLabel: 47 - center: - x: -61.0 - y: -44.0 - z: 11.0 - color: '#4681ad' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_9: - name: 7Networks_LH_SomMot_9 - lookupLabel: 48 - originalLookupLabel: 48 - center: - x: -36.0 - y: -27.0 - z: 19.0 - color: '#4681ae' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_10: - name: 7Networks_LH_SomMot_10 - lookupLabel: 49 - originalLookupLabel: 49 - center: - x: -58.0 - y: -37.0 - z: 16.0 - color: '#4681af' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_11: - name: 7Networks_LH_SomMot_11 - lookupLabel: 50 - originalLookupLabel: 50 - center: - x: -51.0 - y: -13.0 - z: 13.0 - color: '#4681b0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_12: - name: 7Networks_LH_SomMot_12 - lookupLabel: 51 - originalLookupLabel: 51 - center: - x: -41.0 - y: -36.0 - z: 15.0 - color: '#4681b1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_13: - name: 7Networks_LH_SomMot_13 - lookupLabel: 52 - originalLookupLabel: 52 - center: - x: -60.0 - y: -2.0 - z: 12.0 - color: '#4681b2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_14: - name: 7Networks_LH_SomMot_14 - lookupLabel: 53 - originalLookupLabel: 53 - center: - x: -49.0 - y: -24.0 - z: 18.0 - color: '#4681b3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_15: - name: 7Networks_LH_SomMot_15 - lookupLabel: 54 - originalLookupLabel: 54 - center: - x: -62.0 - y: -18.0 - z: 20.0 - color: '#4681b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_16: - name: 7Networks_LH_SomMot_16 - lookupLabel: 55 - originalLookupLabel: 55 - center: - x: -60.0 - y: -4.0 - z: 18.0 - color: '#4682ad' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_17: - name: 7Networks_LH_SomMot_17 - lookupLabel: 56 - originalLookupLabel: 56 - center: - x: -63.0 - y: -11.0 - z: 30.0 - color: '#4682ae' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_18: - name: 7Networks_LH_SomMot_18 - lookupLabel: 57 - originalLookupLabel: 57 - center: - x: -58.0 - y: -1.0 - z: 31.0 - color: '#4682af' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_19: - name: 7Networks_LH_SomMot_19 - lookupLabel: 58 - originalLookupLabel: 58 - center: - x: -54.0 - y: -9.0 - z: 28.0 - color: '#4682b0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_20: - name: 7Networks_LH_SomMot_20 - lookupLabel: 59 - originalLookupLabel: 59 - center: - x: -54.0 - y: -21.0 - z: 41.0 - color: '#4682b1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_21: - name: 7Networks_LH_SomMot_21 - lookupLabel: 60 - originalLookupLabel: 60 - center: - x: -50.0 - y: -15.0 - z: 39.0 - color: '#4682b2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_22: - name: 7Networks_LH_SomMot_22 - lookupLabel: 61 - originalLookupLabel: 61 - center: - x: -51.0 - y: -7.0 - z: 43.0 - color: '#4682b3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_23: - name: 7Networks_LH_SomMot_23 - lookupLabel: 62 - originalLookupLabel: 62 - center: - x: -49.0 - y: -26.0 - z: 49.0 - color: '#4682b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_24: - name: 7Networks_LH_SomMot_24 - lookupLabel: 63 - originalLookupLabel: 63 - center: - x: -39.0 - y: -19.0 - z: 42.0 - color: '#4682b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_25: - name: 7Networks_LH_SomMot_25 - lookupLabel: 64 - originalLookupLabel: 64 - center: - x: -49.0 - y: -17.0 - z: 54.0 - color: '#4682b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_26: - name: 7Networks_LH_SomMot_26 - lookupLabel: 65 - originalLookupLabel: 65 - center: - x: -43.0 - y: -12.0 - z: 51.0 - color: '#4682b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_27: - name: 7Networks_LH_SomMot_27 - lookupLabel: 66 - originalLookupLabel: 66 - center: - x: -7.0 - y: -14.0 - z: 49.0 - color: '#4682b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_28: - name: 7Networks_LH_SomMot_28 - lookupLabel: 67 - originalLookupLabel: 67 - center: - x: -47.0 - y: -30.0 - z: 59.0 - color: '#4682ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_29: - name: 7Networks_LH_SomMot_29 - lookupLabel: 68 - originalLookupLabel: 68 - center: - x: -39.0 - y: -24.0 - z: 53.0 - color: '#4682bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_30: - name: 7Networks_LH_SomMot_30 - lookupLabel: 69 - originalLookupLabel: 69 - center: - x: -8.0 - y: -39.0 - z: 56.0 - color: '#4683b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_31: - name: 7Networks_LH_SomMot_31 - lookupLabel: 70 - originalLookupLabel: 70 - center: - x: -36.0 - y: -20.0 - z: 64.0 - color: '#4683b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_32: - name: 7Networks_LH_SomMot_32 - lookupLabel: 71 - originalLookupLabel: 71 - center: - x: -4.0 - y: -26.0 - z: 58.0 - color: '#4683b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_33: - name: 7Networks_LH_SomMot_33 - lookupLabel: 72 - originalLookupLabel: 72 - center: - x: -30.0 - y: -46.0 - z: 63.0 - color: '#4683b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_34: - name: 7Networks_LH_SomMot_34 - lookupLabel: 73 - originalLookupLabel: 73 - center: - x: -5.0 - y: -8.0 - z: 63.0 - color: '#4683b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_35: - name: 7Networks_LH_SomMot_35 - lookupLabel: 74 - originalLookupLabel: 74 - center: - x: -32.0 - y: -29.0 - z: 62.0 - color: '#4683b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_36: - name: 7Networks_LH_SomMot_36 - lookupLabel: 75 - originalLookupLabel: 75 - center: - x: -26.0 - y: -11.0 - z: 66.0 - color: '#4683ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_37: - name: 7Networks_LH_SomMot_37 - lookupLabel: 76 - originalLookupLabel: 76 - center: - x: -29.0 - y: -38.0 - z: 66.0 - color: '#4683bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_38: - name: 7Networks_LH_SomMot_38 - lookupLabel: 77 - originalLookupLabel: 77 - center: - x: -9.0 - y: -43.0 - z: 70.0 - color: '#4684b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_39: - name: 7Networks_LH_SomMot_39 - lookupLabel: 78 - originalLookupLabel: 78 - center: - x: -19.0 - y: -24.0 - z: 67.0 - color: '#4684b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_40: - name: 7Networks_LH_SomMot_40 - lookupLabel: 79 - originalLookupLabel: 79 - center: - x: -16.0 - y: -50.0 - z: 70.0 - color: '#4684b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_41: - name: 7Networks_LH_SomMot_41 - lookupLabel: 80 - originalLookupLabel: 80 - center: - x: -20.0 - y: -31.0 - z: 68.0 - color: '#4684b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_42: - name: 7Networks_LH_SomMot_42 - lookupLabel: 81 - originalLookupLabel: 81 - center: - x: -15.0 - y: -13.0 - z: 73.0 - color: '#4684b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_43: - name: 7Networks_LH_SomMot_43 - lookupLabel: 82 - originalLookupLabel: 82 - center: - x: -20.0 - y: -38.0 - z: 72.0 - color: '#4684b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_44: - name: 7Networks_LH_SomMot_44 - lookupLabel: 83 - originalLookupLabel: 83 - center: - x: -3.0 - y: -33.0 - z: 69.0 - color: '#4684ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_45: - name: 7Networks_LH_SomMot_45 - lookupLabel: 84 - originalLookupLabel: 84 - center: - x: -7.0 - y: -17.0 - z: 74.0 - color: '#4684bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_46: - name: 7Networks_LH_SomMot_46 - lookupLabel: 85 - originalLookupLabel: 85 - center: - x: -12.0 - y: -27.0 - z: 73.0 - color: '#4685b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_47: - name: 7Networks_LH_SomMot_47 - lookupLabel: 86 - originalLookupLabel: 86 - center: - x: -10.0 - y: -34.0 - z: 76.0 - color: '#4685b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_DorsAttn_Post_1: - name: 7Networks_LH_DorsAttn_Post_1 - lookupLabel: 87 - originalLookupLabel: 87 - center: - x: -45.0 - y: -44.0 - z: -21.0 - color: '#00750e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_2: - name: 7Networks_LH_DorsAttn_Post_2 - lookupLabel: 88 - originalLookupLabel: 88 - center: - x: -49.0 - y: -57.0 - z: -14.0 - color: '#007607' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_3: - name: 7Networks_LH_DorsAttn_Post_3 - lookupLabel: 89 - originalLookupLabel: 89 - center: - x: -55.0 - y: -63.0 - z: 2.0 - color: '#007608' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_4: - name: 7Networks_LH_DorsAttn_Post_4 - lookupLabel: 90 - originalLookupLabel: 90 - center: - x: -49.0 - y: -66.0 - z: 13.0 - color: '#007609' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_5: - name: 7Networks_LH_DorsAttn_Post_5 - lookupLabel: 91 - originalLookupLabel: 91 - center: - x: -26.0 - y: -71.0 - z: 31.0 - color: '#00760a' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_6: - name: 7Networks_LH_DorsAttn_Post_6 - lookupLabel: 92 - originalLookupLabel: 92 - center: - x: -27.0 - y: -67.0 - z: 42.0 - color: '#00760b' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_7: - name: 7Networks_LH_DorsAttn_Post_7 - lookupLabel: 93 - originalLookupLabel: 93 - center: - x: -55.0 - y: -31.0 - z: 44.0 - color: '#00760c' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_8: - name: 7Networks_LH_DorsAttn_Post_8 - lookupLabel: 94 - originalLookupLabel: 94 - center: - x: -43.0 - y: -32.0 - z: 43.0 - color: '#00760d' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_9: - name: 7Networks_LH_DorsAttn_Post_9 - lookupLabel: 95 - originalLookupLabel: 95 - center: - x: -37.0 - y: -39.0 - z: 41.0 - color: '#00760f' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_10: - name: 7Networks_LH_DorsAttn_Post_10 - lookupLabel: 96 - originalLookupLabel: 96 - center: - x: -22.0 - y: -66.0 - z: 48.0 - color: '#007610' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_11: - name: 7Networks_LH_DorsAttn_Post_11 - lookupLabel: 97 - originalLookupLabel: 97 - center: - x: -29.0 - y: -58.0 - z: 50.0 - color: '#007611' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_12: - name: 7Networks_LH_DorsAttn_Post_12 - lookupLabel: 98 - originalLookupLabel: 98 - center: - x: -17.0 - y: -73.0 - z: 53.0 - color: '#007612' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_13: - name: 7Networks_LH_DorsAttn_Post_13 - lookupLabel: 99 - originalLookupLabel: 99 - center: - x: -35.0 - y: -49.0 - z: 52.0 - color: '#007613' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_14: - name: 7Networks_LH_DorsAttn_Post_14 - lookupLabel: 100 - originalLookupLabel: 100 - center: - x: -38.0 - y: -39.0 - z: 53.0 - color: '#007614' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_15: - name: 7Networks_LH_DorsAttn_Post_15 - lookupLabel: 101 - originalLookupLabel: 101 - center: - x: -34.0 - y: -56.0 - z: 62.0 - color: '#007615' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_16: - name: 7Networks_LH_DorsAttn_Post_16 - lookupLabel: 102 - originalLookupLabel: 102 - center: - x: -27.0 - y: -64.0 - z: 61.0 - color: '#00770e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_17: - name: 7Networks_LH_DorsAttn_Post_17 - lookupLabel: 103 - originalLookupLabel: 103 - center: - x: -12.0 - y: -67.0 - z: 61.0 - color: '#00770f' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_18: - name: 7Networks_LH_DorsAttn_Post_18 - lookupLabel: 104 - originalLookupLabel: 104 - center: - x: -7.0 - y: -58.0 - z: 64.0 - color: '#007710' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_19: - name: 7Networks_LH_DorsAttn_Post_19 - lookupLabel: 105 - originalLookupLabel: 105 - center: - x: -20.0 - y: -58.0 - z: 66.0 - color: '#007711' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_1: - name: 7Networks_LH_DorsAttn_FEF_1 - lookupLabel: 106 - originalLookupLabel: 106 - center: - x: -39.0 - y: -3.0 - z: 51.0 - color: '#007616' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_2: - name: 7Networks_LH_DorsAttn_FEF_2 - lookupLabel: 107 - originalLookupLabel: 107 - center: - x: -22.0 - y: 8.0 - z: 56.0 - color: '#007712' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_3: - name: 7Networks_LH_DorsAttn_FEF_3 - lookupLabel: 108 - originalLookupLabel: 108 - center: - x: -25.0 - y: -7.0 - z: 52.0 - color: '#007713' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_4: - name: 7Networks_LH_DorsAttn_FEF_4 - lookupLabel: 109 - originalLookupLabel: 109 - center: - x: -20.0 - y: -4.0 - z: 64.0 - color: '#007714' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_PrCv_1: - name: 7Networks_LH_DorsAttn_PrCv_1 - lookupLabel: 110 - originalLookupLabel: 110 - center: - x: -54.0 - y: 7.0 - z: 27.0 - color: '#007715' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_PrCv_2: - name: 7Networks_LH_DorsAttn_PrCv_2 - lookupLabel: 111 - originalLookupLabel: 111 - center: - x: -46.0 - y: 3.0 - z: 37.0 - color: '#00780e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_SalVentAttn_ParOper_1: - name: 7Networks_LH_SalVentAttn_ParOper_1 - lookupLabel: 112 - originalLookupLabel: 112 - center: - x: -47.0 - y: -37.0 - z: 24.0 - color: '#c43af9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_2: - name: 7Networks_LH_SalVentAttn_ParOper_2 - lookupLabel: 113 - originalLookupLabel: 113 - center: - x: -60.0 - y: -29.0 - z: 22.0 - color: '#c43afb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_3: - name: 7Networks_LH_SalVentAttn_ParOper_3 - lookupLabel: 114 - originalLookupLabel: 114 - center: - x: -57.0 - y: -42.0 - z: 29.0 - color: '#c43afc' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_4: - name: 7Networks_LH_SalVentAttn_ParOper_4 - lookupLabel: 115 - originalLookupLabel: 115 - center: - x: -61.0 - y: -23.0 - z: 33.0 - color: '#c43afd' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_5: - name: 7Networks_LH_SalVentAttn_ParOper_5 - lookupLabel: 116 - originalLookupLabel: 116 - center: - x: -62.0 - y: -36.0 - z: 36.0 - color: '#c43afe' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_TempOcc_1: - name: 7Networks_LH_SalVentAttn_TempOcc_1 - lookupLabel: 117 - originalLookupLabel: 117 - center: - x: -54.0 - y: -56.0 - z: 14.0 - color: '#c43aff' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_1: - name: 7Networks_LH_SalVentAttn_FrOperIns_1 - lookupLabel: 118 - originalLookupLabel: 118 - center: - x: -45.0 - y: 6.0 - z: -15.0 - color: '#c43bf7' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_2: - name: 7Networks_LH_SalVentAttn_FrOperIns_2 - lookupLabel: 119 - originalLookupLabel: 119 - center: - x: -39.0 - y: 2.0 - z: -5.0 - color: '#c43bf8' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_3: - name: 7Networks_LH_SalVentAttn_FrOperIns_3 - lookupLabel: 120 - originalLookupLabel: 120 - center: - x: -32.0 - y: 24.0 - z: 0.0 - color: '#c43bf9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_4: - name: 7Networks_LH_SalVentAttn_FrOperIns_4 - lookupLabel: 121 - originalLookupLabel: 121 - center: - x: -40.0 - y: -14.0 - z: -2.0 - color: '#c43bfb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_5: - name: 7Networks_LH_SalVentAttn_FrOperIns_5 - lookupLabel: 122 - originalLookupLabel: 122 - center: - x: -38.0 - y: -5.0 - z: 8.0 - color: '#c43bfc' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_6: - name: 7Networks_LH_SalVentAttn_FrOperIns_6 - lookupLabel: 123 - originalLookupLabel: 123 - center: - x: -33.0 - y: 18.0 - z: 8.0 - color: '#c43bfd' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_7: - name: 7Networks_LH_SalVentAttn_FrOperIns_7 - lookupLabel: 124 - originalLookupLabel: 124 - center: - x: -39.0 - y: 1.0 - z: 13.0 - color: '#c43bfe' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_8: - name: 7Networks_LH_SalVentAttn_FrOperIns_8 - lookupLabel: 125 - originalLookupLabel: 125 - center: - x: -44.0 - y: 12.0 - z: 2.0 - color: '#c43bff' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_9: - name: 7Networks_LH_SalVentAttn_FrOperIns_9 - lookupLabel: 126 - originalLookupLabel: 126 - center: - x: -50.0 - y: 1.0 - z: 5.0 - color: '#c134fa' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_10: - name: 7Networks_LH_SalVentAttn_FrOperIns_10 - lookupLabel: 127 - originalLookupLabel: 127 - center: - x: -51.0 - y: 8.0 - z: 15.0 - color: '#c135f3' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_PFCl_1: - name: 7Networks_LH_SalVentAttn_PFCl_1 - lookupLabel: 128 - originalLookupLabel: 128 - center: - x: -29.0 - y: 43.0 - z: 30.0 - color: '#c134f9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_1: - name: 7Networks_LH_SalVentAttn_Med_1 - lookupLabel: 129 - originalLookupLabel: 129 - center: - x: -6.0 - y: 16.0 - z: 36.0 - color: '#c53af7' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_2: - name: 7Networks_LH_SalVentAttn_Med_2 - lookupLabel: 130 - originalLookupLabel: 130 - center: - x: -6.0 - y: -1.0 - z: 40.0 - color: '#c53af8' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_3: - name: 7Networks_LH_SalVentAttn_Med_3 - lookupLabel: 131 - originalLookupLabel: 131 - center: - x: -10.0 - y: -32.0 - z: 40.0 - color: '#c53af9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_4: - name: 7Networks_LH_SalVentAttn_Med_4 - lookupLabel: 132 - originalLookupLabel: 132 - center: - x: -11.0 - y: -20.0 - z: 40.0 - color: '#c53afb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_5: - name: 7Networks_LH_SalVentAttn_Med_5 - lookupLabel: 133 - originalLookupLabel: 133 - center: - x: -6.0 - y: 3.0 - z: 50.0 - color: '#c53afc' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_6: - name: 7Networks_LH_SalVentAttn_Med_6 - lookupLabel: 134 - originalLookupLabel: 134 - center: - x: -13.0 - y: -42.0 - z: 49.0 - color: '#c53afd' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_7: - name: 7Networks_LH_SalVentAttn_Med_7 - lookupLabel: 135 - originalLookupLabel: 135 - center: - x: -11.0 - y: -31.0 - z: 47.0 - color: '#c53afe' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_8: - name: 7Networks_LH_SalVentAttn_Med_8 - lookupLabel: 136 - originalLookupLabel: 136 - center: - x: -4.0 - y: 3.0 - z: 60.0 - color: '#c53aff' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_9: - name: 7Networks_LH_SalVentAttn_Med_9 - lookupLabel: 137 - originalLookupLabel: 137 - center: - x: -6.0 - y: -49.0 - z: 57.0 - color: '#c233fa' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_10: - name: 7Networks_LH_SalVentAttn_Med_10 - lookupLabel: 138 - originalLookupLabel: 138 - center: - x: -13.0 - y: -1.0 - z: 72.0 - color: '#c234f3' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_Limbic_OFC_1: - name: 7Networks_LH_Limbic_OFC_1 - lookupLabel: 139 - originalLookupLabel: 139 - center: - x: -12.0 - y: 25.0 - z: -21.0 - color: '#dcf8a3' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_2: - name: 7Networks_LH_Limbic_OFC_2 - lookupLabel: 140 - originalLookupLabel: 140 - center: - x: -24.0 - y: 23.0 - z: -20.0 - color: '#dcf8a5' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_3: - name: 7Networks_LH_Limbic_OFC_3 - lookupLabel: 141 - originalLookupLabel: 141 - center: - x: -6.0 - y: 45.0 - z: -23.0 - color: '#dcf8a6' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_4: - name: 7Networks_LH_Limbic_OFC_4 - lookupLabel: 142 - originalLookupLabel: 142 - center: - x: -17.0 - y: 48.0 - z: -19.0 - color: '#dcf8a7' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_5: - name: 7Networks_LH_Limbic_OFC_5 - lookupLabel: 143 - originalLookupLabel: 143 - center: - x: -4.0 - y: 22.0 - z: -19.0 - color: '#dcf8a8' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_6: - name: 7Networks_LH_Limbic_OFC_6 - lookupLabel: 144 - originalLookupLabel: 144 - center: - x: -15.0 - y: 65.0 - z: -8.0 - color: '#dcf8a9' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_1: - name: 7Networks_LH_Limbic_TempPole_1 - lookupLabel: 145 - originalLookupLabel: 145 - center: - x: -31.0 - y: 0.0 - z: -43.0 - color: '#dcf8a2' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_2: - name: 7Networks_LH_Limbic_TempPole_2 - lookupLabel: 146 - originalLookupLabel: 146 - center: - x: -46.0 - y: -5.0 - z: -41.0 - color: '#dcf8a4' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_3: - name: 7Networks_LH_Limbic_TempPole_3 - lookupLabel: 147 - originalLookupLabel: 147 - center: - x: -26.0 - y: -7.0 - z: -34.0 - color: '#dcf8aa' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_4: - name: 7Networks_LH_Limbic_TempPole_4 - lookupLabel: 148 - originalLookupLabel: 148 - center: - x: -39.0 - y: -16.0 - z: -31.0 - color: '#dcf8ab' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_5: - name: 7Networks_LH_Limbic_TempPole_5 - lookupLabel: 149 - originalLookupLabel: 149 - center: - x: -27.0 - y: 10.0 - z: -33.0 - color: '#dcf8ac' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_6: - name: 7Networks_LH_Limbic_TempPole_6 - lookupLabel: 150 - originalLookupLabel: 150 - center: - x: -52.0 - y: -24.0 - z: -30.0 - color: '#dcf9a5' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_7: - name: 7Networks_LH_Limbic_TempPole_7 - lookupLabel: 151 - originalLookupLabel: 151 - center: - x: -43.0 - y: 14.0 - z: -34.0 - color: '#dcf9a6' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_8: - name: 7Networks_LH_Limbic_TempPole_8 - lookupLabel: 152 - originalLookupLabel: 152 - center: - x: -21.0 - y: -15.0 - z: -29.0 - color: '#dcf9a7' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_9: - name: 7Networks_LH_Limbic_TempPole_9 - lookupLabel: 153 - originalLookupLabel: 153 - center: - x: -32.0 - y: -24.0 - z: -26.0 - color: '#dcf9a8' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_10: - name: 7Networks_LH_Limbic_TempPole_10 - lookupLabel: 154 - originalLookupLabel: 154 - center: - x: -38.0 - y: 9.0 - z: -24.0 - color: '#dcf9a9' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Cont_Par_1: - name: 7Networks_LH_Cont_Par_1 - lookupLabel: 155 - originalLookupLabel: 155 - center: - x: -29.0 - y: -76.0 - z: 41.0 - color: '#e69420' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_2: - name: 7Networks_LH_Cont_Par_2 - lookupLabel: 156 - originalLookupLabel: 156 - center: - x: -59.0 - y: -43.0 - z: 44.0 - color: '#e69421' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_3: - name: 7Networks_LH_Cont_Par_3 - lookupLabel: 157 - originalLookupLabel: 157 - center: - x: -53.0 - y: -50.0 - z: 46.0 - color: '#e69423' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_4: - name: 7Networks_LH_Cont_Par_4 - lookupLabel: 158 - originalLookupLabel: 158 - center: - x: -51.0 - y: -39.0 - z: 48.0 - color: '#e69424' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_5: - name: 7Networks_LH_Cont_Par_5 - lookupLabel: 159 - originalLookupLabel: 159 - center: - x: -35.0 - y: -63.0 - z: 49.0 - color: '#e69425' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_6: - name: 7Networks_LH_Cont_Par_6 - lookupLabel: 160 - originalLookupLabel: 160 - center: - x: -43.0 - y: -53.0 - z: 50.0 - color: '#e69426' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_7: - name: 7Networks_LH_Cont_Par_7 - lookupLabel: 161 - originalLookupLabel: 161 - center: - x: -43.0 - y: -44.0 - z: 48.0 - color: '#e69427' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_8: - name: 7Networks_LH_Cont_Par_8 - lookupLabel: 162 - originalLookupLabel: 162 - center: - x: -34.0 - y: -50.0 - z: 40.0 - color: '#e69428' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Temp_1: - name: 7Networks_LH_Cont_Temp_1 - lookupLabel: 163 - originalLookupLabel: 163 - center: - x: -60.0 - y: -51.0 - z: -9.0 - color: '#e69429' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCd_1: - name: 7Networks_LH_Cont_PFCd_1 - lookupLabel: 164 - originalLookupLabel: 164 - center: - x: -30.0 - y: 2.0 - z: 59.0 - color: '#e69523' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCd_2: - name: 7Networks_LH_Cont_PFCd_2 - lookupLabel: 165 - originalLookupLabel: 165 - center: - x: -20.0 - y: 11.0 - z: 66.0 - color: '#e69524' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_OFC_1: - name: 7Networks_LH_Cont_OFC_1 - lookupLabel: 166 - originalLookupLabel: 166 - center: - x: -31.0 - y: 51.0 - z: -13.0 - color: '#e69520' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_1: - name: 7Networks_LH_Cont_PFCl_1 - lookupLabel: 167 - originalLookupLabel: 167 - center: - x: -41.0 - y: 50.0 - z: -1.0 - color: '#e69521' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_2: - name: 7Networks_LH_Cont_PFCl_2 - lookupLabel: 168 - originalLookupLabel: 168 - center: - x: -30.0 - y: 56.0 - z: 11.0 - color: '#e69522' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_3: - name: 7Networks_LH_Cont_PFCl_3 - lookupLabel: 169 - originalLookupLabel: 169 - center: - x: -45.0 - y: 35.0 - z: 13.0 - color: '#e69525' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_4: - name: 7Networks_LH_Cont_PFCl_4 - lookupLabel: 170 - originalLookupLabel: 170 - center: - x: -38.0 - y: 46.0 - z: 17.0 - color: '#e69526' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_5: - name: 7Networks_LH_Cont_PFCl_5 - lookupLabel: 171 - originalLookupLabel: 171 - center: - x: -45.0 - y: 20.0 - z: 25.0 - color: '#e69527' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_6: - name: 7Networks_LH_Cont_PFCl_6 - lookupLabel: 172 - originalLookupLabel: 172 - center: - x: -43.0 - y: 36.0 - z: 28.0 - color: '#e69528' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_7: - name: 7Networks_LH_Cont_PFCl_7 - lookupLabel: 173 - originalLookupLabel: 173 - center: - x: -39.0 - y: 7.0 - z: 28.0 - color: '#e69529' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_8: - name: 7Networks_LH_Cont_PFCl_8 - lookupLabel: 174 - originalLookupLabel: 174 - center: - x: -45.0 - y: 18.0 - z: 35.0 - color: '#e6952a' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_9: - name: 7Networks_LH_Cont_PFCl_9 - lookupLabel: 175 - originalLookupLabel: 175 - center: - x: -35.0 - y: 32.0 - z: 39.0 - color: '#e69623' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCv_1: - name: 7Networks_LH_Cont_PFCv_1 - lookupLabel: 176 - originalLookupLabel: 176 - center: - x: -33.0 - y: 17.0 - z: -8.0 - color: '#e79424' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_pCun_1: - name: 7Networks_LH_Cont_pCun_1 - lookupLabel: 177 - originalLookupLabel: 177 - center: - x: -9.0 - y: -76.0 - z: 42.0 - color: '#e79523' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_pCun_2: - name: 7Networks_LH_Cont_pCun_2 - lookupLabel: 178 - originalLookupLabel: 178 - center: - x: -4.0 - y: -72.0 - z: 52.0 - color: '#e79524' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_pCun_3: - name: 7Networks_LH_Cont_pCun_3 - lookupLabel: 179 - originalLookupLabel: 179 - center: - x: -5.0 - y: -61.0 - z: 51.0 - color: '#e79525' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_1: - name: 7Networks_LH_Cont_Cing_1 - lookupLabel: 180 - originalLookupLabel: 180 - center: - x: -3.0 - y: 14.0 - z: 26.0 - color: '#e79526' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_2: - name: 7Networks_LH_Cont_Cing_2 - lookupLabel: 181 - originalLookupLabel: 181 - center: - x: -5.0 - y: -23.0 - z: 29.0 - color: '#e79527' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_3: - name: 7Networks_LH_Cont_Cing_3 - lookupLabel: 182 - originalLookupLabel: 182 - center: - x: -3.0 - y: 0.0 - z: 31.0 - color: '#e79528' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCmp_1: - name: 7Networks_LH_Cont_PFCmp_1 - lookupLabel: 183 - originalLookupLabel: 183 - center: - x: -7.0 - y: 31.0 - z: 27.0 - color: '#e69422' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCmp_2: - name: 7Networks_LH_Cont_PFCmp_2 - lookupLabel: 184 - originalLookupLabel: 184 - center: - x: -4.0 - y: 29.0 - z: 46.0 - color: '#e69621' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCmp_3: - name: 7Networks_LH_Cont_PFCmp_3 - lookupLabel: 185 - originalLookupLabel: 185 - center: - x: -5.0 - y: 15.0 - z: 51.0 - color: '#e69622' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Default_Temp_1: - name: 7Networks_LH_Default_Temp_1 - lookupLabel: 186 - originalLookupLabel: 186 - center: - x: -54.0 - y: 0.0 - z: -29.0 - color: '#cd3d4e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_2: - name: 7Networks_LH_Default_Temp_2 - lookupLabel: 187 - originalLookupLabel: 187 - center: - x: -61.0 - y: -17.0 - z: -23.0 - color: '#cd3d4f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_3: - name: 7Networks_LH_Default_Temp_3 - lookupLabel: 188 - originalLookupLabel: 188 - center: - x: -60.0 - y: -36.0 - z: -18.0 - color: '#cd3e48' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_4: - name: 7Networks_LH_Default_Temp_4 - lookupLabel: 189 - originalLookupLabel: 189 - center: - x: -52.0 - y: 9.0 - z: -18.0 - color: '#cd3e49' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_5: - name: 7Networks_LH_Default_Temp_5 - lookupLabel: 190 - originalLookupLabel: 190 - center: - x: -59.0 - y: -11.0 - z: -13.0 - color: '#cd3e4a' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_6: - name: 7Networks_LH_Default_Temp_6 - lookupLabel: 191 - originalLookupLabel: 191 - center: - x: -53.0 - y: -4.0 - z: -11.0 - color: '#cd3e4b' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_7: - name: 7Networks_LH_Default_Temp_7 - lookupLabel: 192 - originalLookupLabel: 192 - center: - x: -63.0 - y: -34.0 - z: -4.0 - color: '#cd3e4c' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_8: - name: 7Networks_LH_Default_Temp_8 - lookupLabel: 193 - originalLookupLabel: 193 - center: - x: -51.0 - y: -28.0 - z: -4.0 - color: '#cd3e4d' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_9: - name: 7Networks_LH_Default_Temp_9 - lookupLabel: 194 - originalLookupLabel: 194 - center: - x: -60.0 - y: -17.0 - z: -2.0 - color: '#cd3e4e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_10: - name: 7Networks_LH_Default_Temp_10 - lookupLabel: 195 - originalLookupLabel: 195 - center: - x: -62.0 - y: -51.0 - z: 5.0 - color: '#cd3e50' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_11: - name: 7Networks_LH_Default_Temp_11 - lookupLabel: 196 - originalLookupLabel: 196 - center: - x: -61.0 - y: -32.0 - z: 4.0 - color: '#cd3e51' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_12: - name: 7Networks_LH_Default_Temp_12 - lookupLabel: 197 - originalLookupLabel: 197 - center: - x: -52.0 - y: -42.0 - z: 4.0 - color: '#cd3e52' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_1: - name: 7Networks_LH_Default_Par_1 - lookupLabel: 198 - originalLookupLabel: 198 - center: - x: -50.0 - y: -49.0 - z: 15.0 - color: '#cd3e53' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_2: - name: 7Networks_LH_Default_Par_2 - lookupLabel: 199 - originalLookupLabel: 199 - center: - x: -43.0 - y: -69.0 - z: 22.0 - color: '#cd3e54' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_3: - name: 7Networks_LH_Default_Par_3 - lookupLabel: 200 - originalLookupLabel: 200 - center: - x: -61.0 - y: -48.0 - z: 21.0 - color: '#cd3e55' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_4: - name: 7Networks_LH_Default_Par_4 - lookupLabel: 201 - originalLookupLabel: 201 - center: - x: -47.0 - y: -56.0 - z: 24.0 - color: '#cd3e56' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_5: - name: 7Networks_LH_Default_Par_5 - lookupLabel: 202 - originalLookupLabel: 202 - center: - x: -39.0 - y: -81.0 - z: 32.0 - color: '#cd3f4f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_6: - name: 7Networks_LH_Default_Par_6 - lookupLabel: 203 - originalLookupLabel: 203 - center: - x: -47.0 - y: -66.0 - z: 31.0 - color: '#cd3f50' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_7: - name: 7Networks_LH_Default_Par_7 - lookupLabel: 204 - originalLookupLabel: 204 - center: - x: -59.0 - y: -53.0 - z: 31.0 - color: '#cd3f51' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_8: - name: 7Networks_LH_Default_Par_8 - lookupLabel: 205 - originalLookupLabel: 205 - center: - x: -41.0 - y: -72.0 - z: 44.0 - color: '#cd3f52' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_9: - name: 7Networks_LH_Default_Par_9 - lookupLabel: 206 - originalLookupLabel: 206 - center: - x: -49.0 - y: -60.0 - z: 44.0 - color: '#cd3f53' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_1: - name: 7Networks_LH_Default_PFC_1 - lookupLabel: 207 - originalLookupLabel: 207 - center: - x: -29.0 - y: 17.0 - z: -17.0 - color: '#cd3f47' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_2: - name: 7Networks_LH_Default_PFC_2 - lookupLabel: 208 - originalLookupLabel: 208 - center: - x: -34.0 - y: 37.0 - z: -12.0 - color: '#cd3f48' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_3: - name: 7Networks_LH_Default_PFC_3 - lookupLabel: 209 - originalLookupLabel: 209 - center: - x: -38.0 - y: 24.0 - z: -14.0 - color: '#cd3f49' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_4: - name: 7Networks_LH_Default_PFC_4 - lookupLabel: 210 - originalLookupLabel: 210 - center: - x: -45.0 - y: 37.0 - z: -15.0 - color: '#cd3f4a' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_5: - name: 7Networks_LH_Default_PFC_5 - lookupLabel: 211 - originalLookupLabel: 211 - center: - x: -5.0 - y: 55.0 - z: -10.0 - color: '#cd3f4b' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_6: - name: 7Networks_LH_Default_PFC_6 - lookupLabel: 212 - originalLookupLabel: 212 - center: - x: -6.0 - y: 35.0 - z: -9.0 - color: '#cd3f4c' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_7: - name: 7Networks_LH_Default_PFC_7 - lookupLabel: 213 - originalLookupLabel: 213 - center: - x: -43.0 - y: 28.0 - z: -5.0 - color: '#cd3f4d' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_8: - name: 7Networks_LH_Default_PFC_8 - lookupLabel: 214 - originalLookupLabel: 214 - center: - x: -28.0 - y: 58.0 - z: -1.0 - color: '#cd3f54' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_9: - name: 7Networks_LH_Default_PFC_9 - lookupLabel: 215 - originalLookupLabel: 215 - center: - x: -49.0 - y: 39.0 - z: -3.0 - color: '#cd3f55' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_10: - name: 7Networks_LH_Default_PFC_10 - lookupLabel: 216 - originalLookupLabel: 216 - center: - x: -47.0 - y: 26.0 - z: 2.0 - color: '#cd404e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_11: - name: 7Networks_LH_Default_PFC_11 - lookupLabel: 217 - originalLookupLabel: 217 - center: - x: -6.0 - y: 45.0 - z: 4.0 - color: '#cd404f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_12: - name: 7Networks_LH_Default_PFC_12 - lookupLabel: 218 - originalLookupLabel: 218 - center: - x: -6.0 - y: 60.0 - z: 7.0 - color: '#cd4050' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_13: - name: 7Networks_LH_Default_PFC_13 - lookupLabel: 219 - originalLookupLabel: 219 - center: - x: -17.0 - y: 66.0 - z: 9.0 - color: '#cd4051' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_14: - name: 7Networks_LH_Default_PFC_14 - lookupLabel: 220 - originalLookupLabel: 220 - center: - x: -54.0 - y: 19.0 - z: 12.0 - color: '#cd4052' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_15: - name: 7Networks_LH_Default_PFC_15 - lookupLabel: 221 - originalLookupLabel: 221 - center: - x: -3.0 - y: 35.0 - z: 12.0 - color: '#cd4053' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_16: - name: 7Networks_LH_Default_PFC_16 - lookupLabel: 222 - originalLookupLabel: 222 - center: - x: -7.0 - y: 46.0 - z: 19.0 - color: '#cd4054' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_17: - name: 7Networks_LH_Default_PFC_17 - lookupLabel: 223 - originalLookupLabel: 223 - center: - x: -3.0 - y: 26.0 - z: 19.0 - color: '#cd4055' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_18: - name: 7Networks_LH_Default_PFC_18 - lookupLabel: 224 - originalLookupLabel: 224 - center: - x: -5.0 - y: 60.0 - z: 23.0 - color: '#cd414e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_19: - name: 7Networks_LH_Default_PFC_19 - lookupLabel: 225 - originalLookupLabel: 225 - center: - x: -22.0 - y: 54.0 - z: 25.0 - color: '#cd414f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_20: - name: 7Networks_LH_Default_PFC_20 - lookupLabel: 226 - originalLookupLabel: 226 - center: - x: -14.0 - y: 57.0 - z: 32.0 - color: '#cd4150' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_21: - name: 7Networks_LH_Default_PFC_21 - lookupLabel: 227 - originalLookupLabel: 227 - center: - x: -3.0 - y: 45.0 - z: 40.0 - color: '#cd4151' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_22: - name: 7Networks_LH_Default_PFC_22 - lookupLabel: 228 - originalLookupLabel: 228 - center: - x: -20.0 - y: 41.0 - z: 42.0 - color: '#cd4152' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_23: - name: 7Networks_LH_Default_PFC_23 - lookupLabel: 229 - originalLookupLabel: 229 - center: - x: -25.0 - y: 28.0 - z: 44.0 - color: '#cd4153' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_24: - name: 7Networks_LH_Default_PFC_24 - lookupLabel: 230 - originalLookupLabel: 230 - center: - x: -13.0 - y: 41.0 - z: 50.0 - color: '#cd4154' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_25: - name: 7Networks_LH_Default_PFC_25 - lookupLabel: 231 - originalLookupLabel: 231 - center: - x: -39.0 - y: 19.0 - z: 50.0 - color: '#cd4155' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_26: - name: 7Networks_LH_Default_PFC_26 - lookupLabel: 232 - originalLookupLabel: 232 - center: - x: -42.0 - y: 7.0 - z: 48.0 - color: '#cd424e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_27: - name: 7Networks_LH_Default_PFC_27 - lookupLabel: 233 - originalLookupLabel: 233 - center: - x: -28.0 - y: 16.0 - z: 53.0 - color: '#cd424f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_28: - name: 7Networks_LH_Default_PFC_28 - lookupLabel: 234 - originalLookupLabel: 234 - center: - x: -21.0 - y: 25.0 - z: 52.0 - color: '#cd4250' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_29: - name: 7Networks_LH_Default_PFC_29 - lookupLabel: 235 - originalLookupLabel: 235 - center: - x: -11.0 - y: 26.0 - z: 60.0 - color: '#cd4251' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_30: - name: 7Networks_LH_Default_PFC_30 - lookupLabel: 236 - originalLookupLabel: 236 - center: - x: -6.0 - y: 12.0 - z: 65.0 - color: '#cd4252' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_1: - name: 7Networks_LH_Default_pCunPCC_1 - lookupLabel: 237 - originalLookupLabel: 237 - center: - x: -10.0 - y: -53.0 - z: 8.0 - color: '#cd3f4e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_2: - name: 7Networks_LH_Default_pCunPCC_2 - lookupLabel: 238 - originalLookupLabel: 238 - center: - x: -6.0 - y: -47.0 - z: 13.0 - color: '#cd3f56' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_3: - name: 7Networks_LH_Default_pCunPCC_3 - lookupLabel: 239 - originalLookupLabel: 239 - center: - x: -10.0 - y: -59.0 - z: 17.0 - color: '#cd4056' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_4: - name: 7Networks_LH_Default_pCunPCC_4 - lookupLabel: 240 - originalLookupLabel: 240 - center: - x: -4.0 - y: -54.0 - z: 20.0 - color: '#cd4156' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_5: - name: 7Networks_LH_Default_pCunPCC_5 - lookupLabel: 241 - originalLookupLabel: 241 - center: - x: -6.0 - y: -40.0 - z: 25.0 - color: '#cd4253' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_6: - name: 7Networks_LH_Default_pCunPCC_6 - lookupLabel: 242 - originalLookupLabel: 242 - center: - x: -11.0 - y: -69.0 - z: 30.0 - color: '#cd4254' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_7: - name: 7Networks_LH_Default_pCunPCC_7 - lookupLabel: 243 - originalLookupLabel: 243 - center: - x: -5.0 - y: -59.0 - z: 30.0 - color: '#cd4255' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_8: - name: 7Networks_LH_Default_pCunPCC_8 - lookupLabel: 244 - originalLookupLabel: 244 - center: - x: -7.0 - y: -44.0 - z: 32.0 - color: '#cd4256' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_9: - name: 7Networks_LH_Default_pCunPCC_9 - lookupLabel: 245 - originalLookupLabel: 245 - center: - x: -3.0 - y: -33.0 - z: 37.0 - color: '#cd434f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_10: - name: 7Networks_LH_Default_pCunPCC_10 - lookupLabel: 246 - originalLookupLabel: 246 - center: - x: -2.0 - y: -16.0 - z: 37.0 - color: '#cd4350' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_11: - name: 7Networks_LH_Default_pCunPCC_11 - lookupLabel: 247 - originalLookupLabel: 247 - center: - x: -3.0 - y: -66.0 - z: 40.0 - color: '#cd4351' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_12: - name: 7Networks_LH_Default_pCunPCC_12 - lookupLabel: 248 - originalLookupLabel: 248 - center: - x: -7.0 - y: -50.0 - z: 43.0 - color: '#cd4352' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PHC_1: - name: 7Networks_LH_Default_PHC_1 - lookupLabel: 249 - originalLookupLabel: 249 - center: - x: -20.0 - y: -25.0 - z: -22.0 - color: '#ce3e4f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PHC_2: - name: 7Networks_LH_Default_PHC_2 - lookupLabel: 250 - originalLookupLabel: 250 - center: - x: -19.0 - y: -35.0 - z: -14.0 - color: '#ce3e50' - hemisphere: left - hasParent: - - LH_Default - 7Networks_RH_Vis_1: - name: 7Networks_RH_Vis_1 - lookupLabel: 251 - originalLookupLabel: 251 - center: - x: 33.0 - y: -26.0 - z: -25.0 - color: '#781087' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_2: - name: 7Networks_RH_Vis_2 - lookupLabel: 252 - originalLookupLabel: 252 - center: - x: 35.0 - y: -48.0 - z: -19.0 - color: '#781180' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_3: - name: 7Networks_RH_Vis_3 - lookupLabel: 253 - originalLookupLabel: 253 - center: - x: 29.0 - y: -34.0 - z: -15.0 - color: '#781181' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_4: - name: 7Networks_RH_Vis_4 - lookupLabel: 254 - originalLookupLabel: 254 - center: - x: 37.0 - y: -72.0 - z: -15.0 - color: '#781182' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_5: - name: 7Networks_RH_Vis_5 - lookupLabel: 255 - originalLookupLabel: 255 - center: - x: 27.0 - y: -53.0 - z: -9.0 - color: '#781183' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_6: - name: 7Networks_RH_Vis_6 - lookupLabel: 256 - originalLookupLabel: 256 - center: - x: 23.0 - y: -74.0 - z: -11.0 - color: '#781184' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_7: - name: 7Networks_RH_Vis_7 - lookupLabel: 257 - originalLookupLabel: 257 - center: - x: 20.0 - y: -88.0 - z: -12.0 - color: '#781185' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_8: - name: 7Networks_RH_Vis_8 - lookupLabel: 258 - originalLookupLabel: 258 - center: - x: 18.0 - y: -36.0 - z: -12.0 - color: '#781186' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_9: - name: 7Networks_RH_Vis_9 - lookupLabel: 259 - originalLookupLabel: 259 - center: - x: 44.0 - y: -80.0 - z: -14.0 - color: '#781187' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_10: - name: 7Networks_RH_Vis_10 - lookupLabel: 260 - originalLookupLabel: 260 - center: - x: 14.0 - y: -58.0 - z: -5.0 - color: '#781280' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_11: - name: 7Networks_RH_Vis_11 - lookupLabel: 261 - originalLookupLabel: 261 - center: - x: 9.0 - y: -72.0 - z: -5.0 - color: '#781281' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_12: - name: 7Networks_RH_Vis_12 - lookupLabel: 262 - originalLookupLabel: 262 - center: - x: 6.0 - y: -85.0 - z: -9.0 - color: '#781282' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_13: - name: 7Networks_RH_Vis_13 - lookupLabel: 263 - originalLookupLabel: 263 - center: - x: 49.0 - y: -67.0 - z: -4.0 - color: '#781283' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_14: - name: 7Networks_RH_Vis_14 - lookupLabel: 264 - originalLookupLabel: 264 - center: - x: 25.0 - y: -97.0 - z: -11.0 - color: '#781284' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_15: - name: 7Networks_RH_Vis_15 - lookupLabel: 265 - originalLookupLabel: 265 - center: - x: 14.0 - y: -56.0 - z: 2.0 - color: '#781285' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_16: - name: 7Networks_RH_Vis_16 - lookupLabel: 266 - originalLookupLabel: 266 - center: - x: 17.0 - y: -43.0 - z: -3.0 - color: '#781286' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_17: - name: 7Networks_RH_Vis_17 - lookupLabel: 267 - originalLookupLabel: 267 - center: - x: 3.0 - y: -69.0 - z: 6.0 - color: '#781288' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_18: - name: 7Networks_RH_Vis_18 - lookupLabel: 268 - originalLookupLabel: 268 - center: - x: 41.0 - y: -86.0 - z: -5.0 - color: '#781289' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_19: - name: 7Networks_RH_Vis_19 - lookupLabel: 269 - originalLookupLabel: 269 - center: - x: 11.0 - y: -97.0 - z: 0.0 - color: '#78128a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_20: - name: 7Networks_RH_Vis_20 - lookupLabel: 270 - originalLookupLabel: 270 - center: - x: 14.0 - y: -47.0 - z: 4.0 - color: '#78128b' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_21: - name: 7Networks_RH_Vis_21 - lookupLabel: 271 - originalLookupLabel: 271 - center: - x: 7.0 - y: -84.0 - z: 5.0 - color: '#78128c' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_22: - name: 7Networks_RH_Vis_22 - lookupLabel: 272 - originalLookupLabel: 272 - center: - x: 26.0 - y: -97.0 - z: 6.0 - color: '#78128d' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_23: - name: 7Networks_RH_Vis_23 - lookupLabel: 273 - originalLookupLabel: 273 - center: - x: 49.0 - y: -64.0 - z: 8.0 - color: '#78128e' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_24: - name: 7Networks_RH_Vis_24 - lookupLabel: 274 - originalLookupLabel: 274 - center: - x: 23.0 - y: -59.0 - z: 6.0 - color: '#781387' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_25: - name: 7Networks_RH_Vis_25 - lookupLabel: 275 - originalLookupLabel: 275 - center: - x: 11.0 - y: -70.0 - z: 10.0 - color: '#781388' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_26: - name: 7Networks_RH_Vis_26 - lookupLabel: 276 - originalLookupLabel: 276 - center: - x: 35.0 - y: -86.0 - z: 4.0 - color: '#781389' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_27: - name: 7Networks_RH_Vis_27 - lookupLabel: 277 - originalLookupLabel: 277 - center: - x: 44.0 - y: -78.0 - z: 11.0 - color: '#78138a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_28: - name: 7Networks_RH_Vis_28 - lookupLabel: 278 - originalLookupLabel: 278 - center: - x: 13.0 - y: -94.0 - z: 18.0 - color: '#78138b' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_29: - name: 7Networks_RH_Vis_29 - lookupLabel: 279 - originalLookupLabel: 279 - center: - x: 30.0 - y: -88.0 - z: 17.0 - color: '#78138c' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_30: - name: 7Networks_RH_Vis_30 - lookupLabel: 280 - originalLookupLabel: 280 - center: - x: 16.0 - y: -67.0 - z: 20.0 - color: '#78138d' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_31: - name: 7Networks_RH_Vis_31 - lookupLabel: 281 - originalLookupLabel: 281 - center: - x: 5.0 - y: -81.0 - z: 26.0 - color: '#78138e' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_32: - name: 7Networks_RH_Vis_32 - lookupLabel: 282 - originalLookupLabel: 282 - center: - x: 36.0 - y: -79.0 - z: 25.0 - color: '#781487' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_33: - name: 7Networks_RH_Vis_33 - lookupLabel: 283 - originalLookupLabel: 283 - center: - x: 23.0 - y: -86.0 - z: 30.0 - color: '#781488' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_34: - name: 7Networks_RH_Vis_34 - lookupLabel: 284 - originalLookupLabel: 284 - center: - x: 15.0 - y: -80.0 - z: 37.0 - color: '#781489' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_35: - name: 7Networks_RH_Vis_35 - lookupLabel: 285 - originalLookupLabel: 285 - center: - x: 27.0 - y: -79.0 - z: 44.0 - color: '#78148a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_SomMot_1: - name: 7Networks_RH_SomMot_1 - lookupLabel: 286 - originalLookupLabel: 286 - center: - x: 53.0 - y: 2.0 - z: -5.0 - color: '#4680ae' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_2: - name: 7Networks_RH_SomMot_2 - lookupLabel: 287 - originalLookupLabel: 287 - center: - x: 62.0 - y: -11.0 - z: -3.0 - color: '#4680af' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_3: - name: 7Networks_RH_SomMot_3 - lookupLabel: 288 - originalLookupLabel: 288 - center: - x: 63.0 - y: -23.0 - z: 1.0 - color: '#4680b0' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_4: - name: 7Networks_RH_SomMot_4 - lookupLabel: 289 - originalLookupLabel: 289 - center: - x: 53.0 - y: -14.0 - z: 6.0 - color: '#4680b1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_5: - name: 7Networks_RH_SomMot_5 - lookupLabel: 290 - originalLookupLabel: 290 - center: - x: 39.0 - y: -20.0 - z: 4.0 - color: '#4680b2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_6: - name: 7Networks_RH_SomMot_6 - lookupLabel: 291 - originalLookupLabel: 291 - center: - x: 38.0 - y: -9.0 - z: 11.0 - color: '#4680b3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_7: - name: 7Networks_RH_SomMot_7 - lookupLabel: 292 - originalLookupLabel: 292 - center: - x: 35.0 - y: -21.0 - z: 15.0 - color: '#4680b4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_8: - name: 7Networks_RH_SomMot_8 - lookupLabel: 293 - originalLookupLabel: 293 - center: - x: 60.0 - y: -24.0 - z: 11.0 - color: '#4680b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_9: - name: 7Networks_RH_SomMot_9 - lookupLabel: 294 - originalLookupLabel: 294 - center: - x: 65.0 - y: -35.0 - z: 11.0 - color: '#4681ae' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_10: - name: 7Networks_RH_SomMot_10 - lookupLabel: 295 - originalLookupLabel: 295 - center: - x: 42.0 - y: -12.0 - z: 17.0 - color: '#4681af' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_11: - name: 7Networks_RH_SomMot_11 - lookupLabel: 296 - originalLookupLabel: 296 - center: - x: 41.0 - y: -29.0 - z: 18.0 - color: '#4681b0' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_12: - name: 7Networks_RH_SomMot_12 - lookupLabel: 297 - originalLookupLabel: 297 - center: - x: 57.0 - y: 1.0 - z: 9.0 - color: '#4681b1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_13: - name: 7Networks_RH_SomMot_13 - lookupLabel: 298 - originalLookupLabel: 298 - center: - x: 56.0 - y: -11.0 - z: 14.0 - color: '#4681b2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_14: - name: 7Networks_RH_SomMot_14 - lookupLabel: 299 - originalLookupLabel: 299 - center: - x: 49.0 - y: -20.0 - z: 18.0 - color: '#4681b3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_15: - name: 7Networks_RH_SomMot_15 - lookupLabel: 300 - originalLookupLabel: 300 - center: - x: 63.0 - y: -1.0 - z: 13.0 - color: '#4681b4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_16: - name: 7Networks_RH_SomMot_16 - lookupLabel: 301 - originalLookupLabel: 301 - center: - x: 61.0 - y: -3.0 - z: 24.0 - color: '#4681b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_17: - name: 7Networks_RH_SomMot_17 - lookupLabel: 302 - originalLookupLabel: 302 - center: - x: 64.0 - y: -11.0 - z: 29.0 - color: '#4682ae' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_18: - name: 7Networks_RH_SomMot_18 - lookupLabel: 303 - originalLookupLabel: 303 - center: - x: 53.0 - y: -10.0 - z: 36.0 - color: '#4682af' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_19: - name: 7Networks_RH_SomMot_19 - lookupLabel: 304 - originalLookupLabel: 304 - center: - x: 53.0 - y: -5.0 - z: 37.0 - color: '#4682b0' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_20: - name: 7Networks_RH_SomMot_20 - lookupLabel: 305 - originalLookupLabel: 305 - center: - x: 55.0 - y: -17.0 - z: 41.0 - color: '#4682b1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_21: - name: 7Networks_RH_SomMot_21 - lookupLabel: 306 - originalLookupLabel: 306 - center: - x: 11.0 - y: -15.0 - z: 42.0 - color: '#4682b2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_22: - name: 7Networks_RH_SomMot_22 - lookupLabel: 307 - originalLookupLabel: 307 - center: - x: 52.0 - y: -13.0 - z: 51.0 - color: '#4682b3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_23: - name: 7Networks_RH_SomMot_23 - lookupLabel: 308 - originalLookupLabel: 308 - center: - x: 41.0 - y: -16.0 - z: 41.0 - color: '#4682b4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_24: - name: 7Networks_RH_SomMot_24 - lookupLabel: 309 - originalLookupLabel: 309 - center: - x: 45.0 - y: -10.0 - z: 50.0 - color: '#4682b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_25: - name: 7Networks_RH_SomMot_25 - lookupLabel: 310 - originalLookupLabel: 310 - center: - x: 50.0 - y: -25.0 - z: 55.0 - color: '#4682b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_26: - name: 7Networks_RH_SomMot_26 - lookupLabel: 311 - originalLookupLabel: 311 - center: - x: 7.0 - y: -4.0 - z: 51.0 - color: '#4682b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_27: - name: 7Networks_RH_SomMot_27 - lookupLabel: 312 - originalLookupLabel: 312 - center: - x: 41.0 - y: -21.0 - z: 50.0 - color: '#4682b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_28: - name: 7Networks_RH_SomMot_28 - lookupLabel: 313 - originalLookupLabel: 313 - center: - x: 7.0 - y: -18.0 - z: 51.0 - color: '#4682ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_29: - name: 7Networks_RH_SomMot_29 - lookupLabel: 314 - originalLookupLabel: 314 - center: - x: 43.0 - y: -26.0 - z: 64.0 - color: '#4682bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_30: - name: 7Networks_RH_SomMot_30 - lookupLabel: 315 - originalLookupLabel: 315 - center: - x: 37.0 - y: -20.0 - z: 64.0 - color: '#4682bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_31: - name: 7Networks_RH_SomMot_31 - lookupLabel: 316 - originalLookupLabel: 316 - center: - x: 32.0 - y: -34.0 - z: 64.0 - color: '#4683b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_32: - name: 7Networks_RH_SomMot_32 - lookupLabel: 317 - originalLookupLabel: 317 - center: - x: 32.0 - y: -26.0 - z: 55.0 - color: '#4683b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_33: - name: 7Networks_RH_SomMot_33 - lookupLabel: 318 - originalLookupLabel: 318 - center: - x: 30.0 - y: -41.0 - z: 65.0 - color: '#4683b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_34: - name: 7Networks_RH_SomMot_34 - lookupLabel: 319 - originalLookupLabel: 319 - center: - x: 9.0 - y: -40.0 - z: 60.0 - color: '#4683b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_35: - name: 7Networks_RH_SomMot_35 - lookupLabel: 320 - originalLookupLabel: 320 - center: - x: 30.0 - y: -10.0 - z: 64.0 - color: '#4683b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_36: - name: 7Networks_RH_SomMot_36 - lookupLabel: 321 - originalLookupLabel: 321 - center: - x: 4.0 - y: -24.0 - z: 61.0 - color: '#4683ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_37: - name: 7Networks_RH_SomMot_37 - lookupLabel: 322 - originalLookupLabel: 322 - center: - x: 11.0 - y: -46.0 - z: 66.0 - color: '#4683bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_38: - name: 7Networks_RH_SomMot_38 - lookupLabel: 323 - originalLookupLabel: 323 - center: - x: 24.0 - y: -28.0 - z: 67.0 - color: '#4683bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_39: - name: 7Networks_RH_SomMot_39 - lookupLabel: 324 - originalLookupLabel: 324 - center: - x: 22.0 - y: -24.0 - z: 67.0 - color: '#4684b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_40: - name: 7Networks_RH_SomMot_40 - lookupLabel: 325 - originalLookupLabel: 325 - center: - x: 18.0 - y: -5.0 - z: 69.0 - color: '#4684b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_41: - name: 7Networks_RH_SomMot_41 - lookupLabel: 326 - originalLookupLabel: 326 - center: - x: 6.0 - y: -40.0 - z: 68.0 - color: '#4684b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_42: - name: 7Networks_RH_SomMot_42 - lookupLabel: 327 - originalLookupLabel: 327 - center: - x: 22.0 - y: -34.0 - z: 71.0 - color: '#4684b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_43: - name: 7Networks_RH_SomMot_43 - lookupLabel: 328 - originalLookupLabel: 328 - center: - x: 21.0 - y: -14.0 - z: 72.0 - color: '#4684b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_44: - name: 7Networks_RH_SomMot_44 - lookupLabel: 329 - originalLookupLabel: 329 - center: - x: 19.0 - y: -46.0 - z: 72.0 - color: '#4684ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_45: - name: 7Networks_RH_SomMot_45 - lookupLabel: 330 - originalLookupLabel: 330 - center: - x: 9.0 - y: -15.0 - z: 74.0 - color: '#4684bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_46: - name: 7Networks_RH_SomMot_46 - lookupLabel: 331 - originalLookupLabel: 331 - center: - x: 5.0 - y: -29.0 - z: 73.0 - color: '#4684bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_47: - name: 7Networks_RH_SomMot_47 - lookupLabel: 332 - originalLookupLabel: 332 - center: - x: 12.0 - y: -37.0 - z: 77.0 - color: '#4685b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_48: - name: 7Networks_RH_SomMot_48 - lookupLabel: 333 - originalLookupLabel: 333 - center: - x: 14.0 - y: -26.0 - z: 73.0 - color: '#4685b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_49: - name: 7Networks_RH_SomMot_49 - lookupLabel: 334 - originalLookupLabel: 334 - center: - x: 14.0 - y: -32.0 - z: 73.0 - color: '#4685b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_DorsAttn_Post_1: - name: 7Networks_RH_DorsAttn_Post_1 - lookupLabel: 335 - originalLookupLabel: 335 - center: - x: 48.0 - y: -45.0 - z: -19.0 - color: '#00760d' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_2: - name: 7Networks_RH_DorsAttn_Post_2 - lookupLabel: 336 - originalLookupLabel: 336 - center: - x: 51.0 - y: -58.0 - z: -14.0 - color: '#00760e' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_3: - name: 7Networks_RH_DorsAttn_Post_3 - lookupLabel: 337 - originalLookupLabel: 337 - center: - x: 59.0 - y: -55.0 - z: -3.0 - color: '#00760f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_4: - name: 7Networks_RH_DorsAttn_Post_4 - lookupLabel: 338 - originalLookupLabel: 338 - center: - x: 56.0 - y: -55.0 - z: 11.0 - color: '#007708' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_5: - name: 7Networks_RH_DorsAttn_Post_5 - lookupLabel: 339 - originalLookupLabel: 339 - center: - x: 47.0 - y: -71.0 - z: 25.0 - color: '#007709' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_6: - name: 7Networks_RH_DorsAttn_Post_6 - lookupLabel: 340 - originalLookupLabel: 340 - center: - x: 59.0 - y: -16.0 - z: 32.0 - color: '#00770a' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_7: - name: 7Networks_RH_DorsAttn_Post_7 - lookupLabel: 341 - originalLookupLabel: 341 - center: - x: 30.0 - y: -68.0 - z: 33.0 - color: '#00770b' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_8: - name: 7Networks_RH_DorsAttn_Post_8 - lookupLabel: 342 - originalLookupLabel: 342 - center: - x: 34.0 - y: -70.0 - z: 44.0 - color: '#00770c' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_9: - name: 7Networks_RH_DorsAttn_Post_9 - lookupLabel: 343 - originalLookupLabel: 343 - center: - x: 57.0 - y: -24.0 - z: 46.0 - color: '#00770d' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_10: - name: 7Networks_RH_DorsAttn_Post_10 - lookupLabel: 344 - originalLookupLabel: 344 - center: - x: 47.0 - y: -25.0 - z: 41.0 - color: '#00770e' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_11: - name: 7Networks_RH_DorsAttn_Post_11 - lookupLabel: 345 - originalLookupLabel: 345 - center: - x: 41.0 - y: -33.0 - z: 45.0 - color: '#007710' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_12: - name: 7Networks_RH_DorsAttn_Post_12 - lookupLabel: 346 - originalLookupLabel: 346 - center: - x: 41.0 - y: -39.0 - z: 49.0 - color: '#007711' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_13: - name: 7Networks_RH_DorsAttn_Post_13 - lookupLabel: 347 - originalLookupLabel: 347 - center: - x: 34.0 - y: -46.0 - z: 45.0 - color: '#007712' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_14: - name: 7Networks_RH_DorsAttn_Post_14 - lookupLabel: 348 - originalLookupLabel: 348 - center: - x: 24.0 - y: -66.0 - z: 51.0 - color: '#007713' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_15: - name: 7Networks_RH_DorsAttn_Post_15 - lookupLabel: 349 - originalLookupLabel: 349 - center: - x: 34.0 - y: -56.0 - z: 52.0 - color: '#007714' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_16: - name: 7Networks_RH_DorsAttn_Post_16 - lookupLabel: 350 - originalLookupLabel: 350 - center: - x: 12.0 - y: -72.0 - z: 54.0 - color: '#007715' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_17: - name: 7Networks_RH_DorsAttn_Post_17 - lookupLabel: 351 - originalLookupLabel: 351 - center: - x: 35.0 - y: -33.0 - z: 50.0 - color: '#007716' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_18: - name: 7Networks_RH_DorsAttn_Post_18 - lookupLabel: 352 - originalLookupLabel: 352 - center: - x: 37.0 - y: -40.0 - z: 58.0 - color: '#00780f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_19: - name: 7Networks_RH_DorsAttn_Post_19 - lookupLabel: 353 - originalLookupLabel: 353 - center: - x: 36.0 - y: -48.0 - z: 59.0 - color: '#007810' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_20: - name: 7Networks_RH_DorsAttn_Post_20 - lookupLabel: 354 - originalLookupLabel: 354 - center: - x: 6.0 - y: -54.0 - z: 54.0 - color: '#007811' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_21: - name: 7Networks_RH_DorsAttn_Post_21 - lookupLabel: 355 - originalLookupLabel: 355 - center: - x: 26.0 - y: -58.0 - z: 60.0 - color: '#007812' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_22: - name: 7Networks_RH_DorsAttn_Post_22 - lookupLabel: 356 - originalLookupLabel: 356 - center: - x: 18.0 - y: -67.0 - z: 64.0 - color: '#007813' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_23: - name: 7Networks_RH_DorsAttn_Post_23 - lookupLabel: 357 - originalLookupLabel: 357 - center: - x: 9.0 - y: -58.0 - z: 63.0 - color: '#007814' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_24: - name: 7Networks_RH_DorsAttn_Post_24 - lookupLabel: 358 - originalLookupLabel: 358 - center: - x: 26.0 - y: -52.0 - z: 69.0 - color: '#007815' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_1: - name: 7Networks_RH_DorsAttn_FEF_1 - lookupLabel: 359 - originalLookupLabel: 359 - center: - x: 40.0 - y: -3.0 - z: 52.0 - color: '#01760f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_2: - name: 7Networks_RH_DorsAttn_FEF_2 - lookupLabel: 360 - originalLookupLabel: 360 - center: - x: 25.0 - y: 9.0 - z: 52.0 - color: '#017610' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_3: - name: 7Networks_RH_DorsAttn_FEF_3 - lookupLabel: 361 - originalLookupLabel: 361 - center: - x: 28.0 - y: -4.0 - z: 51.0 - color: '#017611' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_4: - name: 7Networks_RH_DorsAttn_FEF_4 - lookupLabel: 362 - originalLookupLabel: 362 - center: - x: 25.0 - y: -2.0 - z: 63.0 - color: '#017612' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_PrCv_1: - name: 7Networks_RH_DorsAttn_PrCv_1 - lookupLabel: 363 - originalLookupLabel: 363 - center: - x: 45.0 - y: 8.0 - z: 25.0 - color: '#017613' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_PrCv_2: - name: 7Networks_RH_DorsAttn_PrCv_2 - lookupLabel: 364 - originalLookupLabel: 364 - center: - x: 57.0 - y: 8.0 - z: 31.0 - color: '#017614' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_PrCv_3: - name: 7Networks_RH_DorsAttn_PrCv_3 - lookupLabel: 365 - originalLookupLabel: 365 - center: - x: 46.0 - y: 4.0 - z: 38.0 - color: '#017615' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_SalVentAttn_TempOccPar_1: - name: 7Networks_RH_SalVentAttn_TempOccPar_1 - lookupLabel: 366 - originalLookupLabel: 366 - center: - x: 61.0 - y: -45.0 - z: 5.0 - color: '#c53af9' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_2: - name: 7Networks_RH_SalVentAttn_TempOccPar_2 - lookupLabel: 367 - originalLookupLabel: 367 - center: - x: 52.0 - y: -40.0 - z: 12.0 - color: '#c53afa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_3: - name: 7Networks_RH_SalVentAttn_TempOccPar_3 - lookupLabel: 368 - originalLookupLabel: 368 - center: - x: 62.0 - y: -31.0 - z: 22.0 - color: '#c53afc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_4: - name: 7Networks_RH_SalVentAttn_TempOccPar_4 - lookupLabel: 369 - originalLookupLabel: 369 - center: - x: 50.0 - y: -28.0 - z: 25.0 - color: '#c53afd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_5: - name: 7Networks_RH_SalVentAttn_TempOccPar_5 - lookupLabel: 370 - originalLookupLabel: 370 - center: - x: 64.0 - y: -39.0 - z: 26.0 - color: '#c53afe' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_6: - name: 7Networks_RH_SalVentAttn_TempOccPar_6 - lookupLabel: 371 - originalLookupLabel: 371 - center: - x: 61.0 - y: -21.0 - z: 22.0 - color: '#c53aff' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_7: - name: 7Networks_RH_SalVentAttn_TempOccPar_7 - lookupLabel: 372 - originalLookupLabel: 372 - center: - x: 63.0 - y: -26.0 - z: 37.0 - color: '#c233fa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_8: - name: 7Networks_RH_SalVentAttn_TempOccPar_8 - lookupLabel: 373 - originalLookupLabel: 373 - center: - x: 61.0 - y: -33.0 - z: 46.0 - color: '#c233fb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_PrC_1: - name: 7Networks_RH_SalVentAttn_PrC_1 - lookupLabel: 374 - originalLookupLabel: 374 - center: - x: 54.0 - y: 1.0 - z: 45.0 - color: '#c53bfb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_1: - name: 7Networks_RH_SalVentAttn_FrOperIns_1 - lookupLabel: 375 - originalLookupLabel: 375 - center: - x: 39.0 - y: 5.0 - z: -12.0 - color: '#c53bf8' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_2: - name: 7Networks_RH_SalVentAttn_FrOperIns_2 - lookupLabel: 376 - originalLookupLabel: 376 - center: - x: 40.0 - y: 7.0 - z: 0.0 - color: '#c53bf9' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_3: - name: 7Networks_RH_SalVentAttn_FrOperIns_3 - lookupLabel: 377 - originalLookupLabel: 377 - center: - x: 40.0 - y: -10.0 - z: -3.0 - color: '#c53bfa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_4: - name: 7Networks_RH_SalVentAttn_FrOperIns_4 - lookupLabel: 378 - originalLookupLabel: 378 - center: - x: 34.0 - y: 25.0 - z: 3.0 - color: '#c53bfc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_5: - name: 7Networks_RH_SalVentAttn_FrOperIns_5 - lookupLabel: 379 - originalLookupLabel: 379 - center: - x: 42.0 - y: 17.0 - z: 6.0 - color: '#c53bfd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_6: - name: 7Networks_RH_SalVentAttn_FrOperIns_6 - lookupLabel: 380 - originalLookupLabel: 380 - center: - x: 38.0 - y: 4.0 - z: 11.0 - color: '#c53bfe' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_7: - name: 7Networks_RH_SalVentAttn_FrOperIns_7 - lookupLabel: 381 - originalLookupLabel: 381 - center: - x: 49.0 - y: 5.0 - z: 3.0 - color: '#c53bff' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_8: - name: 7Networks_RH_SalVentAttn_FrOperIns_8 - lookupLabel: 382 - originalLookupLabel: 382 - center: - x: 53.0 - y: 11.0 - z: 12.0 - color: '#c234fa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_9: - name: 7Networks_RH_SalVentAttn_FrOperIns_9 - lookupLabel: 383 - originalLookupLabel: 383 - center: - x: 60.0 - y: 9.0 - z: 18.0 - color: '#c234fb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_PFCl_1: - name: 7Networks_RH_SalVentAttn_PFCl_1 - lookupLabel: 384 - originalLookupLabel: 384 - center: - x: 29.0 - y: 44.0 - z: 33.0 - color: '#c439fb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_1: - name: 7Networks_RH_SalVentAttn_Med_1 - lookupLabel: 385 - originalLookupLabel: 385 - center: - x: 5.0 - y: 20.0 - z: 24.0 - color: '#c439f4' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_2: - name: 7Networks_RH_SalVentAttn_Med_2 - lookupLabel: 386 - originalLookupLabel: 386 - center: - x: 8.0 - y: 25.0 - z: 32.0 - color: '#c439f5' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_3: - name: 7Networks_RH_SalVentAttn_Med_3 - lookupLabel: 387 - originalLookupLabel: 387 - center: - x: 4.0 - y: -16.0 - z: 37.0 - color: '#c439f6' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_4: - name: 7Networks_RH_SalVentAttn_Med_4 - lookupLabel: 388 - originalLookupLabel: 388 - center: - x: 7.0 - y: 8.0 - z: 41.0 - color: '#c439f7' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_5: - name: 7Networks_RH_SalVentAttn_Med_5 - lookupLabel: 389 - originalLookupLabel: 389 - center: - x: 10.0 - y: -29.0 - z: 41.0 - color: '#c439f8' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_6: - name: 7Networks_RH_SalVentAttn_Med_6 - lookupLabel: 390 - originalLookupLabel: 390 - center: - x: 12.0 - y: -38.0 - z: 45.0 - color: '#c439fa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_7: - name: 7Networks_RH_SalVentAttn_Med_7 - lookupLabel: 391 - originalLookupLabel: 391 - center: - x: 14.0 - y: -27.0 - z: 44.0 - color: '#c439fc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_8: - name: 7Networks_RH_SalVentAttn_Med_8 - lookupLabel: 392 - originalLookupLabel: 392 - center: - x: 6.0 - y: 13.0 - z: 54.0 - color: '#c439fd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_9: - name: 7Networks_RH_SalVentAttn_Med_9 - lookupLabel: 393 - originalLookupLabel: 393 - center: - x: 9.0 - y: -44.0 - z: 53.0 - color: '#c439fe' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_10: - name: 7Networks_RH_SalVentAttn_Med_10 - lookupLabel: 394 - originalLookupLabel: 394 - center: - x: 10.0 - y: -34.0 - z: 52.0 - color: '#c439ff' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_11: - name: 7Networks_RH_SalVentAttn_Med_11 - lookupLabel: 395 - originalLookupLabel: 395 - center: - x: 4.0 - y: 12.0 - z: 63.0 - color: '#c43af9' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_12: - name: 7Networks_RH_SalVentAttn_Med_12 - lookupLabel: 396 - originalLookupLabel: 396 - center: - x: 7.0 - y: -2.0 - z: 66.0 - color: '#c43afa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_13: - name: 7Networks_RH_SalVentAttn_Med_13 - lookupLabel: 397 - originalLookupLabel: 397 - center: - x: 15.0 - y: 7.0 - z: 70.0 - color: '#c43afb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_Limbic_OFC_1: - name: 7Networks_RH_Limbic_OFC_1 - lookupLabel: 398 - originalLookupLabel: 398 - center: - x: 20.0 - y: 14.0 - z: -22.0 - color: '#dcf9a2' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_2: - name: 7Networks_RH_Limbic_OFC_2 - lookupLabel: 399 - originalLookupLabel: 399 - center: - x: 12.0 - y: 25.0 - z: -21.0 - color: '#dcf9a3' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_3: - name: 7Networks_RH_Limbic_OFC_3 - lookupLabel: 400 - originalLookupLabel: 400 - center: - x: 23.0 - y: 32.0 - z: -18.0 - color: '#dcf9a5' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_4: - name: 7Networks_RH_Limbic_OFC_4 - lookupLabel: 401 - originalLookupLabel: 401 - center: - x: 10.0 - y: 48.0 - z: -22.0 - color: '#dcf9a6' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_5: - name: 7Networks_RH_Limbic_OFC_5 - lookupLabel: 402 - originalLookupLabel: 402 - center: - x: 4.0 - y: 24.0 - z: -22.0 - color: '#dcf9a7' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_6: - name: 7Networks_RH_Limbic_OFC_6 - lookupLabel: 403 - originalLookupLabel: 403 - center: - x: 4.0 - y: 27.0 - z: -12.0 - color: '#dcf9a8' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_7: - name: 7Networks_RH_Limbic_OFC_7 - lookupLabel: 404 - originalLookupLabel: 404 - center: - x: 9.0 - y: 63.0 - z: -14.0 - color: '#dcf9a9' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_1: - name: 7Networks_RH_Limbic_TempPole_1 - lookupLabel: 405 - originalLookupLabel: 405 - center: - x: 38.0 - y: -1.0 - z: -44.0 - color: '#dcf9a4' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_2: - name: 7Networks_RH_Limbic_TempPole_2 - lookupLabel: 406 - originalLookupLabel: 406 - center: - x: 24.0 - y: 7.0 - z: -37.0 - color: '#dcf9aa' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_3: - name: 7Networks_RH_Limbic_TempPole_3 - lookupLabel: 407 - originalLookupLabel: 407 - center: - x: 28.0 - y: -6.0 - z: -35.0 - color: '#dcf9ab' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_4: - name: 7Networks_RH_Limbic_TempPole_4 - lookupLabel: 408 - originalLookupLabel: 408 - center: - x: 40.0 - y: -15.0 - z: -31.0 - color: '#dcf9ac' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_5: - name: 7Networks_RH_Limbic_TempPole_5 - lookupLabel: 409 - originalLookupLabel: 409 - center: - x: 38.0 - y: 19.0 - z: -36.0 - color: '#dcfaa5' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_6: - name: 7Networks_RH_Limbic_TempPole_6 - lookupLabel: 410 - originalLookupLabel: 410 - center: - x: 53.0 - y: -17.0 - z: -33.0 - color: '#dcfaa6' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_7: - name: 7Networks_RH_Limbic_TempPole_7 - lookupLabel: 411 - originalLookupLabel: 411 - center: - x: 31.0 - y: 14.0 - z: -30.0 - color: '#dcfaa7' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_8: - name: 7Networks_RH_Limbic_TempPole_8 - lookupLabel: 412 - originalLookupLabel: 412 - center: - x: 45.0 - y: -31.0 - z: -23.0 - color: '#dcfaa8' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_9: - name: 7Networks_RH_Limbic_TempPole_9 - lookupLabel: 413 - originalLookupLabel: 413 - center: - x: 22.0 - y: -19.0 - z: -26.0 - color: '#dcfaa9' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_10: - name: 7Networks_RH_Limbic_TempPole_10 - lookupLabel: 414 - originalLookupLabel: 414 - center: - x: 44.0 - y: 10.0 - z: -18.0 - color: '#dcfaaa' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Cont_Par_1: - name: 7Networks_RH_Cont_Par_1 - lookupLabel: 415 - originalLookupLabel: 415 - center: - x: 60.0 - y: -40.0 - z: 36.0 - color: '#e69321' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_2: - name: 7Networks_RH_Cont_Par_2 - lookupLabel: 416 - originalLookupLabel: 416 - center: - x: 55.0 - y: -41.0 - z: 48.0 - color: '#e69323' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_3: - name: 7Networks_RH_Cont_Par_3 - lookupLabel: 417 - originalLookupLabel: 417 - center: - x: 53.0 - y: -50.0 - z: 49.0 - color: '#e69324' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_4: - name: 7Networks_RH_Cont_Par_4 - lookupLabel: 418 - originalLookupLabel: 418 - center: - x: 51.0 - y: -35.0 - z: 51.0 - color: '#e69325' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_5: - name: 7Networks_RH_Cont_Par_5 - lookupLabel: 419 - originalLookupLabel: 419 - center: - x: 45.0 - y: -43.0 - z: 44.0 - color: '#e69326' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_6: - name: 7Networks_RH_Cont_Par_6 - lookupLabel: 420 - originalLookupLabel: 420 - center: - x: 41.0 - y: -56.0 - z: 48.0 - color: '#e69327' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Temp_1: - name: 7Networks_RH_Cont_Temp_1 - lookupLabel: 421 - originalLookupLabel: 421 - center: - x: 59.0 - y: -33.0 - z: -23.0 - color: '#e69322' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Temp_2: - name: 7Networks_RH_Cont_Temp_2 - lookupLabel: 422 - originalLookupLabel: 422 - center: - x: 64.0 - y: -42.0 - z: -10.0 - color: '#e69328' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCv_1: - name: 7Networks_RH_Cont_PFCv_1 - lookupLabel: 423 - originalLookupLabel: 423 - center: - x: 34.0 - y: 21.0 - z: -8.0 - color: '#e59423' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_1: - name: 7Networks_RH_Cont_PFCl_1 - lookupLabel: 424 - originalLookupLabel: 424 - center: - x: 27.0 - y: 50.0 - z: -15.0 - color: '#e59321' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_2: - name: 7Networks_RH_Cont_PFCl_2 - lookupLabel: 425 - originalLookupLabel: 425 - center: - x: 22.0 - y: 63.0 - z: -6.0 - color: '#e5941a' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_3: - name: 7Networks_RH_Cont_PFCl_3 - lookupLabel: 426 - originalLookupLabel: 426 - center: - x: 42.0 - y: 51.0 - z: -6.0 - color: '#e5941b' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_4: - name: 7Networks_RH_Cont_PFCl_4 - lookupLabel: 427 - originalLookupLabel: 427 - center: - x: 49.0 - y: 42.0 - z: 1.0 - color: '#e5941c' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_5: - name: 7Networks_RH_Cont_PFCl_5 - lookupLabel: 428 - originalLookupLabel: 428 - center: - x: 30.0 - y: 57.0 - z: 6.0 - color: '#e5941d' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_6: - name: 7Networks_RH_Cont_PFCl_6 - lookupLabel: 429 - originalLookupLabel: 429 - center: - x: 55.0 - y: 20.0 - z: 9.0 - color: '#e5941e' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_7: - name: 7Networks_RH_Cont_PFCl_7 - lookupLabel: 430 - originalLookupLabel: 430 - center: - x: 52.0 - y: 31.0 - z: 15.0 - color: '#e5941f' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_8: - name: 7Networks_RH_Cont_PFCl_8 - lookupLabel: 431 - originalLookupLabel: 431 - center: - x: 42.0 - y: 45.0 - z: 12.0 - color: '#e59420' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_9: - name: 7Networks_RH_Cont_PFCl_9 - lookupLabel: 432 - originalLookupLabel: 432 - center: - x: 27.0 - y: 53.0 - z: 20.0 - color: '#e59422' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_10: - name: 7Networks_RH_Cont_PFCl_10 - lookupLabel: 433 - originalLookupLabel: 433 - center: - x: 49.0 - y: 18.0 - z: 22.0 - color: '#e59424' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_11: - name: 7Networks_RH_Cont_PFCl_11 - lookupLabel: 434 - originalLookupLabel: 434 - center: - x: 37.0 - y: 45.0 - z: 25.0 - color: '#e59425' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_12: - name: 7Networks_RH_Cont_PFCl_12 - lookupLabel: 435 - originalLookupLabel: 435 - center: - x: 47.0 - y: 30.0 - z: 26.0 - color: '#e59426' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_13: - name: 7Networks_RH_Cont_PFCl_13 - lookupLabel: 436 - originalLookupLabel: 436 - center: - x: 22.0 - y: 55.0 - z: 30.0 - color: '#e59427' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_14: - name: 7Networks_RH_Cont_PFCl_14 - lookupLabel: 437 - originalLookupLabel: 437 - center: - x: 39.0 - y: 13.0 - z: 33.0 - color: '#e59428' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_15: - name: 7Networks_RH_Cont_PFCl_15 - lookupLabel: 438 - originalLookupLabel: 438 - center: - x: 40.0 - y: 33.0 - z: 38.0 - color: '#e59521' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_16: - name: 7Networks_RH_Cont_PFCl_16 - lookupLabel: 439 - originalLookupLabel: 439 - center: - x: 45.0 - y: 19.0 - z: 43.0 - color: '#e59522' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_17: - name: 7Networks_RH_Cont_PFCl_17 - lookupLabel: 440 - originalLookupLabel: 440 - center: - x: 31.0 - y: 31.0 - z: 39.0 - color: '#e59523' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_18: - name: 7Networks_RH_Cont_PFCl_18 - lookupLabel: 441 - originalLookupLabel: 441 - center: - x: 44.0 - y: 6.0 - z: 50.0 - color: '#e59524' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_19: - name: 7Networks_RH_Cont_PFCl_19 - lookupLabel: 442 - originalLookupLabel: 442 - center: - x: 35.0 - y: 14.0 - z: 57.0 - color: '#e59525' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_20: - name: 7Networks_RH_Cont_PFCl_20 - lookupLabel: 443 - originalLookupLabel: 443 - center: - x: 23.0 - y: 14.0 - z: 62.0 - color: '#e59526' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_pCun_1: - name: 7Networks_RH_Cont_pCun_1 - lookupLabel: 444 - originalLookupLabel: 444 - center: - x: 16.0 - y: -64.0 - z: 29.0 - color: '#e59323' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_pCun_2: - name: 7Networks_RH_Cont_pCun_2 - lookupLabel: 445 - originalLookupLabel: 445 - center: - x: 14.0 - y: -73.0 - z: 42.0 - color: '#e59324' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_pCun_3: - name: 7Networks_RH_Cont_pCun_3 - lookupLabel: 446 - originalLookupLabel: 446 - center: - x: 4.0 - y: -70.0 - z: 49.0 - color: '#e59325' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Cing_1: - name: 7Networks_RH_Cont_Cing_1 - lookupLabel: 447 - originalLookupLabel: 447 - center: - x: 6.0 - y: -26.0 - z: 28.0 - color: '#e59322' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Cing_2: - name: 7Networks_RH_Cont_Cing_2 - lookupLabel: 448 - originalLookupLabel: 448 - center: - x: 5.0 - y: 3.0 - z: 30.0 - color: '#e59326' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Cing_3: - name: 7Networks_RH_Cont_Cing_3 - lookupLabel: 449 - originalLookupLabel: 449 - center: - x: 6.0 - y: -12.0 - z: 30.0 - color: '#e59327' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCmp_1: - name: 7Networks_RH_Cont_PFCmp_1 - lookupLabel: 450 - originalLookupLabel: 450 - center: - x: 8.0 - y: 36.0 - z: 24.0 - color: '#e69425' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCmp_2: - name: 7Networks_RH_Cont_PFCmp_2 - lookupLabel: 451 - originalLookupLabel: 451 - center: - x: 5.0 - y: 33.0 - z: 44.0 - color: '#e69426' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCmp_3: - name: 7Networks_RH_Cont_PFCmp_3 - lookupLabel: 452 - originalLookupLabel: 452 - center: - x: 5.0 - y: 25.0 - z: 53.0 - color: '#e69427' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Default_Par_1: - name: 7Networks_RH_Default_Par_1 - lookupLabel: 453 - originalLookupLabel: 453 - center: - x: 56.0 - y: -47.0 - z: 14.0 - color: '#cd3e4b' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_2: - name: 7Networks_RH_Default_Par_2 - lookupLabel: 454 - originalLookupLabel: 454 - center: - x: 48.0 - y: -59.0 - z: 19.0 - color: '#cd3e4c' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_3: - name: 7Networks_RH_Default_Par_3 - lookupLabel: 455 - originalLookupLabel: 455 - center: - x: 53.0 - y: -50.0 - z: 21.0 - color: '#cd3e4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_4: - name: 7Networks_RH_Default_Par_4 - lookupLabel: 456 - originalLookupLabel: 456 - center: - x: 54.0 - y: -43.0 - z: 25.0 - color: '#cd3e4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_5: - name: 7Networks_RH_Default_Par_5 - lookupLabel: 457 - originalLookupLabel: 457 - center: - x: 49.0 - y: -60.0 - z: 31.0 - color: '#cd3e50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_6: - name: 7Networks_RH_Default_Par_6 - lookupLabel: 458 - originalLookupLabel: 458 - center: - x: 57.0 - y: -51.0 - z: 33.0 - color: '#cd3e51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_7: - name: 7Networks_RH_Default_Par_7 - lookupLabel: 459 - originalLookupLabel: 459 - center: - x: 43.0 - y: -71.0 - z: 43.0 - color: '#cd3e52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_8: - name: 7Networks_RH_Default_Par_8 - lookupLabel: 460 - originalLookupLabel: 460 - center: - x: 49.0 - y: -60.0 - z: 45.0 - color: '#cd3e53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_1: - name: 7Networks_RH_Default_Temp_1 - lookupLabel: 461 - originalLookupLabel: 461 - center: - x: 49.0 - y: 9.0 - z: -34.0 - color: '#cd3d4b' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_2: - name: 7Networks_RH_Default_Temp_2 - lookupLabel: 462 - originalLookupLabel: 462 - center: - x: 58.0 - y: -8.0 - z: -27.0 - color: '#cd3d4c' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_3: - name: 7Networks_RH_Default_Temp_3 - lookupLabel: 463 - originalLookupLabel: 463 - center: - x: 50.0 - y: 15.0 - z: -21.0 - color: '#cd3d4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_4: - name: 7Networks_RH_Default_Temp_4 - lookupLabel: 464 - originalLookupLabel: 464 - center: - x: 60.0 - y: -5.0 - z: -16.0 - color: '#cd3d4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_5: - name: 7Networks_RH_Default_Temp_5 - lookupLabel: 465 - originalLookupLabel: 465 - center: - x: 65.0 - y: -24.0 - z: -16.0 - color: '#cd3d50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_6: - name: 7Networks_RH_Default_Temp_6 - lookupLabel: 466 - originalLookupLabel: 466 - center: - x: 53.0 - y: -2.0 - z: -13.0 - color: '#cd3d51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_7: - name: 7Networks_RH_Default_Temp_7 - lookupLabel: 467 - originalLookupLabel: 467 - center: - x: 63.0 - y: -24.0 - z: -7.0 - color: '#cd3d52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_8: - name: 7Networks_RH_Default_Temp_8 - lookupLabel: 468 - originalLookupLabel: 468 - center: - x: 50.0 - y: -18.0 - z: -8.0 - color: '#cd3d53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_9: - name: 7Networks_RH_Default_Temp_9 - lookupLabel: 469 - originalLookupLabel: 469 - center: - x: 62.0 - y: -37.0 - z: 0.0 - color: '#cd3d54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_10: - name: 7Networks_RH_Default_Temp_10 - lookupLabel: 470 - originalLookupLabel: 470 - center: - x: 50.0 - y: -32.0 - z: 1.0 - color: '#cd3d55' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_1: - name: 7Networks_RH_Default_PFCv_1 - lookupLabel: 471 - originalLookupLabel: 471 - center: - x: 34.0 - y: 23.0 - z: -18.0 - color: '#cd3d4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_2: - name: 7Networks_RH_Default_PFCv_2 - lookupLabel: 472 - originalLookupLabel: 472 - center: - x: 35.0 - y: 37.0 - z: -13.0 - color: '#cd3e4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_3: - name: 7Networks_RH_Default_PFCv_3 - lookupLabel: 473 - originalLookupLabel: 473 - center: - x: 47.0 - y: 31.0 - z: -10.0 - color: '#cd3e54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_4: - name: 7Networks_RH_Default_PFCv_4 - lookupLabel: 474 - originalLookupLabel: 474 - center: - x: 50.0 - y: 29.0 - z: 1.0 - color: '#cd3f4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_1: - name: 7Networks_RH_Default_PFCdPFCm_1 - lookupLabel: 475 - originalLookupLabel: 475 - center: - x: 5.0 - y: 45.0 - z: -13.0 - color: '#cc3e48' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_2: - name: 7Networks_RH_Default_PFCdPFCm_2 - lookupLabel: 476 - originalLookupLabel: 476 - center: - x: 6.0 - y: 35.0 - z: -6.0 - color: '#cc3e49' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_3: - name: 7Networks_RH_Default_PFCdPFCm_3 - lookupLabel: 477 - originalLookupLabel: 477 - center: - x: 8.0 - y: 53.0 - z: -4.0 - color: '#cc3e4a' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_4: - name: 7Networks_RH_Default_PFCdPFCm_4 - lookupLabel: 478 - originalLookupLabel: 478 - center: - x: 12.0 - y: 67.0 - z: 6.0 - color: '#cc3e4b' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_5: - name: 7Networks_RH_Default_PFCdPFCm_5 - lookupLabel: 479 - originalLookupLabel: 479 - center: - x: 8.0 - y: 42.0 - z: 5.0 - color: '#cc3e4c' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_6: - name: 7Networks_RH_Default_PFCdPFCm_6 - lookupLabel: 480 - originalLookupLabel: 480 - center: - x: 7.0 - y: 56.0 - z: 11.0 - color: '#cc3e4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_7: - name: 7Networks_RH_Default_PFCdPFCm_7 - lookupLabel: 481 - originalLookupLabel: 481 - center: - x: 6.0 - y: 30.0 - z: 14.0 - color: '#cc3e4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_8: - name: 7Networks_RH_Default_PFCdPFCm_8 - lookupLabel: 482 - originalLookupLabel: 482 - center: - x: 16.0 - y: 64.0 - z: 20.0 - color: '#cc3e50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_9: - name: 7Networks_RH_Default_PFCdPFCm_9 - lookupLabel: 483 - originalLookupLabel: 483 - center: - x: 5.0 - y: 52.0 - z: 30.0 - color: '#cc3e51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_10: - name: 7Networks_RH_Default_PFCdPFCm_10 - lookupLabel: 484 - originalLookupLabel: 484 - center: - x: 14.0 - y: 52.0 - z: 40.0 - color: '#cc3e52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_11: - name: 7Networks_RH_Default_PFCdPFCm_11 - lookupLabel: 485 - originalLookupLabel: 485 - center: - x: 22.0 - y: 40.0 - z: 37.0 - color: '#cc3e53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_12: - name: 7Networks_RH_Default_PFCdPFCm_12 - lookupLabel: 486 - originalLookupLabel: 486 - center: - x: 9.0 - y: 38.0 - z: 54.0 - color: '#cc3e54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_13: - name: 7Networks_RH_Default_PFCdPFCm_13 - lookupLabel: 487 - originalLookupLabel: 487 - center: - x: 25.0 - y: 26.0 - z: 46.0 - color: '#cc3e55' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_14: - name: 7Networks_RH_Default_PFCdPFCm_14 - lookupLabel: 488 - originalLookupLabel: 488 - center: - x: 22.0 - y: 35.0 - z: 52.0 - color: '#cc3f4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_15: - name: 7Networks_RH_Default_PFCdPFCm_15 - lookupLabel: 489 - originalLookupLabel: 489 - center: - x: 12.0 - y: 21.0 - z: 62.0 - color: '#cc3f4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_1: - name: 7Networks_RH_Default_pCunPCC_1 - lookupLabel: 490 - originalLookupLabel: 490 - center: - x: 7.0 - y: -48.0 - z: 13.0 - color: '#cc3e4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_2: - name: 7Networks_RH_Default_pCunPCC_2 - lookupLabel: 491 - originalLookupLabel: 491 - center: - x: 14.0 - y: -56.0 - z: 17.0 - color: '#cc3f4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_3: - name: 7Networks_RH_Default_pCunPCC_3 - lookupLabel: 492 - originalLookupLabel: 492 - center: - x: 7.0 - y: -41.0 - z: 24.0 - color: '#cc3f50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_4: - name: 7Networks_RH_Default_pCunPCC_4 - lookupLabel: 493 - originalLookupLabel: 493 - center: - x: 6.0 - y: -50.0 - z: 24.0 - color: '#cc3f51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_5: - name: 7Networks_RH_Default_pCunPCC_5 - lookupLabel: 494 - originalLookupLabel: 494 - center: - x: 4.0 - y: -62.0 - z: 26.0 - color: '#cc3f52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_6: - name: 7Networks_RH_Default_pCunPCC_6 - lookupLabel: 495 - originalLookupLabel: 495 - center: - x: 5.0 - y: -33.0 - z: 35.0 - color: '#cc3f53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_7: - name: 7Networks_RH_Default_pCunPCC_7 - lookupLabel: 496 - originalLookupLabel: 496 - center: - x: 10.0 - y: -43.0 - z: 36.0 - color: '#cc3f54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_8: - name: 7Networks_RH_Default_pCunPCC_8 - lookupLabel: 497 - originalLookupLabel: 497 - center: - x: 8.0 - y: -54.0 - z: 33.0 - color: '#cc404d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_9: - name: 7Networks_RH_Default_pCunPCC_9 - lookupLabel: 498 - originalLookupLabel: 498 - center: - x: 5.0 - y: -67.0 - z: 34.0 - color: '#cc404e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_10: - name: 7Networks_RH_Default_pCunPCC_10 - lookupLabel: 499 - originalLookupLabel: 499 - center: - x: 8.0 - y: -49.0 - z: 43.0 - color: '#cc404f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_11: - name: 7Networks_RH_Default_pCunPCC_11 - lookupLabel: 500 - originalLookupLabel: 500 - center: - x: 6.0 - y: -62.0 - z: 43.0 - color: '#cc4050' - hemisphere: right - hasParent: - - RH_Default - versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_500Parcels_7Networks_order_FSLMNI152_1mm.nii.gz diff --git a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-500_res-1_desc-ordered_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-500_res-1_desc-ordered_dseg.yaml similarity index 99% rename from tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-500_res-1_desc-ordered_dseg.yaml rename to tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-500_res-1_desc-ordered_dseg.yaml index 4ea648456..9fa3273a4 100644 --- a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-500_res-1_desc-ordered_dseg.yaml +++ b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-500_res-1_desc-ordered_dseg.yaml @@ -1,14 +1,12 @@ name: Schaefer2018 abbreviation: Schaefer2018 versionIdentifier: '2018' -coordinateSpace: - name: MNI152 - abbreviation: FSLMNI152 - nativeUnit: mm +coordinateSpace: FSLMNI152 terminology: label: Schaefer2018_500Parcels_7Networks_order versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_500Parcels_7Networks_order_FSLMNI152_1mm.nii.gz + dataLocation: + schaefer2018_original_mni/Schaefer2018_500Parcels_7Networks_order_FSLMNI152_1mm.nii.gz entities: 7Networks_LH_Vis_1: name: 7Networks_LH_Vis_1 diff --git a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-600_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-600_dseg.yaml deleted file mode 100644 index 5f15507a0..000000000 --- a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-600_dseg.yaml +++ /dev/null @@ -1,7321 +0,0 @@ -name: Schaefer2018 -abbreviation: Schaefer2018 -versionIdentifier: '2018' -coordinateSpace: MNI152NLin6Asym -terminology: - label: Schaefer2018_600Parcels_7Networks_order - entities: - LH_Vis: - name: LH_Vis - lookupLabel: -1 - hemisphere: left - center: - x: -20.7 - y: -75.0 - z: 4.6 - LH_SomMot: - name: LH_SomMot - lookupLabel: -2 - hemisphere: left - center: - x: -36.7 - y: -21.7 - z: 42.3 - LH_DorsAttn: - name: LH_DorsAttn - lookupLabel: -3 - hemisphere: left - center: - x: -33.7 - y: -45.8 - z: 38.2 - LH_SalVentAttn: - name: LH_SalVentAttn - lookupLabel: -4 - hemisphere: left - center: - x: -30.2 - y: -9.3 - z: 28.3 - LH_Limbic: - name: LH_Limbic - lookupLabel: -5 - hemisphere: left - center: - x: -27.2 - y: 6.9 - z: -26.0 - LH_Cont: - name: LH_Cont - lookupLabel: -6 - hemisphere: left - center: - x: -32.7 - y: -5.1 - z: 29.5 - LH_Default: - name: LH_Default - lookupLabel: -7 - hemisphere: left - center: - x: -28.7 - y: -12.3 - z: 19.0 - RH_Vis: - name: RH_Vis - lookupLabel: -8 - hemisphere: right - center: - x: 22.1 - y: -73.0 - z: 4.8 - RH_SomMot: - name: RH_SomMot - lookupLabel: -9 - hemisphere: right - center: - x: 35.5 - y: -18.8 - z: 42.9 - RH_DorsAttn: - name: RH_DorsAttn - lookupLabel: -10 - hemisphere: right - center: - x: 34.1 - y: -45.6 - z: 43.2 - RH_SalVentAttn: - name: RH_SalVentAttn - lookupLabel: -11 - hemisphere: right - center: - x: 36.9 - y: -8.5 - z: 26.2 - RH_Limbic: - name: RH_Limbic - lookupLabel: -12 - hemisphere: right - center: - x: 25.1 - y: 15.2 - z: -26.2 - RH_Cont: - name: RH_Cont - lookupLabel: -13 - hemisphere: right - center: - x: 33.5 - y: 4.4 - z: 28.6 - RH_Default: - name: RH_Default - lookupLabel: -14 - hemisphere: right - center: - x: 28.0 - y: -5.1 - z: 15.3 - 7Networks_LH_Vis_1: - name: 7Networks_LH_Vis_1 - lookupLabel: 1 - originalLookupLabel: 1 - center: - x: -25.0 - y: -45.0 - z: -15.0 - color: '#781081' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_2: - name: 7Networks_LH_Vis_2 - lookupLabel: 2 - originalLookupLabel: 2 - center: - x: -34.0 - y: -59.0 - z: -17.0 - color: '#781082' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_3: - name: 7Networks_LH_Vis_3 - lookupLabel: 3 - originalLookupLabel: 3 - center: - x: -31.0 - y: -41.0 - z: -10.0 - color: '#781083' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_4: - name: 7Networks_LH_Vis_4 - lookupLabel: 4 - originalLookupLabel: 4 - center: - x: -35.0 - y: -77.0 - z: -15.0 - color: '#781084' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_5: - name: 7Networks_LH_Vis_5 - lookupLabel: 5 - originalLookupLabel: 5 - center: - x: -25.0 - y: -58.0 - z: -9.0 - color: '#781085' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_6: - name: 7Networks_LH_Vis_6 - lookupLabel: 6 - originalLookupLabel: 6 - center: - x: -23.0 - y: -73.0 - z: -10.0 - color: '#781086' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_7: - name: 7Networks_LH_Vis_7 - lookupLabel: 7 - originalLookupLabel: 7 - center: - x: -41.0 - y: -82.0 - z: -15.0 - color: '#78117f' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_8: - name: 7Networks_LH_Vis_8 - lookupLabel: 8 - originalLookupLabel: 8 - center: - x: -19.0 - y: -86.0 - z: -15.0 - color: '#781180' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_9: - name: 7Networks_LH_Vis_9 - lookupLabel: 9 - originalLookupLabel: 9 - center: - x: -20.0 - y: -49.0 - z: -7.0 - color: '#781181' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_10: - name: 7Networks_LH_Vis_10 - lookupLabel: 10 - originalLookupLabel: 10 - center: - x: -46.0 - y: -71.0 - z: -7.0 - color: '#781182' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_11: - name: 7Networks_LH_Vis_11 - lookupLabel: 11 - originalLookupLabel: 11 - center: - x: -15.0 - y: -37.0 - z: -11.0 - color: '#781183' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_12: - name: 7Networks_LH_Vis_12 - lookupLabel: 12 - originalLookupLabel: 12 - center: - x: -12.0 - y: -62.0 - z: -4.0 - color: '#781184' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_13: - name: 7Networks_LH_Vis_13 - lookupLabel: 13 - originalLookupLabel: 13 - center: - x: -7.0 - y: -76.0 - z: -6.0 - color: '#781185' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_14: - name: 7Networks_LH_Vis_14 - lookupLabel: 14 - originalLookupLabel: 14 - center: - x: -43.0 - y: -86.0 - z: -5.0 - color: '#781186' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_15: - name: 7Networks_LH_Vis_15 - lookupLabel: 15 - originalLookupLabel: 15 - center: - x: -25.0 - y: -97.0 - z: -11.0 - color: '#78127f' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_16: - name: 7Networks_LH_Vis_16 - lookupLabel: 16 - originalLookupLabel: 16 - center: - x: -7.0 - y: -94.0 - z: -14.0 - color: '#781280' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_17: - name: 7Networks_LH_Vis_17 - lookupLabel: 17 - originalLookupLabel: 17 - center: - x: -13.0 - y: -42.0 - z: -5.0 - color: '#781281' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_18: - name: 7Networks_LH_Vis_18 - lookupLabel: 18 - originalLookupLabel: 18 - center: - x: -45.0 - y: -76.0 - z: 4.0 - color: '#781282' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_19: - name: 7Networks_LH_Vis_19 - lookupLabel: 19 - originalLookupLabel: 19 - center: - x: -7.0 - y: -62.0 - z: 3.0 - color: '#781283' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_20: - name: 7Networks_LH_Vis_20 - lookupLabel: 20 - originalLookupLabel: 20 - center: - x: -3.0 - y: -70.0 - z: 5.0 - color: '#781284' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_21: - name: 7Networks_LH_Vis_21 - lookupLabel: 21 - originalLookupLabel: 21 - center: - x: -16.0 - y: -55.0 - z: 1.0 - color: '#781285' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_22: - name: 7Networks_LH_Vis_22 - lookupLabel: 22 - originalLookupLabel: 22 - center: - x: -6.0 - y: -86.0 - z: 0.0 - color: '#781287' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_23: - name: 7Networks_LH_Vis_23 - lookupLabel: 23 - originalLookupLabel: 23 - center: - x: -35.0 - y: -90.0 - z: 2.0 - color: '#781288' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_24: - name: 7Networks_LH_Vis_24 - lookupLabel: 24 - originalLookupLabel: 24 - center: - x: -8.0 - y: -102.0 - z: -2.0 - color: '#781289' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_25: - name: 7Networks_LH_Vis_25 - lookupLabel: 25 - originalLookupLabel: 25 - center: - x: -12.0 - y: -46.0 - z: 3.0 - color: '#78128a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_26: - name: 7Networks_LH_Vis_26 - lookupLabel: 26 - originalLookupLabel: 26 - center: - x: -6.0 - y: -95.0 - z: 1.0 - color: '#78128b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_27: - name: 7Networks_LH_Vis_27 - lookupLabel: 27 - originalLookupLabel: 27 - center: - x: -20.0 - y: -100.0 - z: 5.0 - color: '#78128c' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_28: - name: 7Networks_LH_Vis_28 - lookupLabel: 28 - originalLookupLabel: 28 - center: - x: -10.0 - y: -73.0 - z: 9.0 - color: '#78128d' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_29: - name: 7Networks_LH_Vis_29 - lookupLabel: 29 - originalLookupLabel: 29 - center: - x: -49.0 - y: -73.0 - z: 13.0 - color: '#781386' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_30: - name: 7Networks_LH_Vis_30 - lookupLabel: 30 - originalLookupLabel: 30 - center: - x: -28.0 - y: -92.0 - z: 10.0 - color: '#781387' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_31: - name: 7Networks_LH_Vis_31 - lookupLabel: 31 - originalLookupLabel: 31 - center: - x: -20.0 - y: -63.0 - z: 7.0 - color: '#781388' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_32: - name: 7Networks_LH_Vis_32 - lookupLabel: 32 - originalLookupLabel: 32 - center: - x: -43.0 - y: -79.0 - z: 15.0 - color: '#781389' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_33: - name: 7Networks_LH_Vis_33 - lookupLabel: 33 - originalLookupLabel: 33 - center: - x: -2.0 - y: -82.0 - z: 11.0 - color: '#78138a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_34: - name: 7Networks_LH_Vis_34 - lookupLabel: 34 - originalLookupLabel: 34 - center: - x: -7.0 - y: -97.0 - z: 15.0 - color: '#78138b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_35: - name: 7Networks_LH_Vis_35 - lookupLabel: 35 - originalLookupLabel: 35 - center: - x: -37.0 - y: -87.0 - z: 18.0 - color: '#78138c' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_36: - name: 7Networks_LH_Vis_36 - lookupLabel: 36 - originalLookupLabel: 36 - center: - x: -18.0 - y: -94.0 - z: 20.0 - color: '#78138d' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_37: - name: 7Networks_LH_Vis_37 - lookupLabel: 37 - originalLookupLabel: 37 - center: - x: -7.0 - y: -68.0 - z: 16.0 - color: '#781486' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_38: - name: 7Networks_LH_Vis_38 - lookupLabel: 38 - originalLookupLabel: 38 - center: - x: -17.0 - y: -66.0 - z: 17.0 - color: '#781487' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_39: - name: 7Networks_LH_Vis_39 - lookupLabel: 39 - originalLookupLabel: 39 - center: - x: -3.0 - y: -84.0 - z: 25.0 - color: '#781488' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_40: - name: 7Networks_LH_Vis_40 - lookupLabel: 40 - originalLookupLabel: 40 - center: - x: -28.0 - y: -84.0 - z: 20.0 - color: '#781489' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_41: - name: 7Networks_LH_Vis_41 - lookupLabel: 41 - originalLookupLabel: 41 - center: - x: -13.0 - y: -75.0 - z: 25.0 - color: '#78148a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_42: - name: 7Networks_LH_Vis_42 - lookupLabel: 42 - originalLookupLabel: 42 - center: - x: -14.0 - y: -90.0 - z: 34.0 - color: '#78148b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_43: - name: 7Networks_LH_Vis_43 - lookupLabel: 43 - originalLookupLabel: 43 - center: - x: -23.0 - y: -84.0 - z: 28.0 - color: '#78148c' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_44: - name: 7Networks_LH_Vis_44 - lookupLabel: 44 - originalLookupLabel: 44 - center: - x: -12.0 - y: -82.0 - z: 37.0 - color: '#78148d' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_45: - name: 7Networks_LH_Vis_45 - lookupLabel: 45 - originalLookupLabel: 45 - center: - x: -22.0 - y: -84.0 - z: 43.0 - color: '#781586' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_SomMot_1: - name: 7Networks_LH_SomMot_1 - lookupLabel: 46 - originalLookupLabel: 46 - center: - x: -53.0 - y: 0.0 - z: -3.0 - color: '#467fb2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_2: - name: 7Networks_LH_SomMot_2 - lookupLabel: 47 - originalLookupLabel: 47 - center: - x: -58.0 - y: -15.0 - z: 6.0 - color: '#467fb3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_3: - name: 7Networks_LH_SomMot_3 - lookupLabel: 48 - originalLookupLabel: 48 - center: - x: -43.0 - y: -19.0 - z: 4.0 - color: '#467fb4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_4: - name: 7Networks_LH_SomMot_4 - lookupLabel: 49 - originalLookupLabel: 49 - center: - x: -61.0 - y: -25.0 - z: 10.0 - color: '#4680ad' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_5: - name: 7Networks_LH_SomMot_5 - lookupLabel: 50 - originalLookupLabel: 50 - center: - x: -63.0 - y: -35.0 - z: 7.0 - color: '#4680ae' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_6: - name: 7Networks_LH_SomMot_6 - lookupLabel: 51 - originalLookupLabel: 51 - center: - x: -47.0 - y: -25.0 - z: 8.0 - color: '#4680af' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_7: - name: 7Networks_LH_SomMot_7 - lookupLabel: 52 - originalLookupLabel: 52 - center: - x: -35.0 - y: -12.0 - z: 14.0 - color: '#4680b0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_8: - name: 7Networks_LH_SomMot_8 - lookupLabel: 53 - originalLookupLabel: 53 - center: - x: -35.0 - y: -25.0 - z: 13.0 - color: '#4680b1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_9: - name: 7Networks_LH_SomMot_9 - lookupLabel: 54 - originalLookupLabel: 54 - center: - x: -43.0 - y: -4.0 - z: 13.0 - color: '#4680b2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_10: - name: 7Networks_LH_SomMot_10 - lookupLabel: 55 - originalLookupLabel: 55 - center: - x: -40.0 - y: -13.0 - z: 18.0 - color: '#4680b3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_11: - name: 7Networks_LH_SomMot_11 - lookupLabel: 56 - originalLookupLabel: 56 - center: - x: -59.0 - y: -37.0 - z: 15.0 - color: '#4680b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_12: - name: 7Networks_LH_SomMot_12 - lookupLabel: 57 - originalLookupLabel: 57 - center: - x: -41.0 - y: -35.0 - z: 14.0 - color: '#4681ad' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_13: - name: 7Networks_LH_SomMot_13 - lookupLabel: 58 - originalLookupLabel: 58 - center: - x: -38.0 - y: -26.0 - z: 20.0 - color: '#4681ae' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_14: - name: 7Networks_LH_SomMot_14 - lookupLabel: 59 - originalLookupLabel: 59 - center: - x: -51.0 - y: -13.0 - z: 14.0 - color: '#4681af' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_15: - name: 7Networks_LH_SomMot_15 - lookupLabel: 60 - originalLookupLabel: 60 - center: - x: -59.0 - y: 1.0 - z: 13.0 - color: '#4681b0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_16: - name: 7Networks_LH_SomMot_16 - lookupLabel: 61 - originalLookupLabel: 61 - center: - x: -62.0 - y: -8.0 - z: 11.0 - color: '#4681b1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_17: - name: 7Networks_LH_SomMot_17 - lookupLabel: 62 - originalLookupLabel: 62 - center: - x: -48.0 - y: -25.0 - z: 18.0 - color: '#4681b2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_18: - name: 7Networks_LH_SomMot_18 - lookupLabel: 63 - originalLookupLabel: 63 - center: - x: -61.0 - y: -18.0 - z: 20.0 - color: '#4681b3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_19: - name: 7Networks_LH_SomMot_19 - lookupLabel: 64 - originalLookupLabel: 64 - center: - x: -59.0 - y: -3.0 - z: 20.0 - color: '#4681b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_20: - name: 7Networks_LH_SomMot_20 - lookupLabel: 65 - originalLookupLabel: 65 - center: - x: -64.0 - y: -10.0 - z: 26.0 - color: '#4682ad' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_21: - name: 7Networks_LH_SomMot_21 - lookupLabel: 66 - originalLookupLabel: 66 - center: - x: -55.0 - y: -9.0 - z: 31.0 - color: '#4682ae' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_22: - name: 7Networks_LH_SomMot_22 - lookupLabel: 67 - originalLookupLabel: 67 - center: - x: -54.0 - y: -4.0 - z: 34.0 - color: '#4682af' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_23: - name: 7Networks_LH_SomMot_23 - lookupLabel: 68 - originalLookupLabel: 68 - center: - x: -58.0 - y: -15.0 - z: 40.0 - color: '#4682b0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_24: - name: 7Networks_LH_SomMot_24 - lookupLabel: 69 - originalLookupLabel: 69 - center: - x: -50.0 - y: -16.0 - z: 41.0 - color: '#4682b1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_25: - name: 7Networks_LH_SomMot_25 - lookupLabel: 70 - originalLookupLabel: 70 - center: - x: -55.0 - y: -21.0 - z: 47.0 - color: '#4682b2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_26: - name: 7Networks_LH_SomMot_26 - lookupLabel: 71 - originalLookupLabel: 71 - center: - x: -9.0 - y: -8.0 - z: 42.0 - color: '#4682b3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_27: - name: 7Networks_LH_SomMot_27 - lookupLabel: 72 - originalLookupLabel: 72 - center: - x: -52.0 - y: -4.0 - z: 47.0 - color: '#4682b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_28: - name: 7Networks_LH_SomMot_28 - lookupLabel: 73 - originalLookupLabel: 73 - center: - x: -42.0 - y: -17.0 - z: 39.0 - color: '#4682b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_29: - name: 7Networks_LH_SomMot_29 - lookupLabel: 74 - originalLookupLabel: 74 - center: - x: -48.0 - y: -17.0 - z: 52.0 - color: '#4682b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_30: - name: 7Networks_LH_SomMot_30 - lookupLabel: 75 - originalLookupLabel: 75 - center: - x: -51.0 - y: -26.0 - z: 55.0 - color: '#4682b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_31: - name: 7Networks_LH_SomMot_31 - lookupLabel: 76 - originalLookupLabel: 76 - center: - x: -42.0 - y: -13.0 - z: 49.0 - color: '#4682b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_32: - name: 7Networks_LH_SomMot_32 - lookupLabel: 77 - originalLookupLabel: 77 - center: - x: -7.0 - y: -14.0 - z: 49.0 - color: '#4682ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_33: - name: 7Networks_LH_SomMot_33 - lookupLabel: 78 - originalLookupLabel: 78 - center: - x: -45.0 - y: -24.0 - z: 63.0 - color: '#4682bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_34: - name: 7Networks_LH_SomMot_34 - lookupLabel: 79 - originalLookupLabel: 79 - center: - x: -40.0 - y: -24.0 - z: 53.0 - color: '#4683b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_35: - name: 7Networks_LH_SomMot_35 - lookupLabel: 80 - originalLookupLabel: 80 - center: - x: -40.0 - y: -36.0 - z: 63.0 - color: '#4683b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_36: - name: 7Networks_LH_SomMot_36 - lookupLabel: 81 - originalLookupLabel: 81 - center: - x: -35.0 - y: -46.0 - z: 62.0 - color: '#4683b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_37: - name: 7Networks_LH_SomMot_37 - lookupLabel: 82 - originalLookupLabel: 82 - center: - x: -37.0 - y: -19.0 - z: 63.0 - color: '#4683b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_38: - name: 7Networks_LH_SomMot_38 - lookupLabel: 83 - originalLookupLabel: 83 - center: - x: -4.0 - y: -9.0 - z: 61.0 - color: '#4683b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_39: - name: 7Networks_LH_SomMot_39 - lookupLabel: 84 - originalLookupLabel: 84 - center: - x: -8.0 - y: -40.0 - z: 58.0 - color: '#4683b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_40: - name: 7Networks_LH_SomMot_40 - lookupLabel: 85 - originalLookupLabel: 85 - center: - x: -4.0 - y: -26.0 - z: 57.0 - color: '#4683ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_41: - name: 7Networks_LH_SomMot_41 - lookupLabel: 86 - originalLookupLabel: 86 - center: - x: -30.0 - y: -11.0 - z: 63.0 - color: '#4683bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_42: - name: 7Networks_LH_SomMot_42 - lookupLabel: 87 - originalLookupLabel: 87 - center: - x: -27.0 - y: -40.0 - z: 59.0 - color: '#4684b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_43: - name: 7Networks_LH_SomMot_43 - lookupLabel: 88 - originalLookupLabel: 88 - center: - x: -31.0 - y: -29.0 - z: 62.0 - color: '#4684b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_44: - name: 7Networks_LH_SomMot_44 - lookupLabel: 89 - originalLookupLabel: 89 - center: - x: -27.0 - y: -48.0 - z: 65.0 - color: '#4684b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_45: - name: 7Networks_LH_SomMot_45 - lookupLabel: 90 - originalLookupLabel: 90 - center: - x: -30.0 - y: -35.0 - z: 70.0 - color: '#4684b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_46: - name: 7Networks_LH_SomMot_46 - lookupLabel: 91 - originalLookupLabel: 91 - center: - x: -21.0 - y: -12.0 - z: 71.0 - color: '#4684b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_47: - name: 7Networks_LH_SomMot_47 - lookupLabel: 92 - originalLookupLabel: 92 - center: - x: -19.0 - y: -24.0 - z: 68.0 - color: '#4684b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_48: - name: 7Networks_LH_SomMot_48 - lookupLabel: 93 - originalLookupLabel: 93 - center: - x: -9.0 - y: -43.0 - z: 71.0 - color: '#4684ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_49: - name: 7Networks_LH_SomMot_49 - lookupLabel: 94 - originalLookupLabel: 94 - center: - x: -23.0 - y: -38.0 - z: 71.0 - color: '#4684bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_50: - name: 7Networks_LH_SomMot_50 - lookupLabel: 95 - originalLookupLabel: 95 - center: - x: -20.0 - y: -31.0 - z: 67.0 - color: '#4685b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_51: - name: 7Networks_LH_SomMot_51 - lookupLabel: 96 - originalLookupLabel: 96 - center: - x: -3.0 - y: -31.0 - z: 68.0 - color: '#4685b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_52: - name: 7Networks_LH_SomMot_52 - lookupLabel: 97 - originalLookupLabel: 97 - center: - x: -6.0 - y: -17.0 - z: 73.0 - color: '#4685b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_53: - name: 7Networks_LH_SomMot_53 - lookupLabel: 98 - originalLookupLabel: 98 - center: - x: -17.0 - y: -46.0 - z: 72.0 - color: '#4685b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_54: - name: 7Networks_LH_SomMot_54 - lookupLabel: 99 - originalLookupLabel: 99 - center: - x: -14.0 - y: -13.0 - z: 73.0 - color: '#4685b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_55: - name: 7Networks_LH_SomMot_55 - lookupLabel: 100 - originalLookupLabel: 100 - center: - x: -11.0 - y: -27.0 - z: 73.0 - color: '#4685b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_56: - name: 7Networks_LH_SomMot_56 - lookupLabel: 101 - originalLookupLabel: 101 - center: - x: -11.0 - y: -34.0 - z: 74.0 - color: '#4685ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_DorsAttn_Post_1: - name: 7Networks_LH_DorsAttn_Post_1 - lookupLabel: 102 - originalLookupLabel: 102 - center: - x: -46.0 - y: -45.0 - z: -20.0 - color: '#00750a' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_2: - name: 7Networks_LH_DorsAttn_Post_2 - lookupLabel: 103 - originalLookupLabel: 103 - center: - x: -54.0 - y: -55.0 - z: -18.0 - color: '#00750b' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_3: - name: 7Networks_LH_DorsAttn_Post_3 - lookupLabel: 104 - originalLookupLabel: 104 - center: - x: -45.0 - y: -62.0 - z: -14.0 - color: '#00750c' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_4: - name: 7Networks_LH_DorsAttn_Post_4 - lookupLabel: 105 - originalLookupLabel: 105 - center: - x: -48.0 - y: -64.0 - z: -2.0 - color: '#00750d' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_5: - name: 7Networks_LH_DorsAttn_Post_5 - lookupLabel: 106 - originalLookupLabel: 106 - center: - x: -58.0 - y: -59.0 - z: -2.0 - color: '#00750e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_6: - name: 7Networks_LH_DorsAttn_Post_6 - lookupLabel: 107 - originalLookupLabel: 107 - center: - x: -51.0 - y: -65.0 - z: 7.0 - color: '#007607' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_7: - name: 7Networks_LH_DorsAttn_Post_7 - lookupLabel: 108 - originalLookupLabel: 108 - center: - x: -46.0 - y: -62.0 - z: 14.0 - color: '#007608' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_8: - name: 7Networks_LH_DorsAttn_Post_8 - lookupLabel: 109 - originalLookupLabel: 109 - center: - x: -31.0 - y: -84.0 - z: 29.0 - color: '#007609' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_9: - name: 7Networks_LH_DorsAttn_Post_9 - lookupLabel: 110 - originalLookupLabel: 110 - center: - x: -28.0 - y: -71.0 - z: 30.0 - color: '#00760a' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_10: - name: 7Networks_LH_DorsAttn_Post_10 - lookupLabel: 111 - originalLookupLabel: 111 - center: - x: -22.0 - y: -75.0 - z: 37.0 - color: '#00760b' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_11: - name: 7Networks_LH_DorsAttn_Post_11 - lookupLabel: 112 - originalLookupLabel: 112 - center: - x: -54.0 - y: -24.0 - z: 39.0 - color: '#00760c' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_12: - name: 7Networks_LH_DorsAttn_Post_12 - lookupLabel: 113 - originalLookupLabel: 113 - center: - x: -54.0 - y: -33.0 - z: 45.0 - color: '#00760d' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_13: - name: 7Networks_LH_DorsAttn_Post_13 - lookupLabel: 114 - originalLookupLabel: 114 - center: - x: -25.0 - y: -65.0 - z: 43.0 - color: '#00760f' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_14: - name: 7Networks_LH_DorsAttn_Post_14 - lookupLabel: 115 - originalLookupLabel: 115 - center: - x: -48.0 - y: -28.0 - z: 44.0 - color: '#007610' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_15: - name: 7Networks_LH_DorsAttn_Post_15 - lookupLabel: 116 - originalLookupLabel: 116 - center: - x: -19.0 - y: -68.0 - z: 47.0 - color: '#007611' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_16: - name: 7Networks_LH_DorsAttn_Post_16 - lookupLabel: 117 - originalLookupLabel: 117 - center: - x: -34.0 - y: -43.0 - z: 41.0 - color: '#007612' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_17: - name: 7Networks_LH_DorsAttn_Post_17 - lookupLabel: 118 - originalLookupLabel: 118 - center: - x: -15.0 - y: -75.0 - z: 51.0 - color: '#007613' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_18: - name: 7Networks_LH_DorsAttn_Post_18 - lookupLabel: 119 - originalLookupLabel: 119 - center: - x: -41.0 - y: -34.0 - z: 46.0 - color: '#007614' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_19: - name: 7Networks_LH_DorsAttn_Post_19 - lookupLabel: 120 - originalLookupLabel: 120 - center: - x: -28.0 - y: -57.0 - z: 54.0 - color: '#007615' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_20: - name: 7Networks_LH_DorsAttn_Post_20 - lookupLabel: 121 - originalLookupLabel: 121 - center: - x: -26.0 - y: -65.0 - z: 56.0 - color: '#00770e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_21: - name: 7Networks_LH_DorsAttn_Post_21 - lookupLabel: 122 - originalLookupLabel: 122 - center: - x: -5.0 - y: -71.0 - z: 54.0 - color: '#00770f' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_22: - name: 7Networks_LH_DorsAttn_Post_22 - lookupLabel: 123 - originalLookupLabel: 123 - center: - x: -35.0 - y: -51.0 - z: 54.0 - color: '#007710' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_23: - name: 7Networks_LH_DorsAttn_Post_23 - lookupLabel: 124 - originalLookupLabel: 124 - center: - x: -37.0 - y: -41.0 - z: 55.0 - color: '#007711' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_24: - name: 7Networks_LH_DorsAttn_Post_24 - lookupLabel: 125 - originalLookupLabel: 125 - center: - x: -17.0 - y: -70.0 - z: 59.0 - color: '#007712' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_25: - name: 7Networks_LH_DorsAttn_Post_25 - lookupLabel: 126 - originalLookupLabel: 126 - center: - x: -30.0 - y: -60.0 - z: 64.0 - color: '#007713' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_26: - name: 7Networks_LH_DorsAttn_Post_26 - lookupLabel: 127 - originalLookupLabel: 127 - center: - x: -7.0 - y: -59.0 - z: 62.0 - color: '#007714' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_27: - name: 7Networks_LH_DorsAttn_Post_27 - lookupLabel: 128 - originalLookupLabel: 128 - center: - x: -20.0 - y: -58.0 - z: 66.0 - color: '#007715' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_28: - name: 7Networks_LH_DorsAttn_Post_28 - lookupLabel: 129 - originalLookupLabel: 129 - center: - x: -9.0 - y: -54.0 - z: 71.0 - color: '#00780e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_1: - name: 7Networks_LH_DorsAttn_FEF_1 - lookupLabel: 130 - originalLookupLabel: 130 - center: - x: -38.0 - y: -3.0 - z: 51.0 - color: '#007616' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_2: - name: 7Networks_LH_DorsAttn_FEF_2 - lookupLabel: 131 - originalLookupLabel: 131 - center: - x: -25.0 - y: -6.0 - z: 53.0 - color: '#007716' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_3: - name: 7Networks_LH_DorsAttn_FEF_3 - lookupLabel: 132 - originalLookupLabel: 132 - center: - x: -19.0 - y: -10.0 - z: 62.0 - color: '#00780f' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_4: - name: 7Networks_LH_DorsAttn_FEF_4 - lookupLabel: 133 - originalLookupLabel: 133 - center: - x: -19.0 - y: -1.0 - z: 69.0 - color: '#007810' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_PrCv_1: - name: 7Networks_LH_DorsAttn_PrCv_1 - lookupLabel: 134 - originalLookupLabel: 134 - center: - x: -44.0 - y: 6.0 - z: 25.0 - color: '#007811' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_PrCv_2: - name: 7Networks_LH_DorsAttn_PrCv_2 - lookupLabel: 135 - originalLookupLabel: 135 - center: - x: -56.0 - y: 7.0 - z: 27.0 - color: '#007812' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_PrCv_3: - name: 7Networks_LH_DorsAttn_PrCv_3 - lookupLabel: 136 - originalLookupLabel: 136 - center: - x: -46.0 - y: 2.0 - z: 37.0 - color: '#007813' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_SalVentAttn_ParOper_1: - name: 7Networks_LH_SalVentAttn_ParOper_1 - lookupLabel: 137 - originalLookupLabel: 137 - center: - x: -47.0 - y: -38.0 - z: 24.0 - color: '#c43af9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_2: - name: 7Networks_LH_SalVentAttn_ParOper_2 - lookupLabel: 138 - originalLookupLabel: 138 - center: - x: -58.0 - y: -44.0 - z: 27.0 - color: '#c43afb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_3: - name: 7Networks_LH_SalVentAttn_ParOper_3 - lookupLabel: 139 - originalLookupLabel: 139 - center: - x: -59.0 - y: -29.0 - z: 22.0 - color: '#c43afc' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_4: - name: 7Networks_LH_SalVentAttn_ParOper_4 - lookupLabel: 140 - originalLookupLabel: 140 - center: - x: -58.0 - y: -19.0 - z: 30.0 - color: '#c43afd' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_5: - name: 7Networks_LH_SalVentAttn_ParOper_5 - lookupLabel: 141 - originalLookupLabel: 141 - center: - x: -61.0 - y: -37.0 - z: 34.0 - color: '#c43afe' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_6: - name: 7Networks_LH_SalVentAttn_ParOper_6 - lookupLabel: 142 - originalLookupLabel: 142 - center: - x: -63.0 - y: -26.0 - z: 36.0 - color: '#c43aff' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_TempOcc_1: - name: 7Networks_LH_SalVentAttn_TempOcc_1 - lookupLabel: 143 - originalLookupLabel: 143 - center: - x: -56.0 - y: -56.0 - z: 13.0 - color: '#c133f9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_1: - name: 7Networks_LH_SalVentAttn_FrOperIns_1 - lookupLabel: 144 - originalLookupLabel: 144 - center: - x: -39.0 - y: 2.0 - z: -11.0 - color: '#c43bf6' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_2: - name: 7Networks_LH_SalVentAttn_FrOperIns_2 - lookupLabel: 145 - originalLookupLabel: 145 - center: - x: -39.0 - y: -9.0 - z: -9.0 - color: '#c43bf7' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_3: - name: 7Networks_LH_SalVentAttn_FrOperIns_3 - lookupLabel: 146 - originalLookupLabel: 146 - center: - x: -39.0 - y: 2.0 - z: 0.0 - color: '#c43bf8' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_4: - name: 7Networks_LH_SalVentAttn_FrOperIns_4 - lookupLabel: 147 - originalLookupLabel: 147 - center: - x: -34.0 - y: 30.0 - z: 0.0 - color: '#c43bf9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_5: - name: 7Networks_LH_SalVentAttn_FrOperIns_5 - lookupLabel: 148 - originalLookupLabel: 148 - center: - x: -40.0 - y: -15.0 - z: 0.0 - color: '#c43bfb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_6: - name: 7Networks_LH_SalVentAttn_FrOperIns_6 - lookupLabel: 149 - originalLookupLabel: 149 - center: - x: -33.0 - y: 19.0 - z: 8.0 - color: '#c43bfc' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_7: - name: 7Networks_LH_SalVentAttn_FrOperIns_7 - lookupLabel: 150 - originalLookupLabel: 150 - center: - x: -37.0 - y: -3.0 - z: 9.0 - color: '#c43bfd' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_8: - name: 7Networks_LH_SalVentAttn_FrOperIns_8 - lookupLabel: 151 - originalLookupLabel: 151 - center: - x: -38.0 - y: 3.0 - z: 12.0 - color: '#c43bfe' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_9: - name: 7Networks_LH_SalVentAttn_FrOperIns_9 - lookupLabel: 152 - originalLookupLabel: 152 - center: - x: -44.0 - y: 11.0 - z: 2.0 - color: '#c43bff' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_10: - name: 7Networks_LH_SalVentAttn_FrOperIns_10 - lookupLabel: 153 - originalLookupLabel: 153 - center: - x: -51.0 - y: 1.0 - z: 5.0 - color: '#c134fa' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_11: - name: 7Networks_LH_SalVentAttn_FrOperIns_11 - lookupLabel: 154 - originalLookupLabel: 154 - center: - x: -56.0 - y: 8.0 - z: 13.0 - color: '#c135f3' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_PFCl_1: - name: 7Networks_LH_SalVentAttn_PFCl_1 - lookupLabel: 155 - originalLookupLabel: 155 - center: - x: -30.0 - y: 46.0 - z: 27.0 - color: '#c134f9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_PFCl_2: - name: 7Networks_LH_SalVentAttn_PFCl_2 - lookupLabel: 156 - originalLookupLabel: 156 - center: - x: -26.0 - y: 37.0 - z: 37.0 - color: '#c134fb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_1: - name: 7Networks_LH_SalVentAttn_Med_1 - lookupLabel: 157 - originalLookupLabel: 157 - center: - x: -7.0 - y: 27.0 - z: 29.0 - color: '#c53af5' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_2: - name: 7Networks_LH_SalVentAttn_Med_2 - lookupLabel: 158 - originalLookupLabel: 158 - center: - x: -6.0 - y: 16.0 - z: 36.0 - color: '#c53af6' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_3: - name: 7Networks_LH_SalVentAttn_Med_3 - lookupLabel: 159 - originalLookupLabel: 159 - center: - x: -5.0 - y: 3.0 - z: 37.0 - color: '#c53af7' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_4: - name: 7Networks_LH_SalVentAttn_Med_4 - lookupLabel: 160 - originalLookupLabel: 160 - center: - x: -8.0 - y: -22.0 - z: 39.0 - color: '#c53af8' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_5: - name: 7Networks_LH_SalVentAttn_Med_5 - lookupLabel: 161 - originalLookupLabel: 161 - center: - x: -12.0 - y: -35.0 - z: 42.0 - color: '#c53af9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_6: - name: 7Networks_LH_SalVentAttn_Med_6 - lookupLabel: 162 - originalLookupLabel: 162 - center: - x: -13.0 - y: -24.0 - z: 42.0 - color: '#c53afb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_7: - name: 7Networks_LH_SalVentAttn_Med_7 - lookupLabel: 163 - originalLookupLabel: 163 - center: - x: -6.0 - y: 4.0 - z: 48.0 - color: '#c53afc' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_8: - name: 7Networks_LH_SalVentAttn_Med_8 - lookupLabel: 164 - originalLookupLabel: 164 - center: - x: -12.0 - y: -44.0 - z: 51.0 - color: '#c53afd' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_9: - name: 7Networks_LH_SalVentAttn_Med_9 - lookupLabel: 165 - originalLookupLabel: 165 - center: - x: -11.0 - y: -34.0 - z: 49.0 - color: '#c53afe' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_10: - name: 7Networks_LH_SalVentAttn_Med_10 - lookupLabel: 166 - originalLookupLabel: 166 - center: - x: -4.0 - y: -51.0 - z: 53.0 - color: '#c53aff' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_11: - name: 7Networks_LH_SalVentAttn_Med_11 - lookupLabel: 167 - originalLookupLabel: 167 - center: - x: -5.0 - y: 3.0 - z: 59.0 - color: '#c233fa' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_12: - name: 7Networks_LH_SalVentAttn_Med_12 - lookupLabel: 168 - originalLookupLabel: 168 - center: - x: -8.0 - y: -48.0 - z: 61.0 - color: '#c234f3' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_13: - name: 7Networks_LH_SalVentAttn_Med_13 - lookupLabel: 169 - originalLookupLabel: 169 - center: - x: -14.0 - y: 9.0 - z: 67.0 - color: '#c234f4' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_14: - name: 7Networks_LH_SalVentAttn_Med_14 - lookupLabel: 170 - originalLookupLabel: 170 - center: - x: -8.0 - y: -2.0 - z: 71.0 - color: '#c234f5' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_Limbic_OFC_1: - name: 7Networks_LH_Limbic_OFC_1 - lookupLabel: 171 - originalLookupLabel: 171 - center: - x: -23.0 - y: 14.0 - z: -23.0 - color: '#dcf8a2' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_2: - name: 7Networks_LH_Limbic_OFC_2 - lookupLabel: 172 - originalLookupLabel: 172 - center: - x: -13.0 - y: 25.0 - z: -21.0 - color: '#dcf8a3' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_3: - name: 7Networks_LH_Limbic_OFC_3 - lookupLabel: 173 - originalLookupLabel: 173 - center: - x: -23.0 - y: 30.0 - z: -18.0 - color: '#dcf8a5' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_4: - name: 7Networks_LH_Limbic_OFC_4 - lookupLabel: 174 - originalLookupLabel: 174 - center: - x: -4.0 - y: 22.0 - z: -20.0 - color: '#dcf8a6' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_5: - name: 7Networks_LH_Limbic_OFC_5 - lookupLabel: 175 - originalLookupLabel: 175 - center: - x: -10.0 - y: 50.0 - z: -22.0 - color: '#dcf8a7' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_6: - name: 7Networks_LH_Limbic_OFC_6 - lookupLabel: 176 - originalLookupLabel: 176 - center: - x: -3.0 - y: 42.0 - z: -22.0 - color: '#dcf8a8' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_7: - name: 7Networks_LH_Limbic_OFC_7 - lookupLabel: 177 - originalLookupLabel: 177 - center: - x: -5.0 - y: 25.0 - z: -11.0 - color: '#dcf8a9' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_8: - name: 7Networks_LH_Limbic_OFC_8 - lookupLabel: 178 - originalLookupLabel: 178 - center: - x: -10.0 - y: 64.0 - z: -15.0 - color: '#dcf8aa' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_1: - name: 7Networks_LH_Limbic_TempPole_1 - lookupLabel: 179 - originalLookupLabel: 179 - center: - x: -31.0 - y: 0.0 - z: -43.0 - color: '#dcf8a0' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_2: - name: 7Networks_LH_Limbic_TempPole_2 - lookupLabel: 180 - originalLookupLabel: 180 - center: - x: -49.0 - y: -11.0 - z: -38.0 - color: '#dcf8a1' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_3: - name: 7Networks_LH_Limbic_TempPole_3 - lookupLabel: 181 - originalLookupLabel: 181 - center: - x: -25.0 - y: -7.0 - z: -34.0 - color: '#dcf8a4' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_4: - name: 7Networks_LH_Limbic_TempPole_4 - lookupLabel: 182 - originalLookupLabel: 182 - center: - x: -45.0 - y: 5.0 - z: -39.0 - color: '#dcf8ab' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_5: - name: 7Networks_LH_Limbic_TempPole_5 - lookupLabel: 183 - originalLookupLabel: 183 - center: - x: -39.0 - y: -16.0 - z: -31.0 - color: '#dcf8ac' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_6: - name: 7Networks_LH_Limbic_TempPole_6 - lookupLabel: 184 - originalLookupLabel: 184 - center: - x: -25.0 - y: 8.0 - z: -32.0 - color: '#dcf9a5' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_7: - name: 7Networks_LH_Limbic_TempPole_7 - lookupLabel: 185 - originalLookupLabel: 185 - center: - x: -30.0 - y: -16.0 - z: -30.0 - color: '#dcf9a6' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_8: - name: 7Networks_LH_Limbic_TempPole_8 - lookupLabel: 186 - originalLookupLabel: 186 - center: - x: -54.0 - y: -31.0 - z: -27.0 - color: '#dcf9a7' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_9: - name: 7Networks_LH_Limbic_TempPole_9 - lookupLabel: 187 - originalLookupLabel: 187 - center: - x: -39.0 - y: 17.0 - z: -32.0 - color: '#dcf9a8' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_10: - name: 7Networks_LH_Limbic_TempPole_10 - lookupLabel: 188 - originalLookupLabel: 188 - center: - x: -37.0 - y: -36.0 - z: -23.0 - color: '#dcf9a9' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_11: - name: 7Networks_LH_Limbic_TempPole_11 - lookupLabel: 189 - originalLookupLabel: 189 - center: - x: -21.0 - y: -19.0 - z: -27.0 - color: '#dcf9aa' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_12: - name: 7Networks_LH_Limbic_TempPole_12 - lookupLabel: 190 - originalLookupLabel: 190 - center: - x: -31.0 - y: -28.0 - z: -22.0 - color: '#dcf9ab' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_13: - name: 7Networks_LH_Limbic_TempPole_13 - lookupLabel: 191 - originalLookupLabel: 191 - center: - x: -36.0 - y: 8.0 - z: -25.0 - color: '#dcf9ac' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_14: - name: 7Networks_LH_Limbic_TempPole_14 - lookupLabel: 192 - originalLookupLabel: 192 - center: - x: -45.0 - y: 6.0 - z: -16.0 - color: '#dcfaa5' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Cont_Par_1: - name: 7Networks_LH_Cont_Par_1 - lookupLabel: 193 - originalLookupLabel: 193 - center: - x: -29.0 - y: -75.0 - z: 44.0 - color: '#e6941f' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_2: - name: 7Networks_LH_Cont_Par_2 - lookupLabel: 194 - originalLookupLabel: 194 - center: - x: -59.0 - y: -42.0 - z: 45.0 - color: '#e69420' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_3: - name: 7Networks_LH_Cont_Par_3 - lookupLabel: 195 - originalLookupLabel: 195 - center: - x: -51.0 - y: -53.0 - z: 49.0 - color: '#e69421' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_4: - name: 7Networks_LH_Cont_Par_4 - lookupLabel: 196 - originalLookupLabel: 196 - center: - x: -53.0 - y: -46.0 - z: 53.0 - color: '#e69423' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_5: - name: 7Networks_LH_Cont_Par_5 - lookupLabel: 197 - originalLookupLabel: 197 - center: - x: -37.0 - y: -62.0 - z: 51.0 - color: '#e69424' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_6: - name: 7Networks_LH_Cont_Par_6 - lookupLabel: 198 - originalLookupLabel: 198 - center: - x: -43.0 - y: -53.0 - z: 49.0 - color: '#e69425' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_7: - name: 7Networks_LH_Cont_Par_7 - lookupLabel: 199 - originalLookupLabel: 199 - center: - x: -45.0 - y: -42.0 - z: 47.0 - color: '#e69426' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_8: - name: 7Networks_LH_Cont_Par_8 - lookupLabel: 200 - originalLookupLabel: 200 - center: - x: -31.0 - y: -60.0 - z: 46.0 - color: '#e69427' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_9: - name: 7Networks_LH_Cont_Par_9 - lookupLabel: 201 - originalLookupLabel: 201 - center: - x: -34.0 - y: -50.0 - z: 40.0 - color: '#e69428' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Temp_1: - name: 7Networks_LH_Cont_Temp_1 - lookupLabel: 202 - originalLookupLabel: 202 - center: - x: -61.0 - y: -48.0 - z: -11.0 - color: '#e69429' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCd_1: - name: 7Networks_LH_Cont_PFCd_1 - lookupLabel: 203 - originalLookupLabel: 203 - center: - x: -30.0 - y: 3.0 - z: 59.0 - color: '#e69523' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCd_2: - name: 7Networks_LH_Cont_PFCd_2 - lookupLabel: 204 - originalLookupLabel: 204 - center: - x: -22.0 - y: 8.0 - z: 60.0 - color: '#e69524' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_OFC_1: - name: 7Networks_LH_Cont_OFC_1 - lookupLabel: 205 - originalLookupLabel: 205 - center: - x: -25.0 - y: 48.0 - z: -15.0 - color: '#e6951e' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_1: - name: 7Networks_LH_Cont_PFCl_1 - lookupLabel: 206 - originalLookupLabel: 206 - center: - x: -41.0 - y: 50.0 - z: -7.0 - color: '#e6951f' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_2: - name: 7Networks_LH_Cont_PFCl_2 - lookupLabel: 207 - originalLookupLabel: 207 - center: - x: -49.0 - y: 40.0 - z: -1.0 - color: '#e69520' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_3: - name: 7Networks_LH_Cont_PFCl_3 - lookupLabel: 208 - originalLookupLabel: 208 - center: - x: -39.0 - y: 49.0 - z: 7.0 - color: '#e69521' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_4: - name: 7Networks_LH_Cont_PFCl_4 - lookupLabel: 209 - originalLookupLabel: 209 - center: - x: -30.0 - y: 56.0 - z: 11.0 - color: '#e69522' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_5: - name: 7Networks_LH_Cont_PFCl_5 - lookupLabel: 210 - originalLookupLabel: 210 - center: - x: -46.0 - y: 35.0 - z: 13.0 - color: '#e69525' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_6: - name: 7Networks_LH_Cont_PFCl_6 - lookupLabel: 211 - originalLookupLabel: 211 - center: - x: -49.0 - y: 10.0 - z: 14.0 - color: '#e69526' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_7: - name: 7Networks_LH_Cont_PFCl_7 - lookupLabel: 212 - originalLookupLabel: 212 - center: - x: -48.0 - y: 18.0 - z: 24.0 - color: '#e69527' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_8: - name: 7Networks_LH_Cont_PFCl_8 - lookupLabel: 213 - originalLookupLabel: 213 - center: - x: -40.0 - y: 41.0 - z: 21.0 - color: '#e69528' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_9: - name: 7Networks_LH_Cont_PFCl_9 - lookupLabel: 214 - originalLookupLabel: 214 - center: - x: -44.0 - y: 25.0 - z: 27.0 - color: '#e69529' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_10: - name: 7Networks_LH_Cont_PFCl_10 - lookupLabel: 215 - originalLookupLabel: 215 - center: - x: -37.0 - y: 9.0 - z: 32.0 - color: '#e6952a' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_11: - name: 7Networks_LH_Cont_PFCl_11 - lookupLabel: 216 - originalLookupLabel: 216 - center: - x: -35.0 - y: 32.0 - z: 38.0 - color: '#e69623' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_12: - name: 7Networks_LH_Cont_PFCl_12 - lookupLabel: 217 - originalLookupLabel: 217 - center: - x: -45.0 - y: 20.0 - z: 36.0 - color: '#e69624' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_13: - name: 7Networks_LH_Cont_PFCl_13 - lookupLabel: 218 - originalLookupLabel: 218 - center: - x: -45.0 - y: 12.0 - z: 40.0 - color: '#e69625' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCv_1: - name: 7Networks_LH_Cont_PFCv_1 - lookupLabel: 219 - originalLookupLabel: 219 - center: - x: -35.0 - y: 14.0 - z: -8.0 - color: '#e79424' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCv_2: - name: 7Networks_LH_Cont_PFCv_2 - lookupLabel: 220 - originalLookupLabel: 220 - center: - x: -32.0 - y: 22.0 - z: -1.0 - color: '#e79425' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_pCun_1: - name: 7Networks_LH_Cont_pCun_1 - lookupLabel: 221 - originalLookupLabel: 221 - center: - x: -9.0 - y: -76.0 - z: 43.0 - color: '#e79523' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_pCun_2: - name: 7Networks_LH_Cont_pCun_2 - lookupLabel: 222 - originalLookupLabel: 222 - center: - x: -6.0 - y: -62.0 - z: 51.0 - color: '#e79524' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_1: - name: 7Networks_LH_Cont_Cing_1 - lookupLabel: 223 - originalLookupLabel: 223 - center: - x: -6.0 - y: -40.0 - z: 24.0 - color: '#e79525' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_2: - name: 7Networks_LH_Cont_Cing_2 - lookupLabel: 224 - originalLookupLabel: 224 - center: - x: -4.0 - y: 15.0 - z: 25.0 - color: '#e79526' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_3: - name: 7Networks_LH_Cont_Cing_3 - lookupLabel: 225 - originalLookupLabel: 225 - center: - x: -4.0 - y: -22.0 - z: 29.0 - color: '#e79527' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_4: - name: 7Networks_LH_Cont_Cing_4 - lookupLabel: 226 - originalLookupLabel: 226 - center: - x: -4.0 - y: 1.0 - z: 30.0 - color: '#e79528' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCmp_1: - name: 7Networks_LH_Cont_PFCmp_1 - lookupLabel: 227 - originalLookupLabel: 227 - center: - x: -4.0 - y: 27.0 - z: 46.0 - color: '#e69422' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCmp_2: - name: 7Networks_LH_Cont_PFCmp_2 - lookupLabel: 228 - originalLookupLabel: 228 - center: - x: -5.0 - y: 14.0 - z: 52.0 - color: '#e69621' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Default_Temp_1: - name: 7Networks_LH_Default_Temp_1 - lookupLabel: 229 - originalLookupLabel: 229 - center: - x: -55.0 - y: 0.0 - z: -29.0 - color: '#cd3d4c' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_2: - name: 7Networks_LH_Default_Temp_2 - lookupLabel: 230 - originalLookupLabel: 230 - center: - x: -60.0 - y: -19.0 - z: -23.0 - color: '#cd3d4d' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_3: - name: 7Networks_LH_Default_Temp_3 - lookupLabel: 231 - originalLookupLabel: 231 - center: - x: -52.0 - y: 8.0 - z: -19.0 - color: '#cd3d4e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_4: - name: 7Networks_LH_Default_Temp_4 - lookupLabel: 232 - originalLookupLabel: 232 - center: - x: -61.0 - y: -36.0 - z: -16.0 - color: '#cd3d4f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_5: - name: 7Networks_LH_Default_Temp_5 - lookupLabel: 233 - originalLookupLabel: 233 - center: - x: -61.0 - y: -10.0 - z: -15.0 - color: '#cd3e48' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_6: - name: 7Networks_LH_Default_Temp_6 - lookupLabel: 234 - originalLookupLabel: 234 - center: - x: -53.0 - y: -4.0 - z: -11.0 - color: '#cd3e49' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_7: - name: 7Networks_LH_Default_Temp_7 - lookupLabel: 235 - originalLookupLabel: 235 - center: - x: -63.0 - y: -33.0 - z: -4.0 - color: '#cd3e4a' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_8: - name: 7Networks_LH_Default_Temp_8 - lookupLabel: 236 - originalLookupLabel: 236 - center: - x: -51.0 - y: -22.0 - z: -8.0 - color: '#cd3e4b' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_9: - name: 7Networks_LH_Default_Temp_9 - lookupLabel: 237 - originalLookupLabel: 237 - center: - x: -60.0 - y: -18.0 - z: -2.0 - color: '#cd3e4c' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_10: - name: 7Networks_LH_Default_Temp_10 - lookupLabel: 238 - originalLookupLabel: 238 - center: - x: -51.0 - y: -34.0 - z: 0.0 - color: '#cd3e4d' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_11: - name: 7Networks_LH_Default_Temp_11 - lookupLabel: 239 - originalLookupLabel: 239 - center: - x: -63.0 - y: -50.0 - z: 4.0 - color: '#cd3e4e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_12: - name: 7Networks_LH_Default_Temp_12 - lookupLabel: 240 - originalLookupLabel: 240 - center: - x: -52.0 - y: -44.0 - z: 6.0 - color: '#cd3e50' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_1: - name: 7Networks_LH_Default_Par_1 - lookupLabel: 241 - originalLookupLabel: 241 - center: - x: -47.0 - y: -49.0 - z: 14.0 - color: '#cd3e51' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_2: - name: 7Networks_LH_Default_Par_2 - lookupLabel: 242 - originalLookupLabel: 242 - center: - x: -45.0 - y: -56.0 - z: 19.0 - color: '#cd3e52' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_3: - name: 7Networks_LH_Default_Par_3 - lookupLabel: 243 - originalLookupLabel: 243 - center: - x: -60.0 - y: -49.0 - z: 16.0 - color: '#cd3e53' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_4: - name: 7Networks_LH_Default_Par_4 - lookupLabel: 244 - originalLookupLabel: 244 - center: - x: -43.0 - y: -72.0 - z: 24.0 - color: '#cd3e54' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_5: - name: 7Networks_LH_Default_Par_5 - lookupLabel: 245 - originalLookupLabel: 245 - center: - x: -45.0 - y: -63.0 - z: 24.0 - color: '#cd3e55' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_6: - name: 7Networks_LH_Default_Par_6 - lookupLabel: 246 - originalLookupLabel: 246 - center: - x: -49.0 - y: -54.0 - z: 26.0 - color: '#cd3e56' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_7: - name: 7Networks_LH_Default_Par_7 - lookupLabel: 247 - originalLookupLabel: 247 - center: - x: -39.0 - y: -81.0 - z: 33.0 - color: '#cd3f4f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_8: - name: 7Networks_LH_Default_Par_8 - lookupLabel: 248 - originalLookupLabel: 248 - center: - x: -61.0 - y: -53.0 - z: 28.0 - color: '#cd3f50' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_9: - name: 7Networks_LH_Default_Par_9 - lookupLabel: 249 - originalLookupLabel: 249 - center: - x: -48.0 - y: -68.0 - z: 34.0 - color: '#cd3f51' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_10: - name: 7Networks_LH_Default_Par_10 - lookupLabel: 250 - originalLookupLabel: 250 - center: - x: -49.0 - y: -59.0 - z: 38.0 - color: '#cd3f52' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_11: - name: 7Networks_LH_Default_Par_11 - lookupLabel: 251 - originalLookupLabel: 251 - center: - x: -39.0 - y: -74.0 - z: 44.0 - color: '#cd3f53' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_12: - name: 7Networks_LH_Default_Par_12 - lookupLabel: 252 - originalLookupLabel: 252 - center: - x: -56.0 - y: -51.0 - z: 38.0 - color: '#cd3f54' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_13: - name: 7Networks_LH_Default_Par_13 - lookupLabel: 253 - originalLookupLabel: 253 - center: - x: -45.0 - y: -64.0 - z: 49.0 - color: '#cd3f55' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_1: - name: 7Networks_LH_Default_PFC_1 - lookupLabel: 254 - originalLookupLabel: 254 - center: - x: -28.0 - y: 17.0 - z: -16.0 - color: '#cd3f47' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_2: - name: 7Networks_LH_Default_PFC_2 - lookupLabel: 255 - originalLookupLabel: 255 - center: - x: -36.0 - y: 37.0 - z: -13.0 - color: '#cd3f48' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_3: - name: 7Networks_LH_Default_PFC_3 - lookupLabel: 256 - originalLookupLabel: 256 - center: - x: -37.0 - y: 24.0 - z: -15.0 - color: '#cd3f49' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_4: - name: 7Networks_LH_Default_PFC_4 - lookupLabel: 257 - originalLookupLabel: 257 - center: - x: -5.0 - y: 55.0 - z: -10.0 - color: '#cd3f4a' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_5: - name: 7Networks_LH_Default_PFC_5 - lookupLabel: 258 - originalLookupLabel: 258 - center: - x: -47.0 - y: 32.0 - z: -10.0 - color: '#cd3f4b' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_6: - name: 7Networks_LH_Default_PFC_6 - lookupLabel: 259 - originalLookupLabel: 259 - center: - x: -6.0 - y: 39.0 - z: -7.0 - color: '#cd3f4c' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_7: - name: 7Networks_LH_Default_PFC_7 - lookupLabel: 260 - originalLookupLabel: 260 - center: - x: -20.0 - y: 63.0 - z: -7.0 - color: '#cd3f4d' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_8: - name: 7Networks_LH_Default_PFC_8 - lookupLabel: 261 - originalLookupLabel: 261 - center: - x: -29.0 - y: 58.0 - z: -1.0 - color: '#cd404e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_9: - name: 7Networks_LH_Default_PFC_9 - lookupLabel: 262 - originalLookupLabel: 262 - center: - x: -48.0 - y: 27.0 - z: 1.0 - color: '#cd404f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_10: - name: 7Networks_LH_Default_PFC_10 - lookupLabel: 263 - originalLookupLabel: 263 - center: - x: -12.0 - y: 69.0 - z: 5.0 - color: '#cd4050' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_11: - name: 7Networks_LH_Default_PFC_11 - lookupLabel: 264 - originalLookupLabel: 264 - center: - x: -6.0 - y: 45.0 - z: 6.0 - color: '#cd4051' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_12: - name: 7Networks_LH_Default_PFC_12 - lookupLabel: 265 - originalLookupLabel: 265 - center: - x: -53.0 - y: 19.0 - z: 10.0 - color: '#cd4052' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_13: - name: 7Networks_LH_Default_PFC_13 - lookupLabel: 266 - originalLookupLabel: 266 - center: - x: -22.0 - y: 63.0 - z: 11.0 - color: '#cd4053' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_14: - name: 7Networks_LH_Default_PFC_14 - lookupLabel: 267 - originalLookupLabel: 267 - center: - x: -6.0 - y: 57.0 - z: 15.0 - color: '#cd4054' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_15: - name: 7Networks_LH_Default_PFC_15 - lookupLabel: 268 - originalLookupLabel: 268 - center: - x: -3.0 - y: 30.0 - z: 16.0 - color: '#cd4055' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_16: - name: 7Networks_LH_Default_PFC_16 - lookupLabel: 269 - originalLookupLabel: 269 - center: - x: -14.0 - y: 62.0 - z: 24.0 - color: '#cd414e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_17: - name: 7Networks_LH_Default_PFC_17 - lookupLabel: 270 - originalLookupLabel: 270 - center: - x: -7.0 - y: 36.0 - z: 22.0 - color: '#cd414f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_18: - name: 7Networks_LH_Default_PFC_18 - lookupLabel: 271 - originalLookupLabel: 271 - center: - x: -22.0 - y: 54.0 - z: 27.0 - color: '#cd4150' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_19: - name: 7Networks_LH_Default_PFC_19 - lookupLabel: 272 - originalLookupLabel: 272 - center: - x: -4.0 - y: 47.0 - z: 35.0 - color: '#cd4151' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_20: - name: 7Networks_LH_Default_PFC_20 - lookupLabel: 273 - originalLookupLabel: 273 - center: - x: -20.0 - y: 40.0 - z: 42.0 - color: '#cd4152' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_21: - name: 7Networks_LH_Default_PFC_21 - lookupLabel: 274 - originalLookupLabel: 274 - center: - x: -13.0 - y: 47.0 - z: 44.0 - color: '#cd4153' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_22: - name: 7Networks_LH_Default_PFC_22 - lookupLabel: 275 - originalLookupLabel: 275 - center: - x: -25.0 - y: 27.0 - z: 44.0 - color: '#cd4154' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_23: - name: 7Networks_LH_Default_PFC_23 - lookupLabel: 276 - originalLookupLabel: 276 - center: - x: -39.0 - y: 19.0 - z: 50.0 - color: '#cd4155' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_24: - name: 7Networks_LH_Default_PFC_24 - lookupLabel: 277 - originalLookupLabel: 277 - center: - x: -42.0 - y: 7.0 - z: 49.0 - color: '#cd424e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_25: - name: 7Networks_LH_Default_PFC_25 - lookupLabel: 278 - originalLookupLabel: 278 - center: - x: -6.0 - y: 37.0 - z: 54.0 - color: '#cd424f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_26: - name: 7Networks_LH_Default_PFC_26 - lookupLabel: 279 - originalLookupLabel: 279 - center: - x: -29.0 - y: 16.0 - z: 55.0 - color: '#cd4250' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_27: - name: 7Networks_LH_Default_PFC_27 - lookupLabel: 280 - originalLookupLabel: 280 - center: - x: -22.0 - y: 24.0 - z: 52.0 - color: '#cd4251' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_28: - name: 7Networks_LH_Default_PFC_28 - lookupLabel: 281 - originalLookupLabel: 281 - center: - x: -14.0 - y: 23.0 - z: 61.0 - color: '#cd4252' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_29: - name: 7Networks_LH_Default_PFC_29 - lookupLabel: 282 - originalLookupLabel: 282 - center: - x: -5.0 - y: 13.0 - z: 64.0 - color: '#cd4253' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_1: - name: 7Networks_LH_Default_pCunPCC_1 - lookupLabel: 283 - originalLookupLabel: 283 - center: - x: -10.0 - y: -53.0 - z: 8.0 - color: '#cd3f4e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_2: - name: 7Networks_LH_Default_pCunPCC_2 - lookupLabel: 284 - originalLookupLabel: 284 - center: - x: -6.0 - y: -47.0 - z: 15.0 - color: '#cd3f56' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_3: - name: 7Networks_LH_Default_pCunPCC_3 - lookupLabel: 285 - originalLookupLabel: 285 - center: - x: -12.0 - y: -59.0 - z: 17.0 - color: '#cd4056' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_4: - name: 7Networks_LH_Default_pCunPCC_4 - lookupLabel: 286 - originalLookupLabel: 286 - center: - x: -4.0 - y: -53.0 - z: 19.0 - color: '#cd4156' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_5: - name: 7Networks_LH_Default_pCunPCC_5 - lookupLabel: 287 - originalLookupLabel: 287 - center: - x: -15.0 - y: -65.0 - z: 24.0 - color: '#cd4254' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_6: - name: 7Networks_LH_Default_pCunPCC_6 - lookupLabel: 288 - originalLookupLabel: 288 - center: - x: -4.0 - y: -66.0 - z: 24.0 - color: '#cd4255' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_7: - name: 7Networks_LH_Default_pCunPCC_7 - lookupLabel: 289 - originalLookupLabel: 289 - center: - x: -7.0 - y: -56.0 - z: 27.0 - color: '#cd4256' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_8: - name: 7Networks_LH_Default_pCunPCC_8 - lookupLabel: 290 - originalLookupLabel: 290 - center: - x: -4.0 - y: -43.0 - z: 30.0 - color: '#cd434f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_9: - name: 7Networks_LH_Default_pCunPCC_9 - lookupLabel: 291 - originalLookupLabel: 291 - center: - x: -10.0 - y: -70.0 - z: 31.0 - color: '#cd4350' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_10: - name: 7Networks_LH_Default_pCunPCC_10 - lookupLabel: 292 - originalLookupLabel: 292 - center: - x: -5.0 - y: -62.0 - z: 33.0 - color: '#cd4351' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_11: - name: 7Networks_LH_Default_pCunPCC_11 - lookupLabel: 293 - originalLookupLabel: 293 - center: - x: -4.0 - y: -31.0 - z: 36.0 - color: '#cd4352' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_12: - name: 7Networks_LH_Default_pCunPCC_12 - lookupLabel: 294 - originalLookupLabel: 294 - center: - x: -2.0 - y: -15.0 - z: 37.0 - color: '#cd4353' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_13: - name: 7Networks_LH_Default_pCunPCC_13 - lookupLabel: 295 - originalLookupLabel: 295 - center: - x: -12.0 - y: -49.0 - z: 35.0 - color: '#cd4354' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_14: - name: 7Networks_LH_Default_pCunPCC_14 - lookupLabel: 296 - originalLookupLabel: 296 - center: - x: -5.0 - y: -39.0 - z: 40.0 - color: '#cd4355' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_15: - name: 7Networks_LH_Default_pCunPCC_15 - lookupLabel: 297 - originalLookupLabel: 297 - center: - x: -3.0 - y: -68.0 - z: 42.0 - color: '#cd4356' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_16: - name: 7Networks_LH_Default_pCunPCC_16 - lookupLabel: 298 - originalLookupLabel: 298 - center: - x: -5.0 - y: -57.0 - z: 43.0 - color: '#cd444f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_17: - name: 7Networks_LH_Default_pCunPCC_17 - lookupLabel: 299 - originalLookupLabel: 299 - center: - x: -7.0 - y: -48.0 - z: 43.0 - color: '#cd4450' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PHC_1: - name: 7Networks_LH_Default_PHC_1 - lookupLabel: 300 - originalLookupLabel: 300 - center: - x: -21.0 - y: -35.0 - z: -15.0 - color: '#ce3e4f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_RH_Vis_1: - name: 7Networks_RH_Vis_1 - lookupLabel: 301 - originalLookupLabel: 301 - center: - x: 30.0 - y: -30.0 - z: -19.0 - color: '#7c1083' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_2: - name: 7Networks_RH_Vis_2 - lookupLabel: 302 - originalLookupLabel: 302 - center: - x: 36.0 - y: -51.0 - z: -18.0 - color: '#7c1084' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_3: - name: 7Networks_RH_Vis_3 - lookupLabel: 303 - originalLookupLabel: 303 - center: - x: 29.0 - y: -50.0 - z: -12.0 - color: '#7c1085' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_4: - name: 7Networks_RH_Vis_4 - lookupLabel: 304 - originalLookupLabel: 304 - center: - x: 37.0 - y: -73.0 - z: -15.0 - color: '#7c1086' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_5: - name: 7Networks_RH_Vis_5 - lookupLabel: 305 - originalLookupLabel: 305 - center: - x: 26.0 - y: -75.0 - z: -11.0 - color: '#7c1087' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_6: - name: 7Networks_RH_Vis_6 - lookupLabel: 306 - originalLookupLabel: 306 - center: - x: 24.0 - y: -46.0 - z: -8.0 - color: '#7c1180' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_7: - name: 7Networks_RH_Vis_7 - lookupLabel: 307 - originalLookupLabel: 307 - center: - x: 22.0 - y: -66.0 - z: -8.0 - color: '#7c1181' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_8: - name: 7Networks_RH_Vis_8 - lookupLabel: 308 - originalLookupLabel: 308 - center: - x: 18.0 - y: -31.0 - z: -14.0 - color: '#7c1182' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_9: - name: 7Networks_RH_Vis_9 - lookupLabel: 309 - originalLookupLabel: 309 - center: - x: 20.0 - y: -88.0 - z: -12.0 - color: '#7c1183' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_10: - name: 7Networks_RH_Vis_10 - lookupLabel: 310 - originalLookupLabel: 310 - center: - x: 41.0 - y: -84.0 - z: -16.0 - color: '#7c1184' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_11: - name: 7Networks_RH_Vis_11 - lookupLabel: 311 - originalLookupLabel: 311 - center: - x: 12.0 - y: -80.0 - z: -13.0 - color: '#7c1185' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_12: - name: 7Networks_RH_Vis_12 - lookupLabel: 312 - originalLookupLabel: 312 - center: - x: 51.0 - y: -65.0 - z: -8.0 - color: '#7c1186' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_13: - name: 7Networks_RH_Vis_13 - lookupLabel: 313 - originalLookupLabel: 313 - center: - x: 14.0 - y: -58.0 - z: -5.0 - color: '#7c1187' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_14: - name: 7Networks_RH_Vis_14 - lookupLabel: 314 - originalLookupLabel: 314 - center: - x: 9.0 - y: -71.0 - z: -4.0 - color: '#7c1280' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_15: - name: 7Networks_RH_Vis_15 - lookupLabel: 315 - originalLookupLabel: 315 - center: - x: 9.0 - y: -92.0 - z: -11.0 - color: '#7c1281' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_16: - name: 7Networks_RH_Vis_16 - lookupLabel: 316 - originalLookupLabel: 316 - center: - x: 15.0 - y: -39.0 - z: -6.0 - color: '#7c1282' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_17: - name: 7Networks_RH_Vis_17 - lookupLabel: 317 - originalLookupLabel: 317 - center: - x: 28.0 - y: -95.0 - z: -10.0 - color: '#7c1283' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_18: - name: 7Networks_RH_Vis_18 - lookupLabel: 318 - originalLookupLabel: 318 - center: - x: 4.0 - y: -81.0 - z: -3.0 - color: '#7c1284' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_19: - name: 7Networks_RH_Vis_19 - lookupLabel: 319 - originalLookupLabel: 319 - center: - x: 43.0 - y: -85.0 - z: -5.0 - color: '#7c1285' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_20: - name: 7Networks_RH_Vis_20 - lookupLabel: 320 - originalLookupLabel: 320 - center: - x: 18.0 - y: -50.0 - z: 0.0 - color: '#7c1286' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_21: - name: 7Networks_RH_Vis_21 - lookupLabel: 321 - originalLookupLabel: 321 - center: - x: 11.0 - y: -60.0 - z: 5.0 - color: '#7c1288' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_22: - name: 7Networks_RH_Vis_22 - lookupLabel: 322 - originalLookupLabel: 322 - center: - x: 13.0 - y: -45.0 - z: 3.0 - color: '#7c1289' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_23: - name: 7Networks_RH_Vis_23 - lookupLabel: 323 - originalLookupLabel: 323 - center: - x: 8.0 - y: -89.0 - z: 3.0 - color: '#7c128a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_24: - name: 7Networks_RH_Vis_24 - lookupLabel: 324 - originalLookupLabel: 324 - center: - x: 12.0 - y: -99.0 - z: 2.0 - color: '#7c128b' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_25: - name: 7Networks_RH_Vis_25 - lookupLabel: 325 - originalLookupLabel: 325 - center: - x: 48.0 - y: -67.0 - z: 4.0 - color: '#7c128c' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_26: - name: 7Networks_RH_Vis_26 - lookupLabel: 326 - originalLookupLabel: 326 - center: - x: 23.0 - y: -100.0 - z: 2.0 - color: '#7c128d' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_27: - name: 7Networks_RH_Vis_27 - lookupLabel: 327 - originalLookupLabel: 327 - center: - x: 10.0 - y: -73.0 - z: 9.0 - color: '#7c128e' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_28: - name: 7Networks_RH_Vis_28 - lookupLabel: 328 - originalLookupLabel: 328 - center: - x: 33.0 - y: -91.0 - z: 4.0 - color: '#7c1387' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_29: - name: 7Networks_RH_Vis_29 - lookupLabel: 329 - originalLookupLabel: 329 - center: - x: 23.0 - y: -59.0 - z: 7.0 - color: '#7c1388' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_30: - name: 7Networks_RH_Vis_30 - lookupLabel: 330 - originalLookupLabel: 330 - center: - x: 23.0 - y: -97.0 - z: 14.0 - color: '#7c1389' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_31: - name: 7Networks_RH_Vis_31 - lookupLabel: 331 - originalLookupLabel: 331 - center: - x: 5.0 - y: -85.0 - z: 12.0 - color: '#7c138a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_32: - name: 7Networks_RH_Vis_32 - lookupLabel: 332 - originalLookupLabel: 332 - center: - x: 43.0 - y: -79.0 - z: 10.0 - color: '#7c138b' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_33: - name: 7Networks_RH_Vis_33 - lookupLabel: 333 - originalLookupLabel: 333 - center: - x: 12.0 - y: -94.0 - z: 19.0 - color: '#7c138c' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_34: - name: 7Networks_RH_Vis_34 - lookupLabel: 334 - originalLookupLabel: 334 - center: - x: 29.0 - y: -88.0 - z: 17.0 - color: '#7c138d' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_35: - name: 7Networks_RH_Vis_35 - lookupLabel: 335 - originalLookupLabel: 335 - center: - x: 16.0 - y: -66.0 - z: 19.0 - color: '#7c138e' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_36: - name: 7Networks_RH_Vis_36 - lookupLabel: 336 - originalLookupLabel: 336 - center: - x: 5.0 - y: -79.0 - z: 24.0 - color: '#7c1487' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_37: - name: 7Networks_RH_Vis_37 - lookupLabel: 337 - originalLookupLabel: 337 - center: - x: 8.0 - y: -87.0 - z: 34.0 - color: '#7c1488' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_38: - name: 7Networks_RH_Vis_38 - lookupLabel: 338 - originalLookupLabel: 338 - center: - x: 36.0 - y: -80.0 - z: 25.0 - color: '#7c1489' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_39: - name: 7Networks_RH_Vis_39 - lookupLabel: 339 - originalLookupLabel: 339 - center: - x: 17.0 - y: -64.0 - z: 28.0 - color: '#7c148a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_40: - name: 7Networks_RH_Vis_40 - lookupLabel: 340 - originalLookupLabel: 340 - center: - x: 22.0 - y: -87.0 - z: 30.0 - color: '#7c148b' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_41: - name: 7Networks_RH_Vis_41 - lookupLabel: 341 - originalLookupLabel: 341 - center: - x: 14.0 - y: -77.0 - z: 31.0 - color: '#7c148c' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_42: - name: 7Networks_RH_Vis_42 - lookupLabel: 342 - originalLookupLabel: 342 - center: - x: 30.0 - y: -77.0 - z: 25.0 - color: '#7c148d' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_43: - name: 7Networks_RH_Vis_43 - lookupLabel: 343 - originalLookupLabel: 343 - center: - x: 18.0 - y: -83.0 - z: 42.0 - color: '#7c148e' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_44: - name: 7Networks_RH_Vis_44 - lookupLabel: 344 - originalLookupLabel: 344 - center: - x: 29.0 - y: -78.0 - z: 41.0 - color: '#7c1587' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_SomMot_1: - name: 7Networks_RH_SomMot_1 - lookupLabel: 345 - originalLookupLabel: 345 - center: - x: 54.0 - y: 4.0 - z: -5.0 - color: '#4a7fb3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_2: - name: 7Networks_RH_SomMot_2 - lookupLabel: 346 - originalLookupLabel: 346 - center: - x: 60.0 - y: -14.0 - z: -4.0 - color: '#4a7fb4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_3: - name: 7Networks_RH_SomMot_3 - lookupLabel: 347 - originalLookupLabel: 347 - center: - x: 56.0 - y: -11.0 - z: 4.0 - color: '#4a7fb5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_4: - name: 7Networks_RH_SomMot_4 - lookupLabel: 348 - originalLookupLabel: 348 - center: - x: 61.0 - y: -25.0 - z: 2.0 - color: '#4a80ae' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_5: - name: 7Networks_RH_SomMot_5 - lookupLabel: 349 - originalLookupLabel: 349 - center: - x: 40.0 - y: -19.0 - z: 4.0 - color: '#4a80af' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_6: - name: 7Networks_RH_SomMot_6 - lookupLabel: 350 - originalLookupLabel: 350 - center: - x: 37.0 - y: -9.0 - z: 12.0 - color: '#4a80b0' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_7: - name: 7Networks_RH_SomMot_7 - lookupLabel: 351 - originalLookupLabel: 351 - center: - x: 47.0 - y: -22.0 - z: 10.0 - color: '#4a80b1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_8: - name: 7Networks_RH_SomMot_8 - lookupLabel: 352 - originalLookupLabel: 352 - center: - x: 35.0 - y: -21.0 - z: 13.0 - color: '#4a80b2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_9: - name: 7Networks_RH_SomMot_9 - lookupLabel: 353 - originalLookupLabel: 353 - center: - x: 61.0 - y: -24.0 - z: 11.0 - color: '#4a80b3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_10: - name: 7Networks_RH_SomMot_10 - lookupLabel: 354 - originalLookupLabel: 354 - center: - x: 42.0 - y: -1.0 - z: 14.0 - color: '#4a80b4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_11: - name: 7Networks_RH_SomMot_11 - lookupLabel: 355 - originalLookupLabel: 355 - center: - x: 64.0 - y: -35.0 - z: 11.0 - color: '#4a80b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_12: - name: 7Networks_RH_SomMot_12 - lookupLabel: 356 - originalLookupLabel: 356 - center: - x: 41.0 - y: -12.0 - z: 18.0 - color: '#4a81ae' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_13: - name: 7Networks_RH_SomMot_13 - lookupLabel: 357 - originalLookupLabel: 357 - center: - x: 41.0 - y: -29.0 - z: 18.0 - color: '#4a81af' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_14: - name: 7Networks_RH_SomMot_14 - lookupLabel: 358 - originalLookupLabel: 358 - center: - x: 50.0 - y: -9.0 - z: 13.0 - color: '#4a81b0' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_15: - name: 7Networks_RH_SomMot_15 - lookupLabel: 359 - originalLookupLabel: 359 - center: - x: 60.0 - y: 0.0 - z: 11.0 - color: '#4a81b1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_16: - name: 7Networks_RH_SomMot_16 - lookupLabel: 360 - originalLookupLabel: 360 - center: - x: 49.0 - y: -20.0 - z: 18.0 - color: '#4a81b2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_17: - name: 7Networks_RH_SomMot_17 - lookupLabel: 361 - originalLookupLabel: 361 - center: - x: 61.0 - y: -12.0 - z: 15.0 - color: '#4a81b3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_18: - name: 7Networks_RH_SomMot_18 - lookupLabel: 362 - originalLookupLabel: 362 - center: - x: 61.0 - y: -4.0 - z: 24.0 - color: '#4a81b4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_19: - name: 7Networks_RH_SomMot_19 - lookupLabel: 363 - originalLookupLabel: 363 - center: - x: 63.0 - y: -12.0 - z: 28.0 - color: '#4a81b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_20: - name: 7Networks_RH_SomMot_20 - lookupLabel: 364 - originalLookupLabel: 364 - center: - x: 61.0 - y: 7.0 - z: 31.0 - color: '#4a82ae' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_21: - name: 7Networks_RH_SomMot_21 - lookupLabel: 365 - originalLookupLabel: 365 - center: - x: 58.0 - y: -14.0 - z: 39.0 - color: '#4a82af' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_22: - name: 7Networks_RH_SomMot_22 - lookupLabel: 366 - originalLookupLabel: 366 - center: - x: 53.0 - y: -5.0 - z: 38.0 - color: '#4a82b0' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_23: - name: 7Networks_RH_SomMot_23 - lookupLabel: 367 - originalLookupLabel: 367 - center: - x: 52.0 - y: -11.0 - z: 38.0 - color: '#4a82b1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_24: - name: 7Networks_RH_SomMot_24 - lookupLabel: 368 - originalLookupLabel: 368 - center: - x: 8.0 - y: 0.0 - z: 44.0 - color: '#4a82b2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_25: - name: 7Networks_RH_SomMot_25 - lookupLabel: 369 - originalLookupLabel: 369 - center: - x: 11.0 - y: -16.0 - z: 41.0 - color: '#4a82b3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_26: - name: 7Networks_RH_SomMot_26 - lookupLabel: 370 - originalLookupLabel: 370 - center: - x: 53.0 - y: -19.0 - z: 47.0 - color: '#4a82b4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_27: - name: 7Networks_RH_SomMot_27 - lookupLabel: 371 - originalLookupLabel: 371 - center: - x: 51.0 - y: -13.0 - z: 50.0 - color: '#4a82b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_28: - name: 7Networks_RH_SomMot_28 - lookupLabel: 372 - originalLookupLabel: 372 - center: - x: 39.0 - y: -16.0 - z: 41.0 - color: '#4a82b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_29: - name: 7Networks_RH_SomMot_29 - lookupLabel: 373 - originalLookupLabel: 373 - center: - x: 46.0 - y: -9.0 - z: 51.0 - color: '#4a82b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_30: - name: 7Networks_RH_SomMot_30 - lookupLabel: 374 - originalLookupLabel: 374 - center: - x: 49.0 - y: -26.0 - z: 57.0 - color: '#4a82b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_31: - name: 7Networks_RH_SomMot_31 - lookupLabel: 375 - originalLookupLabel: 375 - center: - x: 7.0 - y: -13.0 - z: 50.0 - color: '#4a82ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_32: - name: 7Networks_RH_SomMot_32 - lookupLabel: 376 - originalLookupLabel: 376 - center: - x: 6.0 - y: 0.0 - z: 55.0 - color: '#4a82bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_33: - name: 7Networks_RH_SomMot_33 - lookupLabel: 377 - originalLookupLabel: 377 - center: - x: 43.0 - y: -21.0 - z: 54.0 - color: '#4a82bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_34: - name: 7Networks_RH_SomMot_34 - lookupLabel: 378 - originalLookupLabel: 378 - center: - x: 41.0 - y: -17.0 - z: 57.0 - color: '#4a83b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_35: - name: 7Networks_RH_SomMot_35 - lookupLabel: 379 - originalLookupLabel: 379 - center: - x: 34.0 - y: -34.0 - z: 60.0 - color: '#4a83b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_36: - name: 7Networks_RH_SomMot_36 - lookupLabel: 380 - originalLookupLabel: 380 - center: - x: 5.0 - y: -23.0 - z: 57.0 - color: '#4a83b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_37: - name: 7Networks_RH_SomMot_37 - lookupLabel: 381 - originalLookupLabel: 381 - center: - x: 35.0 - y: -27.0 - z: 61.0 - color: '#4a83b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_38: - name: 7Networks_RH_SomMot_38 - lookupLabel: 382 - originalLookupLabel: 382 - center: - x: 36.0 - y: -16.0 - z: 68.0 - color: '#4a83b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_39: - name: 7Networks_RH_SomMot_39 - lookupLabel: 383 - originalLookupLabel: 383 - center: - x: 30.0 - y: -41.0 - z: 65.0 - color: '#4a83ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_40: - name: 7Networks_RH_SomMot_40 - lookupLabel: 384 - originalLookupLabel: 384 - center: - x: 31.0 - y: -23.0 - z: 61.0 - color: '#4a83bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_41: - name: 7Networks_RH_SomMot_41 - lookupLabel: 385 - originalLookupLabel: 385 - center: - x: 28.0 - y: -11.0 - z: 65.0 - color: '#4a83bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_42: - name: 7Networks_RH_SomMot_42 - lookupLabel: 386 - originalLookupLabel: 386 - center: - x: 9.0 - y: -41.0 - z: 65.0 - color: '#4a84b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_43: - name: 7Networks_RH_SomMot_43 - lookupLabel: 387 - originalLookupLabel: 387 - center: - x: 3.0 - y: -32.0 - z: 63.0 - color: '#4a84b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_44: - name: 7Networks_RH_SomMot_44 - lookupLabel: 388 - originalLookupLabel: 388 - center: - x: 25.0 - y: -34.0 - z: 69.0 - color: '#4a84b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_45: - name: 7Networks_RH_SomMot_45 - lookupLabel: 389 - originalLookupLabel: 389 - center: - x: 19.0 - y: -4.0 - z: 69.0 - color: '#4a84b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_46: - name: 7Networks_RH_SomMot_46 - lookupLabel: 390 - originalLookupLabel: 390 - center: - x: 24.0 - y: -28.0 - z: 68.0 - color: '#4a84b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_47: - name: 7Networks_RH_SomMot_47 - lookupLabel: 391 - originalLookupLabel: 391 - center: - x: 19.0 - y: -27.0 - z: 62.0 - color: '#4a84ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_48: - name: 7Networks_RH_SomMot_48 - lookupLabel: 392 - originalLookupLabel: 392 - center: - x: 23.0 - y: -22.0 - z: 71.0 - color: '#4a84bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_49: - name: 7Networks_RH_SomMot_49 - lookupLabel: 393 - originalLookupLabel: 393 - center: - x: 19.0 - y: -14.0 - z: 72.0 - color: '#4a84bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_50: - name: 7Networks_RH_SomMot_50 - lookupLabel: 394 - originalLookupLabel: 394 - center: - x: 15.0 - y: -47.0 - z: 75.0 - color: '#4a85b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_51: - name: 7Networks_RH_SomMot_51 - lookupLabel: 395 - originalLookupLabel: 395 - center: - x: 7.0 - y: -16.0 - z: 73.0 - color: '#4a85b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_52: - name: 7Networks_RH_SomMot_52 - lookupLabel: 396 - originalLookupLabel: 396 - center: - x: 21.0 - y: -37.0 - z: 75.0 - color: '#4a85b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_53: - name: 7Networks_RH_SomMot_53 - lookupLabel: 397 - originalLookupLabel: 397 - center: - x: 5.0 - y: -31.0 - z: 73.0 - color: '#4a85b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_54: - name: 7Networks_RH_SomMot_54 - lookupLabel: 398 - originalLookupLabel: 398 - center: - x: 11.0 - y: -38.0 - z: 77.0 - color: '#4a85b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_55: - name: 7Networks_RH_SomMot_55 - lookupLabel: 399 - originalLookupLabel: 399 - center: - x: 14.0 - y: -26.0 - z: 72.0 - color: '#4a85ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_56: - name: 7Networks_RH_SomMot_56 - lookupLabel: 400 - originalLookupLabel: 400 - center: - x: 14.0 - y: -32.0 - z: 74.0 - color: '#4a85bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_DorsAttn_Post_1: - name: 7Networks_RH_DorsAttn_Post_1 - lookupLabel: 401 - originalLookupLabel: 401 - center: - x: 47.0 - y: -37.0 - z: -22.0 - color: '#047609' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_2: - name: 7Networks_RH_DorsAttn_Post_2 - lookupLabel: 402 - originalLookupLabel: 402 - center: - x: 50.0 - y: -53.0 - z: -17.0 - color: '#04760a' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_3: - name: 7Networks_RH_DorsAttn_Post_3 - lookupLabel: 403 - originalLookupLabel: 403 - center: - x: 59.0 - y: -55.0 - z: -1.0 - color: '#04760b' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_4: - name: 7Networks_RH_DorsAttn_Post_4 - lookupLabel: 404 - originalLookupLabel: 404 - center: - x: 51.0 - y: -59.0 - z: 14.0 - color: '#04760c' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_5: - name: 7Networks_RH_DorsAttn_Post_5 - lookupLabel: 405 - originalLookupLabel: 405 - center: - x: 47.0 - y: -67.0 - z: 20.0 - color: '#04760d' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_6: - name: 7Networks_RH_DorsAttn_Post_6 - lookupLabel: 406 - originalLookupLabel: 406 - center: - x: 43.0 - y: -81.0 - z: 20.0 - color: '#04760e' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_7: - name: 7Networks_RH_DorsAttn_Post_7 - lookupLabel: 407 - originalLookupLabel: 407 - center: - x: 45.0 - y: -77.0 - z: 27.0 - color: '#04760f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_8: - name: 7Networks_RH_DorsAttn_Post_8 - lookupLabel: 408 - originalLookupLabel: 408 - center: - x: 30.0 - y: -66.0 - z: 34.0 - color: '#047708' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_9: - name: 7Networks_RH_DorsAttn_Post_9 - lookupLabel: 409 - originalLookupLabel: 409 - center: - x: 34.0 - y: -72.0 - z: 41.0 - color: '#047709' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_10: - name: 7Networks_RH_DorsAttn_Post_10 - lookupLabel: 410 - originalLookupLabel: 410 - center: - x: 56.0 - y: -22.0 - z: 42.0 - color: '#04770a' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_11: - name: 7Networks_RH_DorsAttn_Post_11 - lookupLabel: 411 - originalLookupLabel: 411 - center: - x: 55.0 - y: -30.0 - z: 52.0 - color: '#04770b' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_12: - name: 7Networks_RH_DorsAttn_Post_12 - lookupLabel: 412 - originalLookupLabel: 412 - center: - x: 48.0 - y: -37.0 - z: 53.0 - color: '#04770c' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_13: - name: 7Networks_RH_DorsAttn_Post_13 - lookupLabel: 413 - originalLookupLabel: 413 - center: - x: 33.0 - y: -66.0 - z: 50.0 - color: '#04770d' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_14: - name: 7Networks_RH_DorsAttn_Post_14 - lookupLabel: 414 - originalLookupLabel: 414 - center: - x: 16.0 - y: -79.0 - z: 52.0 - color: '#04770e' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_15: - name: 7Networks_RH_DorsAttn_Post_15 - lookupLabel: 415 - originalLookupLabel: 415 - center: - x: 46.0 - y: -28.0 - z: 43.0 - color: '#047710' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_16: - name: 7Networks_RH_DorsAttn_Post_16 - lookupLabel: 416 - originalLookupLabel: 416 - center: - x: 39.0 - y: -40.0 - z: 46.0 - color: '#047711' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_17: - name: 7Networks_RH_DorsAttn_Post_17 - lookupLabel: 417 - originalLookupLabel: 417 - center: - x: 28.0 - y: -63.0 - z: 52.0 - color: '#047712' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_18: - name: 7Networks_RH_DorsAttn_Post_18 - lookupLabel: 418 - originalLookupLabel: 418 - center: - x: 34.0 - y: -56.0 - z: 52.0 - color: '#047713' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_19: - name: 7Networks_RH_DorsAttn_Post_19 - lookupLabel: 419 - originalLookupLabel: 419 - center: - x: 21.0 - y: -69.0 - z: 54.0 - color: '#047714' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_20: - name: 7Networks_RH_DorsAttn_Post_20 - lookupLabel: 420 - originalLookupLabel: 420 - center: - x: 36.0 - y: -33.0 - z: 47.0 - color: '#047715' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_21: - name: 7Networks_RH_DorsAttn_Post_21 - lookupLabel: 421 - originalLookupLabel: 421 - center: - x: 35.0 - y: -46.0 - z: 54.0 - color: '#047716' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_22: - name: 7Networks_RH_DorsAttn_Post_22 - lookupLabel: 422 - originalLookupLabel: 422 - center: - x: 11.0 - y: -71.0 - z: 54.0 - color: '#04780f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_23: - name: 7Networks_RH_DorsAttn_Post_23 - lookupLabel: 423 - originalLookupLabel: 423 - center: - x: 36.0 - y: -40.0 - z: 58.0 - color: '#047810' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_24: - name: 7Networks_RH_DorsAttn_Post_24 - lookupLabel: 424 - originalLookupLabel: 424 - center: - x: 6.0 - y: -54.0 - z: 53.0 - color: '#047811' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_25: - name: 7Networks_RH_DorsAttn_Post_25 - lookupLabel: 425 - originalLookupLabel: 425 - center: - x: 27.0 - y: -56.0 - z: 60.0 - color: '#047812' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_26: - name: 7Networks_RH_DorsAttn_Post_26 - lookupLabel: 426 - originalLookupLabel: 426 - center: - x: 8.0 - y: -64.0 - z: 59.0 - color: '#047813' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_27: - name: 7Networks_RH_DorsAttn_Post_27 - lookupLabel: 427 - originalLookupLabel: 427 - center: - x: 36.0 - y: -49.0 - z: 66.0 - color: '#047814' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_28: - name: 7Networks_RH_DorsAttn_Post_28 - lookupLabel: 428 - originalLookupLabel: 428 - center: - x: 22.0 - y: -63.0 - z: 65.0 - color: '#047815' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_29: - name: 7Networks_RH_DorsAttn_Post_29 - lookupLabel: 429 - originalLookupLabel: 429 - center: - x: 14.0 - y: -61.0 - z: 66.0 - color: '#047816' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_30: - name: 7Networks_RH_DorsAttn_Post_30 - lookupLabel: 430 - originalLookupLabel: 430 - center: - x: 8.0 - y: -51.0 - z: 65.0 - color: '#04790f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_31: - name: 7Networks_RH_DorsAttn_Post_31 - lookupLabel: 431 - originalLookupLabel: 431 - center: - x: 23.0 - y: -49.0 - z: 69.0 - color: '#047910' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_1: - name: 7Networks_RH_DorsAttn_FEF_1 - lookupLabel: 432 - originalLookupLabel: 432 - center: - x: 40.0 - y: -3.0 - z: 51.0 - color: '#05760f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_2: - name: 7Networks_RH_DorsAttn_FEF_2 - lookupLabel: 433 - originalLookupLabel: 433 - center: - x: 29.0 - y: 2.0 - z: 53.0 - color: '#057610' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_3: - name: 7Networks_RH_DorsAttn_FEF_3 - lookupLabel: 434 - originalLookupLabel: 434 - center: - x: 30.0 - y: -7.0 - z: 53.0 - color: '#057611' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_4: - name: 7Networks_RH_DorsAttn_FEF_4 - lookupLabel: 435 - originalLookupLabel: 435 - center: - x: 25.0 - y: -1.0 - z: 59.0 - color: '#057612' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_PrCv_1: - name: 7Networks_RH_DorsAttn_PrCv_1 - lookupLabel: 436 - originalLookupLabel: 436 - center: - x: 43.0 - y: 8.0 - z: 25.0 - color: '#057613' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_PrCv_2: - name: 7Networks_RH_DorsAttn_PrCv_2 - lookupLabel: 437 - originalLookupLabel: 437 - center: - x: 52.0 - y: 8.0 - z: 30.0 - color: '#057614' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_SalVentAttn_TempOccPar_1: - name: 7Networks_RH_SalVentAttn_TempOccPar_1 - lookupLabel: 438 - originalLookupLabel: 438 - center: - x: 60.0 - y: -45.0 - z: 6.0 - color: '#c93af7' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_2: - name: 7Networks_RH_SalVentAttn_TempOccPar_2 - lookupLabel: 439 - originalLookupLabel: 439 - center: - x: 56.0 - y: -54.0 - z: 10.0 - color: '#c93af8' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_3: - name: 7Networks_RH_SalVentAttn_TempOccPar_3 - lookupLabel: 440 - originalLookupLabel: 440 - center: - x: 51.0 - y: -41.0 - z: 12.0 - color: '#c93af9' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_4: - name: 7Networks_RH_SalVentAttn_TempOccPar_4 - lookupLabel: 441 - originalLookupLabel: 441 - center: - x: 62.0 - y: -40.0 - z: 20.0 - color: '#c93afa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_5: - name: 7Networks_RH_SalVentAttn_TempOccPar_5 - lookupLabel: 442 - originalLookupLabel: 442 - center: - x: 64.0 - y: -31.0 - z: 22.0 - color: '#c93afc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_6: - name: 7Networks_RH_SalVentAttn_TempOccPar_6 - lookupLabel: 443 - originalLookupLabel: 443 - center: - x: 51.0 - y: -30.0 - z: 25.0 - color: '#c93afd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_7: - name: 7Networks_RH_SalVentAttn_TempOccPar_7 - lookupLabel: 444 - originalLookupLabel: 444 - center: - x: 60.0 - y: -21.0 - z: 21.0 - color: '#c93afe' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_8: - name: 7Networks_RH_SalVentAttn_TempOccPar_8 - lookupLabel: 445 - originalLookupLabel: 445 - center: - x: 63.0 - y: -39.0 - z: 30.0 - color: '#c93aff' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_9: - name: 7Networks_RH_SalVentAttn_TempOccPar_9 - lookupLabel: 446 - originalLookupLabel: 446 - center: - x: 59.0 - y: -27.0 - z: 33.0 - color: '#c633fa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_10: - name: 7Networks_RH_SalVentAttn_TempOccPar_10 - lookupLabel: 447 - originalLookupLabel: 447 - center: - x: 65.0 - y: -30.0 - z: 34.0 - color: '#c633fb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_11: - name: 7Networks_RH_SalVentAttn_TempOccPar_11 - lookupLabel: 448 - originalLookupLabel: 448 - center: - x: 62.0 - y: -18.0 - z: 32.0 - color: '#c634f4' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_12: - name: 7Networks_RH_SalVentAttn_TempOccPar_12 - lookupLabel: 449 - originalLookupLabel: 449 - center: - x: 63.0 - y: -25.0 - z: 44.0 - color: '#c634f5' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_PrC_1: - name: 7Networks_RH_SalVentAttn_PrC_1 - lookupLabel: 450 - originalLookupLabel: 450 - center: - x: 50.0 - y: 3.0 - z: 41.0 - color: '#c93bfb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_1: - name: 7Networks_RH_SalVentAttn_FrOperIns_1 - lookupLabel: 451 - originalLookupLabel: 451 - center: - x: 39.0 - y: 7.0 - z: -16.0 - color: '#c93bf7' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_2: - name: 7Networks_RH_SalVentAttn_FrOperIns_2 - lookupLabel: 452 - originalLookupLabel: 452 - center: - x: 41.0 - y: 6.0 - z: -5.0 - color: '#c93bf8' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_3: - name: 7Networks_RH_SalVentAttn_FrOperIns_3 - lookupLabel: 453 - originalLookupLabel: 453 - center: - x: 34.0 - y: 26.0 - z: 1.0 - color: '#c93bf9' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_4: - name: 7Networks_RH_SalVentAttn_FrOperIns_4 - lookupLabel: 454 - originalLookupLabel: 454 - center: - x: 41.0 - y: -10.0 - z: -3.0 - color: '#c93bfa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_5: - name: 7Networks_RH_SalVentAttn_FrOperIns_5 - lookupLabel: 455 - originalLookupLabel: 455 - center: - x: 38.0 - y: 2.0 - z: 5.0 - color: '#c93bfc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_6: - name: 7Networks_RH_SalVentAttn_FrOperIns_6 - lookupLabel: 456 - originalLookupLabel: 456 - center: - x: 38.0 - y: 23.0 - z: 7.0 - color: '#c93bfd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_7: - name: 7Networks_RH_SalVentAttn_FrOperIns_7 - lookupLabel: 457 - originalLookupLabel: 457 - center: - x: 36.0 - y: 6.0 - z: 12.0 - color: '#c93bfe' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_8: - name: 7Networks_RH_SalVentAttn_FrOperIns_8 - lookupLabel: 458 - originalLookupLabel: 458 - center: - x: 43.0 - y: 13.0 - z: 5.0 - color: '#c93bff' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_9: - name: 7Networks_RH_SalVentAttn_FrOperIns_9 - lookupLabel: 459 - originalLookupLabel: 459 - center: - x: 54.0 - y: 15.0 - z: 6.0 - color: '#c634fa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_10: - name: 7Networks_RH_SalVentAttn_FrOperIns_10 - lookupLabel: 460 - originalLookupLabel: 460 - center: - x: 50.0 - y: 4.0 - z: 4.0 - color: '#c634fb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_11: - name: 7Networks_RH_SalVentAttn_FrOperIns_11 - lookupLabel: 461 - originalLookupLabel: 461 - center: - x: 53.0 - y: 11.0 - z: 13.0 - color: '#c635f4' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_12: - name: 7Networks_RH_SalVentAttn_FrOperIns_12 - lookupLabel: 462 - originalLookupLabel: 462 - center: - x: 59.0 - y: 9.0 - z: 19.0 - color: '#c635f5' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_PFCl_1: - name: 7Networks_RH_SalVentAttn_PFCl_1 - lookupLabel: 463 - originalLookupLabel: 463 - center: - x: 33.0 - y: 43.0 - z: 31.0 - color: '#c839fb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_1: - name: 7Networks_RH_SalVentAttn_Med_1 - lookupLabel: 464 - originalLookupLabel: 464 - center: - x: 5.0 - y: 21.0 - z: 24.0 - color: '#c839f4' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_2: - name: 7Networks_RH_SalVentAttn_Med_2 - lookupLabel: 465 - originalLookupLabel: 465 - center: - x: 9.0 - y: 25.0 - z: 32.0 - color: '#c839f5' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_3: - name: 7Networks_RH_SalVentAttn_Med_3 - lookupLabel: 466 - originalLookupLabel: 466 - center: - x: 7.0 - y: 12.0 - z: 37.0 - color: '#c839f6' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_4: - name: 7Networks_RH_SalVentAttn_Med_4 - lookupLabel: 467 - originalLookupLabel: 467 - center: - x: 4.0 - y: -8.0 - z: 37.0 - color: '#c839f7' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_5: - name: 7Networks_RH_SalVentAttn_Med_5 - lookupLabel: 468 - originalLookupLabel: 468 - center: - x: 10.0 - y: -29.0 - z: 41.0 - color: '#c839f8' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_6: - name: 7Networks_RH_SalVentAttn_Med_6 - lookupLabel: 469 - originalLookupLabel: 469 - center: - x: 8.0 - y: 14.0 - z: 48.0 - color: '#c839fa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_7: - name: 7Networks_RH_SalVentAttn_Med_7 - lookupLabel: 470 - originalLookupLabel: 470 - center: - x: 12.0 - y: -38.0 - z: 45.0 - color: '#c839fc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_8: - name: 7Networks_RH_SalVentAttn_Med_8 - lookupLabel: 471 - originalLookupLabel: 471 - center: - x: 13.0 - y: -26.0 - z: 45.0 - color: '#c839fd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_9: - name: 7Networks_RH_SalVentAttn_Med_9 - lookupLabel: 472 - originalLookupLabel: 472 - center: - x: 10.0 - y: -43.0 - z: 53.0 - color: '#c839fe' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_10: - name: 7Networks_RH_SalVentAttn_Med_10 - lookupLabel: 473 - originalLookupLabel: 473 - center: - x: 10.0 - y: -34.0 - z: 52.0 - color: '#c839ff' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_11: - name: 7Networks_RH_SalVentAttn_Med_11 - lookupLabel: 474 - originalLookupLabel: 474 - center: - x: 5.0 - y: 12.0 - z: 61.0 - color: '#c83af9' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_12: - name: 7Networks_RH_SalVentAttn_Med_12 - lookupLabel: 475 - originalLookupLabel: 475 - center: - x: 7.0 - y: -2.0 - z: 67.0 - color: '#c83afa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_13: - name: 7Networks_RH_SalVentAttn_Med_13 - lookupLabel: 476 - originalLookupLabel: 476 - center: - x: 16.0 - y: 6.0 - z: 70.0 - color: '#c83afb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_Limbic_OFC_1: - name: 7Networks_RH_Limbic_OFC_1 - lookupLabel: 477 - originalLookupLabel: 477 - center: - x: 20.0 - y: 14.0 - z: -22.0 - color: '#e0f9a1' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_2: - name: 7Networks_RH_Limbic_OFC_2 - lookupLabel: 478 - originalLookupLabel: 478 - center: - x: 15.0 - y: 28.0 - z: -24.0 - color: '#e0f9a2' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_3: - name: 7Networks_RH_Limbic_OFC_3 - lookupLabel: 479 - originalLookupLabel: 479 - center: - x: 11.0 - y: 23.0 - z: -18.0 - color: '#e0f9a3' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_4: - name: 7Networks_RH_Limbic_OFC_4 - lookupLabel: 480 - originalLookupLabel: 480 - center: - x: 10.0 - y: 42.0 - z: -23.0 - color: '#e0f9a5' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_5: - name: 7Networks_RH_Limbic_OFC_5 - lookupLabel: 481 - originalLookupLabel: 481 - center: - x: 23.0 - y: 28.0 - z: -19.0 - color: '#e0f9a6' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_6: - name: 7Networks_RH_Limbic_OFC_6 - lookupLabel: 482 - originalLookupLabel: 482 - center: - x: 5.0 - y: 21.0 - z: -21.0 - color: '#e0f9a7' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_7: - name: 7Networks_RH_Limbic_OFC_7 - lookupLabel: 483 - originalLookupLabel: 483 - center: - x: 4.0 - y: 50.0 - z: -23.0 - color: '#e0f9a8' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_8: - name: 7Networks_RH_Limbic_OFC_8 - lookupLabel: 484 - originalLookupLabel: 484 - center: - x: 14.0 - y: 58.0 - z: -19.0 - color: '#e0f9a9' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_9: - name: 7Networks_RH_Limbic_OFC_9 - lookupLabel: 485 - originalLookupLabel: 485 - center: - x: 6.0 - y: 63.0 - z: -11.0 - color: '#e0f9aa' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_1: - name: 7Networks_RH_Limbic_TempPole_1 - lookupLabel: 486 - originalLookupLabel: 486 - center: - x: 37.0 - y: 0.0 - z: -44.0 - color: '#e0f9a4' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_2: - name: 7Networks_RH_Limbic_TempPole_2 - lookupLabel: 487 - originalLookupLabel: 487 - center: - x: 33.0 - y: 14.0 - z: -40.0 - color: '#e0f9ab' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_3: - name: 7Networks_RH_Limbic_TempPole_3 - lookupLabel: 488 - originalLookupLabel: 488 - center: - x: 28.0 - y: -6.0 - z: -36.0 - color: '#e0f9ac' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_4: - name: 7Networks_RH_Limbic_TempPole_4 - lookupLabel: 489 - originalLookupLabel: 489 - center: - x: 39.0 - y: -12.0 - z: -34.0 - color: '#e0faa5' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_5: - name: 7Networks_RH_Limbic_TempPole_5 - lookupLabel: 490 - originalLookupLabel: 490 - center: - x: 24.0 - y: 6.0 - z: -37.0 - color: '#e0faa6' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_6: - name: 7Networks_RH_Limbic_TempPole_6 - lookupLabel: 491 - originalLookupLabel: 491 - center: - x: 52.0 - y: -18.0 - z: -32.0 - color: '#e0faa7' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_7: - name: 7Networks_RH_Limbic_TempPole_7 - lookupLabel: 492 - originalLookupLabel: 492 - center: - x: 31.0 - y: 14.0 - z: -30.0 - color: '#e0faa8' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_8: - name: 7Networks_RH_Limbic_TempPole_8 - lookupLabel: 493 - originalLookupLabel: 493 - center: - x: 37.0 - y: -31.0 - z: -24.0 - color: '#e0faa9' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_9: - name: 7Networks_RH_Limbic_TempPole_9 - lookupLabel: 494 - originalLookupLabel: 494 - center: - x: 44.0 - y: 19.0 - z: -26.0 - color: '#e0faaa' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_10: - name: 7Networks_RH_Limbic_TempPole_10 - lookupLabel: 495 - originalLookupLabel: 495 - center: - x: 22.0 - y: -17.0 - z: -27.0 - color: '#e0faab' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_11: - name: 7Networks_RH_Limbic_TempPole_11 - lookupLabel: 496 - originalLookupLabel: 496 - center: - x: 46.0 - y: 7.0 - z: -15.0 - color: '#e0faac' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Cont_Par_1: - name: 7Networks_RH_Cont_Par_1 - lookupLabel: 497 - originalLookupLabel: 497 - center: - x: 58.0 - y: -45.0 - z: 35.0 - color: '#ea931f' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_2: - name: 7Networks_RH_Cont_Par_2 - lookupLabel: 498 - originalLookupLabel: 498 - center: - x: 61.0 - y: -35.0 - z: 44.0 - color: '#ea9320' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_3: - name: 7Networks_RH_Cont_Par_3 - lookupLabel: 499 - originalLookupLabel: 499 - center: - x: 42.0 - y: -71.0 - z: 44.0 - color: '#ea9321' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_4: - name: 7Networks_RH_Cont_Par_4 - lookupLabel: 500 - originalLookupLabel: 500 - center: - x: 54.0 - y: -39.0 - z: 48.0 - color: '#ea9323' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_5: - name: 7Networks_RH_Cont_Par_5 - lookupLabel: 501 - originalLookupLabel: 501 - center: - x: 47.0 - y: -56.0 - z: 51.0 - color: '#ea9324' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_6: - name: 7Networks_RH_Cont_Par_6 - lookupLabel: 502 - originalLookupLabel: 502 - center: - x: 50.0 - y: -45.0 - z: 51.0 - color: '#ea9325' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_7: - name: 7Networks_RH_Cont_Par_7 - lookupLabel: 503 - originalLookupLabel: 503 - center: - x: 40.0 - y: -62.0 - z: 49.0 - color: '#ea9326' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_8: - name: 7Networks_RH_Cont_Par_8 - lookupLabel: 504 - originalLookupLabel: 504 - center: - x: 44.0 - y: -45.0 - z: 45.0 - color: '#ea9327' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_9: - name: 7Networks_RH_Cont_Par_9 - lookupLabel: 505 - originalLookupLabel: 505 - center: - x: 37.0 - y: -51.0 - z: 42.0 - color: '#ea9328' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Temp_1: - name: 7Networks_RH_Cont_Temp_1 - lookupLabel: 506 - originalLookupLabel: 506 - center: - x: 59.0 - y: -30.0 - z: -23.0 - color: '#ea9322' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Temp_2: - name: 7Networks_RH_Cont_Temp_2 - lookupLabel: 507 - originalLookupLabel: 507 - center: - x: 63.0 - y: -41.0 - z: -11.0 - color: '#ea9421' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCv_1: - name: 7Networks_RH_Cont_PFCv_1 - lookupLabel: 508 - originalLookupLabel: 508 - center: - x: 34.0 - y: 20.0 - z: -8.0 - color: '#e99423' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_1: - name: 7Networks_RH_Cont_PFCl_1 - lookupLabel: 509 - originalLookupLabel: 509 - center: - x: 23.0 - y: 42.0 - z: -17.0 - color: '#e9931e' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_2: - name: 7Networks_RH_Cont_PFCl_2 - lookupLabel: 510 - originalLookupLabel: 510 - center: - x: 28.0 - y: 56.0 - z: -13.0 - color: '#e9931f' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_3: - name: 7Networks_RH_Cont_PFCl_3 - lookupLabel: 511 - originalLookupLabel: 511 - center: - x: 42.0 - y: 51.0 - z: -8.0 - color: '#e99320' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_4: - name: 7Networks_RH_Cont_PFCl_4 - lookupLabel: 512 - originalLookupLabel: 512 - center: - x: 30.0 - y: 58.0 - z: -3.0 - color: '#e99321' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_5: - name: 7Networks_RH_Cont_PFCl_5 - lookupLabel: 513 - originalLookupLabel: 513 - center: - x: 19.0 - y: 65.0 - z: -3.0 - color: '#e9941a' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_6: - name: 7Networks_RH_Cont_PFCl_6 - lookupLabel: 514 - originalLookupLabel: 514 - center: - x: 50.0 - y: 40.0 - z: 5.0 - color: '#e9941b' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_7: - name: 7Networks_RH_Cont_PFCl_7 - lookupLabel: 515 - originalLookupLabel: 515 - center: - x: 41.0 - y: 50.0 - z: 7.0 - color: '#e9941c' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_8: - name: 7Networks_RH_Cont_PFCl_8 - lookupLabel: 516 - originalLookupLabel: 516 - center: - x: 30.0 - y: 57.0 - z: 9.0 - color: '#e9941d' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_9: - name: 7Networks_RH_Cont_PFCl_9 - lookupLabel: 517 - originalLookupLabel: 517 - center: - x: 50.0 - y: 30.0 - z: 18.0 - color: '#e9941e' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_10: - name: 7Networks_RH_Cont_PFCl_10 - lookupLabel: 518 - originalLookupLabel: 518 - center: - x: 54.0 - y: 18.0 - z: 20.0 - color: '#e9941f' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_11: - name: 7Networks_RH_Cont_PFCl_11 - lookupLabel: 519 - originalLookupLabel: 519 - center: - x: 42.0 - y: 43.0 - z: 16.0 - color: '#e99420' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_12: - name: 7Networks_RH_Cont_PFCl_12 - lookupLabel: 520 - originalLookupLabel: 520 - center: - x: 32.0 - y: 48.0 - z: 20.0 - color: '#e99422' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_13: - name: 7Networks_RH_Cont_PFCl_13 - lookupLabel: 521 - originalLookupLabel: 521 - center: - x: 25.0 - y: 54.0 - z: 26.0 - color: '#e99424' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_14: - name: 7Networks_RH_Cont_PFCl_14 - lookupLabel: 522 - originalLookupLabel: 522 - center: - x: 43.0 - y: 18.0 - z: 27.0 - color: '#e99425' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_15: - name: 7Networks_RH_Cont_PFCl_15 - lookupLabel: 523 - originalLookupLabel: 523 - center: - x: 47.0 - y: 30.0 - z: 28.0 - color: '#e99426' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_16: - name: 7Networks_RH_Cont_PFCl_16 - lookupLabel: 524 - originalLookupLabel: 524 - center: - x: 38.0 - y: 10.0 - z: 35.0 - color: '#e99427' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_17: - name: 7Networks_RH_Cont_PFCl_17 - lookupLabel: 525 - originalLookupLabel: 525 - center: - x: 38.0 - y: 33.0 - z: 39.0 - color: '#e99428' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_18: - name: 7Networks_RH_Cont_PFCl_18 - lookupLabel: 526 - originalLookupLabel: 526 - center: - x: 47.0 - y: 18.0 - z: 39.0 - color: '#e99521' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_19: - name: 7Networks_RH_Cont_PFCl_19 - lookupLabel: 527 - originalLookupLabel: 527 - center: - x: 42.0 - y: 12.0 - z: 45.0 - color: '#e99522' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_20: - name: 7Networks_RH_Cont_PFCl_20 - lookupLabel: 528 - originalLookupLabel: 528 - center: - x: 40.0 - y: 23.0 - z: 50.0 - color: '#e99523' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_21: - name: 7Networks_RH_Cont_PFCl_21 - lookupLabel: 529 - originalLookupLabel: 529 - center: - x: 41.0 - y: 7.0 - z: 55.0 - color: '#e99524' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_22: - name: 7Networks_RH_Cont_PFCl_22 - lookupLabel: 530 - originalLookupLabel: 530 - center: - x: 31.0 - y: 16.0 - z: 53.0 - color: '#e99525' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_23: - name: 7Networks_RH_Cont_PFCl_23 - lookupLabel: 531 - originalLookupLabel: 531 - center: - x: 24.0 - y: 12.0 - z: 51.0 - color: '#e99526' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_24: - name: 7Networks_RH_Cont_PFCl_24 - lookupLabel: 532 - originalLookupLabel: 532 - center: - x: 24.0 - y: 9.0 - z: 64.0 - color: '#e99527' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_25: - name: 7Networks_RH_Cont_PFCl_25 - lookupLabel: 533 - originalLookupLabel: 533 - center: - x: 14.0 - y: 16.0 - z: 64.0 - color: '#e99528' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_pCun_1: - name: 7Networks_RH_Cont_pCun_1 - lookupLabel: 534 - originalLookupLabel: 534 - center: - x: 14.0 - y: -72.0 - z: 40.0 - color: '#e99323' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_pCun_2: - name: 7Networks_RH_Cont_pCun_2 - lookupLabel: 535 - originalLookupLabel: 535 - center: - x: 5.0 - y: -71.0 - z: 48.0 - color: '#e99324' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Cing_1: - name: 7Networks_RH_Cont_Cing_1 - lookupLabel: 536 - originalLookupLabel: 536 - center: - x: 7.0 - y: -38.0 - z: 25.0 - color: '#e99322' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Cing_2: - name: 7Networks_RH_Cont_Cing_2 - lookupLabel: 537 - originalLookupLabel: 537 - center: - x: 6.0 - y: -23.0 - z: 29.0 - color: '#e99325' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Cing_3: - name: 7Networks_RH_Cont_Cing_3 - lookupLabel: 538 - originalLookupLabel: 538 - center: - x: 5.0 - y: 4.0 - z: 29.0 - color: '#e99326' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Cing_4: - name: 7Networks_RH_Cont_Cing_4 - lookupLabel: 539 - originalLookupLabel: 539 - center: - x: 5.0 - y: -10.0 - z: 31.0 - color: '#e99327' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCmp_1: - name: 7Networks_RH_Cont_PFCmp_1 - lookupLabel: 540 - originalLookupLabel: 540 - center: - x: 7.0 - y: 35.0 - z: 24.0 - color: '#ea9425' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCmp_2: - name: 7Networks_RH_Cont_PFCmp_2 - lookupLabel: 541 - originalLookupLabel: 541 - center: - x: 5.0 - y: 37.0 - z: 48.0 - color: '#ea9426' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCmp_3: - name: 7Networks_RH_Cont_PFCmp_3 - lookupLabel: 542 - originalLookupLabel: 542 - center: - x: 5.0 - y: 25.0 - z: 48.0 - color: '#ea9427' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Default_Par_1: - name: 7Networks_RH_Default_Par_1 - lookupLabel: 543 - originalLookupLabel: 543 - center: - x: 57.0 - y: -47.0 - z: 13.0 - color: '#d13e4b' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_2: - name: 7Networks_RH_Default_Par_2 - lookupLabel: 544 - originalLookupLabel: 544 - center: - x: 50.0 - y: -50.0 - z: 18.0 - color: '#d13e4c' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_3: - name: 7Networks_RH_Default_Par_3 - lookupLabel: 545 - originalLookupLabel: 545 - center: - x: 54.0 - y: -44.0 - z: 23.0 - color: '#d13e4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_4: - name: 7Networks_RH_Default_Par_4 - lookupLabel: 546 - originalLookupLabel: 546 - center: - x: 47.0 - y: -59.0 - z: 25.0 - color: '#d13e4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_5: - name: 7Networks_RH_Default_Par_5 - lookupLabel: 547 - originalLookupLabel: 547 - center: - x: 55.0 - y: -53.0 - z: 28.0 - color: '#d13e50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_6: - name: 7Networks_RH_Default_Par_6 - lookupLabel: 548 - originalLookupLabel: 548 - center: - x: 50.0 - y: -69.0 - z: 31.0 - color: '#d13e51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_7: - name: 7Networks_RH_Default_Par_7 - lookupLabel: 549 - originalLookupLabel: 549 - center: - x: 50.0 - y: -62.0 - z: 37.0 - color: '#d13e52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_8: - name: 7Networks_RH_Default_Par_8 - lookupLabel: 550 - originalLookupLabel: 550 - center: - x: 56.0 - y: -52.0 - z: 43.0 - color: '#d13e53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_1: - name: 7Networks_RH_Default_Temp_1 - lookupLabel: 551 - originalLookupLabel: 551 - center: - x: 48.0 - y: 10.0 - z: -35.0 - color: '#d13d4a' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_2: - name: 7Networks_RH_Default_Temp_2 - lookupLabel: 552 - originalLookupLabel: 552 - center: - x: 58.0 - y: -8.0 - z: -27.0 - color: '#d13d4b' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_3: - name: 7Networks_RH_Default_Temp_3 - lookupLabel: 553 - originalLookupLabel: 553 - center: - x: 52.0 - y: 8.0 - z: -22.0 - color: '#d13d4c' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_4: - name: 7Networks_RH_Default_Temp_4 - lookupLabel: 554 - originalLookupLabel: 554 - center: - x: 60.0 - y: -5.0 - z: -16.0 - color: '#d13d4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_5: - name: 7Networks_RH_Default_Temp_5 - lookupLabel: 555 - originalLookupLabel: 555 - center: - x: 65.0 - y: -24.0 - z: -16.0 - color: '#d13d4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_6: - name: 7Networks_RH_Default_Temp_6 - lookupLabel: 556 - originalLookupLabel: 556 - center: - x: 55.0 - y: -2.0 - z: -11.0 - color: '#d13d50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_7: - name: 7Networks_RH_Default_Temp_7 - lookupLabel: 557 - originalLookupLabel: 557 - center: - x: 63.0 - y: -24.0 - z: -7.0 - color: '#d13d51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_8: - name: 7Networks_RH_Default_Temp_8 - lookupLabel: 558 - originalLookupLabel: 558 - center: - x: 49.0 - y: -17.0 - z: -10.0 - color: '#d13d52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_9: - name: 7Networks_RH_Default_Temp_9 - lookupLabel: 559 - originalLookupLabel: 559 - center: - x: 49.0 - y: -25.0 - z: -5.0 - color: '#d13d53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_10: - name: 7Networks_RH_Default_Temp_10 - lookupLabel: 560 - originalLookupLabel: 560 - center: - x: 63.0 - y: -37.0 - z: 0.0 - color: '#d13d54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_11: - name: 7Networks_RH_Default_Temp_11 - lookupLabel: 561 - originalLookupLabel: 561 - center: - x: 50.0 - y: -35.0 - z: 3.0 - color: '#d13d55' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_1: - name: 7Networks_RH_Default_PFCv_1 - lookupLabel: 562 - originalLookupLabel: 562 - center: - x: 29.0 - y: 19.0 - z: -20.0 - color: '#d13d4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_2: - name: 7Networks_RH_Default_PFCv_2 - lookupLabel: 563 - originalLookupLabel: 563 - center: - x: 35.0 - y: 37.0 - z: -13.0 - color: '#d13e4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_3: - name: 7Networks_RH_Default_PFCv_3 - lookupLabel: 564 - originalLookupLabel: 564 - center: - x: 39.0 - y: 25.0 - z: -16.0 - color: '#d13e54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_4: - name: 7Networks_RH_Default_PFCv_4 - lookupLabel: 565 - originalLookupLabel: 565 - center: - x: 47.0 - y: 31.0 - z: -11.0 - color: '#d13f4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_5: - name: 7Networks_RH_Default_PFCv_5 - lookupLabel: 566 - originalLookupLabel: 566 - center: - x: 50.0 - y: 32.0 - z: -2.0 - color: '#d13f4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_6: - name: 7Networks_RH_Default_PFCv_6 - lookupLabel: 567 - originalLookupLabel: 567 - center: - x: 54.0 - y: 23.0 - z: 7.0 - color: '#d13f4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_1: - name: 7Networks_RH_Default_PFCdPFCm_1 - lookupLabel: 568 - originalLookupLabel: 568 - center: - x: 4.0 - y: 27.0 - z: -11.0 - color: '#d03d4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_2: - name: 7Networks_RH_Default_PFCdPFCm_2 - lookupLabel: 569 - originalLookupLabel: 569 - center: - x: 6.0 - y: 46.0 - z: -11.0 - color: '#d03e47' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_3: - name: 7Networks_RH_Default_PFCdPFCm_3 - lookupLabel: 570 - originalLookupLabel: 570 - center: - x: 8.0 - y: 53.0 - z: -2.0 - color: '#d03e48' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_4: - name: 7Networks_RH_Default_PFCdPFCm_4 - lookupLabel: 571 - originalLookupLabel: 571 - center: - x: 6.0 - y: 39.0 - z: -1.0 - color: '#d03e49' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_5: - name: 7Networks_RH_Default_PFCdPFCm_5 - lookupLabel: 572 - originalLookupLabel: 572 - center: - x: 8.0 - y: 67.0 - z: 3.0 - color: '#d03e4a' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_6: - name: 7Networks_RH_Default_PFCdPFCm_6 - lookupLabel: 573 - originalLookupLabel: 573 - center: - x: 7.0 - y: 56.0 - z: 11.0 - color: '#d03e4b' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_7: - name: 7Networks_RH_Default_PFCdPFCm_7 - lookupLabel: 574 - originalLookupLabel: 574 - center: - x: 9.0 - y: 43.0 - z: 10.0 - color: '#d03e4c' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_8: - name: 7Networks_RH_Default_PFCdPFCm_8 - lookupLabel: 575 - originalLookupLabel: 575 - center: - x: 18.0 - y: 65.0 - z: 15.0 - color: '#d03e4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_9: - name: 7Networks_RH_Default_PFCdPFCm_9 - lookupLabel: 576 - originalLookupLabel: 576 - center: - x: 6.0 - y: 30.0 - z: 13.0 - color: '#d03e4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_10: - name: 7Networks_RH_Default_PFCdPFCm_10 - lookupLabel: 577 - originalLookupLabel: 577 - center: - x: 7.0 - y: 61.0 - z: 27.0 - color: '#d03e50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_11: - name: 7Networks_RH_Default_PFCdPFCm_11 - lookupLabel: 578 - originalLookupLabel: 578 - center: - x: 5.0 - y: 48.0 - z: 30.0 - color: '#d03e51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_12: - name: 7Networks_RH_Default_PFCdPFCm_12 - lookupLabel: 579 - originalLookupLabel: 579 - center: - x: 16.0 - y: 54.0 - z: 34.0 - color: '#d03e52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_13: - name: 7Networks_RH_Default_PFCdPFCm_13 - lookupLabel: 580 - originalLookupLabel: 580 - center: - x: 24.0 - y: 37.0 - z: 34.0 - color: '#d03e53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_14: - name: 7Networks_RH_Default_PFCdPFCm_14 - lookupLabel: 581 - originalLookupLabel: 581 - center: - x: 10.0 - y: 50.0 - z: 46.0 - color: '#d03e54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_15: - name: 7Networks_RH_Default_PFCdPFCm_15 - lookupLabel: 582 - originalLookupLabel: 582 - center: - x: 22.0 - y: 41.0 - z: 45.0 - color: '#d03e55' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_16: - name: 7Networks_RH_Default_PFCdPFCm_16 - lookupLabel: 583 - originalLookupLabel: 583 - center: - x: 29.0 - y: 29.0 - z: 41.0 - color: '#d03f4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_17: - name: 7Networks_RH_Default_PFCdPFCm_17 - lookupLabel: 584 - originalLookupLabel: 584 - center: - x: 15.0 - y: 37.0 - z: 53.0 - color: '#d03f4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_18: - name: 7Networks_RH_Default_PFCdPFCm_18 - lookupLabel: 585 - originalLookupLabel: 585 - center: - x: 23.0 - y: 25.0 - z: 54.0 - color: '#d03f50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_19: - name: 7Networks_RH_Default_PFCdPFCm_19 - lookupLabel: 586 - originalLookupLabel: 586 - center: - x: 9.0 - y: 26.0 - z: 60.0 - color: '#d03f51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_1: - name: 7Networks_RH_Default_pCunPCC_1 - lookupLabel: 587 - originalLookupLabel: 587 - center: - x: 10.0 - y: -51.0 - z: 9.0 - color: '#d03e4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_2: - name: 7Networks_RH_Default_pCunPCC_2 - lookupLabel: 588 - originalLookupLabel: 588 - center: - x: 7.0 - y: -46.0 - z: 15.0 - color: '#d03f4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_3: - name: 7Networks_RH_Default_pCunPCC_3 - lookupLabel: 589 - originalLookupLabel: 589 - center: - x: 15.0 - y: -57.0 - z: 20.0 - color: '#d03f52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_4: - name: 7Networks_RH_Default_pCunPCC_4 - lookupLabel: 590 - originalLookupLabel: 590 - center: - x: 5.0 - y: -53.0 - z: 20.0 - color: '#d03f53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_5: - name: 7Networks_RH_Default_pCunPCC_5 - lookupLabel: 591 - originalLookupLabel: 591 - center: - x: 4.0 - y: -45.0 - z: 29.0 - color: '#d03f54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_6: - name: 7Networks_RH_Default_pCunPCC_6 - lookupLabel: 592 - originalLookupLabel: 592 - center: - x: 5.0 - y: -63.0 - z: 28.0 - color: '#d0404d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_7: - name: 7Networks_RH_Default_pCunPCC_7 - lookupLabel: 593 - originalLookupLabel: 593 - center: - x: 11.0 - y: -49.0 - z: 29.0 - color: '#d0404e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_8: - name: 7Networks_RH_Default_pCunPCC_8 - lookupLabel: 594 - originalLookupLabel: 594 - center: - x: 6.0 - y: -36.0 - z: 34.0 - color: '#d0404f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_9: - name: 7Networks_RH_Default_pCunPCC_9 - lookupLabel: 595 - originalLookupLabel: 595 - center: - x: 4.0 - y: -24.0 - z: 37.0 - color: '#d04050' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_10: - name: 7Networks_RH_Default_pCunPCC_10 - lookupLabel: 596 - originalLookupLabel: 596 - center: - x: 5.0 - y: -67.0 - z: 36.0 - color: '#d04051' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_11: - name: 7Networks_RH_Default_pCunPCC_11 - lookupLabel: 597 - originalLookupLabel: 597 - center: - x: 9.0 - y: -54.0 - z: 35.0 - color: '#d04052' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_12: - name: 7Networks_RH_Default_pCunPCC_12 - lookupLabel: 598 - originalLookupLabel: 598 - center: - x: 10.0 - y: -43.0 - z: 38.0 - color: '#d04053' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_13: - name: 7Networks_RH_Default_pCunPCC_13 - lookupLabel: 599 - originalLookupLabel: 599 - center: - x: 8.0 - y: -50.0 - z: 44.0 - color: '#d04054' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_14: - name: 7Networks_RH_Default_pCunPCC_14 - lookupLabel: 600 - originalLookupLabel: 600 - center: - x: 7.0 - y: -61.0 - z: 45.0 - color: '#d0414d' - hemisphere: right - hasParent: - - RH_Default - versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_600Parcels_7Networks_order_FSLMNI152_1mm.nii.gz diff --git a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-600_res-1_desc-ordered_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-600_res-1_desc-ordered_dseg.yaml similarity index 99% rename from tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-600_res-1_desc-ordered_dseg.yaml rename to tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-600_res-1_desc-ordered_dseg.yaml index 7fd13a03b..3e082ede8 100644 --- a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-600_res-1_desc-ordered_dseg.yaml +++ b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-600_res-1_desc-ordered_dseg.yaml @@ -1,14 +1,12 @@ name: Schaefer2018 abbreviation: Schaefer2018 versionIdentifier: '2018' -coordinateSpace: - name: MNI152 - abbreviation: FSLMNI152 - nativeUnit: mm +coordinateSpace: FSLMNI152 terminology: label: Schaefer2018_600Parcels_7Networks_order versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_600Parcels_7Networks_order_FSLMNI152_1mm.nii.gz + dataLocation: + schaefer2018_original_mni/Schaefer2018_600Parcels_7Networks_order_FSLMNI152_1mm.nii.gz entities: 7Networks_LH_Vis_1: name: 7Networks_LH_Vis_1 diff --git a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-700_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-700_dseg.yaml deleted file mode 100644 index 3cf31bb1a..000000000 --- a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-700_dseg.yaml +++ /dev/null @@ -1,8521 +0,0 @@ -name: Schaefer2018 -abbreviation: Schaefer2018 -versionIdentifier: '2018' -coordinateSpace: MNI152NLin6Asym -terminology: - label: Schaefer2018_700Parcels_7Networks_order - entities: - LH_Vis: - name: LH_Vis - lookupLabel: -1 - hemisphere: left - center: - x: -20.9 - y: -73.7 - z: 3.8 - LH_SomMot: - name: LH_SomMot - lookupLabel: -2 - hemisphere: left - center: - x: -36.0 - y: -21.3 - z: 43.5 - LH_DorsAttn: - name: LH_DorsAttn - lookupLabel: -3 - hemisphere: left - center: - x: -34.9 - y: -42.6 - z: 39.7 - LH_SalVentAttn: - name: LH_SalVentAttn - lookupLabel: -4 - hemisphere: left - center: - x: -30.9 - y: -10.3 - z: 29.9 - LH_Limbic: - name: LH_Limbic - lookupLabel: -5 - hemisphere: left - center: - x: -26.9 - y: 8.9 - z: -25.6 - LH_Cont: - name: LH_Cont - lookupLabel: -6 - hemisphere: left - center: - x: -32.3 - y: -2.6 - z: 26.6 - LH_Default: - name: LH_Default - lookupLabel: -7 - hemisphere: left - center: - x: -28.3 - y: -10.6 - z: 19.1 - RH_Vis: - name: RH_Vis - lookupLabel: -8 - hemisphere: right - center: - x: 24.5 - y: -71.3 - z: 3.8 - RH_SomMot: - name: RH_SomMot - lookupLabel: -9 - hemisphere: right - center: - x: 38.1 - y: -18.6 - z: 39.8 - RH_DorsAttn: - name: RH_DorsAttn - lookupLabel: -10 - hemisphere: right - center: - x: 34.9 - y: -44.3 - z: 39.8 - RH_SalVentAttn: - name: RH_SalVentAttn - lookupLabel: -11 - hemisphere: right - center: - x: 39.1 - y: -8.7 - z: 24.8 - RH_Limbic: - name: RH_Limbic - lookupLabel: -12 - hemisphere: right - center: - x: 25.3 - y: 14.0 - z: -25.8 - RH_Cont: - name: RH_Cont - lookupLabel: -13 - hemisphere: right - center: - x: 36.2 - y: 0.8 - z: 27.0 - RH_Default: - name: RH_Default - lookupLabel: -14 - hemisphere: right - center: - x: 28.3 - y: -9.6 - z: 16.1 - 7Networks_LH_Vis_1: - name: 7Networks_LH_Vis_1 - lookupLabel: 1 - originalLookupLabel: 1 - center: - x: -35.0 - y: -39.0 - z: -23.0 - color: '#780f83' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_2: - name: 7Networks_LH_Vis_2 - lookupLabel: 2 - originalLookupLabel: 2 - center: - x: -29.0 - y: -35.0 - z: -16.0 - color: '#780f84' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_3: - name: 7Networks_LH_Vis_3 - lookupLabel: 3 - originalLookupLabel: 3 - center: - x: -26.0 - y: -46.0 - z: -14.0 - color: '#780f85' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_4: - name: 7Networks_LH_Vis_4 - lookupLabel: 4 - originalLookupLabel: 4 - center: - x: -35.0 - y: -59.0 - z: -17.0 - color: '#780f86' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_5: - name: 7Networks_LH_Vis_5 - lookupLabel: 5 - originalLookupLabel: 5 - center: - x: -45.0 - y: -63.0 - z: -16.0 - color: '#78107f' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_6: - name: 7Networks_LH_Vis_6 - lookupLabel: 6 - originalLookupLabel: 6 - center: - x: -27.0 - y: -68.0 - z: -11.0 - color: '#781080' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_7: - name: 7Networks_LH_Vis_7 - lookupLabel: 7 - originalLookupLabel: 7 - center: - x: -34.0 - y: -78.0 - z: -15.0 - color: '#781081' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_8: - name: 7Networks_LH_Vis_8 - lookupLabel: 8 - originalLookupLabel: 8 - center: - x: -29.0 - y: -47.0 - z: -5.0 - color: '#781082' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_9: - name: 7Networks_LH_Vis_9 - lookupLabel: 9 - originalLookupLabel: 9 - center: - x: -24.0 - y: -58.0 - z: -9.0 - color: '#781083' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_10: - name: 7Networks_LH_Vis_10 - lookupLabel: 10 - originalLookupLabel: 10 - center: - x: -20.0 - y: -36.0 - z: -14.0 - color: '#781084' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_11: - name: 7Networks_LH_Vis_11 - lookupLabel: 11 - originalLookupLabel: 11 - center: - x: -44.0 - y: -77.0 - z: -12.0 - color: '#781085' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_12: - name: 7Networks_LH_Vis_12 - lookupLabel: 12 - originalLookupLabel: 12 - center: - x: -18.0 - y: -77.0 - z: -11.0 - color: '#781086' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_13: - name: 7Networks_LH_Vis_13 - lookupLabel: 13 - originalLookupLabel: 13 - center: - x: -21.0 - y: -51.0 - z: -6.0 - color: '#78117f' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_14: - name: 7Networks_LH_Vis_14 - lookupLabel: 14 - originalLookupLabel: 14 - center: - x: -19.0 - y: -88.0 - z: -16.0 - color: '#781180' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_15: - name: 7Networks_LH_Vis_15 - lookupLabel: 15 - originalLookupLabel: 15 - center: - x: -33.0 - y: -91.0 - z: -15.0 - color: '#781181' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_16: - name: 7Networks_LH_Vis_16 - lookupLabel: 16 - originalLookupLabel: 16 - center: - x: -16.0 - y: -38.0 - z: -11.0 - color: '#781182' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_17: - name: 7Networks_LH_Vis_17 - lookupLabel: 17 - originalLookupLabel: 17 - center: - x: -12.0 - y: -64.0 - z: -4.0 - color: '#781183' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_18: - name: 7Networks_LH_Vis_18 - lookupLabel: 18 - originalLookupLabel: 18 - center: - x: -13.0 - y: -50.0 - z: -7.0 - color: '#781184' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_19: - name: 7Networks_LH_Vis_19 - lookupLabel: 19 - originalLookupLabel: 19 - center: - x: -7.0 - y: -75.0 - z: -5.0 - color: '#781185' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_20: - name: 7Networks_LH_Vis_20 - lookupLabel: 20 - originalLookupLabel: 20 - center: - x: -44.0 - y: -85.0 - z: -4.0 - color: '#781186' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_21: - name: 7Networks_LH_Vis_21 - lookupLabel: 21 - originalLookupLabel: 21 - center: - x: -4.0 - y: -88.0 - z: -12.0 - color: '#78127f' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_22: - name: 7Networks_LH_Vis_22 - lookupLabel: 22 - originalLookupLabel: 22 - center: - x: -20.0 - y: -99.0 - z: -12.0 - color: '#781280' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_23: - name: 7Networks_LH_Vis_23 - lookupLabel: 23 - originalLookupLabel: 23 - center: - x: -13.0 - y: -41.0 - z: -5.0 - color: '#781281' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_24: - name: 7Networks_LH_Vis_24 - lookupLabel: 24 - originalLookupLabel: 24 - center: - x: -9.0 - y: -98.0 - z: -12.0 - color: '#781282' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_25: - name: 7Networks_LH_Vis_25 - lookupLabel: 25 - originalLookupLabel: 25 - center: - x: -32.0 - y: -94.0 - z: -3.0 - color: '#781283' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_26: - name: 7Networks_LH_Vis_26 - lookupLabel: 26 - originalLookupLabel: 26 - center: - x: -46.0 - y: -75.0 - z: 5.0 - color: '#781284' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_27: - name: 7Networks_LH_Vis_27 - lookupLabel: 27 - originalLookupLabel: 27 - center: - x: -11.0 - y: -61.0 - z: 3.0 - color: '#781285' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_28: - name: 7Networks_LH_Vis_28 - lookupLabel: 28 - originalLookupLabel: 28 - center: - x: -18.0 - y: -52.0 - z: -1.0 - color: '#781287' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_29: - name: 7Networks_LH_Vis_29 - lookupLabel: 29 - originalLookupLabel: 29 - center: - x: -6.0 - y: -69.0 - z: 6.0 - color: '#781288' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_30: - name: 7Networks_LH_Vis_30 - lookupLabel: 30 - originalLookupLabel: 30 - center: - x: -40.0 - y: -88.0 - z: 5.0 - color: '#781289' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_31: - name: 7Networks_LH_Vis_31 - lookupLabel: 31 - originalLookupLabel: 31 - center: - x: -7.0 - y: -83.0 - z: 3.0 - color: '#78128a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_32: - name: 7Networks_LH_Vis_32 - lookupLabel: 32 - originalLookupLabel: 32 - center: - x: -12.0 - y: -46.0 - z: 3.0 - color: '#78128b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_33: - name: 7Networks_LH_Vis_33 - lookupLabel: 33 - originalLookupLabel: 33 - center: - x: -18.0 - y: -102.0 - z: 3.0 - color: '#78128c' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_34: - name: 7Networks_LH_Vis_34 - lookupLabel: 34 - originalLookupLabel: 34 - center: - x: -6.0 - y: -93.0 - z: 1.0 - color: '#78128d' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_35: - name: 7Networks_LH_Vis_35 - lookupLabel: 35 - originalLookupLabel: 35 - center: - x: -5.0 - y: -102.0 - z: 2.0 - color: '#781386' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_36: - name: 7Networks_LH_Vis_36 - lookupLabel: 36 - originalLookupLabel: 36 - center: - x: -21.0 - y: -56.0 - z: 5.0 - color: '#781387' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_37: - name: 7Networks_LH_Vis_37 - lookupLabel: 37 - originalLookupLabel: 37 - center: - x: -31.0 - y: -89.0 - z: 7.0 - color: '#781388' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_38: - name: 7Networks_LH_Vis_38 - lookupLabel: 38 - originalLookupLabel: 38 - center: - x: -25.0 - y: -95.0 - z: 9.0 - color: '#781389' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_39: - name: 7Networks_LH_Vis_39 - lookupLabel: 39 - originalLookupLabel: 39 - center: - x: -19.0 - y: -66.0 - z: 6.0 - color: '#78138a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_40: - name: 7Networks_LH_Vis_40 - lookupLabel: 40 - originalLookupLabel: 40 - center: - x: -10.0 - y: -73.0 - z: 11.0 - color: '#78138b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_41: - name: 7Networks_LH_Vis_41 - lookupLabel: 41 - originalLookupLabel: 41 - center: - x: -50.0 - y: -72.0 - z: 16.0 - color: '#78138c' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_42: - name: 7Networks_LH_Vis_42 - lookupLabel: 42 - originalLookupLabel: 42 - center: - x: -2.0 - y: -79.0 - z: 12.0 - color: '#78138d' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_43: - name: 7Networks_LH_Vis_43 - lookupLabel: 43 - originalLookupLabel: 43 - center: - x: -12.0 - y: -99.0 - z: 15.0 - color: '#781486' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_44: - name: 7Networks_LH_Vis_44 - lookupLabel: 44 - originalLookupLabel: 44 - center: - x: -41.0 - y: -81.0 - z: 16.0 - color: '#781487' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_45: - name: 7Networks_LH_Vis_45 - lookupLabel: 45 - originalLookupLabel: 45 - center: - x: -32.0 - y: -90.0 - z: 15.0 - color: '#781488' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_46: - name: 7Networks_LH_Vis_46 - lookupLabel: 46 - originalLookupLabel: 46 - center: - x: -3.0 - y: -92.0 - z: 17.0 - color: '#781489' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_47: - name: 7Networks_LH_Vis_47 - lookupLabel: 47 - originalLookupLabel: 47 - center: - x: -16.0 - y: -65.0 - z: 15.0 - color: '#78148a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_48: - name: 7Networks_LH_Vis_48 - lookupLabel: 48 - originalLookupLabel: 48 - center: - x: -7.0 - y: -68.0 - z: 16.0 - color: '#78148b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_49: - name: 7Networks_LH_Vis_49 - lookupLabel: 49 - originalLookupLabel: 49 - center: - x: -21.0 - y: -90.0 - z: 21.0 - color: '#78148c' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_50: - name: 7Networks_LH_Vis_50 - lookupLabel: 50 - originalLookupLabel: 50 - center: - x: -2.0 - y: -80.0 - z: 24.0 - color: '#78148d' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_51: - name: 7Networks_LH_Vis_51 - lookupLabel: 51 - originalLookupLabel: 51 - center: - x: -32.0 - y: -84.0 - z: 24.0 - color: '#781586' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_52: - name: 7Networks_LH_Vis_52 - lookupLabel: 52 - originalLookupLabel: 52 - center: - x: -13.0 - y: -75.0 - z: 24.0 - color: '#781587' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_53: - name: 7Networks_LH_Vis_53 - lookupLabel: 53 - originalLookupLabel: 53 - center: - x: -17.0 - y: -90.0 - z: 30.0 - color: '#781588' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_54: - name: 7Networks_LH_Vis_54 - lookupLabel: 54 - originalLookupLabel: 54 - center: - x: -8.0 - y: -89.0 - z: 35.0 - color: '#781589' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_55: - name: 7Networks_LH_Vis_55 - lookupLabel: 55 - originalLookupLabel: 55 - center: - x: -25.0 - y: -80.0 - z: 25.0 - color: '#78158a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_56: - name: 7Networks_LH_Vis_56 - lookupLabel: 56 - originalLookupLabel: 56 - center: - x: -12.0 - y: -81.0 - z: 37.0 - color: '#78158b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_57: - name: 7Networks_LH_Vis_57 - lookupLabel: 57 - originalLookupLabel: 57 - center: - x: -22.0 - y: -83.0 - z: 41.0 - color: '#78158c' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_58: - name: 7Networks_LH_Vis_58 - lookupLabel: 58 - originalLookupLabel: 58 - center: - x: -16.0 - y: -81.0 - z: 47.0 - color: '#78158d' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_SomMot_1: - name: 7Networks_LH_SomMot_1 - lookupLabel: 59 - originalLookupLabel: 59 - center: - x: -50.0 - y: 6.0 - z: -8.0 - color: '#467fae' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_2: - name: 7Networks_LH_SomMot_2 - lookupLabel: 60 - originalLookupLabel: 60 - center: - x: -56.0 - y: -4.0 - z: 0.0 - color: '#467faf' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_3: - name: 7Networks_LH_SomMot_3 - lookupLabel: 61 - originalLookupLabel: 61 - center: - x: -57.0 - y: -16.0 - z: 6.0 - color: '#467fb0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_4: - name: 7Networks_LH_SomMot_4 - lookupLabel: 62 - originalLookupLabel: 62 - center: - x: -43.0 - y: -19.0 - z: 4.0 - color: '#467fb1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_5: - name: 7Networks_LH_SomMot_5 - lookupLabel: 63 - originalLookupLabel: 63 - center: - x: -61.0 - y: -26.0 - z: 10.0 - color: '#467fb2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_6: - name: 7Networks_LH_SomMot_6 - lookupLabel: 64 - originalLookupLabel: 64 - center: - x: -63.0 - y: -37.0 - z: 8.0 - color: '#467fb3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_7: - name: 7Networks_LH_SomMot_7 - lookupLabel: 65 - originalLookupLabel: 65 - center: - x: -36.0 - y: -13.0 - z: 13.0 - color: '#467fb4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_8: - name: 7Networks_LH_SomMot_8 - lookupLabel: 66 - originalLookupLabel: 66 - center: - x: -46.0 - y: -26.0 - z: 8.0 - color: '#4680ad' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_9: - name: 7Networks_LH_SomMot_9 - lookupLabel: 67 - originalLookupLabel: 67 - center: - x: -35.0 - y: -26.0 - z: 12.0 - color: '#4680ae' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_10: - name: 7Networks_LH_SomMot_10 - lookupLabel: 68 - originalLookupLabel: 68 - center: - x: -39.0 - y: -14.0 - z: 18.0 - color: '#4680af' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_11: - name: 7Networks_LH_SomMot_11 - lookupLabel: 69 - originalLookupLabel: 69 - center: - x: -58.0 - y: -36.0 - z: 15.0 - color: '#4680b0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_12: - name: 7Networks_LH_SomMot_12 - lookupLabel: 70 - originalLookupLabel: 70 - center: - x: -41.0 - y: -35.0 - z: 14.0 - color: '#4680b1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_13: - name: 7Networks_LH_SomMot_13 - lookupLabel: 71 - originalLookupLabel: 71 - center: - x: -37.0 - y: -26.0 - z: 20.0 - color: '#4680b2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_14: - name: 7Networks_LH_SomMot_14 - lookupLabel: 72 - originalLookupLabel: 72 - center: - x: -49.0 - y: -13.0 - z: 13.0 - color: '#4680b3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_15: - name: 7Networks_LH_SomMot_15 - lookupLabel: 73 - originalLookupLabel: 73 - center: - x: -59.0 - y: -2.0 - z: 10.0 - color: '#4680b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_16: - name: 7Networks_LH_SomMot_16 - lookupLabel: 74 - originalLookupLabel: 74 - center: - x: -61.0 - y: -14.0 - z: 15.0 - color: '#4681ad' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_17: - name: 7Networks_LH_SomMot_17 - lookupLabel: 75 - originalLookupLabel: 75 - center: - x: -49.0 - y: -24.0 - z: 18.0 - color: '#4681ae' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_18: - name: 7Networks_LH_SomMot_18 - lookupLabel: 76 - originalLookupLabel: 76 - center: - x: -60.0 - y: -3.0 - z: 19.0 - color: '#4681af' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_19: - name: 7Networks_LH_SomMot_19 - lookupLabel: 77 - originalLookupLabel: 77 - center: - x: -62.0 - y: -18.0 - z: 22.0 - color: '#4681b0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_20: - name: 7Networks_LH_SomMot_20 - lookupLabel: 78 - originalLookupLabel: 78 - center: - x: -64.0 - y: -9.0 - z: 24.0 - color: '#4681b1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_21: - name: 7Networks_LH_SomMot_21 - lookupLabel: 79 - originalLookupLabel: 79 - center: - x: -56.0 - y: -8.0 - z: 27.0 - color: '#4681b2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_22: - name: 7Networks_LH_SomMot_22 - lookupLabel: 80 - originalLookupLabel: 80 - center: - x: -62.0 - y: -11.0 - z: 35.0 - color: '#4681b3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_23: - name: 7Networks_LH_SomMot_23 - lookupLabel: 81 - originalLookupLabel: 81 - center: - x: -56.0 - y: -3.0 - z: 32.0 - color: '#4681b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_24: - name: 7Networks_LH_SomMot_24 - lookupLabel: 82 - originalLookupLabel: 82 - center: - x: -57.0 - y: -17.0 - z: 41.0 - color: '#4682ad' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_25: - name: 7Networks_LH_SomMot_25 - lookupLabel: 83 - originalLookupLabel: 83 - center: - x: -51.0 - y: -14.0 - z: 39.0 - color: '#4682ae' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_26: - name: 7Networks_LH_SomMot_26 - lookupLabel: 84 - originalLookupLabel: 84 - center: - x: -44.0 - y: -13.0 - z: 38.0 - color: '#4682af' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_27: - name: 7Networks_LH_SomMot_27 - lookupLabel: 85 - originalLookupLabel: 85 - center: - x: -52.0 - y: -3.0 - z: 47.0 - color: '#4682b0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_28: - name: 7Networks_LH_SomMot_28 - lookupLabel: 86 - originalLookupLabel: 86 - center: - x: -9.0 - y: -7.0 - z: 43.0 - color: '#4682b1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_29: - name: 7Networks_LH_SomMot_29 - lookupLabel: 87 - originalLookupLabel: 87 - center: - x: -53.0 - y: -23.0 - z: 48.0 - color: '#4682b2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_30: - name: 7Networks_LH_SomMot_30 - lookupLabel: 88 - originalLookupLabel: 88 - center: - x: -52.0 - y: -15.0 - z: 52.0 - color: '#4682b3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_31: - name: 7Networks_LH_SomMot_31 - lookupLabel: 89 - originalLookupLabel: 89 - center: - x: -38.0 - y: -19.0 - z: 41.0 - color: '#4682b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_32: - name: 7Networks_LH_SomMot_32 - lookupLabel: 90 - originalLookupLabel: 90 - center: - x: -43.0 - y: -12.0 - z: 50.0 - color: '#4682b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_33: - name: 7Networks_LH_SomMot_33 - lookupLabel: 91 - originalLookupLabel: 91 - center: - x: -51.0 - y: -23.0 - z: 57.0 - color: '#4682b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_34: - name: 7Networks_LH_SomMot_34 - lookupLabel: 92 - originalLookupLabel: 92 - center: - x: -46.0 - y: -32.0 - z: 54.0 - color: '#4682b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_35: - name: 7Networks_LH_SomMot_35 - lookupLabel: 93 - originalLookupLabel: 93 - center: - x: -7.0 - y: -14.0 - z: 49.0 - color: '#4682b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_36: - name: 7Networks_LH_SomMot_36 - lookupLabel: 94 - originalLookupLabel: 94 - center: - x: -40.0 - y: -20.0 - z: 49.0 - color: '#4682ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_37: - name: 7Networks_LH_SomMot_37 - lookupLabel: 95 - originalLookupLabel: 95 - center: - x: -42.0 - y: -9.0 - z: 61.0 - color: '#4682bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_38: - name: 7Networks_LH_SomMot_38 - lookupLabel: 96 - originalLookupLabel: 96 - center: - x: -39.0 - y: -18.0 - z: 56.0 - color: '#4683b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_39: - name: 7Networks_LH_SomMot_39 - lookupLabel: 97 - originalLookupLabel: 97 - center: - x: -43.0 - y: -35.0 - z: 63.0 - color: '#4683b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_40: - name: 7Networks_LH_SomMot_40 - lookupLabel: 98 - originalLookupLabel: 98 - center: - x: -32.0 - y: -42.0 - z: 56.0 - color: '#4683b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_41: - name: 7Networks_LH_SomMot_41 - lookupLabel: 99 - originalLookupLabel: 99 - center: - x: -5.0 - y: -26.0 - z: 54.0 - color: '#4683b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_42: - name: 7Networks_LH_SomMot_42 - lookupLabel: 100 - originalLookupLabel: 100 - center: - x: -39.0 - y: -27.0 - z: 58.0 - color: '#4683b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_43: - name: 7Networks_LH_SomMot_43 - lookupLabel: 101 - originalLookupLabel: 101 - center: - x: -4.0 - y: -9.0 - z: 60.0 - color: '#4683b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_44: - name: 7Networks_LH_SomMot_44 - lookupLabel: 102 - originalLookupLabel: 102 - center: - x: -8.0 - y: -41.0 - z: 58.0 - color: '#4683ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_45: - name: 7Networks_LH_SomMot_45 - lookupLabel: 103 - originalLookupLabel: 103 - center: - x: -30.0 - y: -47.0 - z: 64.0 - color: '#4683bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_46: - name: 7Networks_LH_SomMot_46 - lookupLabel: 104 - originalLookupLabel: 104 - center: - x: -33.0 - y: -18.0 - z: 69.0 - color: '#4684b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_47: - name: 7Networks_LH_SomMot_47 - lookupLabel: 105 - originalLookupLabel: 105 - center: - x: -29.0 - y: -39.0 - z: 65.0 - color: '#4684b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_48: - name: 7Networks_LH_SomMot_48 - lookupLabel: 106 - originalLookupLabel: 106 - center: - x: -29.0 - y: -24.0 - z: 61.0 - color: '#4684b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_49: - name: 7Networks_LH_SomMot_49 - lookupLabel: 107 - originalLookupLabel: 107 - center: - x: -29.0 - y: -29.0 - z: 65.0 - color: '#4684b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_50: - name: 7Networks_LH_SomMot_50 - lookupLabel: 108 - originalLookupLabel: 108 - center: - x: -24.0 - y: -12.0 - z: 68.0 - color: '#4684b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_51: - name: 7Networks_LH_SomMot_51 - lookupLabel: 109 - originalLookupLabel: 109 - center: - x: -4.0 - y: -20.0 - z: 65.0 - color: '#4684b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_52: - name: 7Networks_LH_SomMot_52 - lookupLabel: 110 - originalLookupLabel: 110 - center: - x: -3.0 - y: -32.0 - z: 62.0 - color: '#4684ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_53: - name: 7Networks_LH_SomMot_53 - lookupLabel: 111 - originalLookupLabel: 111 - center: - x: -8.0 - y: -43.0 - z: 70.0 - color: '#4684bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_54: - name: 7Networks_LH_SomMot_54 - lookupLabel: 112 - originalLookupLabel: 112 - center: - x: -19.0 - y: -24.0 - z: 68.0 - color: '#4685b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_55: - name: 7Networks_LH_SomMot_55 - lookupLabel: 113 - originalLookupLabel: 113 - center: - x: -19.0 - y: -46.0 - z: 67.0 - color: '#4685b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_56: - name: 7Networks_LH_SomMot_56 - lookupLabel: 114 - originalLookupLabel: 114 - center: - x: -13.0 - y: -6.0 - z: 71.0 - color: '#4685b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_57: - name: 7Networks_LH_SomMot_57 - lookupLabel: 115 - originalLookupLabel: 115 - center: - x: -20.0 - y: -31.0 - z: 67.0 - color: '#4685b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_58: - name: 7Networks_LH_SomMot_58 - lookupLabel: 116 - originalLookupLabel: 116 - center: - x: -22.0 - y: -36.0 - z: 73.0 - color: '#4685b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_59: - name: 7Networks_LH_SomMot_59 - lookupLabel: 117 - originalLookupLabel: 117 - center: - x: -16.0 - y: -14.0 - z: 74.0 - color: '#4685b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_60: - name: 7Networks_LH_SomMot_60 - lookupLabel: 118 - originalLookupLabel: 118 - center: - x: -7.0 - y: -18.0 - z: 75.0 - color: '#4685ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_61: - name: 7Networks_LH_SomMot_61 - lookupLabel: 119 - originalLookupLabel: 119 - center: - x: -3.0 - y: -33.0 - z: 71.0 - color: '#4685bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_62: - name: 7Networks_LH_SomMot_62 - lookupLabel: 120 - originalLookupLabel: 120 - center: - x: -15.0 - y: -38.0 - z: 77.0 - color: '#4686b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_63: - name: 7Networks_LH_SomMot_63 - lookupLabel: 121 - originalLookupLabel: 121 - center: - x: -12.0 - y: -27.0 - z: 73.0 - color: '#4686b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_64: - name: 7Networks_LH_SomMot_64 - lookupLabel: 122 - originalLookupLabel: 122 - center: - x: -12.0 - y: -33.0 - z: 72.0 - color: '#4686b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_DorsAttn_Post_1: - name: 7Networks_LH_DorsAttn_Post_1 - lookupLabel: 123 - originalLookupLabel: 123 - center: - x: -45.0 - y: -45.0 - z: -20.0 - color: '#007507' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_2: - name: 7Networks_LH_DorsAttn_Post_2 - lookupLabel: 124 - originalLookupLabel: 124 - center: - x: -52.0 - y: -55.0 - z: -16.0 - color: '#007508' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_3: - name: 7Networks_LH_DorsAttn_Post_3 - lookupLabel: 125 - originalLookupLabel: 125 - center: - x: -45.0 - y: -66.0 - z: -5.0 - color: '#007509' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_4: - name: 7Networks_LH_DorsAttn_Post_4 - lookupLabel: 126 - originalLookupLabel: 126 - center: - x: -57.0 - y: -59.0 - z: -5.0 - color: '#00750a' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_5: - name: 7Networks_LH_DorsAttn_Post_5 - lookupLabel: 127 - originalLookupLabel: 127 - center: - x: -50.0 - y: -67.0 - z: 3.0 - color: '#00750b' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_6: - name: 7Networks_LH_DorsAttn_Post_6 - lookupLabel: 128 - originalLookupLabel: 128 - center: - x: -57.0 - y: -61.0 - z: 6.0 - color: '#00750c' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_7: - name: 7Networks_LH_DorsAttn_Post_7 - lookupLabel: 129 - originalLookupLabel: 129 - center: - x: -48.0 - y: -64.0 - z: 10.0 - color: '#00750d' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_8: - name: 7Networks_LH_DorsAttn_Post_8 - lookupLabel: 130 - originalLookupLabel: 130 - center: - x: -44.0 - y: -64.0 - z: 16.0 - color: '#00750e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_9: - name: 7Networks_LH_DorsAttn_Post_9 - lookupLabel: 131 - originalLookupLabel: 131 - center: - x: -38.0 - y: -82.0 - z: 32.0 - color: '#007607' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_10: - name: 7Networks_LH_DorsAttn_Post_10 - lookupLabel: 132 - originalLookupLabel: 132 - center: - x: -28.0 - y: -71.0 - z: 30.0 - color: '#007608' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_11: - name: 7Networks_LH_DorsAttn_Post_11 - lookupLabel: 133 - originalLookupLabel: 133 - center: - x: -29.0 - y: -77.0 - z: 39.0 - color: '#007609' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_12: - name: 7Networks_LH_DorsAttn_Post_12 - lookupLabel: 134 - originalLookupLabel: 134 - center: - x: -22.0 - y: -72.0 - z: 37.0 - color: '#00760a' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_13: - name: 7Networks_LH_DorsAttn_Post_13 - lookupLabel: 135 - originalLookupLabel: 135 - center: - x: -54.0 - y: -24.0 - z: 39.0 - color: '#00760b' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_14: - name: 7Networks_LH_DorsAttn_Post_14 - lookupLabel: 136 - originalLookupLabel: 136 - center: - x: -56.0 - y: -32.0 - z: 45.0 - color: '#00760c' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_15: - name: 7Networks_LH_DorsAttn_Post_15 - lookupLabel: 137 - originalLookupLabel: 137 - center: - x: -26.0 - y: -66.0 - z: 42.0 - color: '#00760d' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_16: - name: 7Networks_LH_DorsAttn_Post_16 - lookupLabel: 138 - originalLookupLabel: 138 - center: - x: -49.0 - y: -28.0 - z: 42.0 - color: '#00760f' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_17: - name: 7Networks_LH_DorsAttn_Post_17 - lookupLabel: 139 - originalLookupLabel: 139 - center: - x: -45.0 - y: -38.0 - z: 41.0 - color: '#007610' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_18: - name: 7Networks_LH_DorsAttn_Post_18 - lookupLabel: 140 - originalLookupLabel: 140 - center: - x: -35.0 - y: -43.0 - z: 40.0 - color: '#007611' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_19: - name: 7Networks_LH_DorsAttn_Post_19 - lookupLabel: 141 - originalLookupLabel: 141 - center: - x: -44.0 - y: -31.0 - z: 44.0 - color: '#007612' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_20: - name: 7Networks_LH_DorsAttn_Post_20 - lookupLabel: 142 - originalLookupLabel: 142 - center: - x: -30.0 - y: -52.0 - z: 41.0 - color: '#007613' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_21: - name: 7Networks_LH_DorsAttn_Post_21 - lookupLabel: 143 - originalLookupLabel: 143 - center: - x: -16.0 - y: -74.0 - z: 51.0 - color: '#007614' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_22: - name: 7Networks_LH_DorsAttn_Post_22 - lookupLabel: 144 - originalLookupLabel: 144 - center: - x: -37.0 - y: -36.0 - z: 46.0 - color: '#007615' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_23: - name: 7Networks_LH_DorsAttn_Post_23 - lookupLabel: 145 - originalLookupLabel: 145 - center: - x: -22.0 - y: -66.0 - z: 51.0 - color: '#00770e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_24: - name: 7Networks_LH_DorsAttn_Post_24 - lookupLabel: 146 - originalLookupLabel: 146 - center: - x: -27.0 - y: -58.0 - z: 54.0 - color: '#00770f' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_25: - name: 7Networks_LH_DorsAttn_Post_25 - lookupLabel: 147 - originalLookupLabel: 147 - center: - x: -36.0 - y: -47.0 - z: 51.0 - color: '#007710' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_26: - name: 7Networks_LH_DorsAttn_Post_26 - lookupLabel: 148 - originalLookupLabel: 148 - center: - x: -34.0 - y: -54.0 - z: 57.0 - color: '#007711' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_27: - name: 7Networks_LH_DorsAttn_Post_27 - lookupLabel: 149 - originalLookupLabel: 149 - center: - x: -39.0 - y: -40.0 - z: 55.0 - color: '#007712' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_28: - name: 7Networks_LH_DorsAttn_Post_28 - lookupLabel: 150 - originalLookupLabel: 150 - center: - x: -19.0 - y: -70.0 - z: 61.0 - color: '#007713' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_29: - name: 7Networks_LH_DorsAttn_Post_29 - lookupLabel: 151 - originalLookupLabel: 151 - center: - x: -29.0 - y: -61.0 - z: 63.0 - color: '#007714' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_30: - name: 7Networks_LH_DorsAttn_Post_30 - lookupLabel: 152 - originalLookupLabel: 152 - center: - x: -10.0 - y: -67.0 - z: 60.0 - color: '#007715' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_31: - name: 7Networks_LH_DorsAttn_Post_31 - lookupLabel: 153 - originalLookupLabel: 153 - center: - x: -7.0 - y: -57.0 - z: 64.0 - color: '#00780e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_32: - name: 7Networks_LH_DorsAttn_Post_32 - lookupLabel: 154 - originalLookupLabel: 154 - center: - x: -20.0 - y: -58.0 - z: 66.0 - color: '#00780f' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_33: - name: 7Networks_LH_DorsAttn_Post_33 - lookupLabel: 155 - originalLookupLabel: 155 - center: - x: -14.0 - y: -51.0 - z: 72.0 - color: '#007810' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_1: - name: 7Networks_LH_DorsAttn_FEF_1 - lookupLabel: 156 - originalLookupLabel: 156 - center: - x: -41.0 - y: -3.0 - z: 50.0 - color: '#00760e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_2: - name: 7Networks_LH_DorsAttn_FEF_2 - lookupLabel: 157 - originalLookupLabel: 157 - center: - x: -32.0 - y: 0.0 - z: 56.0 - color: '#007616' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_3: - name: 7Networks_LH_DorsAttn_FEF_3 - lookupLabel: 158 - originalLookupLabel: 158 - center: - x: -24.0 - y: 7.0 - z: 52.0 - color: '#007716' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_4: - name: 7Networks_LH_DorsAttn_FEF_4 - lookupLabel: 159 - originalLookupLabel: 159 - center: - x: -31.0 - y: -9.0 - z: 57.0 - color: '#007811' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_5: - name: 7Networks_LH_DorsAttn_FEF_5 - lookupLabel: 160 - originalLookupLabel: 160 - center: - x: -23.0 - y: -6.0 - z: 55.0 - color: '#007812' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_6: - name: 7Networks_LH_DorsAttn_FEF_6 - lookupLabel: 161 - originalLookupLabel: 161 - center: - x: -22.0 - y: 6.0 - z: 64.0 - color: '#007813' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_7: - name: 7Networks_LH_DorsAttn_FEF_7 - lookupLabel: 162 - originalLookupLabel: 162 - center: - x: -16.0 - y: -6.0 - z: 64.0 - color: '#007814' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_PrCv_1: - name: 7Networks_LH_DorsAttn_PrCv_1 - lookupLabel: 163 - originalLookupLabel: 163 - center: - x: -42.0 - y: 5.0 - z: 28.0 - color: '#007815' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_PrCv_2: - name: 7Networks_LH_DorsAttn_PrCv_2 - lookupLabel: 164 - originalLookupLabel: 164 - center: - x: -58.0 - y: 8.0 - z: 31.0 - color: '#00790e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_PrCv_3: - name: 7Networks_LH_DorsAttn_PrCv_3 - lookupLabel: 165 - originalLookupLabel: 165 - center: - x: -48.0 - y: 2.0 - z: 38.0 - color: '#00790f' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_SalVentAttn_ParOper_1: - name: 7Networks_LH_SalVentAttn_ParOper_1 - lookupLabel: 166 - originalLookupLabel: 166 - center: - x: -47.0 - y: -38.0 - z: 24.0 - color: '#c43af8' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_2: - name: 7Networks_LH_SalVentAttn_ParOper_2 - lookupLabel: 167 - originalLookupLabel: 167 - center: - x: -59.0 - y: -45.0 - z: 22.0 - color: '#c43af9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_3: - name: 7Networks_LH_SalVentAttn_ParOper_3 - lookupLabel: 168 - originalLookupLabel: 168 - center: - x: -53.0 - y: -40.0 - z: 30.0 - color: '#c43afb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_4: - name: 7Networks_LH_SalVentAttn_ParOper_4 - lookupLabel: 169 - originalLookupLabel: 169 - center: - x: -59.0 - y: -29.0 - z: 22.0 - color: '#c43afc' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_5: - name: 7Networks_LH_SalVentAttn_ParOper_5 - lookupLabel: 170 - originalLookupLabel: 170 - center: - x: -61.0 - y: -44.0 - z: 30.0 - color: '#c43afd' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_6: - name: 7Networks_LH_SalVentAttn_ParOper_6 - lookupLabel: 171 - originalLookupLabel: 171 - center: - x: -61.0 - y: -23.0 - z: 33.0 - color: '#c43afe' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_7: - name: 7Networks_LH_SalVentAttn_ParOper_7 - lookupLabel: 172 - originalLookupLabel: 172 - center: - x: -61.0 - y: -36.0 - z: 35.0 - color: '#c43aff' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_TempOcc_1: - name: 7Networks_LH_SalVentAttn_TempOcc_1 - lookupLabel: 173 - originalLookupLabel: 173 - center: - x: -55.0 - y: -56.0 - z: 14.0 - color: '#c133f9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_1: - name: 7Networks_LH_SalVentAttn_FrOperIns_1 - lookupLabel: 174 - originalLookupLabel: 174 - center: - x: -39.0 - y: 1.0 - z: -5.0 - color: '#c43bf6' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_2: - name: 7Networks_LH_SalVentAttn_FrOperIns_2 - lookupLabel: 175 - originalLookupLabel: 175 - center: - x: -35.0 - y: 30.0 - z: -1.0 - color: '#c43bf7' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_3: - name: 7Networks_LH_SalVentAttn_FrOperIns_3 - lookupLabel: 176 - originalLookupLabel: 176 - center: - x: -41.0 - y: -14.0 - z: -2.0 - color: '#c43bf8' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_4: - name: 7Networks_LH_SalVentAttn_FrOperIns_4 - lookupLabel: 177 - originalLookupLabel: 177 - center: - x: -33.0 - y: 19.0 - z: 8.0 - color: '#c43bf9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_5: - name: 7Networks_LH_SalVentAttn_FrOperIns_5 - lookupLabel: 178 - originalLookupLabel: 178 - center: - x: -37.0 - y: -3.0 - z: 9.0 - color: '#c43bfb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_6: - name: 7Networks_LH_SalVentAttn_FrOperIns_6 - lookupLabel: 179 - originalLookupLabel: 179 - center: - x: -42.0 - y: 17.0 - z: 6.0 - color: '#c43bfc' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_7: - name: 7Networks_LH_SalVentAttn_FrOperIns_7 - lookupLabel: 180 - originalLookupLabel: 180 - center: - x: -39.0 - y: 2.0 - z: 12.0 - color: '#c43bfd' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_8: - name: 7Networks_LH_SalVentAttn_FrOperIns_8 - lookupLabel: 181 - originalLookupLabel: 181 - center: - x: -45.0 - y: 10.0 - z: 1.0 - color: '#c43bfe' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_9: - name: 7Networks_LH_SalVentAttn_FrOperIns_9 - lookupLabel: 182 - originalLookupLabel: 182 - center: - x: -50.0 - y: 1.0 - z: 4.0 - color: '#c43bff' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_10: - name: 7Networks_LH_SalVentAttn_FrOperIns_10 - lookupLabel: 183 - originalLookupLabel: 183 - center: - x: -56.0 - y: 8.0 - z: 11.0 - color: '#c134fa' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_11: - name: 7Networks_LH_SalVentAttn_FrOperIns_11 - lookupLabel: 184 - originalLookupLabel: 184 - center: - x: -58.0 - y: 6.0 - z: 20.0 - color: '#c135f3' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_PFCl_1: - name: 7Networks_LH_SalVentAttn_PFCl_1 - lookupLabel: 185 - originalLookupLabel: 185 - center: - x: -30.0 - y: 46.0 - z: 27.0 - color: '#c134f9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_PFCl_2: - name: 7Networks_LH_SalVentAttn_PFCl_2 - lookupLabel: 186 - originalLookupLabel: 186 - center: - x: -26.0 - y: 37.0 - z: 37.0 - color: '#c134fb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_1: - name: 7Networks_LH_SalVentAttn_Med_1 - lookupLabel: 187 - originalLookupLabel: 187 - center: - x: -6.0 - y: 17.0 - z: 31.0 - color: '#c53af4' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_2: - name: 7Networks_LH_SalVentAttn_Med_2 - lookupLabel: 188 - originalLookupLabel: 188 - center: - x: -3.0 - y: -4.0 - z: 38.0 - color: '#c53af5' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_3: - name: 7Networks_LH_SalVentAttn_Med_3 - lookupLabel: 189 - originalLookupLabel: 189 - center: - x: -7.0 - y: 5.0 - z: 39.0 - color: '#c53af6' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_4: - name: 7Networks_LH_SalVentAttn_Med_4 - lookupLabel: 190 - originalLookupLabel: 190 - center: - x: -9.0 - y: -19.0 - z: 39.0 - color: '#c53af7' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_5: - name: 7Networks_LH_SalVentAttn_Med_5 - lookupLabel: 191 - originalLookupLabel: 191 - center: - x: -12.0 - y: -35.0 - z: 42.0 - color: '#c53af8' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_6: - name: 7Networks_LH_SalVentAttn_Med_6 - lookupLabel: 192 - originalLookupLabel: 192 - center: - x: -5.0 - y: 15.0 - z: 44.0 - color: '#c53af9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_7: - name: 7Networks_LH_SalVentAttn_Med_7 - lookupLabel: 193 - originalLookupLabel: 193 - center: - x: -13.0 - y: -26.0 - z: 42.0 - color: '#c53afb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_8: - name: 7Networks_LH_SalVentAttn_Med_8 - lookupLabel: 194 - originalLookupLabel: 194 - center: - x: -6.0 - y: 3.0 - z: 50.0 - color: '#c53afc' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_9: - name: 7Networks_LH_SalVentAttn_Med_9 - lookupLabel: 195 - originalLookupLabel: 195 - center: - x: -11.0 - y: -45.0 - z: 51.0 - color: '#c53afd' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_10: - name: 7Networks_LH_SalVentAttn_Med_10 - lookupLabel: 196 - originalLookupLabel: 196 - center: - x: -12.0 - y: -35.0 - z: 48.0 - color: '#c53afe' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_11: - name: 7Networks_LH_SalVentAttn_Med_11 - lookupLabel: 197 - originalLookupLabel: 197 - center: - x: -4.0 - y: -51.0 - z: 54.0 - color: '#c53aff' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_12: - name: 7Networks_LH_SalVentAttn_Med_12 - lookupLabel: 198 - originalLookupLabel: 198 - center: - x: -4.0 - y: 3.0 - z: 60.0 - color: '#c233fa' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_13: - name: 7Networks_LH_SalVentAttn_Med_13 - lookupLabel: 199 - originalLookupLabel: 199 - center: - x: -9.0 - y: -49.0 - z: 61.0 - color: '#c234f3' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_14: - name: 7Networks_LH_SalVentAttn_Med_14 - lookupLabel: 200 - originalLookupLabel: 200 - center: - x: -17.0 - y: 4.0 - z: 70.0 - color: '#c234f4' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_15: - name: 7Networks_LH_SalVentAttn_Med_15 - lookupLabel: 201 - originalLookupLabel: 201 - center: - x: -8.0 - y: -3.0 - z: 71.0 - color: '#c234f5' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_Limbic_OFC_1: - name: 7Networks_LH_Limbic_OFC_1 - lookupLabel: 202 - originalLookupLabel: 202 - center: - x: -13.0 - y: 20.0 - z: -19.0 - color: '#dcf8a1' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_2: - name: 7Networks_LH_Limbic_OFC_2 - lookupLabel: 203 - originalLookupLabel: 203 - center: - x: -23.0 - y: 14.0 - z: -23.0 - color: '#dcf8a2' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_3: - name: 7Networks_LH_Limbic_OFC_3 - lookupLabel: 204 - originalLookupLabel: 204 - center: - x: -11.0 - y: 32.0 - z: -23.0 - color: '#dcf8a3' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_4: - name: 7Networks_LH_Limbic_OFC_4 - lookupLabel: 205 - originalLookupLabel: 205 - center: - x: -24.0 - y: 29.0 - z: -18.0 - color: '#dcf8a5' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_5: - name: 7Networks_LH_Limbic_OFC_5 - lookupLabel: 206 - originalLookupLabel: 206 - center: - x: -4.0 - y: 23.0 - z: -21.0 - color: '#dcf8a6' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_6: - name: 7Networks_LH_Limbic_OFC_6 - lookupLabel: 207 - originalLookupLabel: 207 - center: - x: -5.0 - y: 46.0 - z: -23.0 - color: '#dcf8a7' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_7: - name: 7Networks_LH_Limbic_OFC_7 - lookupLabel: 208 - originalLookupLabel: 208 - center: - x: -17.0 - y: 47.0 - z: -19.0 - color: '#dcf8a8' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_8: - name: 7Networks_LH_Limbic_OFC_8 - lookupLabel: 209 - originalLookupLabel: 209 - center: - x: -5.0 - y: 23.0 - z: -12.0 - color: '#dcf8a9' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_9: - name: 7Networks_LH_Limbic_OFC_9 - lookupLabel: 210 - originalLookupLabel: 210 - center: - x: -16.0 - y: 63.0 - z: -10.0 - color: '#dcf8aa' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_1: - name: 7Networks_LH_Limbic_TempPole_1 - lookupLabel: 211 - originalLookupLabel: 211 - center: - x: -31.0 - y: -2.0 - z: -44.0 - color: '#dcf8a0' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_2: - name: 7Networks_LH_Limbic_TempPole_2 - lookupLabel: 212 - originalLookupLabel: 212 - center: - x: -49.0 - y: -11.0 - z: -39.0 - color: '#dcf8a4' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_3: - name: 7Networks_LH_Limbic_TempPole_3 - lookupLabel: 213 - originalLookupLabel: 213 - center: - x: -29.0 - y: 11.0 - z: -40.0 - color: '#dcf8ab' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_4: - name: 7Networks_LH_Limbic_TempPole_4 - lookupLabel: 214 - originalLookupLabel: 214 - center: - x: -28.0 - y: -8.0 - z: -34.0 - color: '#dcf8ac' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_5: - name: 7Networks_LH_Limbic_TempPole_5 - lookupLabel: 215 - originalLookupLabel: 215 - center: - x: -38.0 - y: -16.0 - z: -31.0 - color: '#dcf9a5' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_6: - name: 7Networks_LH_Limbic_TempPole_6 - lookupLabel: 216 - originalLookupLabel: 216 - center: - x: -19.0 - y: -1.0 - z: -30.0 - color: '#dcf9a6' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_7: - name: 7Networks_LH_Limbic_TempPole_7 - lookupLabel: 217 - originalLookupLabel: 217 - center: - x: -47.0 - y: -29.0 - z: -25.0 - color: '#dcf9a7' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_8: - name: 7Networks_LH_Limbic_TempPole_8 - lookupLabel: 218 - originalLookupLabel: 218 - center: - x: -27.0 - y: 7.0 - z: -29.0 - color: '#dcf9a8' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_9: - name: 7Networks_LH_Limbic_TempPole_9 - lookupLabel: 219 - originalLookupLabel: 219 - center: - x: -21.0 - y: -15.0 - z: -29.0 - color: '#dcf9a9' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_10: - name: 7Networks_LH_Limbic_TempPole_10 - lookupLabel: 220 - originalLookupLabel: 220 - center: - x: -42.0 - y: 18.0 - z: -29.0 - color: '#dcf9aa' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_11: - name: 7Networks_LH_Limbic_TempPole_11 - lookupLabel: 221 - originalLookupLabel: 221 - center: - x: -32.0 - y: -24.0 - z: -25.0 - color: '#dcf9ab' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_12: - name: 7Networks_LH_Limbic_TempPole_12 - lookupLabel: 222 - originalLookupLabel: 222 - center: - x: -55.0 - y: -38.0 - z: -25.0 - color: '#dcf9ac' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_13: - name: 7Networks_LH_Limbic_TempPole_13 - lookupLabel: 223 - originalLookupLabel: 223 - center: - x: -38.0 - y: 9.0 - z: -25.0 - color: '#dcfaa5' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_14: - name: 7Networks_LH_Limbic_TempPole_14 - lookupLabel: 224 - originalLookupLabel: 224 - center: - x: -45.0 - y: 6.0 - z: -16.0 - color: '#dcfaa6' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Cont_Par_1: - name: 7Networks_LH_Cont_Par_1 - lookupLabel: 225 - originalLookupLabel: 225 - center: - x: -59.0 - y: -43.0 - z: 42.0 - color: '#e6941f' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_2: - name: 7Networks_LH_Cont_Par_2 - lookupLabel: 226 - originalLookupLabel: 226 - center: - x: -53.0 - y: -49.0 - z: 45.0 - color: '#e69420' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_3: - name: 7Networks_LH_Cont_Par_3 - lookupLabel: 227 - originalLookupLabel: 227 - center: - x: -31.0 - y: -71.0 - z: 50.0 - color: '#e69421' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_4: - name: 7Networks_LH_Cont_Par_4 - lookupLabel: 228 - originalLookupLabel: 228 - center: - x: -55.0 - y: -40.0 - z: 50.0 - color: '#e69423' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_5: - name: 7Networks_LH_Cont_Par_5 - lookupLabel: 229 - originalLookupLabel: 229 - center: - x: -43.0 - y: -54.0 - z: 52.0 - color: '#e69424' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_6: - name: 7Networks_LH_Cont_Par_6 - lookupLabel: 230 - originalLookupLabel: 230 - center: - x: -38.0 - y: -61.0 - z: 51.0 - color: '#e69425' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_7: - name: 7Networks_LH_Cont_Par_7 - lookupLabel: 231 - originalLookupLabel: 231 - center: - x: -45.0 - y: -44.0 - z: 49.0 - color: '#e69426' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_8: - name: 7Networks_LH_Cont_Par_8 - lookupLabel: 232 - originalLookupLabel: 232 - center: - x: -40.0 - y: -50.0 - z: 43.0 - color: '#e69427' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_9: - name: 7Networks_LH_Cont_Par_9 - lookupLabel: 233 - originalLookupLabel: 233 - center: - x: -31.0 - y: -60.0 - z: 46.0 - color: '#e69428' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Temp_1: - name: 7Networks_LH_Cont_Temp_1 - lookupLabel: 234 - originalLookupLabel: 234 - center: - x: -59.0 - y: -48.0 - z: -14.0 - color: '#e69429' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_OFC_1: - name: 7Networks_LH_Cont_OFC_1 - lookupLabel: 235 - originalLookupLabel: 235 - center: - x: -28.0 - y: 49.0 - z: -13.0 - color: '#e6951d' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_1: - name: 7Networks_LH_Cont_PFCl_1 - lookupLabel: 236 - originalLookupLabel: 236 - center: - x: -40.0 - y: 52.0 - z: -8.0 - color: '#e6951e' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_2: - name: 7Networks_LH_Cont_PFCl_2 - lookupLabel: 237 - originalLookupLabel: 237 - center: - x: -45.0 - y: 43.0 - z: 0.0 - color: '#e6951f' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_3: - name: 7Networks_LH_Cont_PFCl_3 - lookupLabel: 238 - originalLookupLabel: 238 - center: - x: -38.0 - y: 51.0 - z: 9.0 - color: '#e69520' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_4: - name: 7Networks_LH_Cont_PFCl_4 - lookupLabel: 239 - originalLookupLabel: 239 - center: - x: -49.0 - y: 33.0 - z: 12.0 - color: '#e69521' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_5: - name: 7Networks_LH_Cont_PFCl_5 - lookupLabel: 240 - originalLookupLabel: 240 - center: - x: -29.0 - y: 56.0 - z: 11.0 - color: '#e69522' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_6: - name: 7Networks_LH_Cont_PFCl_6 - lookupLabel: 241 - originalLookupLabel: 241 - center: - x: -49.0 - y: 10.0 - z: 13.0 - color: '#e69524' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_7: - name: 7Networks_LH_Cont_PFCl_7 - lookupLabel: 242 - originalLookupLabel: 242 - center: - x: -40.0 - y: 40.0 - z: 17.0 - color: '#e69525' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_8: - name: 7Networks_LH_Cont_PFCl_8 - lookupLabel: 243 - originalLookupLabel: 243 - center: - x: -49.0 - y: 19.0 - z: 23.0 - color: '#e69526' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_9: - name: 7Networks_LH_Cont_PFCl_9 - lookupLabel: 244 - originalLookupLabel: 244 - center: - x: -48.0 - y: 6.0 - z: 22.0 - color: '#e69527' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_10: - name: 7Networks_LH_Cont_PFCl_10 - lookupLabel: 245 - originalLookupLabel: 245 - center: - x: -44.0 - y: 26.0 - z: 26.0 - color: '#e69528' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_11: - name: 7Networks_LH_Cont_PFCl_11 - lookupLabel: 246 - originalLookupLabel: 246 - center: - x: -43.0 - y: 37.0 - z: 29.0 - color: '#e69529' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_12: - name: 7Networks_LH_Cont_PFCl_12 - lookupLabel: 247 - originalLookupLabel: 247 - center: - x: -37.0 - y: 15.0 - z: 28.0 - color: '#e6952a' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_13: - name: 7Networks_LH_Cont_PFCl_13 - lookupLabel: 248 - originalLookupLabel: 248 - center: - x: -45.0 - y: 21.0 - z: 35.0 - color: '#e69623' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_14: - name: 7Networks_LH_Cont_PFCl_14 - lookupLabel: 249 - originalLookupLabel: 249 - center: - x: -35.0 - y: 32.0 - z: 38.0 - color: '#e69624' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_15: - name: 7Networks_LH_Cont_PFCl_15 - lookupLabel: 250 - originalLookupLabel: 250 - center: - x: -40.0 - y: 7.0 - z: 34.0 - color: '#e69625' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCv_1: - name: 7Networks_LH_Cont_PFCv_1 - lookupLabel: 251 - originalLookupLabel: 251 - center: - x: -36.0 - y: 14.0 - z: -9.0 - color: '#e79424' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCv_2: - name: 7Networks_LH_Cont_PFCv_2 - lookupLabel: 252 - originalLookupLabel: 252 - center: - x: -28.0 - y: 22.0 - z: -7.0 - color: '#e79425' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCv_3: - name: 7Networks_LH_Cont_PFCv_3 - lookupLabel: 253 - originalLookupLabel: 253 - center: - x: -33.0 - y: 21.0 - z: -1.0 - color: '#e79426' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_pCun_1: - name: 7Networks_LH_Cont_pCun_1 - lookupLabel: 254 - originalLookupLabel: 254 - center: - x: -9.0 - y: -75.0 - z: 42.0 - color: '#e79523' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_pCun_2: - name: 7Networks_LH_Cont_pCun_2 - lookupLabel: 255 - originalLookupLabel: 255 - center: - x: -4.0 - y: -73.0 - z: 52.0 - color: '#e79524' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_pCun_3: - name: 7Networks_LH_Cont_pCun_3 - lookupLabel: 256 - originalLookupLabel: 256 - center: - x: -5.0 - y: -62.0 - z: 52.0 - color: '#e79525' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_1: - name: 7Networks_LH_Cont_Cing_1 - lookupLabel: 257 - originalLookupLabel: 257 - center: - x: -3.0 - y: 17.0 - z: 24.0 - color: '#e79521' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCmp_1: - name: 7Networks_LH_Cont_PFCmp_1 - lookupLabel: 258 - originalLookupLabel: 258 - center: - x: -7.0 - y: 31.0 - z: 25.0 - color: '#e79522' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_2: - name: 7Networks_LH_Cont_Cing_2 - lookupLabel: 259 - originalLookupLabel: 259 - center: - x: -5.0 - y: -26.0 - z: 28.0 - color: '#e79526' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_3: - name: 7Networks_LH_Cont_Cing_3 - lookupLabel: 260 - originalLookupLabel: 260 - center: - x: -3.0 - y: 3.0 - z: 30.0 - color: '#e79527' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_4: - name: 7Networks_LH_Cont_Cing_4 - lookupLabel: 261 - originalLookupLabel: 261 - center: - x: -4.0 - y: -12.0 - z: 30.0 - color: '#e79528' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCmp_2: - name: 7Networks_LH_Cont_PFCmp_2 - lookupLabel: 262 - originalLookupLabel: 262 - center: - x: -4.0 - y: 32.0 - z: 35.0 - color: '#e79529' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCmp_3: - name: 7Networks_LH_Cont_PFCmp_3 - lookupLabel: 263 - originalLookupLabel: 263 - center: - x: -4.0 - y: 28.0 - z: 47.0 - color: '#e7952a' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Default_Temp_1: - name: 7Networks_LH_Default_Temp_1 - lookupLabel: 264 - originalLookupLabel: 264 - center: - x: -49.0 - y: 2.0 - z: -35.0 - color: '#cd3d4b' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_2: - name: 7Networks_LH_Default_Temp_2 - lookupLabel: 265 - originalLookupLabel: 265 - center: - x: -59.0 - y: -23.0 - z: -27.0 - color: '#cd3d4c' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_3: - name: 7Networks_LH_Default_Temp_3 - lookupLabel: 266 - originalLookupLabel: 266 - center: - x: -61.0 - y: -16.0 - z: -21.0 - color: '#cd3d4d' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_4: - name: 7Networks_LH_Default_Temp_4 - lookupLabel: 267 - originalLookupLabel: 267 - center: - x: -52.0 - y: 6.0 - z: -22.0 - color: '#cd3d4e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_5: - name: 7Networks_LH_Default_Temp_5 - lookupLabel: 268 - originalLookupLabel: 268 - center: - x: -61.0 - y: -36.0 - z: -16.0 - color: '#cd3d4f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_6: - name: 7Networks_LH_Default_Temp_6 - lookupLabel: 269 - originalLookupLabel: 269 - center: - x: -59.0 - y: -9.0 - z: -14.0 - color: '#cd3e48' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_7: - name: 7Networks_LH_Default_Temp_7 - lookupLabel: 270 - originalLookupLabel: 270 - center: - x: -65.0 - y: -26.0 - z: -9.0 - color: '#cd3e49' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_8: - name: 7Networks_LH_Default_Temp_8 - lookupLabel: 271 - originalLookupLabel: 271 - center: - x: -53.0 - y: -3.0 - z: -11.0 - color: '#cd3e4a' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_9: - name: 7Networks_LH_Default_Temp_9 - lookupLabel: 272 - originalLookupLabel: 272 - center: - x: -63.0 - y: -44.0 - z: -7.0 - color: '#cd3e4b' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_10: - name: 7Networks_LH_Default_Temp_10 - lookupLabel: 273 - originalLookupLabel: 273 - center: - x: -52.0 - y: -22.0 - z: -7.0 - color: '#cd3e4c' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_11: - name: 7Networks_LH_Default_Temp_11 - lookupLabel: 274 - originalLookupLabel: 274 - center: - x: -61.0 - y: -35.0 - z: -2.0 - color: '#cd3e4d' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_12: - name: 7Networks_LH_Default_Temp_12 - lookupLabel: 275 - originalLookupLabel: 275 - center: - x: -59.0 - y: -13.0 - z: -4.0 - color: '#cd3e4e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_13: - name: 7Networks_LH_Default_Temp_13 - lookupLabel: 276 - originalLookupLabel: 276 - center: - x: -51.0 - y: -35.0 - z: 0.0 - color: '#cd3e50' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_14: - name: 7Networks_LH_Default_Temp_14 - lookupLabel: 277 - originalLookupLabel: 277 - center: - x: -63.0 - y: -50.0 - z: 4.0 - color: '#cd3e51' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_15: - name: 7Networks_LH_Default_Temp_15 - lookupLabel: 278 - originalLookupLabel: 278 - center: - x: -62.0 - y: -25.0 - z: 2.0 - color: '#cd3e52' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_16: - name: 7Networks_LH_Default_Temp_16 - lookupLabel: 279 - originalLookupLabel: 279 - center: - x: -52.0 - y: -44.0 - z: 6.0 - color: '#cd3e53' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_1: - name: 7Networks_LH_Default_Par_1 - lookupLabel: 280 - originalLookupLabel: 280 - center: - x: -46.0 - y: -50.0 - z: 14.0 - color: '#cd3e54' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_2: - name: 7Networks_LH_Default_Par_2 - lookupLabel: 281 - originalLookupLabel: 281 - center: - x: -59.0 - y: -49.0 - z: 15.0 - color: '#cd3e55' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_3: - name: 7Networks_LH_Default_Par_3 - lookupLabel: 282 - originalLookupLabel: 282 - center: - x: -43.0 - y: -73.0 - z: 24.0 - color: '#cd3e56' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_4: - name: 7Networks_LH_Default_Par_4 - lookupLabel: 283 - originalLookupLabel: 283 - center: - x: -45.0 - y: -62.0 - z: 22.0 - color: '#cd3f4f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_5: - name: 7Networks_LH_Default_Par_5 - lookupLabel: 284 - originalLookupLabel: 284 - center: - x: -48.0 - y: -53.0 - z: 24.0 - color: '#cd3f50' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_6: - name: 7Networks_LH_Default_Par_6 - lookupLabel: 285 - originalLookupLabel: 285 - center: - x: -48.0 - y: -69.0 - z: 32.0 - color: '#cd3f51' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_7: - name: 7Networks_LH_Default_Par_7 - lookupLabel: 286 - originalLookupLabel: 286 - center: - x: -60.0 - y: -53.0 - z: 29.0 - color: '#cd3f52' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_8: - name: 7Networks_LH_Default_Par_8 - lookupLabel: 287 - originalLookupLabel: 287 - center: - x: -47.0 - y: -60.0 - z: 33.0 - color: '#cd3f53' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_9: - name: 7Networks_LH_Default_Par_9 - lookupLabel: 288 - originalLookupLabel: 288 - center: - x: -55.0 - y: -56.0 - z: 34.0 - color: '#cd3f54' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_10: - name: 7Networks_LH_Default_Par_10 - lookupLabel: 289 - originalLookupLabel: 289 - center: - x: -38.0 - y: -76.0 - z: 43.0 - color: '#cd3f55' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_11: - name: 7Networks_LH_Default_Par_11 - lookupLabel: 290 - originalLookupLabel: 290 - center: - x: -44.0 - y: -66.0 - z: 46.0 - color: '#cd3f56' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_12: - name: 7Networks_LH_Default_Par_12 - lookupLabel: 291 - originalLookupLabel: 291 - center: - x: -51.0 - y: -58.0 - z: 47.0 - color: '#cd404f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_1: - name: 7Networks_LH_Default_PFC_1 - lookupLabel: 292 - originalLookupLabel: 292 - center: - x: -28.0 - y: 17.0 - z: -16.0 - color: '#cd3e47' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_2: - name: 7Networks_LH_Default_PFC_2 - lookupLabel: 293 - originalLookupLabel: 293 - center: - x: -35.0 - y: 36.0 - z: -12.0 - color: '#cd3f47' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_3: - name: 7Networks_LH_Default_PFC_3 - lookupLabel: 294 - originalLookupLabel: 294 - center: - x: -38.0 - y: 24.0 - z: -15.0 - color: '#cd3f48' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_4: - name: 7Networks_LH_Default_PFC_4 - lookupLabel: 295 - originalLookupLabel: 295 - center: - x: -44.0 - y: 37.0 - z: -17.0 - color: '#cd3f49' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_5: - name: 7Networks_LH_Default_PFC_5 - lookupLabel: 296 - originalLookupLabel: 296 - center: - x: -5.0 - y: 55.0 - z: -11.0 - color: '#cd3f4a' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_6: - name: 7Networks_LH_Default_PFC_6 - lookupLabel: 297 - originalLookupLabel: 297 - center: - x: -6.0 - y: 38.0 - z: -8.0 - color: '#cd3f4b' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_7: - name: 7Networks_LH_Default_PFC_7 - lookupLabel: 298 - originalLookupLabel: 298 - center: - x: -4.0 - y: 24.0 - z: -5.0 - color: '#cd3f4c' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_8: - name: 7Networks_LH_Default_PFC_8 - lookupLabel: 299 - originalLookupLabel: 299 - center: - x: -47.0 - y: 32.0 - z: -8.0 - color: '#cd3f4d' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_9: - name: 7Networks_LH_Default_PFC_9 - lookupLabel: 300 - originalLookupLabel: 300 - center: - x: -28.0 - y: 58.0 - z: -2.0 - color: '#cd404e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_10: - name: 7Networks_LH_Default_PFC_10 - lookupLabel: 301 - originalLookupLabel: 301 - center: - x: -14.0 - y: 68.0 - z: 1.0 - color: '#cd4050' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_11: - name: 7Networks_LH_Default_PFC_11 - lookupLabel: 302 - originalLookupLabel: 302 - center: - x: -48.0 - y: 27.0 - z: 1.0 - color: '#cd4051' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_12: - name: 7Networks_LH_Default_PFC_12 - lookupLabel: 303 - originalLookupLabel: 303 - center: - x: -6.0 - y: 45.0 - z: 3.0 - color: '#cd4052' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_13: - name: 7Networks_LH_Default_PFC_13 - lookupLabel: 304 - originalLookupLabel: 304 - center: - x: -6.0 - y: 59.0 - z: 7.0 - color: '#cd4053' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_14: - name: 7Networks_LH_Default_PFC_14 - lookupLabel: 305 - originalLookupLabel: 305 - center: - x: -54.0 - y: 19.0 - z: 11.0 - color: '#cd4054' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_15: - name: 7Networks_LH_Default_PFC_15 - lookupLabel: 306 - originalLookupLabel: 306 - center: - x: -19.0 - y: 65.0 - z: 11.0 - color: '#cd4055' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_16: - name: 7Networks_LH_Default_PFC_16 - lookupLabel: 307 - originalLookupLabel: 307 - center: - x: -3.0 - y: 32.0 - z: 14.0 - color: '#cd414e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_17: - name: 7Networks_LH_Default_PFC_17 - lookupLabel: 308 - originalLookupLabel: 308 - center: - x: -7.0 - y: 42.0 - z: 15.0 - color: '#cd414f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_18: - name: 7Networks_LH_Default_PFC_18 - lookupLabel: 309 - originalLookupLabel: 309 - center: - x: -6.0 - y: 65.0 - z: 19.0 - color: '#cd4150' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_19: - name: 7Networks_LH_Default_PFC_19 - lookupLabel: 310 - originalLookupLabel: 310 - center: - x: -5.0 - y: 51.0 - z: 22.0 - color: '#cd4151' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_20: - name: 7Networks_LH_Default_PFC_20 - lookupLabel: 311 - originalLookupLabel: 311 - center: - x: -22.0 - y: 54.0 - z: 27.0 - color: '#cd4152' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_21: - name: 7Networks_LH_Default_PFC_21 - lookupLabel: 312 - originalLookupLabel: 312 - center: - x: -14.0 - y: 56.0 - z: 33.0 - color: '#cd4153' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_22: - name: 7Networks_LH_Default_PFC_22 - lookupLabel: 313 - originalLookupLabel: 313 - center: - x: -4.0 - y: 50.0 - z: 37.0 - color: '#cd4154' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_23: - name: 7Networks_LH_Default_PFC_23 - lookupLabel: 314 - originalLookupLabel: 314 - center: - x: -20.0 - y: 42.0 - z: 42.0 - color: '#cd4155' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_24: - name: 7Networks_LH_Default_PFC_24 - lookupLabel: 315 - originalLookupLabel: 315 - center: - x: -28.0 - y: 29.0 - z: 47.0 - color: '#cd424e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_25: - name: 7Networks_LH_Default_PFC_25 - lookupLabel: 316 - originalLookupLabel: 316 - center: - x: -41.0 - y: 22.0 - z: 46.0 - color: '#cd424f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_26: - name: 7Networks_LH_Default_PFC_26 - lookupLabel: 317 - originalLookupLabel: 317 - center: - x: -43.0 - y: 12.0 - z: 42.0 - color: '#cd4250' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_27: - name: 7Networks_LH_Default_PFC_27 - lookupLabel: 318 - originalLookupLabel: 318 - center: - x: -23.0 - y: 25.0 - z: 41.0 - color: '#cd4251' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_28: - name: 7Networks_LH_Default_PFC_28 - lookupLabel: 319 - originalLookupLabel: 319 - center: - x: -8.0 - y: 43.0 - z: 52.0 - color: '#cd4252' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_29: - name: 7Networks_LH_Default_PFC_29 - lookupLabel: 320 - originalLookupLabel: 320 - center: - x: -42.0 - y: 6.0 - z: 49.0 - color: '#cd4253' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_30: - name: 7Networks_LH_Default_PFC_30 - lookupLabel: 321 - originalLookupLabel: 321 - center: - x: -19.0 - y: 33.0 - z: 51.0 - color: '#cd4254' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_31: - name: 7Networks_LH_Default_PFC_31 - lookupLabel: 322 - originalLookupLabel: 322 - center: - x: -37.0 - y: 12.0 - z: 57.0 - color: '#cd4255' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_32: - name: 7Networks_LH_Default_PFC_32 - lookupLabel: 323 - originalLookupLabel: 323 - center: - x: -29.0 - y: 17.0 - z: 55.0 - color: '#cd434e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_33: - name: 7Networks_LH_Default_PFC_33 - lookupLabel: 324 - originalLookupLabel: 324 - center: - x: -23.0 - y: 17.0 - z: 52.0 - color: '#cd434f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_34: - name: 7Networks_LH_Default_PFC_34 - lookupLabel: 325 - originalLookupLabel: 325 - center: - x: -10.0 - y: 27.0 - z: 60.0 - color: '#cd4350' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_35: - name: 7Networks_LH_Default_PFC_35 - lookupLabel: 326 - originalLookupLabel: 326 - center: - x: -4.0 - y: 13.0 - z: 61.0 - color: '#cd4351' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_36: - name: 7Networks_LH_Default_PFC_36 - lookupLabel: 327 - originalLookupLabel: 327 - center: - x: -17.0 - y: 17.0 - z: 64.0 - color: '#cd4352' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_37: - name: 7Networks_LH_Default_PFC_37 - lookupLabel: 328 - originalLookupLabel: 328 - center: - x: -9.0 - y: 10.0 - z: 68.0 - color: '#cd4353' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_1: - name: 7Networks_LH_Default_pCunPCC_1 - lookupLabel: 329 - originalLookupLabel: 329 - center: - x: -10.0 - y: -52.0 - z: 8.0 - color: '#cd3e4f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_2: - name: 7Networks_LH_Default_pCunPCC_2 - lookupLabel: 330 - originalLookupLabel: 330 - center: - x: -14.0 - y: -58.0 - z: 16.0 - color: '#cd3f4e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_3: - name: 7Networks_LH_Default_pCunPCC_3 - lookupLabel: 331 - originalLookupLabel: 331 - center: - x: -6.0 - y: -47.0 - z: 15.0 - color: '#cd4056' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_4: - name: 7Networks_LH_Default_pCunPCC_4 - lookupLabel: 332 - originalLookupLabel: 332 - center: - x: -5.0 - y: -58.0 - z: 12.0 - color: '#cd4156' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_5: - name: 7Networks_LH_Default_pCunPCC_5 - lookupLabel: 333 - originalLookupLabel: 333 - center: - x: -8.0 - y: -62.0 - z: 19.0 - color: '#cd4256' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_6: - name: 7Networks_LH_Default_pCunPCC_6 - lookupLabel: 334 - originalLookupLabel: 334 - center: - x: -16.0 - y: -64.0 - z: 23.0 - color: '#cd4354' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_7: - name: 7Networks_LH_Default_pCunPCC_7 - lookupLabel: 335 - originalLookupLabel: 335 - center: - x: -4.0 - y: -53.0 - z: 20.0 - color: '#cd4355' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_8: - name: 7Networks_LH_Default_pCunPCC_8 - lookupLabel: 336 - originalLookupLabel: 336 - center: - x: -7.0 - y: -40.0 - z: 24.0 - color: '#cd4356' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_9: - name: 7Networks_LH_Default_pCunPCC_9 - lookupLabel: 337 - originalLookupLabel: 337 - center: - x: -4.0 - y: -66.0 - z: 24.0 - color: '#cd444f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_10: - name: 7Networks_LH_Default_pCunPCC_10 - lookupLabel: 338 - originalLookupLabel: 338 - center: - x: -7.0 - y: -56.0 - z: 27.0 - color: '#cd4450' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_11: - name: 7Networks_LH_Default_pCunPCC_11 - lookupLabel: 339 - originalLookupLabel: 339 - center: - x: -11.0 - y: -70.0 - z: 31.0 - color: '#cd4451' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_12: - name: 7Networks_LH_Default_pCunPCC_12 - lookupLabel: 340 - originalLookupLabel: 340 - center: - x: -5.0 - y: -43.0 - z: 30.0 - color: '#cd4452' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_13: - name: 7Networks_LH_Default_pCunPCC_13 - lookupLabel: 341 - originalLookupLabel: 341 - center: - x: -3.0 - y: -33.0 - z: 30.0 - color: '#cd4453' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_14: - name: 7Networks_LH_Default_pCunPCC_14 - lookupLabel: 342 - originalLookupLabel: 342 - center: - x: -4.0 - y: -62.0 - z: 33.0 - color: '#cd4454' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_15: - name: 7Networks_LH_Default_pCunPCC_15 - lookupLabel: 343 - originalLookupLabel: 343 - center: - x: -2.0 - y: -17.0 - z: 36.0 - color: '#cd4455' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_16: - name: 7Networks_LH_Default_pCunPCC_16 - lookupLabel: 344 - originalLookupLabel: 344 - center: - x: -4.0 - y: -32.0 - z: 38.0 - color: '#cd4456' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_17: - name: 7Networks_LH_Default_pCunPCC_17 - lookupLabel: 345 - originalLookupLabel: 345 - center: - x: -12.0 - y: -50.0 - z: 35.0 - color: '#cd454f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_18: - name: 7Networks_LH_Default_pCunPCC_18 - lookupLabel: 346 - originalLookupLabel: 346 - center: - x: -6.0 - y: -41.0 - z: 39.0 - color: '#cd4550' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_19: - name: 7Networks_LH_Default_pCunPCC_19 - lookupLabel: 347 - originalLookupLabel: 347 - center: - x: -3.0 - y: -68.0 - z: 42.0 - color: '#cd4551' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_20: - name: 7Networks_LH_Default_pCunPCC_20 - lookupLabel: 348 - originalLookupLabel: 348 - center: - x: -5.0 - y: -57.0 - z: 43.0 - color: '#cd4552' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_21: - name: 7Networks_LH_Default_pCunPCC_21 - lookupLabel: 349 - originalLookupLabel: 349 - center: - x: -7.0 - y: -49.0 - z: 44.0 - color: '#cd4553' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PHC_1: - name: 7Networks_LH_Default_PHC_1 - lookupLabel: 350 - originalLookupLabel: 350 - center: - x: -20.0 - y: -24.0 - z: -22.0 - color: '#ce3e4f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_RH_Vis_1: - name: 7Networks_RH_Vis_1 - lookupLabel: 351 - originalLookupLabel: 351 - center: - x: 32.0 - y: -36.0 - z: -22.0 - color: '#780f82' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_2: - name: 7Networks_RH_Vis_2 - lookupLabel: 352 - originalLookupLabel: 352 - center: - x: 39.0 - y: -46.0 - z: -21.0 - color: '#780f83' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_3: - name: 7Networks_RH_Vis_3 - lookupLabel: 353 - originalLookupLabel: 353 - center: - x: 32.0 - y: -30.0 - z: -18.0 - color: '#780f84' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_4: - name: 7Networks_RH_Vis_4 - lookupLabel: 354 - originalLookupLabel: 354 - center: - x: 30.0 - y: -53.0 - z: -16.0 - color: '#780f85' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_5: - name: 7Networks_RH_Vis_5 - lookupLabel: 355 - originalLookupLabel: 355 - center: - x: 47.0 - y: -52.0 - z: -17.0 - color: '#780f86' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_6: - name: 7Networks_RH_Vis_6 - lookupLabel: 356 - originalLookupLabel: 356 - center: - x: 37.0 - y: -60.0 - z: -16.0 - color: '#780f87' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_7: - name: 7Networks_RH_Vis_7 - lookupLabel: 357 - originalLookupLabel: 357 - center: - x: 29.0 - y: -54.0 - z: -9.0 - color: '#781080' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_8: - name: 7Networks_RH_Vis_8 - lookupLabel: 358 - originalLookupLabel: 358 - center: - x: 22.0 - y: -32.0 - z: -16.0 - color: '#781081' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_9: - name: 7Networks_RH_Vis_9 - lookupLabel: 359 - originalLookupLabel: 359 - center: - x: 27.0 - y: -75.0 - z: -11.0 - color: '#781082' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_10: - name: 7Networks_RH_Vis_10 - lookupLabel: 360 - originalLookupLabel: 360 - center: - x: 38.0 - y: -75.0 - z: -16.0 - color: '#781083' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_11: - name: 7Networks_RH_Vis_11 - lookupLabel: 361 - originalLookupLabel: 361 - center: - x: 48.0 - y: -64.0 - z: -12.0 - color: '#781084' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_12: - name: 7Networks_RH_Vis_12 - lookupLabel: 362 - originalLookupLabel: 362 - center: - x: 25.0 - y: -47.0 - z: -7.0 - color: '#781085' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_13: - name: 7Networks_RH_Vis_13 - lookupLabel: 363 - originalLookupLabel: 363 - center: - x: 20.0 - y: -71.0 - z: -9.0 - color: '#781086' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_14: - name: 7Networks_RH_Vis_14 - lookupLabel: 364 - originalLookupLabel: 364 - center: - x: 20.0 - y: -88.0 - z: -12.0 - color: '#781087' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_15: - name: 7Networks_RH_Vis_15 - lookupLabel: 365 - originalLookupLabel: 365 - center: - x: 18.0 - y: -64.0 - z: -7.0 - color: '#781180' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_16: - name: 7Networks_RH_Vis_16 - lookupLabel: 366 - originalLookupLabel: 366 - center: - x: 41.0 - y: -83.0 - z: -16.0 - color: '#781181' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_17: - name: 7Networks_RH_Vis_17 - lookupLabel: 367 - originalLookupLabel: 367 - center: - x: 18.0 - y: -38.0 - z: -12.0 - color: '#781182' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_18: - name: 7Networks_RH_Vis_18 - lookupLabel: 368 - originalLookupLabel: 368 - center: - x: 13.0 - y: -81.0 - z: -14.0 - color: '#781183' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_19: - name: 7Networks_RH_Vis_19 - lookupLabel: 369 - originalLookupLabel: 369 - center: - x: 14.0 - y: -56.0 - z: -5.0 - color: '#781184' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_20: - name: 7Networks_RH_Vis_20 - lookupLabel: 370 - originalLookupLabel: 370 - center: - x: 8.0 - y: -72.0 - z: -4.0 - color: '#781185' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_21: - name: 7Networks_RH_Vis_21 - lookupLabel: 371 - originalLookupLabel: 371 - center: - x: 50.0 - y: -72.0 - z: -7.0 - color: '#781186' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_22: - name: 7Networks_RH_Vis_22 - lookupLabel: 372 - originalLookupLabel: 372 - center: - x: 26.0 - y: -96.0 - z: -12.0 - color: '#781187' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_23: - name: 7Networks_RH_Vis_23 - lookupLabel: 373 - originalLookupLabel: 373 - center: - x: 5.0 - y: -87.0 - z: -9.0 - color: '#781280' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_24: - name: 7Networks_RH_Vis_24 - lookupLabel: 374 - originalLookupLabel: 374 - center: - x: 16.0 - y: -40.0 - z: -5.0 - color: '#781281' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_25: - name: 7Networks_RH_Vis_25 - lookupLabel: 375 - originalLookupLabel: 375 - center: - x: 13.0 - y: -96.0 - z: -9.0 - color: '#781282' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_26: - name: 7Networks_RH_Vis_26 - lookupLabel: 376 - originalLookupLabel: 376 - center: - x: 40.0 - y: -88.0 - z: -6.0 - color: '#781283' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_27: - name: 7Networks_RH_Vis_27 - lookupLabel: 377 - originalLookupLabel: 377 - center: - x: 8.0 - y: -59.0 - z: 4.0 - color: '#781284' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_28: - name: 7Networks_RH_Vis_28 - lookupLabel: 378 - originalLookupLabel: 378 - center: - x: 19.0 - y: -50.0 - z: 0.0 - color: '#781285' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_29: - name: 7Networks_RH_Vis_29 - lookupLabel: 379 - originalLookupLabel: 379 - center: - x: 3.0 - y: -72.0 - z: 5.0 - color: '#781286' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_30: - name: 7Networks_RH_Vis_30 - lookupLabel: 380 - originalLookupLabel: 380 - center: - x: 46.0 - y: -63.0 - z: 2.0 - color: '#781288' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_31: - name: 7Networks_RH_Vis_31 - lookupLabel: 381 - originalLookupLabel: 381 - center: - x: 14.0 - y: -62.0 - z: 5.0 - color: '#781289' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_32: - name: 7Networks_RH_Vis_32 - lookupLabel: 382 - originalLookupLabel: 382 - center: - x: 51.0 - y: -72.0 - z: 1.0 - color: '#78128a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_33: - name: 7Networks_RH_Vis_33 - lookupLabel: 383 - originalLookupLabel: 383 - center: - x: 13.0 - y: -44.0 - z: 3.0 - color: '#78128b' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_34: - name: 7Networks_RH_Vis_34 - lookupLabel: 384 - originalLookupLabel: 384 - center: - x: 26.0 - y: -98.0 - z: 1.0 - color: '#78128c' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_35: - name: 7Networks_RH_Vis_35 - lookupLabel: 385 - originalLookupLabel: 385 - center: - x: 35.0 - y: -89.0 - z: 0.0 - color: '#78128d' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_36: - name: 7Networks_RH_Vis_36 - lookupLabel: 386 - originalLookupLabel: 386 - center: - x: 13.0 - y: -102.0 - z: 4.0 - color: '#78128e' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_37: - name: 7Networks_RH_Vis_37 - lookupLabel: 387 - originalLookupLabel: 387 - center: - x: 9.0 - y: -93.0 - z: 2.0 - color: '#781387' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_38: - name: 7Networks_RH_Vis_38 - lookupLabel: 388 - originalLookupLabel: 388 - center: - x: 24.0 - y: -55.0 - z: 5.0 - color: '#781388' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_39: - name: 7Networks_RH_Vis_39 - lookupLabel: 389 - originalLookupLabel: 389 - center: - x: 44.0 - y: -80.0 - z: 3.0 - color: '#781389' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_40: - name: 7Networks_RH_Vis_40 - lookupLabel: 390 - originalLookupLabel: 390 - center: - x: 8.0 - y: -81.0 - z: 7.0 - color: '#78138a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_41: - name: 7Networks_RH_Vis_41 - lookupLabel: 391 - originalLookupLabel: 391 - center: - x: 12.0 - y: -70.0 - z: 11.0 - color: '#78138b' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_42: - name: 7Networks_RH_Vis_42 - lookupLabel: 392 - originalLookupLabel: 392 - center: - x: 50.0 - y: -66.0 - z: 10.0 - color: '#78138c' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_43: - name: 7Networks_RH_Vis_43 - lookupLabel: 393 - originalLookupLabel: 393 - center: - x: 22.0 - y: -62.0 - z: 9.0 - color: '#78138d' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_44: - name: 7Networks_RH_Vis_44 - lookupLabel: 394 - originalLookupLabel: 394 - center: - x: 24.0 - y: -97.0 - z: 13.0 - color: '#78138e' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_45: - name: 7Networks_RH_Vis_45 - lookupLabel: 395 - originalLookupLabel: 395 - center: - x: 34.0 - y: -88.0 - z: 7.0 - color: '#781487' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_46: - name: 7Networks_RH_Vis_46 - lookupLabel: 396 - originalLookupLabel: 396 - center: - x: 6.0 - y: -91.0 - z: 16.0 - color: '#781488' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_47: - name: 7Networks_RH_Vis_47 - lookupLabel: 397 - originalLookupLabel: 397 - center: - x: 14.0 - y: -95.0 - z: 18.0 - color: '#781489' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_48: - name: 7Networks_RH_Vis_48 - lookupLabel: 398 - originalLookupLabel: 398 - center: - x: 44.0 - y: -78.0 - z: 12.0 - color: '#78148a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_49: - name: 7Networks_RH_Vis_49 - lookupLabel: 399 - originalLookupLabel: 399 - center: - x: 15.0 - y: -64.0 - z: 17.0 - color: '#78148b' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_50: - name: 7Networks_RH_Vis_50 - lookupLabel: 400 - originalLookupLabel: 400 - center: - x: 29.0 - y: -88.0 - z: 18.0 - color: '#78148c' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_51: - name: 7Networks_RH_Vis_51 - lookupLabel: 401 - originalLookupLabel: 401 - center: - x: 5.0 - y: -77.0 - z: 24.0 - color: '#78148d' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_52: - name: 7Networks_RH_Vis_52 - lookupLabel: 402 - originalLookupLabel: 402 - center: - x: 21.0 - y: -60.0 - z: 22.0 - color: '#78148e' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_53: - name: 7Networks_RH_Vis_53 - lookupLabel: 403 - originalLookupLabel: 403 - center: - x: 16.0 - y: -72.0 - z: 25.0 - color: '#781587' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_54: - name: 7Networks_RH_Vis_54 - lookupLabel: 404 - originalLookupLabel: 404 - center: - x: 7.0 - y: -87.0 - z: 33.0 - color: '#781588' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_55: - name: 7Networks_RH_Vis_55 - lookupLabel: 405 - originalLookupLabel: 405 - center: - x: 18.0 - y: -89.0 - z: 27.0 - color: '#781589' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_56: - name: 7Networks_RH_Vis_56 - lookupLabel: 406 - originalLookupLabel: 406 - center: - x: 36.0 - y: -82.0 - z: 22.0 - color: '#78158a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_57: - name: 7Networks_RH_Vis_57 - lookupLabel: 407 - originalLookupLabel: 407 - center: - x: 28.0 - y: -82.0 - z: 29.0 - color: '#78158b' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_58: - name: 7Networks_RH_Vis_58 - lookupLabel: 408 - originalLookupLabel: 408 - center: - x: 14.0 - y: -79.0 - z: 36.0 - color: '#78158c' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_59: - name: 7Networks_RH_Vis_59 - lookupLabel: 409 - originalLookupLabel: 409 - center: - x: 33.0 - y: -72.0 - z: 24.0 - color: '#78158d' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_60: - name: 7Networks_RH_Vis_60 - lookupLabel: 410 - originalLookupLabel: 410 - center: - x: 19.0 - y: -86.0 - z: 40.0 - color: '#78158e' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_61: - name: 7Networks_RH_Vis_61 - lookupLabel: 411 - originalLookupLabel: 411 - center: - x: 21.0 - y: -80.0 - z: 47.0 - color: '#781687' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_62: - name: 7Networks_RH_Vis_62 - lookupLabel: 412 - originalLookupLabel: 412 - center: - x: 29.0 - y: -78.0 - z: 42.0 - color: '#781688' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_SomMot_1: - name: 7Networks_RH_SomMot_1 - lookupLabel: 413 - originalLookupLabel: 413 - center: - x: 53.0 - y: 5.0 - z: -6.0 - color: '#467faf' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_2: - name: 7Networks_RH_SomMot_2 - lookupLabel: 414 - originalLookupLabel: 414 - center: - x: 60.0 - y: -3.0 - z: -6.0 - color: '#467fb0' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_3: - name: 7Networks_RH_SomMot_3 - lookupLabel: 415 - originalLookupLabel: 415 - center: - x: 48.0 - y: -11.0 - z: -4.0 - color: '#467fb1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_4: - name: 7Networks_RH_SomMot_4 - lookupLabel: 416 - originalLookupLabel: 416 - center: - x: 66.0 - y: -9.0 - z: -3.0 - color: '#467fb2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_5: - name: 7Networks_RH_SomMot_5 - lookupLabel: 417 - originalLookupLabel: 417 - center: - x: 60.0 - y: -18.0 - z: -2.0 - color: '#467fb3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_6: - name: 7Networks_RH_SomMot_6 - lookupLabel: 418 - originalLookupLabel: 418 - center: - x: 53.0 - y: -14.0 - z: 5.0 - color: '#467fb4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_7: - name: 7Networks_RH_SomMot_7 - lookupLabel: 419 - originalLookupLabel: 419 - center: - x: 67.0 - y: -16.0 - z: 6.0 - color: '#467fb5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_8: - name: 7Networks_RH_SomMot_8 - lookupLabel: 420 - originalLookupLabel: 420 - center: - x: 39.0 - y: -20.0 - z: 3.0 - color: '#4680ae' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_9: - name: 7Networks_RH_SomMot_9 - lookupLabel: 421 - originalLookupLabel: 421 - center: - x: 37.0 - y: -10.0 - z: 12.0 - color: '#4680af' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_10: - name: 7Networks_RH_SomMot_10 - lookupLabel: 422 - originalLookupLabel: 422 - center: - x: 65.0 - y: -28.0 - z: 4.0 - color: '#4680b0' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_11: - name: 7Networks_RH_SomMot_11 - lookupLabel: 423 - originalLookupLabel: 423 - center: - x: 35.0 - y: -21.0 - z: 12.0 - color: '#4680b1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_12: - name: 7Networks_RH_SomMot_12 - lookupLabel: 424 - originalLookupLabel: 424 - center: - x: 40.0 - y: -4.0 - z: 15.0 - color: '#4680b2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_13: - name: 7Networks_RH_SomMot_13 - lookupLabel: 425 - originalLookupLabel: 425 - center: - x: 60.0 - y: -25.0 - z: 11.0 - color: '#4680b3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_14: - name: 7Networks_RH_SomMot_14 - lookupLabel: 426 - originalLookupLabel: 426 - center: - x: 40.0 - y: -28.0 - z: 13.0 - color: '#4680b4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_15: - name: 7Networks_RH_SomMot_15 - lookupLabel: 427 - originalLookupLabel: 427 - center: - x: 65.0 - y: -35.0 - z: 11.0 - color: '#4680b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_16: - name: 7Networks_RH_SomMot_16 - lookupLabel: 428 - originalLookupLabel: 428 - center: - x: 35.0 - y: -20.0 - z: 19.0 - color: '#4681ae' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_17: - name: 7Networks_RH_SomMot_17 - lookupLabel: 429 - originalLookupLabel: 429 - center: - x: 43.0 - y: -12.0 - z: 17.0 - color: '#4681af' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_18: - name: 7Networks_RH_SomMot_18 - lookupLabel: 430 - originalLookupLabel: 430 - center: - x: 51.0 - y: -10.0 - z: 13.0 - color: '#4681b0' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_19: - name: 7Networks_RH_SomMot_19 - lookupLabel: 431 - originalLookupLabel: 431 - center: - x: 41.0 - y: -29.0 - z: 20.0 - color: '#4681b1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_20: - name: 7Networks_RH_SomMot_20 - lookupLabel: 432 - originalLookupLabel: 432 - center: - x: 49.0 - y: -21.0 - z: 18.0 - color: '#4681b2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_21: - name: 7Networks_RH_SomMot_21 - lookupLabel: 433 - originalLookupLabel: 433 - center: - x: 62.0 - y: -2.0 - z: 11.0 - color: '#4681b3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_22: - name: 7Networks_RH_SomMot_22 - lookupLabel: 434 - originalLookupLabel: 434 - center: - x: 61.0 - y: -12.0 - z: 16.0 - color: '#4681b4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_23: - name: 7Networks_RH_SomMot_23 - lookupLabel: 435 - originalLookupLabel: 435 - center: - x: 61.0 - y: 2.0 - z: 23.0 - color: '#4681b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_24: - name: 7Networks_RH_SomMot_24 - lookupLabel: 436 - originalLookupLabel: 436 - center: - x: 65.0 - y: -6.0 - z: 24.0 - color: '#4682ae' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_25: - name: 7Networks_RH_SomMot_25 - lookupLabel: 437 - originalLookupLabel: 437 - center: - x: 56.0 - y: -6.0 - z: 26.0 - color: '#4682af' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_26: - name: 7Networks_RH_SomMot_26 - lookupLabel: 438 - originalLookupLabel: 438 - center: - x: 62.0 - y: -10.0 - z: 39.0 - color: '#4682b0' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_27: - name: 7Networks_RH_SomMot_27 - lookupLabel: 439 - originalLookupLabel: 439 - center: - x: 59.0 - y: 1.0 - z: 36.0 - color: '#4682b1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_28: - name: 7Networks_RH_SomMot_28 - lookupLabel: 440 - originalLookupLabel: 440 - center: - x: 54.0 - y: -10.0 - z: 38.0 - color: '#4682b2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_29: - name: 7Networks_RH_SomMot_29 - lookupLabel: 441 - originalLookupLabel: 441 - center: - x: 49.0 - y: -8.0 - z: 35.0 - color: '#4682b3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_30: - name: 7Networks_RH_SomMot_30 - lookupLabel: 442 - originalLookupLabel: 442 - center: - x: 54.0 - y: -17.0 - z: 42.0 - color: '#4682b4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_31: - name: 7Networks_RH_SomMot_31 - lookupLabel: 443 - originalLookupLabel: 443 - center: - x: 54.0 - y: -4.0 - z: 46.0 - color: '#4682b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_32: - name: 7Networks_RH_SomMot_32 - lookupLabel: 444 - originalLookupLabel: 444 - center: - x: 11.0 - y: -17.0 - z: 41.0 - color: '#4682b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_33: - name: 7Networks_RH_SomMot_33 - lookupLabel: 445 - originalLookupLabel: 445 - center: - x: 51.0 - y: -13.0 - z: 50.0 - color: '#4682b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_34: - name: 7Networks_RH_SomMot_34 - lookupLabel: 446 - originalLookupLabel: 446 - center: - x: 39.0 - y: -16.0 - z: 41.0 - color: '#4682b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_35: - name: 7Networks_RH_SomMot_35 - lookupLabel: 447 - originalLookupLabel: 447 - center: - x: 44.0 - y: -26.0 - z: 43.0 - color: '#4682ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_36: - name: 7Networks_RH_SomMot_36 - lookupLabel: 448 - originalLookupLabel: 448 - center: - x: 45.0 - y: -10.0 - z: 50.0 - color: '#4682bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_37: - name: 7Networks_RH_SomMot_37 - lookupLabel: 449 - originalLookupLabel: 449 - center: - x: 7.0 - y: -5.0 - z: 51.0 - color: '#4682bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_38: - name: 7Networks_RH_SomMot_38 - lookupLabel: 450 - originalLookupLabel: 450 - center: - x: 49.0 - y: -26.0 - z: 56.0 - color: '#4683b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_39: - name: 7Networks_RH_SomMot_39 - lookupLabel: 451 - originalLookupLabel: 451 - center: - x: 41.0 - y: -21.0 - z: 50.0 - color: '#4683b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_40: - name: 7Networks_RH_SomMot_40 - lookupLabel: 452 - originalLookupLabel: 452 - center: - x: 6.0 - y: -16.0 - z: 52.0 - color: '#4683b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_41: - name: 7Networks_RH_SomMot_41 - lookupLabel: 453 - originalLookupLabel: 453 - center: - x: 44.0 - y: -24.0 - z: 63.0 - color: '#4683b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_42: - name: 7Networks_RH_SomMot_42 - lookupLabel: 454 - originalLookupLabel: 454 - center: - x: 41.0 - y: -15.0 - z: 58.0 - color: '#4683b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_43: - name: 7Networks_RH_SomMot_43 - lookupLabel: 455 - originalLookupLabel: 455 - center: - x: 28.0 - y: -35.0 - z: 58.0 - color: '#4683ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_44: - name: 7Networks_RH_SomMot_44 - lookupLabel: 456 - originalLookupLabel: 456 - center: - x: 31.0 - y: -41.0 - z: 65.0 - color: '#4683bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_45: - name: 7Networks_RH_SomMot_45 - lookupLabel: 457 - originalLookupLabel: 457 - center: - x: 32.0 - y: -27.0 - z: 58.0 - color: '#4683bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_46: - name: 7Networks_RH_SomMot_46 - lookupLabel: 458 - originalLookupLabel: 458 - center: - x: 34.0 - y: -33.0 - z: 67.0 - color: '#4684b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_47: - name: 7Networks_RH_SomMot_47 - lookupLabel: 459 - originalLookupLabel: 459 - center: - x: 8.0 - y: -39.0 - z: 60.0 - color: '#4684b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_48: - name: 7Networks_RH_SomMot_48 - lookupLabel: 460 - originalLookupLabel: 460 - center: - x: 33.0 - y: -21.0 - z: 66.0 - color: '#4684b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_49: - name: 7Networks_RH_SomMot_49 - lookupLabel: 461 - originalLookupLabel: 461 - center: - x: 29.0 - y: -12.0 - z: 65.0 - color: '#4684b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_50: - name: 7Networks_RH_SomMot_50 - lookupLabel: 462 - originalLookupLabel: 462 - center: - x: 4.0 - y: -24.0 - z: 61.0 - color: '#4684b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_51: - name: 7Networks_RH_SomMot_51 - lookupLabel: 463 - originalLookupLabel: 463 - center: - x: 24.0 - y: -28.0 - z: 67.0 - color: '#4684ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_52: - name: 7Networks_RH_SomMot_52 - lookupLabel: 464 - originalLookupLabel: 464 - center: - x: 23.0 - y: -34.0 - z: 70.0 - color: '#4684bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_53: - name: 7Networks_RH_SomMot_53 - lookupLabel: 465 - originalLookupLabel: 465 - center: - x: 22.0 - y: -42.0 - z: 67.0 - color: '#4684bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_54: - name: 7Networks_RH_SomMot_54 - lookupLabel: 466 - originalLookupLabel: 466 - center: - x: 9.0 - y: -7.0 - z: 72.0 - color: '#4685b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_55: - name: 7Networks_RH_SomMot_55 - lookupLabel: 467 - originalLookupLabel: 467 - center: - x: 18.0 - y: -5.0 - z: 69.0 - color: '#4685b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_56: - name: 7Networks_RH_SomMot_56 - lookupLabel: 468 - originalLookupLabel: 468 - center: - x: 21.0 - y: -24.0 - z: 67.0 - color: '#4685b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_57: - name: 7Networks_RH_SomMot_57 - lookupLabel: 469 - originalLookupLabel: 469 - center: - x: 11.0 - y: -40.0 - z: 71.0 - color: '#4685b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_58: - name: 7Networks_RH_SomMot_58 - lookupLabel: 470 - originalLookupLabel: 470 - center: - x: 20.0 - y: -13.0 - z: 71.0 - color: '#4685b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_59: - name: 7Networks_RH_SomMot_59 - lookupLabel: 471 - originalLookupLabel: 471 - center: - x: 5.0 - y: -28.0 - z: 73.0 - color: '#4685ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_60: - name: 7Networks_RH_SomMot_60 - lookupLabel: 472 - originalLookupLabel: 472 - center: - x: 21.0 - y: -40.0 - z: 75.0 - color: '#4685bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_61: - name: 7Networks_RH_SomMot_61 - lookupLabel: 473 - originalLookupLabel: 473 - center: - x: 10.0 - y: -16.0 - z: 75.0 - color: '#4685bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_62: - name: 7Networks_RH_SomMot_62 - lookupLabel: 474 - originalLookupLabel: 474 - center: - x: 14.0 - y: -26.0 - z: 73.0 - color: '#4686b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_63: - name: 7Networks_RH_SomMot_63 - lookupLabel: 475 - originalLookupLabel: 475 - center: - x: 14.0 - y: -32.0 - z: 74.0 - color: '#4686b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_64: - name: 7Networks_RH_SomMot_64 - lookupLabel: 476 - originalLookupLabel: 476 - center: - x: 7.0 - y: -34.0 - z: 77.0 - color: '#4686b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_DorsAttn_Post_1: - name: 7Networks_RH_DorsAttn_Post_1 - lookupLabel: 477 - originalLookupLabel: 477 - center: - x: 47.0 - y: -37.0 - z: -21.0 - color: '#00750f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_2: - name: 7Networks_RH_DorsAttn_Post_2 - lookupLabel: 478 - originalLookupLabel: 478 - center: - x: 54.0 - y: -43.0 - z: -22.0 - color: '#007608' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_3: - name: 7Networks_RH_DorsAttn_Post_3 - lookupLabel: 479 - originalLookupLabel: 479 - center: - x: 57.0 - y: -53.0 - z: -16.0 - color: '#007609' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_4: - name: 7Networks_RH_DorsAttn_Post_4 - lookupLabel: 480 - originalLookupLabel: 480 - center: - x: 52.0 - y: -58.0 - z: -5.0 - color: '#00760a' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_5: - name: 7Networks_RH_DorsAttn_Post_5 - lookupLabel: 481 - originalLookupLabel: 481 - center: - x: 60.0 - y: -51.0 - z: -7.0 - color: '#00760b' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_6: - name: 7Networks_RH_DorsAttn_Post_6 - lookupLabel: 482 - originalLookupLabel: 482 - center: - x: 59.0 - y: -57.0 - z: 1.0 - color: '#00760c' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_7: - name: 7Networks_RH_DorsAttn_Post_7 - lookupLabel: 483 - originalLookupLabel: 483 - center: - x: 51.0 - y: -59.0 - z: 10.0 - color: '#00760d' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_8: - name: 7Networks_RH_DorsAttn_Post_8 - lookupLabel: 484 - originalLookupLabel: 484 - center: - x: 50.0 - y: -58.0 - z: 18.0 - color: '#00760e' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_9: - name: 7Networks_RH_DorsAttn_Post_9 - lookupLabel: 485 - originalLookupLabel: 485 - center: - x: 46.0 - y: -67.0 - z: 20.0 - color: '#00760f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_10: - name: 7Networks_RH_DorsAttn_Post_10 - lookupLabel: 486 - originalLookupLabel: 486 - center: - x: 43.0 - y: -81.0 - z: 23.0 - color: '#007708' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_11: - name: 7Networks_RH_DorsAttn_Post_11 - lookupLabel: 487 - originalLookupLabel: 487 - center: - x: 38.0 - y: -77.0 - z: 34.0 - color: '#007709' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_12: - name: 7Networks_RH_DorsAttn_Post_12 - lookupLabel: 488 - originalLookupLabel: 488 - center: - x: 57.0 - y: -15.0 - z: 33.0 - color: '#00770a' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_13: - name: 7Networks_RH_DorsAttn_Post_13 - lookupLabel: 489 - originalLookupLabel: 489 - center: - x: 30.0 - y: -67.0 - z: 33.0 - color: '#00770b' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_14: - name: 7Networks_RH_DorsAttn_Post_14 - lookupLabel: 490 - originalLookupLabel: 490 - center: - x: 33.0 - y: -69.0 - z: 42.0 - color: '#00770c' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_15: - name: 7Networks_RH_DorsAttn_Post_15 - lookupLabel: 491 - originalLookupLabel: 491 - center: - x: 57.0 - y: -23.0 - z: 44.0 - color: '#00770d' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_16: - name: 7Networks_RH_DorsAttn_Post_16 - lookupLabel: 492 - originalLookupLabel: 492 - center: - x: 13.0 - y: -78.0 - z: 46.0 - color: '#00770e' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_17: - name: 7Networks_RH_DorsAttn_Post_17 - lookupLabel: 493 - originalLookupLabel: 493 - center: - x: 48.0 - y: -29.0 - z: 43.0 - color: '#007710' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_18: - name: 7Networks_RH_DorsAttn_Post_18 - lookupLabel: 494 - originalLookupLabel: 494 - center: - x: 40.0 - y: -39.0 - z: 48.0 - color: '#007711' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_19: - name: 7Networks_RH_DorsAttn_Post_19 - lookupLabel: 495 - originalLookupLabel: 495 - center: - x: 33.0 - y: -64.0 - z: 54.0 - color: '#007712' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_20: - name: 7Networks_RH_DorsAttn_Post_20 - lookupLabel: 496 - originalLookupLabel: 496 - center: - x: 26.0 - y: -65.0 - z: 51.0 - color: '#007713' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_21: - name: 7Networks_RH_DorsAttn_Post_21 - lookupLabel: 497 - originalLookupLabel: 497 - center: - x: 17.0 - y: -73.0 - z: 52.0 - color: '#007714' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_22: - name: 7Networks_RH_DorsAttn_Post_22 - lookupLabel: 498 - originalLookupLabel: 498 - center: - x: 34.0 - y: -46.0 - z: 46.0 - color: '#007715' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_23: - name: 7Networks_RH_DorsAttn_Post_23 - lookupLabel: 499 - originalLookupLabel: 499 - center: - x: 33.0 - y: -55.0 - z: 51.0 - color: '#007716' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_24: - name: 7Networks_RH_DorsAttn_Post_24 - lookupLabel: 500 - originalLookupLabel: 500 - center: - x: 36.0 - y: -33.0 - z: 47.0 - color: '#00780f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_25: - name: 7Networks_RH_DorsAttn_Post_25 - lookupLabel: 501 - originalLookupLabel: 501 - center: - x: 37.0 - y: -40.0 - z: 58.0 - color: '#007810' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_26: - name: 7Networks_RH_DorsAttn_Post_26 - lookupLabel: 502 - originalLookupLabel: 502 - center: - x: 6.0 - y: -53.0 - z: 52.0 - color: '#007811' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_27: - name: 7Networks_RH_DorsAttn_Post_27 - lookupLabel: 503 - originalLookupLabel: 503 - center: - x: 36.0 - y: -48.0 - z: 60.0 - color: '#007812' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_28: - name: 7Networks_RH_DorsAttn_Post_28 - lookupLabel: 504 - originalLookupLabel: 504 - center: - x: 11.0 - y: -71.0 - z: 56.0 - color: '#007813' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_29: - name: 7Networks_RH_DorsAttn_Post_29 - lookupLabel: 505 - originalLookupLabel: 505 - center: - x: 28.0 - y: -57.0 - z: 61.0 - color: '#007814' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_30: - name: 7Networks_RH_DorsAttn_Post_30 - lookupLabel: 506 - originalLookupLabel: 506 - center: - x: 7.0 - y: -63.0 - z: 57.0 - color: '#007815' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_31: - name: 7Networks_RH_DorsAttn_Post_31 - lookupLabel: 507 - originalLookupLabel: 507 - center: - x: 20.0 - y: -67.0 - z: 61.0 - color: '#007816' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_32: - name: 7Networks_RH_DorsAttn_Post_32 - lookupLabel: 508 - originalLookupLabel: 508 - center: - x: 36.0 - y: -49.0 - z: 67.0 - color: '#00790f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_33: - name: 7Networks_RH_DorsAttn_Post_33 - lookupLabel: 509 - originalLookupLabel: 509 - center: - x: 13.0 - y: -62.0 - z: 65.0 - color: '#007910' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_34: - name: 7Networks_RH_DorsAttn_Post_34 - lookupLabel: 510 - originalLookupLabel: 510 - center: - x: 7.0 - y: -51.0 - z: 63.0 - color: '#007911' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_35: - name: 7Networks_RH_DorsAttn_Post_35 - lookupLabel: 511 - originalLookupLabel: 511 - center: - x: 23.0 - y: -51.0 - z: 69.0 - color: '#007912' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_36: - name: 7Networks_RH_DorsAttn_Post_36 - lookupLabel: 512 - originalLookupLabel: 512 - center: - x: 13.0 - y: -49.0 - z: 73.0 - color: '#007913' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_1: - name: 7Networks_RH_DorsAttn_FEF_1 - lookupLabel: 513 - originalLookupLabel: 513 - center: - x: 43.0 - y: -3.0 - z: 50.0 - color: '#01760d' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_2: - name: 7Networks_RH_DorsAttn_FEF_2 - lookupLabel: 514 - originalLookupLabel: 514 - center: - x: 33.0 - y: 0.0 - z: 52.0 - color: '#01760f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_3: - name: 7Networks_RH_DorsAttn_FEF_3 - lookupLabel: 515 - originalLookupLabel: 515 - center: - x: 25.0 - y: 7.0 - z: 53.0 - color: '#017610' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_4: - name: 7Networks_RH_DorsAttn_FEF_4 - lookupLabel: 516 - originalLookupLabel: 516 - center: - x: 36.0 - y: -6.0 - z: 59.0 - color: '#017611' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_5: - name: 7Networks_RH_DorsAttn_FEF_5 - lookupLabel: 517 - originalLookupLabel: 517 - center: - x: 26.0 - y: -6.0 - z: 52.0 - color: '#017612' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_6: - name: 7Networks_RH_DorsAttn_FEF_6 - lookupLabel: 518 - originalLookupLabel: 518 - center: - x: 25.0 - y: -2.0 - z: 63.0 - color: '#017613' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_PrCv_1: - name: 7Networks_RH_DorsAttn_PrCv_1 - lookupLabel: 519 - originalLookupLabel: 519 - center: - x: 43.0 - y: 9.0 - z: 24.0 - color: '#017614' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_PrCv_2: - name: 7Networks_RH_DorsAttn_PrCv_2 - lookupLabel: 520 - originalLookupLabel: 520 - center: - x: 53.0 - y: 8.0 - z: 30.0 - color: '#017615' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_SalVentAttn_TempOccPar_1: - name: 7Networks_RH_SalVentAttn_TempOccPar_1 - lookupLabel: 521 - originalLookupLabel: 521 - center: - x: 58.0 - y: -46.0 - z: 10.0 - color: '#c53af7' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_2: - name: 7Networks_RH_SalVentAttn_TempOccPar_2 - lookupLabel: 522 - originalLookupLabel: 522 - center: - x: 51.0 - y: -40.0 - z: 12.0 - color: '#c53af8' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_3: - name: 7Networks_RH_SalVentAttn_TempOccPar_3 - lookupLabel: 523 - originalLookupLabel: 523 - center: - x: 55.0 - y: -53.0 - z: 11.0 - color: '#c53af9' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_4: - name: 7Networks_RH_SalVentAttn_TempOccPar_4 - lookupLabel: 524 - originalLookupLabel: 524 - center: - x: 57.0 - y: -40.0 - z: 20.0 - color: '#c53afa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_5: - name: 7Networks_RH_SalVentAttn_TempOccPar_5 - lookupLabel: 525 - originalLookupLabel: 525 - center: - x: 64.0 - y: -32.0 - z: 21.0 - color: '#c53afc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_6: - name: 7Networks_RH_SalVentAttn_TempOccPar_6 - lookupLabel: 526 - originalLookupLabel: 526 - center: - x: 51.0 - y: -31.0 - z: 25.0 - color: '#c53afd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_7: - name: 7Networks_RH_SalVentAttn_TempOccPar_7 - lookupLabel: 527 - originalLookupLabel: 527 - center: - x: 65.0 - y: -39.0 - z: 27.0 - color: '#c53afe' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_8: - name: 7Networks_RH_SalVentAttn_TempOccPar_8 - lookupLabel: 528 - originalLookupLabel: 528 - center: - x: 59.0 - y: -23.0 - z: 22.0 - color: '#c53aff' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_9: - name: 7Networks_RH_SalVentAttn_TempOccPar_9 - lookupLabel: 529 - originalLookupLabel: 529 - center: - x: 61.0 - y: -29.0 - z: 35.0 - color: '#c233fa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_10: - name: 7Networks_RH_SalVentAttn_TempOccPar_10 - lookupLabel: 530 - originalLookupLabel: 530 - center: - x: 63.0 - y: -14.0 - z: 27.0 - color: '#c233fb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_11: - name: 7Networks_RH_SalVentAttn_TempOccPar_11 - lookupLabel: 531 - originalLookupLabel: 531 - center: - x: 64.0 - y: -20.0 - z: 35.0 - color: '#c234f4' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_12: - name: 7Networks_RH_SalVentAttn_TempOccPar_12 - lookupLabel: 532 - originalLookupLabel: 532 - center: - x: 62.0 - y: -28.0 - z: 47.0 - color: '#c234f5' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_PrC_1: - name: 7Networks_RH_SalVentAttn_PrC_1 - lookupLabel: 533 - originalLookupLabel: 533 - center: - x: 50.0 - y: 4.0 - z: 41.0 - color: '#c53bfb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_1: - name: 7Networks_RH_SalVentAttn_FrOperIns_1 - lookupLabel: 534 - originalLookupLabel: 534 - center: - x: 39.0 - y: 5.0 - z: -12.0 - color: '#c53bf6' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_2: - name: 7Networks_RH_SalVentAttn_FrOperIns_2 - lookupLabel: 535 - originalLookupLabel: 535 - center: - x: 43.0 - y: -6.0 - z: -9.0 - color: '#c53bf7' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_3: - name: 7Networks_RH_SalVentAttn_FrOperIns_3 - lookupLabel: 536 - originalLookupLabel: 536 - center: - x: 40.0 - y: 9.0 - z: -2.0 - color: '#c53bf8' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_4: - name: 7Networks_RH_SalVentAttn_FrOperIns_4 - lookupLabel: 537 - originalLookupLabel: 537 - center: - x: 40.0 - y: -13.0 - z: 1.0 - color: '#c53bf9' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_5: - name: 7Networks_RH_SalVentAttn_FrOperIns_5 - lookupLabel: 538 - originalLookupLabel: 538 - center: - x: 39.0 - y: 0.0 - z: 6.0 - color: '#c53bfa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_6: - name: 7Networks_RH_SalVentAttn_FrOperIns_6 - lookupLabel: 539 - originalLookupLabel: 539 - center: - x: 36.0 - y: 23.0 - z: 6.0 - color: '#c53bfc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_7: - name: 7Networks_RH_SalVentAttn_FrOperIns_7 - lookupLabel: 540 - originalLookupLabel: 540 - center: - x: 36.0 - y: 7.0 - z: 11.0 - color: '#c53bfd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_8: - name: 7Networks_RH_SalVentAttn_FrOperIns_8 - lookupLabel: 541 - originalLookupLabel: 541 - center: - x: 43.0 - y: 13.0 - z: 5.0 - color: '#c53bfe' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_9: - name: 7Networks_RH_SalVentAttn_FrOperIns_9 - lookupLabel: 542 - originalLookupLabel: 542 - center: - x: 53.0 - y: 14.0 - z: 6.0 - color: '#c53bff' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_10: - name: 7Networks_RH_SalVentAttn_FrOperIns_10 - lookupLabel: 543 - originalLookupLabel: 543 - center: - x: 50.0 - y: 4.0 - z: 4.0 - color: '#c234fa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_11: - name: 7Networks_RH_SalVentAttn_FrOperIns_11 - lookupLabel: 544 - originalLookupLabel: 544 - center: - x: 57.0 - y: 1.0 - z: 9.0 - color: '#c234fb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_12: - name: 7Networks_RH_SalVentAttn_FrOperIns_12 - lookupLabel: 545 - originalLookupLabel: 545 - center: - x: 53.0 - y: 10.0 - z: 14.0 - color: '#c235f4' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_13: - name: 7Networks_RH_SalVentAttn_FrOperIns_13 - lookupLabel: 546 - originalLookupLabel: 546 - center: - x: 59.0 - y: 8.0 - z: 18.0 - color: '#c235f5' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_PFCv_1: - name: 7Networks_RH_SalVentAttn_PFCv_1 - lookupLabel: 547 - originalLookupLabel: 547 - center: - x: 51.0 - y: 41.0 - z: 0.0 - color: '#c43afa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_PFCl_1: - name: 7Networks_RH_SalVentAttn_PFCl_1 - lookupLabel: 548 - originalLookupLabel: 548 - center: - x: 28.0 - y: 45.0 - z: 33.0 - color: '#c439fb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_1: - name: 7Networks_RH_SalVentAttn_Med_1 - lookupLabel: 549 - originalLookupLabel: 549 - center: - x: 7.0 - y: 24.0 - z: 28.0 - color: '#c439f5' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_2: - name: 7Networks_RH_SalVentAttn_Med_2 - lookupLabel: 550 - originalLookupLabel: 550 - center: - x: 4.0 - y: -15.0 - z: 37.0 - color: '#c439f6' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_3: - name: 7Networks_RH_SalVentAttn_Med_3 - lookupLabel: 551 - originalLookupLabel: 551 - center: - x: 7.0 - y: 2.0 - z: 41.0 - color: '#c439f7' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_4: - name: 7Networks_RH_SalVentAttn_Med_4 - lookupLabel: 552 - originalLookupLabel: 552 - center: - x: 8.0 - y: 14.0 - z: 42.0 - color: '#c439f8' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_5: - name: 7Networks_RH_SalVentAttn_Med_5 - lookupLabel: 553 - originalLookupLabel: 553 - center: - x: 12.0 - y: -32.0 - z: 42.0 - color: '#c439fa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_6: - name: 7Networks_RH_SalVentAttn_Med_6 - lookupLabel: 554 - originalLookupLabel: 554 - center: - x: 11.0 - y: -42.0 - z: 51.0 - color: '#c439fc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_7: - name: 7Networks_RH_SalVentAttn_Med_7 - lookupLabel: 555 - originalLookupLabel: 555 - center: - x: 6.0 - y: 11.0 - z: 57.0 - color: '#c439fd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_8: - name: 7Networks_RH_SalVentAttn_Med_8 - lookupLabel: 556 - originalLookupLabel: 556 - center: - x: 11.0 - y: -31.0 - z: 50.0 - color: '#c439fe' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_9: - name: 7Networks_RH_SalVentAttn_Med_9 - lookupLabel: 557 - originalLookupLabel: 557 - center: - x: 12.0 - y: -45.0 - z: 60.0 - color: '#c439ff' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_10: - name: 7Networks_RH_SalVentAttn_Med_10 - lookupLabel: 558 - originalLookupLabel: 558 - center: - x: 6.0 - y: -1.0 - z: 65.0 - color: '#c43af9' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_11: - name: 7Networks_RH_SalVentAttn_Med_11 - lookupLabel: 559 - originalLookupLabel: 559 - center: - x: 15.0 - y: 6.0 - z: 70.0 - color: '#c43afb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_Limbic_OFC_1: - name: 7Networks_RH_Limbic_OFC_1 - lookupLabel: 560 - originalLookupLabel: 560 - center: - x: 20.0 - y: 13.0 - z: -22.0 - color: '#dcf9a0' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_2: - name: 7Networks_RH_Limbic_OFC_2 - lookupLabel: 561 - originalLookupLabel: 561 - center: - x: 15.0 - y: 28.0 - z: -24.0 - color: '#dcf9a1' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_3: - name: 7Networks_RH_Limbic_OFC_3 - lookupLabel: 562 - originalLookupLabel: 562 - center: - x: 11.0 - y: 23.0 - z: -18.0 - color: '#dcf9a2' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_4: - name: 7Networks_RH_Limbic_OFC_4 - lookupLabel: 563 - originalLookupLabel: 563 - center: - x: 10.0 - y: 42.0 - z: -23.0 - color: '#dcf9a3' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_5: - name: 7Networks_RH_Limbic_OFC_5 - lookupLabel: 564 - originalLookupLabel: 564 - center: - x: 23.0 - y: 32.0 - z: -18.0 - color: '#dcf9a5' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_6: - name: 7Networks_RH_Limbic_OFC_6 - lookupLabel: 565 - originalLookupLabel: 565 - center: - x: 16.0 - y: 50.0 - z: -19.0 - color: '#dcf9a6' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_7: - name: 7Networks_RH_Limbic_OFC_7 - lookupLabel: 566 - originalLookupLabel: 566 - center: - x: 4.0 - y: 24.0 - z: -22.0 - color: '#dcf9a7' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_8: - name: 7Networks_RH_Limbic_OFC_8 - lookupLabel: 567 - originalLookupLabel: 567 - center: - x: 7.0 - y: 56.0 - z: -22.0 - color: '#dcf9a8' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_9: - name: 7Networks_RH_Limbic_OFC_9 - lookupLabel: 568 - originalLookupLabel: 568 - center: - x: 19.0 - y: 62.0 - z: -14.0 - color: '#dcf9a9' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_10: - name: 7Networks_RH_Limbic_OFC_10 - lookupLabel: 569 - originalLookupLabel: 569 - center: - x: 4.0 - y: 25.0 - z: -11.0 - color: '#dcf9aa' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_11: - name: 7Networks_RH_Limbic_OFC_11 - lookupLabel: 570 - originalLookupLabel: 570 - center: - x: 6.0 - y: 64.0 - z: -11.0 - color: '#dcf9ab' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_1: - name: 7Networks_RH_Limbic_TempPole_1 - lookupLabel: 571 - originalLookupLabel: 571 - center: - x: 31.0 - y: 3.0 - z: -44.0 - color: '#dcf99f' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_2: - name: 7Networks_RH_Limbic_TempPole_2 - lookupLabel: 572 - originalLookupLabel: 572 - center: - x: 33.0 - y: 15.0 - z: -40.0 - color: '#dcf9a4' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_3: - name: 7Networks_RH_Limbic_TempPole_3 - lookupLabel: 573 - originalLookupLabel: 573 - center: - x: 40.0 - y: -10.0 - z: -35.0 - color: '#dcf9ac' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_4: - name: 7Networks_RH_Limbic_TempPole_4 - lookupLabel: 574 - originalLookupLabel: 574 - center: - x: 29.0 - y: -7.0 - z: -36.0 - color: '#dcfaa5' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_5: - name: 7Networks_RH_Limbic_TempPole_5 - lookupLabel: 575 - originalLookupLabel: 575 - center: - x: 51.0 - y: -7.0 - z: -39.0 - color: '#dcfaa6' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_6: - name: 7Networks_RH_Limbic_TempPole_6 - lookupLabel: 576 - originalLookupLabel: 576 - center: - x: 20.0 - y: 0.0 - z: -31.0 - color: '#dcfaa7' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_7: - name: 7Networks_RH_Limbic_TempPole_7 - lookupLabel: 577 - originalLookupLabel: 577 - center: - x: 24.0 - y: 6.0 - z: -30.0 - color: '#dcfaa8' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_8: - name: 7Networks_RH_Limbic_TempPole_8 - lookupLabel: 578 - originalLookupLabel: 578 - center: - x: 52.0 - y: -21.0 - z: -30.0 - color: '#dcfaa9' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_9: - name: 7Networks_RH_Limbic_TempPole_9 - lookupLabel: 579 - originalLookupLabel: 579 - center: - x: 43.0 - y: -25.0 - z: -24.0 - color: '#dcfaaa' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_10: - name: 7Networks_RH_Limbic_TempPole_10 - lookupLabel: 580 - originalLookupLabel: 580 - center: - x: 35.0 - y: -18.0 - z: -30.0 - color: '#dcfaab' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_11: - name: 7Networks_RH_Limbic_TempPole_11 - lookupLabel: 581 - originalLookupLabel: 581 - center: - x: 32.0 - y: 15.0 - z: -30.0 - color: '#dcfaac' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_12: - name: 7Networks_RH_Limbic_TempPole_12 - lookupLabel: 582 - originalLookupLabel: 582 - center: - x: 22.0 - y: -13.0 - z: -30.0 - color: '#dcfba5' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_13: - name: 7Networks_RH_Limbic_TempPole_13 - lookupLabel: 583 - originalLookupLabel: 583 - center: - x: 45.0 - y: 20.0 - z: -27.0 - color: '#dcfba6' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_14: - name: 7Networks_RH_Limbic_TempPole_14 - lookupLabel: 584 - originalLookupLabel: 584 - center: - x: 22.0 - y: -23.0 - z: -23.0 - color: '#dcfba7' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_15: - name: 7Networks_RH_Limbic_TempPole_15 - lookupLabel: 585 - originalLookupLabel: 585 - center: - x: 44.0 - y: 11.0 - z: -19.0 - color: '#dcfba8' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Cont_Par_1: - name: 7Networks_RH_Cont_Par_1 - lookupLabel: 586 - originalLookupLabel: 586 - center: - x: 61.0 - y: -37.0 - z: 39.0 - color: '#e6931e' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_2: - name: 7Networks_RH_Cont_Par_2 - lookupLabel: 587 - originalLookupLabel: 587 - center: - x: 55.0 - y: -54.0 - z: 44.0 - color: '#e6931f' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_3: - name: 7Networks_RH_Cont_Par_3 - lookupLabel: 588 - originalLookupLabel: 588 - center: - x: 41.0 - y: -70.0 - z: 48.0 - color: '#e69320' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_4: - name: 7Networks_RH_Cont_Par_4 - lookupLabel: 589 - originalLookupLabel: 589 - center: - x: 55.0 - y: -40.0 - z: 48.0 - color: '#e69321' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_5: - name: 7Networks_RH_Cont_Par_5 - lookupLabel: 590 - originalLookupLabel: 590 - center: - x: 55.0 - y: -32.0 - z: 52.0 - color: '#e69323' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_6: - name: 7Networks_RH_Cont_Par_6 - lookupLabel: 591 - originalLookupLabel: 591 - center: - x: 50.0 - y: -45.0 - z: 51.0 - color: '#e69324' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_7: - name: 7Networks_RH_Cont_Par_7 - lookupLabel: 592 - originalLookupLabel: 592 - center: - x: 47.0 - y: -55.0 - z: 54.0 - color: '#e69325' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_8: - name: 7Networks_RH_Cont_Par_8 - lookupLabel: 593 - originalLookupLabel: 593 - center: - x: 48.0 - y: -37.0 - z: 51.0 - color: '#e69326' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_9: - name: 7Networks_RH_Cont_Par_9 - lookupLabel: 594 - originalLookupLabel: 594 - center: - x: 37.0 - y: -66.0 - z: 49.0 - color: '#e69327' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_10: - name: 7Networks_RH_Cont_Par_10 - lookupLabel: 595 - originalLookupLabel: 595 - center: - x: 43.0 - y: -47.0 - z: 45.0 - color: '#e69328' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_11: - name: 7Networks_RH_Cont_Par_11 - lookupLabel: 596 - originalLookupLabel: 596 - center: - x: 40.0 - y: -56.0 - z: 46.0 - color: '#e69329' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Temp_1: - name: 7Networks_RH_Cont_Temp_1 - lookupLabel: 597 - originalLookupLabel: 597 - center: - x: 60.0 - y: -26.0 - z: -24.0 - color: '#e69322' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Temp_2: - name: 7Networks_RH_Cont_Temp_2 - lookupLabel: 598 - originalLookupLabel: 598 - center: - x: 61.0 - y: -36.0 - z: -18.0 - color: '#e69421' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Temp_3: - name: 7Networks_RH_Cont_Temp_3 - lookupLabel: 599 - originalLookupLabel: 599 - center: - x: 64.0 - y: -40.0 - z: -10.0 - color: '#e69422' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Temp_4: - name: 7Networks_RH_Cont_Temp_4 - lookupLabel: 600 - originalLookupLabel: 600 - center: - x: 66.0 - y: -46.0 - z: 0.0 - color: '#e69423' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCv_1: - name: 7Networks_RH_Cont_PFCv_1 - lookupLabel: 601 - originalLookupLabel: 601 - center: - x: 34.0 - y: 19.0 - z: -9.0 - color: '#e59423' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCv_2: - name: 7Networks_RH_Cont_PFCv_2 - lookupLabel: 602 - originalLookupLabel: 602 - center: - x: 34.0 - y: 26.0 - z: -2.0 - color: '#e59424' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_1: - name: 7Networks_RH_Cont_PFCl_1 - lookupLabel: 603 - originalLookupLabel: 603 - center: - x: 28.0 - y: 50.0 - z: -14.0 - color: '#e5931e' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_2: - name: 7Networks_RH_Cont_PFCl_2 - lookupLabel: 604 - originalLookupLabel: 604 - center: - x: 42.0 - y: 51.0 - z: -10.0 - color: '#e5931f' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_3: - name: 7Networks_RH_Cont_PFCl_3 - lookupLabel: 605 - originalLookupLabel: 605 - center: - x: 31.0 - y: 60.0 - z: -5.0 - color: '#e59320' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_4: - name: 7Networks_RH_Cont_PFCl_4 - lookupLabel: 606 - originalLookupLabel: 606 - center: - x: 19.0 - y: 65.0 - z: -3.0 - color: '#e59321' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_5: - name: 7Networks_RH_Cont_PFCl_5 - lookupLabel: 607 - originalLookupLabel: 607 - center: - x: 42.0 - y: 49.0 - z: 1.0 - color: '#e5941a' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_6: - name: 7Networks_RH_Cont_PFCl_6 - lookupLabel: 608 - originalLookupLabel: 608 - center: - x: 30.0 - y: 57.0 - z: 8.0 - color: '#e5941b' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_7: - name: 7Networks_RH_Cont_PFCl_7 - lookupLabel: 609 - originalLookupLabel: 609 - center: - x: 53.0 - y: 21.0 - z: 6.0 - color: '#e5941c' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_8: - name: 7Networks_RH_Cont_PFCl_8 - lookupLabel: 610 - originalLookupLabel: 610 - center: - x: 55.0 - y: 30.0 - z: 11.0 - color: '#e5941d' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_9: - name: 7Networks_RH_Cont_PFCl_9 - lookupLabel: 611 - originalLookupLabel: 611 - center: - x: 46.0 - y: 39.0 - z: 9.0 - color: '#e5941e' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_10: - name: 7Networks_RH_Cont_PFCl_10 - lookupLabel: 612 - originalLookupLabel: 612 - center: - x: 42.0 - y: 47.0 - z: 15.0 - color: '#e5941f' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_11: - name: 7Networks_RH_Cont_PFCl_11 - lookupLabel: 613 - originalLookupLabel: 613 - center: - x: 54.0 - y: 18.0 - z: 19.0 - color: '#e59420' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_12: - name: 7Networks_RH_Cont_PFCl_12 - lookupLabel: 614 - originalLookupLabel: 614 - center: - x: 47.0 - y: 30.0 - z: 20.0 - color: '#e59422' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_13: - name: 7Networks_RH_Cont_PFCl_13 - lookupLabel: 615 - originalLookupLabel: 615 - center: - x: 32.0 - y: 48.0 - z: 20.0 - color: '#e59425' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_14: - name: 7Networks_RH_Cont_PFCl_14 - lookupLabel: 616 - originalLookupLabel: 616 - center: - x: 25.0 - y: 56.0 - z: 24.0 - color: '#e59426' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_15: - name: 7Networks_RH_Cont_PFCl_15 - lookupLabel: 617 - originalLookupLabel: 617 - center: - x: 44.0 - y: 18.0 - z: 24.0 - color: '#e59427' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_16: - name: 7Networks_RH_Cont_PFCl_16 - lookupLabel: 618 - originalLookupLabel: 618 - center: - x: 38.0 - y: 42.0 - z: 29.0 - color: '#e59428' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_17: - name: 7Networks_RH_Cont_PFCl_17 - lookupLabel: 619 - originalLookupLabel: 619 - center: - x: 48.0 - y: 30.0 - z: 30.0 - color: '#e59521' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_18: - name: 7Networks_RH_Cont_PFCl_18 - lookupLabel: 620 - originalLookupLabel: 620 - center: - x: 41.0 - y: 17.0 - z: 31.0 - color: '#e59522' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_19: - name: 7Networks_RH_Cont_PFCl_19 - lookupLabel: 621 - originalLookupLabel: 621 - center: - x: 38.0 - y: 8.0 - z: 36.0 - color: '#e59523' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_20: - name: 7Networks_RH_Cont_PFCl_20 - lookupLabel: 622 - originalLookupLabel: 622 - center: - x: 38.0 - y: 33.0 - z: 39.0 - color: '#e59524' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_21: - name: 7Networks_RH_Cont_PFCl_21 - lookupLabel: 623 - originalLookupLabel: 623 - center: - x: 46.0 - y: 17.0 - z: 41.0 - color: '#e59525' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_22: - name: 7Networks_RH_Cont_PFCl_22 - lookupLabel: 624 - originalLookupLabel: 624 - center: - x: 44.0 - y: 6.0 - z: 50.0 - color: '#e59526' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_23: - name: 7Networks_RH_Cont_PFCl_23 - lookupLabel: 625 - originalLookupLabel: 625 - center: - x: 39.0 - y: 16.0 - z: 55.0 - color: '#e59527' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_24: - name: 7Networks_RH_Cont_PFCl_24 - lookupLabel: 626 - originalLookupLabel: 626 - center: - x: 31.0 - y: 16.0 - z: 53.0 - color: '#e59528' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_25: - name: 7Networks_RH_Cont_PFCl_25 - lookupLabel: 627 - originalLookupLabel: 627 - center: - x: 24.0 - y: 20.0 - z: 46.0 - color: '#e59621' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_26: - name: 7Networks_RH_Cont_PFCl_26 - lookupLabel: 628 - originalLookupLabel: 628 - center: - x: 24.0 - y: 10.0 - z: 63.0 - color: '#e59622' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_pCun_1: - name: 7Networks_RH_Cont_pCun_1 - lookupLabel: 629 - originalLookupLabel: 629 - center: - x: 14.0 - y: -70.0 - z: 38.0 - color: '#e59323' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_pCun_3: - name: 7Networks_RH_Cont_pCun_3 - lookupLabel: 630 - originalLookupLabel: 630 - center: - x: 7.0 - y: -62.0 - z: 47.0 - color: '#e59324' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_pCun_4: - name: 7Networks_RH_Cont_pCun_4 - lookupLabel: 631 - originalLookupLabel: 631 - center: - x: 5.0 - y: -72.0 - z: 49.0 - color: '#e59325' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Cing_1: - name: 7Networks_RH_Cont_Cing_1 - lookupLabel: 632 - originalLookupLabel: 632 - center: - x: 5.0 - y: 9.0 - z: 28.0 - color: '#e59322' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Cing_2: - name: 7Networks_RH_Cont_Cing_2 - lookupLabel: 633 - originalLookupLabel: 633 - center: - x: 6.0 - y: -24.0 - z: 29.0 - color: '#e59326' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Cing_3: - name: 7Networks_RH_Cont_Cing_3 - lookupLabel: 634 - originalLookupLabel: 634 - center: - x: 5.0 - y: -2.0 - z: 31.0 - color: '#e59327' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCmp_1: - name: 7Networks_RH_Cont_PFCmp_1 - lookupLabel: 635 - originalLookupLabel: 635 - center: - x: 8.0 - y: 35.0 - z: 20.0 - color: '#e69425' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCmp_2: - name: 7Networks_RH_Cont_PFCmp_2 - lookupLabel: 636 - originalLookupLabel: 636 - center: - x: 7.0 - y: 32.0 - z: 34.0 - color: '#e69426' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCmp_3: - name: 7Networks_RH_Cont_PFCmp_3 - lookupLabel: 637 - originalLookupLabel: 637 - center: - x: 5.0 - y: 29.0 - z: 49.0 - color: '#e69427' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Default_Par_1: - name: 7Networks_RH_Default_Par_1 - lookupLabel: 638 - originalLookupLabel: 638 - center: - x: 51.0 - y: -49.0 - z: 16.0 - color: '#cd3e4a' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_2: - name: 7Networks_RH_Default_Par_2 - lookupLabel: 639 - originalLookupLabel: 639 - center: - x: 53.0 - y: -45.0 - z: 20.0 - color: '#cd3e4b' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_3: - name: 7Networks_RH_Default_Par_3 - lookupLabel: 640 - originalLookupLabel: 640 - center: - x: 46.0 - y: -53.0 - z: 25.0 - color: '#cd3e4c' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_4: - name: 7Networks_RH_Default_Par_4 - lookupLabel: 641 - originalLookupLabel: 641 - center: - x: 57.0 - y: -50.0 - z: 23.0 - color: '#cd3e4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_5: - name: 7Networks_RH_Default_Par_5 - lookupLabel: 642 - originalLookupLabel: 642 - center: - x: 50.0 - y: -61.0 - z: 26.0 - color: '#cd3e4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_6: - name: 7Networks_RH_Default_Par_6 - lookupLabel: 643 - originalLookupLabel: 643 - center: - x: 55.0 - y: -43.0 - z: 30.0 - color: '#cd3e50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_7: - name: 7Networks_RH_Default_Par_7 - lookupLabel: 644 - originalLookupLabel: 644 - center: - x: 47.0 - y: -72.0 - z: 31.0 - color: '#cd3e51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_8: - name: 7Networks_RH_Default_Par_8 - lookupLabel: 645 - originalLookupLabel: 645 - center: - x: 55.0 - y: -56.0 - z: 30.0 - color: '#cd3e52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_9: - name: 7Networks_RH_Default_Par_9 - lookupLabel: 646 - originalLookupLabel: 646 - center: - x: 57.0 - y: -48.0 - z: 38.0 - color: '#cd3e53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_10: - name: 7Networks_RH_Default_Par_10 - lookupLabel: 647 - originalLookupLabel: 647 - center: - x: 49.0 - y: -63.0 - z: 40.0 - color: '#cd3e54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_1: - name: 7Networks_RH_Default_Temp_1 - lookupLabel: 648 - originalLookupLabel: 648 - center: - x: 47.0 - y: 9.0 - z: -37.0 - color: '#cd3d4a' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_2: - name: 7Networks_RH_Default_Temp_2 - lookupLabel: 649 - originalLookupLabel: 649 - center: - x: 59.0 - y: -7.0 - z: -26.0 - color: '#cd3d4b' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_3: - name: 7Networks_RH_Default_Temp_3 - lookupLabel: 650 - originalLookupLabel: 650 - center: - x: 52.0 - y: 8.0 - z: -27.0 - color: '#cd3d4c' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_4: - name: 7Networks_RH_Default_Temp_4 - lookupLabel: 651 - originalLookupLabel: 651 - center: - x: 60.0 - y: -6.0 - z: -16.0 - color: '#cd3d4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_5: - name: 7Networks_RH_Default_Temp_5 - lookupLabel: 652 - originalLookupLabel: 652 - center: - x: 65.0 - y: -23.0 - z: -16.0 - color: '#cd3d4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_6: - name: 7Networks_RH_Default_Temp_6 - lookupLabel: 653 - originalLookupLabel: 653 - center: - x: 53.0 - y: 4.0 - z: -16.0 - color: '#cd3d50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_7: - name: 7Networks_RH_Default_Temp_7 - lookupLabel: 654 - originalLookupLabel: 654 - center: - x: 63.0 - y: -20.0 - z: -9.0 - color: '#cd3d51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_8: - name: 7Networks_RH_Default_Temp_8 - lookupLabel: 655 - originalLookupLabel: 655 - center: - x: 51.0 - y: -9.0 - z: -12.0 - color: '#cd3d52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_9: - name: 7Networks_RH_Default_Temp_9 - lookupLabel: 656 - originalLookupLabel: 656 - center: - x: 49.0 - y: -19.0 - z: -9.0 - color: '#cd3d53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_10: - name: 7Networks_RH_Default_Temp_10 - lookupLabel: 657 - originalLookupLabel: 657 - center: - x: 63.0 - y: -31.0 - z: -3.0 - color: '#cd3d54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_11: - name: 7Networks_RH_Default_Temp_11 - lookupLabel: 658 - originalLookupLabel: 658 - center: - x: 51.0 - y: -32.0 - z: 1.0 - color: '#cd3d55' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_12: - name: 7Networks_RH_Default_Temp_12 - lookupLabel: 659 - originalLookupLabel: 659 - center: - x: 61.0 - y: -43.0 - z: 4.0 - color: '#cd3e55' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_1: - name: 7Networks_RH_Default_PFCv_1 - lookupLabel: 660 - originalLookupLabel: 660 - center: - x: 29.0 - y: 19.0 - z: -20.0 - color: '#cd3d4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_2: - name: 7Networks_RH_Default_PFCv_2 - lookupLabel: 661 - originalLookupLabel: 661 - center: - x: 35.0 - y: 37.0 - z: -13.0 - color: '#cd3e4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_3: - name: 7Networks_RH_Default_PFCv_3 - lookupLabel: 662 - originalLookupLabel: 662 - center: - x: 39.0 - y: 26.0 - z: -16.0 - color: '#cd3f4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_4: - name: 7Networks_RH_Default_PFCv_4 - lookupLabel: 663 - originalLookupLabel: 663 - center: - x: 48.0 - y: 32.0 - z: -9.0 - color: '#cd3f4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_5: - name: 7Networks_RH_Default_PFCv_5 - lookupLabel: 664 - originalLookupLabel: 664 - center: - x: 50.0 - y: 29.0 - z: 0.0 - color: '#cd3f4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_1: - name: 7Networks_RH_Default_PFCdPFCm_1 - lookupLabel: 665 - originalLookupLabel: 665 - center: - x: 5.0 - y: 40.0 - z: -14.0 - color: '#cc3d4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_2: - name: 7Networks_RH_Default_PFCdPFCm_2 - lookupLabel: 666 - originalLookupLabel: 666 - center: - x: 7.0 - y: 52.0 - z: -7.0 - color: '#cc3e47' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_3: - name: 7Networks_RH_Default_PFCdPFCm_3 - lookupLabel: 667 - originalLookupLabel: 667 - center: - x: 5.0 - y: 34.0 - z: -5.0 - color: '#cc3e48' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_4: - name: 7Networks_RH_Default_PFCdPFCm_4 - lookupLabel: 668 - originalLookupLabel: 668 - center: - x: 9.0 - y: 43.0 - z: 1.0 - color: '#cc3e49' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_5: - name: 7Networks_RH_Default_PFCdPFCm_5 - lookupLabel: 669 - originalLookupLabel: 669 - center: - x: 7.0 - y: 59.0 - z: 9.0 - color: '#cc3e4a' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_6: - name: 7Networks_RH_Default_PFCdPFCm_6 - lookupLabel: 670 - originalLookupLabel: 670 - center: - x: 7.0 - y: 41.0 - z: 10.0 - color: '#cc3e4b' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_7: - name: 7Networks_RH_Default_PFCdPFCm_7 - lookupLabel: 671 - originalLookupLabel: 671 - center: - x: 17.0 - y: 66.0 - z: 14.0 - color: '#cc3e4c' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_8: - name: 7Networks_RH_Default_PFCdPFCm_8 - lookupLabel: 672 - originalLookupLabel: 672 - center: - x: 6.0 - y: 23.0 - z: 20.0 - color: '#cc3e4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_9: - name: 7Networks_RH_Default_PFCdPFCm_9 - lookupLabel: 673 - originalLookupLabel: 673 - center: - x: 7.0 - y: 46.0 - z: 22.0 - color: '#cc3e4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_10: - name: 7Networks_RH_Default_PFCdPFCm_10 - lookupLabel: 674 - originalLookupLabel: 674 - center: - x: 6.0 - y: 58.0 - z: 29.0 - color: '#cc3e50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_11: - name: 7Networks_RH_Default_PFCdPFCm_11 - lookupLabel: 675 - originalLookupLabel: 675 - center: - x: 17.0 - y: 52.0 - z: 35.0 - color: '#cc3e51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_12: - name: 7Networks_RH_Default_PFCdPFCm_12 - lookupLabel: 676 - originalLookupLabel: 676 - center: - x: 5.0 - y: 46.0 - z: 39.0 - color: '#cc3e52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_13: - name: 7Networks_RH_Default_PFCdPFCm_13 - lookupLabel: 677 - originalLookupLabel: 677 - center: - x: 24.0 - y: 36.0 - z: 34.0 - color: '#cc3e53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_14: - name: 7Networks_RH_Default_PFCdPFCm_14 - lookupLabel: 678 - originalLookupLabel: 678 - center: - x: 12.0 - y: 46.0 - z: 48.0 - color: '#cc3e54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_15: - name: 7Networks_RH_Default_PFCdPFCm_15 - lookupLabel: 679 - originalLookupLabel: 679 - center: - x: 29.0 - y: 30.0 - z: 41.0 - color: '#cc3e55' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_16: - name: 7Networks_RH_Default_PFCdPFCm_16 - lookupLabel: 680 - originalLookupLabel: 680 - center: - x: 24.0 - y: 39.0 - z: 46.0 - color: '#cc3f4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_17: - name: 7Networks_RH_Default_PFCdPFCm_17 - lookupLabel: 681 - originalLookupLabel: 681 - center: - x: 13.0 - y: 34.0 - z: 55.0 - color: '#cc3f4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_18: - name: 7Networks_RH_Default_PFCdPFCm_18 - lookupLabel: 682 - originalLookupLabel: 682 - center: - x: 23.0 - y: 25.0 - z: 57.0 - color: '#cc3f50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_19: - name: 7Networks_RH_Default_PFCdPFCm_19 - lookupLabel: 683 - originalLookupLabel: 683 - center: - x: 11.0 - y: 19.0 - z: 63.0 - color: '#cc3f51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_1: - name: 7Networks_RH_Default_pCunPCC_1 - lookupLabel: 684 - originalLookupLabel: 684 - center: - x: 11.0 - y: -49.0 - z: 7.0 - color: '#cc3e4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_2: - name: 7Networks_RH_Default_pCunPCC_2 - lookupLabel: 685 - originalLookupLabel: 685 - center: - x: 7.0 - y: -46.0 - z: 14.0 - color: '#cc3f4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_3: - name: 7Networks_RH_Default_pCunPCC_3 - lookupLabel: 686 - originalLookupLabel: 686 - center: - x: 12.0 - y: -56.0 - z: 17.0 - color: '#cc3f52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_4: - name: 7Networks_RH_Default_pCunPCC_4 - lookupLabel: 687 - originalLookupLabel: 687 - center: - x: 5.0 - y: -52.0 - z: 19.0 - color: '#cc3f53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_5: - name: 7Networks_RH_Default_pCunPCC_5 - lookupLabel: 688 - originalLookupLabel: 688 - center: - x: 8.0 - y: -42.0 - z: 23.0 - color: '#cc3f54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_6: - name: 7Networks_RH_Default_pCunPCC_6 - lookupLabel: 689 - originalLookupLabel: 689 - center: - x: 5.0 - y: -62.0 - z: 24.0 - color: '#cc404d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_7: - name: 7Networks_RH_Default_pCunPCC_7 - lookupLabel: 690 - originalLookupLabel: 690 - center: - x: 16.0 - y: -64.0 - z: 28.0 - color: '#cc404e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_8: - name: 7Networks_RH_Default_pCunPCC_8 - lookupLabel: 691 - originalLookupLabel: 691 - center: - x: 7.0 - y: -49.0 - z: 28.0 - color: '#cc404f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_9: - name: 7Networks_RH_Default_pCunPCC_9 - lookupLabel: 692 - originalLookupLabel: 692 - center: - x: 4.0 - y: -39.0 - z: 29.0 - color: '#cc4050' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_10: - name: 7Networks_RH_Default_pCunPCC_10 - lookupLabel: 693 - originalLookupLabel: 693 - center: - x: 5.0 - y: -63.0 - z: 31.0 - color: '#cc4051' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_11: - name: 7Networks_RH_Default_pCunPCC_11 - lookupLabel: 694 - originalLookupLabel: 694 - center: - x: 4.0 - y: -30.0 - z: 37.0 - color: '#cc4052' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_12: - name: 7Networks_RH_Default_pCunPCC_12 - lookupLabel: 695 - originalLookupLabel: 695 - center: - x: 9.0 - y: -41.0 - z: 36.0 - color: '#cc4053' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_13: - name: 7Networks_RH_Default_pCunPCC_13 - lookupLabel: 696 - originalLookupLabel: 696 - center: - x: 12.0 - y: -50.0 - z: 34.0 - color: '#cc4054' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_14: - name: 7Networks_RH_Default_pCunPCC_14 - lookupLabel: 697 - originalLookupLabel: 697 - center: - x: 7.0 - y: -57.0 - z: 38.0 - color: '#cc414d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_15: - name: 7Networks_RH_Default_pCunPCC_15 - lookupLabel: 698 - originalLookupLabel: 698 - center: - x: 4.0 - y: -69.0 - z: 40.0 - color: '#cc414e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_16: - name: 7Networks_RH_Default_pCunPCC_16 - lookupLabel: 699 - originalLookupLabel: 699 - center: - x: 8.0 - y: -50.0 - z: 44.0 - color: '#cc414f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Cont_pCun_2: - name: 7Networks_RH_Cont_pCun_2 - lookupLabel: 700 - originalLookupLabel: 700 - center: - x: 5.0 - y: -42.0 - z: 43.0 - color: '#e79523' - hemisphere: right - hasParent: - - RH_Cont - versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_700Parcels_7Networks_order_FSLMNI152_1mm.nii.gz diff --git a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-700_res-1_desc-ordered_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-700_res-1_desc-ordered_dseg.yaml similarity index 99% rename from tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-700_res-1_desc-ordered_dseg.yaml rename to tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-700_res-1_desc-ordered_dseg.yaml index 2dac2e8a4..9e759c36e 100644 --- a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-700_res-1_desc-ordered_dseg.yaml +++ b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-700_res-1_desc-ordered_dseg.yaml @@ -1,14 +1,12 @@ name: Schaefer2018 abbreviation: Schaefer2018 versionIdentifier: '2018' -coordinateSpace: - name: MNI152 - abbreviation: FSLMNI152 - nativeUnit: mm +coordinateSpace: FSLMNI152 terminology: label: Schaefer2018_700Parcels_7Networks_order versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_700Parcels_7Networks_order_FSLMNI152_1mm.nii.gz + dataLocation: + schaefer2018_original_mni/Schaefer2018_700Parcels_7Networks_order_FSLMNI152_1mm.nii.gz entities: 7Networks_LH_Vis_1: name: 7Networks_LH_Vis_1 diff --git a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-800_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-800_dseg.yaml deleted file mode 100644 index b141194cc..000000000 --- a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-800_dseg.yaml +++ /dev/null @@ -1,9721 +0,0 @@ -name: Schaefer2018 -abbreviation: Schaefer2018 -versionIdentifier: '2018' -coordinateSpace: MNI152NLin6Asym -terminology: - label: Schaefer2018_800Parcels_7Networks_order - entities: - LH_Vis: - name: LH_Vis - lookupLabel: -1 - hemisphere: left - center: - x: -20.0 - y: -73.8 - z: 4.9 - LH_SomMot: - name: LH_SomMot - lookupLabel: -2 - hemisphere: left - center: - x: -33.4 - y: -22.1 - z: 45.5 - LH_DorsAttn: - name: LH_DorsAttn - lookupLabel: -3 - hemisphere: left - center: - x: -31.4 - y: -47.3 - z: 44.1 - LH_SalVentAttn: - name: LH_SalVentAttn - lookupLabel: -4 - hemisphere: left - center: - x: -30.9 - y: -9.8 - z: 29.7 - LH_Limbic: - name: LH_Limbic - lookupLabel: -5 - hemisphere: left - center: - x: -26.5 - y: 10.0 - z: -25.6 - LH_Cont: - name: LH_Cont - lookupLabel: -6 - hemisphere: left - center: - x: -33.7 - y: -10.5 - z: 28.8 - LH_Default: - name: LH_Default - lookupLabel: -7 - hemisphere: left - center: - x: -26.4 - y: -10.0 - z: 21.4 - RH_Vis: - name: RH_Vis - lookupLabel: -8 - hemisphere: right - center: - x: 23.6 - y: -71.8 - z: 4.4 - RH_SomMot: - name: RH_SomMot - lookupLabel: -9 - hemisphere: right - center: - x: 36.7 - y: -19.1 - z: 39.2 - RH_DorsAttn: - name: RH_DorsAttn - lookupLabel: -10 - hemisphere: right - center: - x: 36.7 - y: -41.9 - z: 38.9 - RH_SalVentAttn: - name: RH_SalVentAttn - lookupLabel: -11 - hemisphere: right - center: - x: 36.5 - y: -8.6 - z: 27.1 - RH_Limbic: - name: RH_Limbic - lookupLabel: -12 - hemisphere: right - center: - x: 25.2 - y: 11.4 - z: -26.4 - RH_Cont: - name: RH_Cont - lookupLabel: -13 - hemisphere: right - center: - x: 34.2 - y: 1.9 - z: 26.8 - RH_Default: - name: RH_Default - lookupLabel: -14 - hemisphere: right - center: - x: 26.5 - y: -7.1 - z: 16.3 - 7Networks_LH_Vis_1: - name: 7Networks_LH_Vis_1 - lookupLabel: 1 - originalLookupLabel: 1 - center: - x: -34.0 - y: -40.0 - z: -22.0 - color: '#780e86' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_2: - name: 7Networks_LH_Vis_2 - lookupLabel: 2 - originalLookupLabel: 2 - center: - x: -37.0 - y: -55.0 - z: -18.0 - color: '#780f7f' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_3: - name: 7Networks_LH_Vis_3 - lookupLabel: 3 - originalLookupLabel: 3 - center: - x: -26.0 - y: -45.0 - z: -14.0 - color: '#780f80' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_4: - name: 7Networks_LH_Vis_4 - lookupLabel: 4 - originalLookupLabel: 4 - center: - x: -29.0 - y: -36.0 - z: -15.0 - color: '#780f81' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_5: - name: 7Networks_LH_Vis_5 - lookupLabel: 5 - originalLookupLabel: 5 - center: - x: -29.0 - y: -63.0 - z: -13.0 - color: '#780f82' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_6: - name: 7Networks_LH_Vis_6 - lookupLabel: 6 - originalLookupLabel: 6 - center: - x: -36.0 - y: -71.0 - z: -16.0 - color: '#780f83' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_7: - name: 7Networks_LH_Vis_7 - lookupLabel: 7 - originalLookupLabel: 7 - center: - x: -45.0 - y: -70.0 - z: -14.0 - color: '#780f84' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_8: - name: 7Networks_LH_Vis_8 - lookupLabel: 8 - originalLookupLabel: 8 - center: - x: -24.0 - y: -58.0 - z: -9.0 - color: '#780f85' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_9: - name: 7Networks_LH_Vis_9 - lookupLabel: 9 - originalLookupLabel: 9 - center: - x: -23.0 - y: -75.0 - z: -9.0 - color: '#780f86' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_10: - name: 7Networks_LH_Vis_10 - lookupLabel: 10 - originalLookupLabel: 10 - center: - x: -41.0 - y: -79.0 - z: -14.0 - color: '#78107f' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_11: - name: 7Networks_LH_Vis_11 - lookupLabel: 11 - originalLookupLabel: 11 - center: - x: -18.0 - y: -36.0 - z: -13.0 - color: '#781080' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_12: - name: 7Networks_LH_Vis_12 - lookupLabel: 12 - originalLookupLabel: 12 - center: - x: -24.0 - y: -86.0 - z: -16.0 - color: '#781081' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_13: - name: 7Networks_LH_Vis_13 - lookupLabel: 13 - originalLookupLabel: 13 - center: - x: -21.0 - y: -49.0 - z: -6.0 - color: '#781082' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_14: - name: 7Networks_LH_Vis_14 - lookupLabel: 14 - originalLookupLabel: 14 - center: - x: -39.0 - y: -87.0 - z: -16.0 - color: '#781083' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_15: - name: 7Networks_LH_Vis_15 - lookupLabel: 15 - originalLookupLabel: 15 - center: - x: -13.0 - y: -83.0 - z: -14.0 - color: '#781084' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_16: - name: 7Networks_LH_Vis_16 - lookupLabel: 16 - originalLookupLabel: 16 - center: - x: -46.0 - y: -72.0 - z: -5.0 - color: '#781085' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_17: - name: 7Networks_LH_Vis_17 - lookupLabel: 17 - originalLookupLabel: 17 - center: - x: -9.0 - y: -76.0 - z: -8.0 - color: '#781086' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_18: - name: 7Networks_LH_Vis_18 - lookupLabel: 18 - originalLookupLabel: 18 - center: - x: -11.0 - y: -64.0 - z: -4.0 - color: '#78117f' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_19: - name: 7Networks_LH_Vis_19 - lookupLabel: 19 - originalLookupLabel: 19 - center: - x: -13.0 - y: -51.0 - z: -6.0 - color: '#781180' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_20: - name: 7Networks_LH_Vis_20 - lookupLabel: 20 - originalLookupLabel: 20 - center: - x: -9.0 - y: -96.0 - z: -16.0 - color: '#781181' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_21: - name: 7Networks_LH_Vis_21 - lookupLabel: 21 - originalLookupLabel: 21 - center: - x: -14.0 - y: -40.0 - z: -7.0 - color: '#781182' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_22: - name: 7Networks_LH_Vis_22 - lookupLabel: 22 - originalLookupLabel: 22 - center: - x: -24.0 - y: -97.0 - z: -12.0 - color: '#781183' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_23: - name: 7Networks_LH_Vis_23 - lookupLabel: 23 - originalLookupLabel: 23 - center: - x: -44.0 - y: -85.0 - z: -3.0 - color: '#781184' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_24: - name: 7Networks_LH_Vis_24 - lookupLabel: 24 - originalLookupLabel: 24 - center: - x: -4.0 - y: -88.0 - z: -10.0 - color: '#781185' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_25: - name: 7Networks_LH_Vis_25 - lookupLabel: 25 - originalLookupLabel: 25 - center: - x: -4.0 - y: -73.0 - z: 0.0 - color: '#781186' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_26: - name: 7Networks_LH_Vis_26 - lookupLabel: 26 - originalLookupLabel: 26 - center: - x: -7.0 - y: -61.0 - z: 3.0 - color: '#78127f' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_27: - name: 7Networks_LH_Vis_27 - lookupLabel: 27 - originalLookupLabel: 27 - center: - x: -32.0 - y: -93.0 - z: -3.0 - color: '#781280' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_28: - name: 7Networks_LH_Vis_28 - lookupLabel: 28 - originalLookupLabel: 28 - center: - x: -17.0 - y: -51.0 - z: -1.0 - color: '#781281' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_29: - name: 7Networks_LH_Vis_29 - lookupLabel: 29 - originalLookupLabel: 29 - center: - x: -46.0 - y: -75.0 - z: 6.0 - color: '#781282' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_30: - name: 7Networks_LH_Vis_30 - lookupLabel: 30 - originalLookupLabel: 30 - center: - x: -7.0 - y: -97.0 - z: -4.0 - color: '#781283' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_31: - name: 7Networks_LH_Vis_31 - lookupLabel: 31 - originalLookupLabel: 31 - center: - x: -11.0 - y: -43.0 - z: 1.0 - color: '#781284' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_32: - name: 7Networks_LH_Vis_32 - lookupLabel: 32 - originalLookupLabel: 32 - center: - x: -7.0 - y: -70.0 - z: 6.0 - color: '#781285' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_33: - name: 7Networks_LH_Vis_33 - lookupLabel: 33 - originalLookupLabel: 33 - center: - x: -39.0 - y: -88.0 - z: 5.0 - color: '#781287' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_34: - name: 7Networks_LH_Vis_34 - lookupLabel: 34 - originalLookupLabel: 34 - center: - x: -17.0 - y: -60.0 - z: 2.0 - color: '#781288' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_35: - name: 7Networks_LH_Vis_35 - lookupLabel: 35 - originalLookupLabel: 35 - center: - x: -7.0 - y: -81.0 - z: 4.0 - color: '#781289' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_36: - name: 7Networks_LH_Vis_36 - lookupLabel: 36 - originalLookupLabel: 36 - center: - x: -9.0 - y: -103.0 - z: 1.0 - color: '#78128a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_37: - name: 7Networks_LH_Vis_37 - lookupLabel: 37 - originalLookupLabel: 37 - center: - x: -20.0 - y: -101.0 - z: 3.0 - color: '#78128b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_38: - name: 7Networks_LH_Vis_38 - lookupLabel: 38 - originalLookupLabel: 38 - center: - x: -19.0 - y: -54.0 - z: 5.0 - color: '#78128c' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_39: - name: 7Networks_LH_Vis_39 - lookupLabel: 39 - originalLookupLabel: 39 - center: - x: -6.0 - y: -89.0 - z: 4.0 - color: '#78128d' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_40: - name: 7Networks_LH_Vis_40 - lookupLabel: 40 - originalLookupLabel: 40 - center: - x: -11.0 - y: -47.0 - z: 4.0 - color: '#781386' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_41: - name: 7Networks_LH_Vis_41 - lookupLabel: 41 - originalLookupLabel: 41 - center: - x: -18.0 - y: -70.0 - z: 6.0 - color: '#781387' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_42: - name: 7Networks_LH_Vis_42 - lookupLabel: 42 - originalLookupLabel: 42 - center: - x: -23.0 - y: -61.0 - z: 5.0 - color: '#781388' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_43: - name: 7Networks_LH_Vis_43 - lookupLabel: 43 - originalLookupLabel: 43 - center: - x: -27.0 - y: -93.0 - z: 8.0 - color: '#781389' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_44: - name: 7Networks_LH_Vis_44 - lookupLabel: 44 - originalLookupLabel: 44 - center: - x: -8.0 - y: -74.0 - z: 11.0 - color: '#78138a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_45: - name: 7Networks_LH_Vis_45 - lookupLabel: 45 - originalLookupLabel: 45 - center: - x: -18.0 - y: -61.0 - z: 9.0 - color: '#78138b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_46: - name: 7Networks_LH_Vis_46 - lookupLabel: 46 - originalLookupLabel: 46 - center: - x: -49.0 - y: -71.0 - z: 18.0 - color: '#78138c' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_47: - name: 7Networks_LH_Vis_47 - lookupLabel: 47 - originalLookupLabel: 47 - center: - x: -2.0 - y: -96.0 - z: 12.0 - color: '#78138d' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_48: - name: 7Networks_LH_Vis_48 - lookupLabel: 48 - originalLookupLabel: 48 - center: - x: -13.0 - y: -99.0 - z: 14.0 - color: '#781486' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_49: - name: 7Networks_LH_Vis_49 - lookupLabel: 49 - originalLookupLabel: 49 - center: - x: -40.0 - y: -83.0 - z: 16.0 - color: '#781487' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_50: - name: 7Networks_LH_Vis_50 - lookupLabel: 50 - originalLookupLabel: 50 - center: - x: -1.0 - y: -80.0 - z: 13.0 - color: '#781488' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_51: - name: 7Networks_LH_Vis_51 - lookupLabel: 51 - originalLookupLabel: 51 - center: - x: -16.0 - y: -64.0 - z: 13.0 - color: '#781489' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_52: - name: 7Networks_LH_Vis_52 - lookupLabel: 52 - originalLookupLabel: 52 - center: - x: -23.0 - y: -92.0 - z: 20.0 - color: '#78148a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_53: - name: 7Networks_LH_Vis_53 - lookupLabel: 53 - originalLookupLabel: 53 - center: - x: -7.0 - y: -68.0 - z: 16.0 - color: '#78148b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_54: - name: 7Networks_LH_Vis_54 - lookupLabel: 54 - originalLookupLabel: 54 - center: - x: -2.0 - y: -83.0 - z: 21.0 - color: '#78148c' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_55: - name: 7Networks_LH_Vis_55 - lookupLabel: 55 - originalLookupLabel: 55 - center: - x: -7.0 - y: -93.0 - z: 25.0 - color: '#78148d' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_56: - name: 7Networks_LH_Vis_56 - lookupLabel: 56 - originalLookupLabel: 56 - center: - x: -17.0 - y: -63.0 - z: 22.0 - color: '#781586' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_57: - name: 7Networks_LH_Vis_57 - lookupLabel: 57 - originalLookupLabel: 57 - center: - x: -15.0 - y: -71.0 - z: 19.0 - color: '#781587' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_58: - name: 7Networks_LH_Vis_58 - lookupLabel: 58 - originalLookupLabel: 58 - center: - x: -17.0 - y: -90.0 - z: 26.0 - color: '#781588' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_59: - name: 7Networks_LH_Vis_59 - lookupLabel: 59 - originalLookupLabel: 59 - center: - x: -27.0 - y: -81.0 - z: 20.0 - color: '#781589' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_60: - name: 7Networks_LH_Vis_60 - lookupLabel: 60 - originalLookupLabel: 60 - center: - x: -8.0 - y: -76.0 - z: 26.0 - color: '#78158a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_61: - name: 7Networks_LH_Vis_61 - lookupLabel: 61 - originalLookupLabel: 61 - center: - x: -32.0 - y: -84.0 - z: 26.0 - color: '#78158b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_62: - name: 7Networks_LH_Vis_62 - lookupLabel: 62 - originalLookupLabel: 62 - center: - x: -5.0 - y: -87.0 - z: 33.0 - color: '#78158c' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_63: - name: 7Networks_LH_Vis_63 - lookupLabel: 63 - originalLookupLabel: 63 - center: - x: -16.0 - y: -88.0 - z: 37.0 - color: '#78158d' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_64: - name: 7Networks_LH_Vis_64 - lookupLabel: 64 - originalLookupLabel: 64 - center: - x: -24.0 - y: -82.0 - z: 31.0 - color: '#781686' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_65: - name: 7Networks_LH_Vis_65 - lookupLabel: 65 - originalLookupLabel: 65 - center: - x: -12.0 - y: -81.0 - z: 37.0 - color: '#781687' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_66: - name: 7Networks_LH_Vis_66 - lookupLabel: 66 - originalLookupLabel: 66 - center: - x: -23.0 - y: -81.0 - z: 42.0 - color: '#781688' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_67: - name: 7Networks_LH_Vis_67 - lookupLabel: 67 - originalLookupLabel: 67 - center: - x: -17.0 - y: -82.0 - z: 47.0 - color: '#781689' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_SomMot_1: - name: 7Networks_LH_SomMot_1 - lookupLabel: 68 - originalLookupLabel: 68 - center: - x: -53.0 - y: -1.0 - z: -3.0 - color: '#467eb0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_2: - name: 7Networks_LH_SomMot_2 - lookupLabel: 69 - originalLookupLabel: 69 - center: - x: -56.0 - y: -17.0 - z: 6.0 - color: '#467eb1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_3: - name: 7Networks_LH_SomMot_3 - lookupLabel: 70 - originalLookupLabel: 70 - center: - x: -43.0 - y: -19.0 - z: 3.0 - color: '#467eb2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_4: - name: 7Networks_LH_SomMot_4 - lookupLabel: 71 - originalLookupLabel: 71 - center: - x: -61.0 - y: -26.0 - z: 10.0 - color: '#467eb3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_5: - name: 7Networks_LH_SomMot_5 - lookupLabel: 72 - originalLookupLabel: 72 - center: - x: -36.0 - y: -12.0 - z: 13.0 - color: '#467eb4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_6: - name: 7Networks_LH_SomMot_6 - lookupLabel: 73 - originalLookupLabel: 73 - center: - x: -35.0 - y: -24.0 - z: 11.0 - color: '#467fad' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_7: - name: 7Networks_LH_SomMot_7 - lookupLabel: 74 - originalLookupLabel: 74 - center: - x: -62.0 - y: -39.0 - z: 9.0 - color: '#467fae' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_8: - name: 7Networks_LH_SomMot_8 - lookupLabel: 75 - originalLookupLabel: 75 - center: - x: -43.0 - y: -29.0 - z: 9.0 - color: '#467faf' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_9: - name: 7Networks_LH_SomMot_9 - lookupLabel: 76 - originalLookupLabel: 76 - center: - x: -36.0 - y: -14.0 - z: 18.0 - color: '#467fb0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_10: - name: 7Networks_LH_SomMot_10 - lookupLabel: 77 - originalLookupLabel: 77 - center: - x: -49.0 - y: -33.0 - z: 11.0 - color: '#467fb1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_11: - name: 7Networks_LH_SomMot_11 - lookupLabel: 78 - originalLookupLabel: 78 - center: - x: -43.0 - y: -14.0 - z: 16.0 - color: '#467fb2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_12: - name: 7Networks_LH_SomMot_12 - lookupLabel: 79 - originalLookupLabel: 79 - center: - x: -36.0 - y: -27.0 - z: 19.0 - color: '#467fb3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_13: - name: 7Networks_LH_SomMot_13 - lookupLabel: 80 - originalLookupLabel: 80 - center: - x: -59.0 - y: -37.0 - z: 16.0 - color: '#467fb4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_14: - name: 7Networks_LH_SomMot_14 - lookupLabel: 81 - originalLookupLabel: 81 - center: - x: -51.0 - y: -12.0 - z: 13.0 - color: '#4680ad' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_15: - name: 7Networks_LH_SomMot_15 - lookupLabel: 82 - originalLookupLabel: 82 - center: - x: -41.0 - y: -36.0 - z: 17.0 - color: '#4680ae' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_16: - name: 7Networks_LH_SomMot_16 - lookupLabel: 83 - originalLookupLabel: 83 - center: - x: -59.0 - y: -3.0 - z: 11.0 - color: '#4680af' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_17: - name: 7Networks_LH_SomMot_17 - lookupLabel: 84 - originalLookupLabel: 84 - center: - x: -45.0 - y: -22.0 - z: 19.0 - color: '#4680b0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_18: - name: 7Networks_LH_SomMot_18 - lookupLabel: 85 - originalLookupLabel: 85 - center: - x: -60.0 - y: -17.0 - z: 19.0 - color: '#4680b1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_19: - name: 7Networks_LH_SomMot_19 - lookupLabel: 86 - originalLookupLabel: 86 - center: - x: -51.0 - y: -27.0 - z: 17.0 - color: '#4680b2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_20: - name: 7Networks_LH_SomMot_20 - lookupLabel: 87 - originalLookupLabel: 87 - center: - x: -60.0 - y: -2.0 - z: 19.0 - color: '#4680b3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_21: - name: 7Networks_LH_SomMot_21 - lookupLabel: 88 - originalLookupLabel: 88 - center: - x: -65.0 - y: -9.0 - z: 21.0 - color: '#4680b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_22: - name: 7Networks_LH_SomMot_22 - lookupLabel: 89 - originalLookupLabel: 89 - center: - x: -56.0 - y: -8.0 - z: 25.0 - color: '#4681ad' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_23: - name: 7Networks_LH_SomMot_23 - lookupLabel: 90 - originalLookupLabel: 90 - center: - x: -58.0 - y: 0.0 - z: 30.0 - color: '#4681ae' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_24: - name: 7Networks_LH_SomMot_24 - lookupLabel: 91 - originalLookupLabel: 91 - center: - x: -62.0 - y: -10.0 - z: 33.0 - color: '#4681af' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_25: - name: 7Networks_LH_SomMot_25 - lookupLabel: 92 - originalLookupLabel: 92 - center: - x: -50.0 - y: -9.0 - z: 31.0 - color: '#4681b0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_26: - name: 7Networks_LH_SomMot_26 - lookupLabel: 93 - originalLookupLabel: 93 - center: - x: -55.0 - y: -3.0 - z: 41.0 - color: '#4681b1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_27: - name: 7Networks_LH_SomMot_27 - lookupLabel: 94 - originalLookupLabel: 94 - center: - x: -55.0 - y: -19.0 - z: 41.0 - color: '#4681b2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_28: - name: 7Networks_LH_SomMot_28 - lookupLabel: 95 - originalLookupLabel: 95 - center: - x: -51.0 - y: -14.0 - z: 39.0 - color: '#4681b3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_29: - name: 7Networks_LH_SomMot_29 - lookupLabel: 96 - originalLookupLabel: 96 - center: - x: -46.0 - y: -12.0 - z: 39.0 - color: '#4681b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_30: - name: 7Networks_LH_SomMot_30 - lookupLabel: 97 - originalLookupLabel: 97 - center: - x: -8.0 - y: -8.0 - z: 41.0 - color: '#4682ad' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_31: - name: 7Networks_LH_SomMot_31 - lookupLabel: 98 - originalLookupLabel: 98 - center: - x: -56.0 - y: -16.0 - z: 51.0 - color: '#4682ae' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_32: - name: 7Networks_LH_SomMot_32 - lookupLabel: 99 - originalLookupLabel: 99 - center: - x: -51.0 - y: -1.0 - z: 49.0 - color: '#4682af' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_33: - name: 7Networks_LH_SomMot_33 - lookupLabel: 100 - originalLookupLabel: 100 - center: - x: -47.0 - y: -27.0 - z: 46.0 - color: '#4682b0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_34: - name: 7Networks_LH_SomMot_34 - lookupLabel: 101 - originalLookupLabel: 101 - center: - x: -40.0 - y: -19.0 - z: 41.0 - color: '#4682b1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_35: - name: 7Networks_LH_SomMot_35 - lookupLabel: 102 - originalLookupLabel: 102 - center: - x: -9.0 - y: -10.0 - z: 47.0 - color: '#4682b2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_36: - name: 7Networks_LH_SomMot_36 - lookupLabel: 103 - originalLookupLabel: 103 - center: - x: -52.0 - y: -25.0 - z: 55.0 - color: '#4682b3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_37: - name: 7Networks_LH_SomMot_37 - lookupLabel: 104 - originalLookupLabel: 104 - center: - x: -44.0 - y: -12.0 - z: 50.0 - color: '#4682b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_38: - name: 7Networks_LH_SomMot_38 - lookupLabel: 105 - originalLookupLabel: 105 - center: - x: -35.0 - y: -19.0 - z: 47.0 - color: '#4682b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_39: - name: 7Networks_LH_SomMot_39 - lookupLabel: 106 - originalLookupLabel: 106 - center: - x: -5.0 - y: -16.0 - z: 50.0 - color: '#4682b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_40: - name: 7Networks_LH_SomMot_40 - lookupLabel: 107 - originalLookupLabel: 107 - center: - x: -45.0 - y: -20.0 - z: 55.0 - color: '#4682b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_41: - name: 7Networks_LH_SomMot_41 - lookupLabel: 108 - originalLookupLabel: 108 - center: - x: -5.0 - y: -27.0 - z: 52.0 - color: '#4682b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_42: - name: 7Networks_LH_SomMot_42 - lookupLabel: 109 - originalLookupLabel: 109 - center: - x: -44.0 - y: -34.0 - z: 62.0 - color: '#4682ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_43: - name: 7Networks_LH_SomMot_43 - lookupLabel: 110 - originalLookupLabel: 110 - center: - x: -39.0 - y: -15.0 - z: 61.0 - color: '#4682bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_44: - name: 7Networks_LH_SomMot_44 - lookupLabel: 111 - originalLookupLabel: 111 - center: - x: -8.0 - y: -39.0 - z: 55.0 - color: '#4683b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_45: - name: 7Networks_LH_SomMot_45 - lookupLabel: 112 - originalLookupLabel: 112 - center: - x: -32.0 - y: -46.0 - z: 62.0 - color: '#4683b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_46: - name: 7Networks_LH_SomMot_46 - lookupLabel: 113 - originalLookupLabel: 113 - center: - x: -5.0 - y: -8.0 - z: 60.0 - color: '#4683b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_47: - name: 7Networks_LH_SomMot_47 - lookupLabel: 114 - originalLookupLabel: 114 - center: - x: -34.0 - y: -28.0 - z: 54.0 - color: '#4683b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_48: - name: 7Networks_LH_SomMot_48 - lookupLabel: 115 - originalLookupLabel: 115 - center: - x: -33.0 - y: -38.0 - z: 62.0 - color: '#4683b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_49: - name: 7Networks_LH_SomMot_49 - lookupLabel: 116 - originalLookupLabel: 116 - center: - x: -30.0 - y: -11.0 - z: 66.0 - color: '#4683b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_50: - name: 7Networks_LH_SomMot_50 - lookupLabel: 117 - originalLookupLabel: 117 - center: - x: -4.0 - y: -20.0 - z: 61.0 - color: '#4683ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_51: - name: 7Networks_LH_SomMot_51 - lookupLabel: 118 - originalLookupLabel: 118 - center: - x: -33.0 - y: -29.0 - z: 65.0 - color: '#4683bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_52: - name: 7Networks_LH_SomMot_52 - lookupLabel: 119 - originalLookupLabel: 119 - center: - x: -30.0 - y: -22.0 - z: 67.0 - color: '#4684b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_53: - name: 7Networks_LH_SomMot_53 - lookupLabel: 120 - originalLookupLabel: 120 - center: - x: -25.0 - y: -29.0 - z: 56.0 - color: '#4684b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_54: - name: 7Networks_LH_SomMot_54 - lookupLabel: 121 - originalLookupLabel: 121 - center: - x: -3.0 - y: -31.0 - z: 62.0 - color: '#4684b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_55: - name: 7Networks_LH_SomMot_55 - lookupLabel: 122 - originalLookupLabel: 122 - center: - x: -27.0 - y: -40.0 - z: 66.0 - color: '#4684b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_56: - name: 7Networks_LH_SomMot_56 - lookupLabel: 123 - originalLookupLabel: 123 - center: - x: -8.0 - y: -43.0 - z: 64.0 - color: '#4684b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_57: - name: 7Networks_LH_SomMot_57 - lookupLabel: 124 - originalLookupLabel: 124 - center: - x: -9.0 - y: -48.0 - z: 68.0 - color: '#4684b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_58: - name: 7Networks_LH_SomMot_58 - lookupLabel: 125 - originalLookupLabel: 125 - center: - x: -28.0 - y: -30.0 - z: 72.0 - color: '#4684ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_59: - name: 7Networks_LH_SomMot_59 - lookupLabel: 126 - originalLookupLabel: 126 - center: - x: -23.0 - y: -47.0 - z: 64.0 - color: '#4684bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_60: - name: 7Networks_LH_SomMot_60 - lookupLabel: 127 - originalLookupLabel: 127 - center: - x: -21.0 - y: -12.0 - z: 71.0 - color: '#4685b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_61: - name: 7Networks_LH_SomMot_61 - lookupLabel: 128 - originalLookupLabel: 128 - center: - x: -14.0 - y: -7.0 - z: 65.0 - color: '#4685b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_62: - name: 7Networks_LH_SomMot_62 - lookupLabel: 129 - originalLookupLabel: 129 - center: - x: -4.0 - y: -14.0 - z: 70.0 - color: '#4685b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_63: - name: 7Networks_LH_SomMot_63 - lookupLabel: 130 - originalLookupLabel: 130 - center: - x: -19.0 - y: -24.0 - z: 68.0 - color: '#4685b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_64: - name: 7Networks_LH_SomMot_64 - lookupLabel: 131 - originalLookupLabel: 131 - center: - x: -20.0 - y: -31.0 - z: 67.0 - color: '#4685b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_65: - name: 7Networks_LH_SomMot_65 - lookupLabel: 132 - originalLookupLabel: 132 - center: - x: -22.0 - y: -37.0 - z: 73.0 - color: '#4685b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_66: - name: 7Networks_LH_SomMot_66 - lookupLabel: 133 - originalLookupLabel: 133 - center: - x: -19.0 - y: -44.0 - z: 69.0 - color: '#4685ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_67: - name: 7Networks_LH_SomMot_67 - lookupLabel: 134 - originalLookupLabel: 134 - center: - x: -12.0 - y: -8.0 - z: 73.0 - color: '#4685bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_68: - name: 7Networks_LH_SomMot_68 - lookupLabel: 135 - originalLookupLabel: 135 - center: - x: -16.0 - y: -15.0 - z: 75.0 - color: '#4686b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_69: - name: 7Networks_LH_SomMot_69 - lookupLabel: 136 - originalLookupLabel: 136 - center: - x: -9.0 - y: -41.0 - z: 75.0 - color: '#4686b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_70: - name: 7Networks_LH_SomMot_70 - lookupLabel: 137 - originalLookupLabel: 137 - center: - x: -5.0 - y: -23.0 - z: 74.0 - color: '#4686b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_71: - name: 7Networks_LH_SomMot_71 - lookupLabel: 138 - originalLookupLabel: 138 - center: - x: -3.0 - y: -34.0 - z: 70.0 - color: '#4686b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_72: - name: 7Networks_LH_SomMot_72 - lookupLabel: 139 - originalLookupLabel: 139 - center: - x: -10.0 - y: -16.0 - z: 76.0 - color: '#4686b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_73: - name: 7Networks_LH_SomMot_73 - lookupLabel: 140 - originalLookupLabel: 140 - center: - x: -16.0 - y: -38.0 - z: 77.0 - color: '#4686b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_74: - name: 7Networks_LH_SomMot_74 - lookupLabel: 141 - originalLookupLabel: 141 - center: - x: -12.0 - y: -27.0 - z: 73.0 - color: '#4686ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_75: - name: 7Networks_LH_SomMot_75 - lookupLabel: 142 - originalLookupLabel: 142 - center: - x: -11.0 - y: -34.0 - z: 73.0 - color: '#4686bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_DorsAttn_Post_1: - name: 7Networks_LH_DorsAttn_Post_1 - lookupLabel: 143 - originalLookupLabel: 143 - center: - x: -48.0 - y: -51.0 - z: -18.0 - color: '#00740d' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_2: - name: 7Networks_LH_DorsAttn_Post_2 - lookupLabel: 144 - originalLookupLabel: 144 - center: - x: -47.0 - y: -62.0 - z: -7.0 - color: '#00740e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_3: - name: 7Networks_LH_DorsAttn_Post_3 - lookupLabel: 145 - originalLookupLabel: 145 - center: - x: -57.0 - y: -59.0 - z: -7.0 - color: '#007507' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_4: - name: 7Networks_LH_DorsAttn_Post_4 - lookupLabel: 146 - originalLookupLabel: 146 - center: - x: -49.0 - y: -65.0 - z: 2.0 - color: '#007508' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_5: - name: 7Networks_LH_DorsAttn_Post_5 - lookupLabel: 147 - originalLookupLabel: 147 - center: - x: -57.0 - y: -62.0 - z: 6.0 - color: '#007509' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_6: - name: 7Networks_LH_DorsAttn_Post_6 - lookupLabel: 148 - originalLookupLabel: 148 - center: - x: -48.0 - y: -63.0 - z: 12.0 - color: '#00750a' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_7: - name: 7Networks_LH_DorsAttn_Post_7 - lookupLabel: 149 - originalLookupLabel: 149 - center: - x: -44.0 - y: -74.0 - z: 25.0 - color: '#00750b' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_8: - name: 7Networks_LH_DorsAttn_Post_8 - lookupLabel: 150 - originalLookupLabel: 150 - center: - x: -38.0 - y: -82.0 - z: 32.0 - color: '#00750c' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_9: - name: 7Networks_LH_DorsAttn_Post_9 - lookupLabel: 151 - originalLookupLabel: 151 - center: - x: -29.0 - y: -73.0 - z: 27.0 - color: '#00750d' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_10: - name: 7Networks_LH_DorsAttn_Post_10 - lookupLabel: 152 - originalLookupLabel: 152 - center: - x: -29.0 - y: -78.0 - z: 39.0 - color: '#00750e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_11: - name: 7Networks_LH_DorsAttn_Post_11 - lookupLabel: 153 - originalLookupLabel: 153 - center: - x: -23.0 - y: -70.0 - z: 33.0 - color: '#007607' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_12: - name: 7Networks_LH_DorsAttn_Post_12 - lookupLabel: 154 - originalLookupLabel: 154 - center: - x: -27.0 - y: -67.0 - z: 39.0 - color: '#007608' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_13: - name: 7Networks_LH_DorsAttn_Post_13 - lookupLabel: 155 - originalLookupLabel: 155 - center: - x: -55.0 - y: -34.0 - z: 47.0 - color: '#007609' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_14: - name: 7Networks_LH_DorsAttn_Post_14 - lookupLabel: 156 - originalLookupLabel: 156 - center: - x: -55.0 - y: -27.0 - z: 42.0 - color: '#00760a' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_15: - name: 7Networks_LH_DorsAttn_Post_15 - lookupLabel: 157 - originalLookupLabel: 157 - center: - x: -47.0 - y: -32.0 - z: 42.0 - color: '#00760b' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_16: - name: 7Networks_LH_DorsAttn_Post_16 - lookupLabel: 158 - originalLookupLabel: 158 - center: - x: -22.0 - y: -64.0 - z: 47.0 - color: '#00760c' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_17: - name: 7Networks_LH_DorsAttn_Post_17 - lookupLabel: 159 - originalLookupLabel: 159 - center: - x: -20.0 - y: -73.0 - z: 47.0 - color: '#00760d' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_18: - name: 7Networks_LH_DorsAttn_Post_18 - lookupLabel: 160 - originalLookupLabel: 160 - center: - x: -40.0 - y: -34.0 - z: 42.0 - color: '#00760f' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_19: - name: 7Networks_LH_DorsAttn_Post_19 - lookupLabel: 161 - originalLookupLabel: 161 - center: - x: -33.0 - y: -43.0 - z: 41.0 - color: '#007610' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_20: - name: 7Networks_LH_DorsAttn_Post_20 - lookupLabel: 162 - originalLookupLabel: 162 - center: - x: -12.0 - y: -76.0 - z: 53.0 - color: '#007611' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_21: - name: 7Networks_LH_DorsAttn_Post_21 - lookupLabel: 163 - originalLookupLabel: 163 - center: - x: -32.0 - y: -50.0 - z: 48.0 - color: '#007612' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_22: - name: 7Networks_LH_DorsAttn_Post_22 - lookupLabel: 164 - originalLookupLabel: 164 - center: - x: -28.0 - y: -57.0 - z: 53.0 - color: '#007613' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_23: - name: 7Networks_LH_DorsAttn_Post_23 - lookupLabel: 165 - originalLookupLabel: 165 - center: - x: -41.0 - y: -35.0 - z: 51.0 - color: '#007614' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_24: - name: 7Networks_LH_DorsAttn_Post_24 - lookupLabel: 166 - originalLookupLabel: 166 - center: - x: -28.0 - y: -64.0 - z: 57.0 - color: '#007615' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_25: - name: 7Networks_LH_DorsAttn_Post_25 - lookupLabel: 167 - originalLookupLabel: 167 - center: - x: -5.0 - y: -70.0 - z: 54.0 - color: '#00770e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_26: - name: 7Networks_LH_DorsAttn_Post_26 - lookupLabel: 168 - originalLookupLabel: 168 - center: - x: -37.0 - y: -41.0 - z: 55.0 - color: '#00770f' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_27: - name: 7Networks_LH_DorsAttn_Post_27 - lookupLabel: 169 - originalLookupLabel: 169 - center: - x: -20.0 - y: -70.0 - z: 58.0 - color: '#007710' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_28: - name: 7Networks_LH_DorsAttn_Post_28 - lookupLabel: 170 - originalLookupLabel: 170 - center: - x: -38.0 - y: -53.0 - z: 59.0 - color: '#007711' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_29: - name: 7Networks_LH_DorsAttn_Post_29 - lookupLabel: 171 - originalLookupLabel: 171 - center: - x: -5.0 - y: -61.0 - z: 54.0 - color: '#007712' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_30: - name: 7Networks_LH_DorsAttn_Post_30 - lookupLabel: 172 - originalLookupLabel: 172 - center: - x: -29.0 - y: -61.0 - z: 63.0 - color: '#007713' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_31: - name: 7Networks_LH_DorsAttn_Post_31 - lookupLabel: 173 - originalLookupLabel: 173 - center: - x: -12.0 - y: -69.0 - z: 63.0 - color: '#007714' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_32: - name: 7Networks_LH_DorsAttn_Post_32 - lookupLabel: 174 - originalLookupLabel: 174 - center: - x: -10.0 - y: -63.0 - z: 59.0 - color: '#007715' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_33: - name: 7Networks_LH_DorsAttn_Post_33 - lookupLabel: 175 - originalLookupLabel: 175 - center: - x: -21.0 - y: -61.0 - z: 63.0 - color: '#00780e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_34: - name: 7Networks_LH_DorsAttn_Post_34 - lookupLabel: 176 - originalLookupLabel: 176 - center: - x: -31.0 - y: -52.0 - z: 68.0 - color: '#00780f' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_35: - name: 7Networks_LH_DorsAttn_Post_35 - lookupLabel: 177 - originalLookupLabel: 177 - center: - x: -6.0 - y: -56.0 - z: 66.0 - color: '#007810' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_36: - name: 7Networks_LH_DorsAttn_Post_36 - lookupLabel: 178 - originalLookupLabel: 178 - center: - x: -15.0 - y: -60.0 - z: 66.0 - color: '#007811' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_37: - name: 7Networks_LH_DorsAttn_Post_37 - lookupLabel: 179 - originalLookupLabel: 179 - center: - x: -22.0 - y: -53.0 - z: 69.0 - color: '#007812' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_38: - name: 7Networks_LH_DorsAttn_Post_38 - lookupLabel: 180 - originalLookupLabel: 180 - center: - x: -14.0 - y: -51.0 - z: 72.0 - color: '#007813' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_1: - name: 7Networks_LH_DorsAttn_FEF_1 - lookupLabel: 181 - originalLookupLabel: 181 - center: - x: -43.0 - y: -3.0 - z: 51.0 - color: '#00760e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_2: - name: 7Networks_LH_DorsAttn_FEF_2 - lookupLabel: 182 - originalLookupLabel: 182 - center: - x: -35.0 - y: 0.0 - z: 53.0 - color: '#007616' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_3: - name: 7Networks_LH_DorsAttn_FEF_3 - lookupLabel: 183 - originalLookupLabel: 183 - center: - x: -23.0 - y: 8.0 - z: 52.0 - color: '#007716' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_4: - name: 7Networks_LH_DorsAttn_FEF_4 - lookupLabel: 184 - originalLookupLabel: 184 - center: - x: -33.0 - y: -8.0 - z: 54.0 - color: '#007814' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_5: - name: 7Networks_LH_DorsAttn_FEF_5 - lookupLabel: 185 - originalLookupLabel: 185 - center: - x: -24.0 - y: -5.0 - z: 53.0 - color: '#007815' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_6: - name: 7Networks_LH_DorsAttn_FEF_6 - lookupLabel: 186 - originalLookupLabel: 186 - center: - x: -23.0 - y: 4.0 - z: 64.0 - color: '#007816' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_7: - name: 7Networks_LH_DorsAttn_FEF_7 - lookupLabel: 187 - originalLookupLabel: 187 - center: - x: -21.0 - y: -11.0 - z: 60.0 - color: '#00790f' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_PrCv_1: - name: 7Networks_LH_DorsAttn_PrCv_1 - lookupLabel: 188 - originalLookupLabel: 188 - center: - x: -51.0 - y: 6.0 - z: 28.0 - color: '#00790e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_PrCv_2: - name: 7Networks_LH_DorsAttn_PrCv_2 - lookupLabel: 189 - originalLookupLabel: 189 - center: - x: -48.0 - y: 2.0 - z: 38.0 - color: '#007910' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_SalVentAttn_ParOper_1: - name: 7Networks_LH_SalVentAttn_ParOper_1 - lookupLabel: 190 - originalLookupLabel: 190 - center: - x: -48.0 - y: -39.0 - z: 24.0 - color: '#c43af8' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_2: - name: 7Networks_LH_SalVentAttn_ParOper_2 - lookupLabel: 191 - originalLookupLabel: 191 - center: - x: -59.0 - y: -45.0 - z: 22.0 - color: '#c43af9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_3: - name: 7Networks_LH_SalVentAttn_ParOper_3 - lookupLabel: 192 - originalLookupLabel: 192 - center: - x: -54.0 - y: -32.0 - z: 23.0 - color: '#c43afb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_4: - name: 7Networks_LH_SalVentAttn_ParOper_4 - lookupLabel: 193 - originalLookupLabel: 193 - center: - x: -63.0 - y: -28.0 - z: 24.0 - color: '#c43afc' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_5: - name: 7Networks_LH_SalVentAttn_ParOper_5 - lookupLabel: 194 - originalLookupLabel: 194 - center: - x: -60.0 - y: -41.0 - z: 30.0 - color: '#c43afd' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_6: - name: 7Networks_LH_SalVentAttn_ParOper_6 - lookupLabel: 195 - originalLookupLabel: 195 - center: - x: -58.0 - y: -18.0 - z: 30.0 - color: '#c43afe' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_7: - name: 7Networks_LH_SalVentAttn_ParOper_7 - lookupLabel: 196 - originalLookupLabel: 196 - center: - x: -63.0 - y: -25.0 - z: 36.0 - color: '#c43aff' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_8: - name: 7Networks_LH_SalVentAttn_ParOper_8 - lookupLabel: 197 - originalLookupLabel: 197 - center: - x: -61.0 - y: -34.0 - z: 37.0 - color: '#c133fa' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_TempOcc_1: - name: 7Networks_LH_SalVentAttn_TempOcc_1 - lookupLabel: 198 - originalLookupLabel: 198 - center: - x: -55.0 - y: -55.0 - z: 13.0 - color: '#c133f9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_1: - name: 7Networks_LH_SalVentAttn_FrOperIns_1 - lookupLabel: 199 - originalLookupLabel: 199 - center: - x: -39.0 - y: 2.0 - z: -8.0 - color: '#c43bf6' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_2: - name: 7Networks_LH_SalVentAttn_FrOperIns_2 - lookupLabel: 200 - originalLookupLabel: 200 - center: - x: -35.0 - y: 30.0 - z: -1.0 - color: '#c43bf7' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_3: - name: 7Networks_LH_SalVentAttn_FrOperIns_3 - lookupLabel: 201 - originalLookupLabel: 201 - center: - x: -39.0 - y: -1.0 - z: 3.0 - color: '#c43bf8' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_4: - name: 7Networks_LH_SalVentAttn_FrOperIns_4 - lookupLabel: 202 - originalLookupLabel: 202 - center: - x: -40.0 - y: -14.0 - z: -2.0 - color: '#c43bf9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_5: - name: 7Networks_LH_SalVentAttn_FrOperIns_5 - lookupLabel: 203 - originalLookupLabel: 203 - center: - x: -33.0 - y: 19.0 - z: 8.0 - color: '#c43bfb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_6: - name: 7Networks_LH_SalVentAttn_FrOperIns_6 - lookupLabel: 204 - originalLookupLabel: 204 - center: - x: -36.0 - y: 0.0 - z: 11.0 - color: '#c43bfc' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_7: - name: 7Networks_LH_SalVentAttn_FrOperIns_7 - lookupLabel: 205 - originalLookupLabel: 205 - center: - x: -39.0 - y: 9.0 - z: 9.0 - color: '#c43bfd' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_8: - name: 7Networks_LH_SalVentAttn_FrOperIns_8 - lookupLabel: 206 - originalLookupLabel: 206 - center: - x: -44.0 - y: 10.0 - z: 1.0 - color: '#c43bfe' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_9: - name: 7Networks_LH_SalVentAttn_FrOperIns_9 - lookupLabel: 207 - originalLookupLabel: 207 - center: - x: -42.0 - y: -3.0 - z: 14.0 - color: '#c43bff' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_10: - name: 7Networks_LH_SalVentAttn_FrOperIns_10 - lookupLabel: 208 - originalLookupLabel: 208 - center: - x: -51.0 - y: 1.0 - z: 5.0 - color: '#c134fa' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_11: - name: 7Networks_LH_SalVentAttn_FrOperIns_11 - lookupLabel: 209 - originalLookupLabel: 209 - center: - x: -55.0 - y: 9.0 - z: 8.0 - color: '#c135f3' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_12: - name: 7Networks_LH_SalVentAttn_FrOperIns_12 - lookupLabel: 210 - originalLookupLabel: 210 - center: - x: -58.0 - y: 6.0 - z: 17.0 - color: '#c135f4' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_PFCl_1: - name: 7Networks_LH_SalVentAttn_PFCl_1 - lookupLabel: 211 - originalLookupLabel: 211 - center: - x: -30.0 - y: 46.0 - z: 27.0 - color: '#c134f9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_PFCl_2: - name: 7Networks_LH_SalVentAttn_PFCl_2 - lookupLabel: 212 - originalLookupLabel: 212 - center: - x: -26.0 - y: 37.0 - z: 37.0 - color: '#c134fb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_1: - name: 7Networks_LH_SalVentAttn_Med_1 - lookupLabel: 213 - originalLookupLabel: 213 - center: - x: -7.0 - y: 27.0 - z: 29.0 - color: '#c53af3' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_2: - name: 7Networks_LH_SalVentAttn_Med_2 - lookupLabel: 214 - originalLookupLabel: 214 - center: - x: -6.0 - y: 16.0 - z: 31.0 - color: '#c53af4' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_3: - name: 7Networks_LH_SalVentAttn_Med_3 - lookupLabel: 215 - originalLookupLabel: 215 - center: - x: -2.0 - y: 1.0 - z: 35.0 - color: '#c53af5' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_4: - name: 7Networks_LH_SalVentAttn_Med_4 - lookupLabel: 216 - originalLookupLabel: 216 - center: - x: -8.0 - y: 4.0 - z: 40.0 - color: '#c53af6' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_5: - name: 7Networks_LH_SalVentAttn_Med_5 - lookupLabel: 217 - originalLookupLabel: 217 - center: - x: -11.0 - y: -30.0 - z: 39.0 - color: '#c53af7' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_6: - name: 7Networks_LH_SalVentAttn_Med_6 - lookupLabel: 218 - originalLookupLabel: 218 - center: - x: -6.0 - y: 14.0 - z: 43.0 - color: '#c53af8' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_7: - name: 7Networks_LH_SalVentAttn_Med_7 - lookupLabel: 219 - originalLookupLabel: 219 - center: - x: -10.0 - y: -20.0 - z: 40.0 - color: '#c53af9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_8: - name: 7Networks_LH_SalVentAttn_Med_8 - lookupLabel: 220 - originalLookupLabel: 220 - center: - x: -14.0 - y: -41.0 - z: 45.0 - color: '#c53afb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_9: - name: 7Networks_LH_SalVentAttn_Med_9 - lookupLabel: 221 - originalLookupLabel: 221 - center: - x: -13.0 - y: -29.0 - z: 44.0 - color: '#c53afc' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_10: - name: 7Networks_LH_SalVentAttn_Med_10 - lookupLabel: 222 - originalLookupLabel: 222 - center: - x: -5.0 - y: 2.0 - z: 52.0 - color: '#c53afd' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_11: - name: 7Networks_LH_SalVentAttn_Med_11 - lookupLabel: 223 - originalLookupLabel: 223 - center: - x: -11.0 - y: -45.0 - z: 52.0 - color: '#c53afe' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_12: - name: 7Networks_LH_SalVentAttn_Med_12 - lookupLabel: 224 - originalLookupLabel: 224 - center: - x: -12.0 - y: -36.0 - z: 50.0 - color: '#c53aff' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_13: - name: 7Networks_LH_SalVentAttn_Med_13 - lookupLabel: 225 - originalLookupLabel: 225 - center: - x: -5.0 - y: -50.0 - z: 57.0 - color: '#c233fa' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_14: - name: 7Networks_LH_SalVentAttn_Med_14 - lookupLabel: 226 - originalLookupLabel: 226 - center: - x: -3.0 - y: 6.0 - z: 63.0 - color: '#c234f3' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_15: - name: 7Networks_LH_SalVentAttn_Med_15 - lookupLabel: 227 - originalLookupLabel: 227 - center: - x: -12.0 - y: -47.0 - z: 59.0 - color: '#c234f4' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_16: - name: 7Networks_LH_SalVentAttn_Med_16 - lookupLabel: 228 - originalLookupLabel: 228 - center: - x: -17.0 - y: 3.0 - z: 70.0 - color: '#c234f5' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_17: - name: 7Networks_LH_SalVentAttn_Med_17 - lookupLabel: 229 - originalLookupLabel: 229 - center: - x: -8.0 - y: -2.0 - z: 71.0 - color: '#c234f6' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_Limbic_OFC_1: - name: 7Networks_LH_Limbic_OFC_1 - lookupLabel: 230 - originalLookupLabel: 230 - center: - x: -19.0 - y: 13.0 - z: -22.0 - color: '#dcf8a0' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_2: - name: 7Networks_LH_Limbic_OFC_2 - lookupLabel: 231 - originalLookupLabel: 231 - center: - x: -13.0 - y: 24.0 - z: -21.0 - color: '#dcf8a1' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_3: - name: 7Networks_LH_Limbic_OFC_3 - lookupLabel: 232 - originalLookupLabel: 232 - center: - x: -27.0 - y: 15.0 - z: -23.0 - color: '#dcf8a2' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_4: - name: 7Networks_LH_Limbic_OFC_4 - lookupLabel: 233 - originalLookupLabel: 233 - center: - x: -9.0 - y: 39.0 - z: -22.0 - color: '#dcf8a3' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_5: - name: 7Networks_LH_Limbic_OFC_5 - lookupLabel: 234 - originalLookupLabel: 234 - center: - x: -18.0 - y: 37.0 - z: -21.0 - color: '#dcf8a5' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_6: - name: 7Networks_LH_Limbic_OFC_6 - lookupLabel: 235 - originalLookupLabel: 235 - center: - x: -24.0 - y: 28.0 - z: -18.0 - color: '#dcf8a6' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_7: - name: 7Networks_LH_Limbic_OFC_7 - lookupLabel: 236 - originalLookupLabel: 236 - center: - x: -5.0 - y: 21.0 - z: -20.0 - color: '#dcf8a7' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_8: - name: 7Networks_LH_Limbic_OFC_8 - lookupLabel: 237 - originalLookupLabel: 237 - center: - x: -3.0 - y: 40.0 - z: -22.0 - color: '#dcf8a8' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_9: - name: 7Networks_LH_Limbic_OFC_9 - lookupLabel: 238 - originalLookupLabel: 238 - center: - x: -10.0 - y: 54.0 - z: -21.0 - color: '#dcf8a9' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_10: - name: 7Networks_LH_Limbic_OFC_10 - lookupLabel: 239 - originalLookupLabel: 239 - center: - x: -4.0 - y: 15.0 - z: -10.0 - color: '#dcf8aa' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_11: - name: 7Networks_LH_Limbic_OFC_11 - lookupLabel: 240 - originalLookupLabel: 240 - center: - x: -8.0 - y: 65.0 - z: -13.0 - color: '#dcf8ab' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_12: - name: 7Networks_LH_Limbic_OFC_12 - lookupLabel: 241 - originalLookupLabel: 241 - center: - x: -19.0 - y: 63.0 - z: -9.0 - color: '#dcf9a4' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_1: - name: 7Networks_LH_Limbic_TempPole_1 - lookupLabel: 242 - originalLookupLabel: 242 - center: - x: -30.0 - y: -3.0 - z: -44.0 - color: '#dcf89e' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_2: - name: 7Networks_LH_Limbic_TempPole_2 - lookupLabel: 243 - originalLookupLabel: 243 - center: - x: -45.0 - y: -4.0 - z: -42.0 - color: '#dcf89f' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_3: - name: 7Networks_LH_Limbic_TempPole_3 - lookupLabel: 244 - originalLookupLabel: 244 - center: - x: -34.0 - y: 10.0 - z: -41.0 - color: '#dcf8a4' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_4: - name: 7Networks_LH_Limbic_TempPole_4 - lookupLabel: 245 - originalLookupLabel: 245 - center: - x: -28.0 - y: -8.0 - z: -34.0 - color: '#dcf8ac' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_5: - name: 7Networks_LH_Limbic_TempPole_5 - lookupLabel: 246 - originalLookupLabel: 246 - center: - x: -39.0 - y: -14.0 - z: -32.0 - color: '#dcf9a5' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_6: - name: 7Networks_LH_Limbic_TempPole_6 - lookupLabel: 247 - originalLookupLabel: 247 - center: - x: -22.0 - y: 5.0 - z: -36.0 - color: '#dcf9a6' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_7: - name: 7Networks_LH_Limbic_TempPole_7 - lookupLabel: 248 - originalLookupLabel: 248 - center: - x: -51.0 - y: -19.0 - z: -33.0 - color: '#dcf9a7' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_8: - name: 7Networks_LH_Limbic_TempPole_8 - lookupLabel: 249 - originalLookupLabel: 249 - center: - x: -17.0 - y: -7.0 - z: -30.0 - color: '#dcf9a8' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_9: - name: 7Networks_LH_Limbic_TempPole_9 - lookupLabel: 250 - originalLookupLabel: 250 - center: - x: -37.0 - y: -22.0 - z: -28.0 - color: '#dcf9a9' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_10: - name: 7Networks_LH_Limbic_TempPole_10 - lookupLabel: 251 - originalLookupLabel: 251 - center: - x: -29.0 - y: 11.0 - z: -31.0 - color: '#dcf9aa' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_11: - name: 7Networks_LH_Limbic_TempPole_11 - lookupLabel: 252 - originalLookupLabel: 252 - center: - x: -43.0 - y: -31.0 - z: -22.0 - color: '#dcf9ab' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_12: - name: 7Networks_LH_Limbic_TempPole_12 - lookupLabel: 253 - originalLookupLabel: 253 - center: - x: -21.0 - y: -18.0 - z: -28.0 - color: '#dcf9ac' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_13: - name: 7Networks_LH_Limbic_TempPole_13 - lookupLabel: 254 - originalLookupLabel: 254 - center: - x: -42.0 - y: 18.0 - z: -29.0 - color: '#dcfaa5' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_14: - name: 7Networks_LH_Limbic_TempPole_14 - lookupLabel: 255 - originalLookupLabel: 255 - center: - x: -32.0 - y: -25.0 - z: -24.0 - color: '#dcfaa6' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_15: - name: 7Networks_LH_Limbic_TempPole_15 - lookupLabel: 256 - originalLookupLabel: 256 - center: - x: -57.0 - y: -33.0 - z: -24.0 - color: '#dcfaa7' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_16: - name: 7Networks_LH_Limbic_TempPole_16 - lookupLabel: 257 - originalLookupLabel: 257 - center: - x: -37.0 - y: 9.0 - z: -25.0 - color: '#dcfaa8' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_17: - name: 7Networks_LH_Limbic_TempPole_17 - lookupLabel: 258 - originalLookupLabel: 258 - center: - x: -45.0 - y: 6.0 - z: -16.0 - color: '#dcfaa9' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Cont_Par_1: - name: 7Networks_LH_Cont_Par_1 - lookupLabel: 259 - originalLookupLabel: 259 - center: - x: -59.0 - y: -42.0 - z: 44.0 - color: '#e6941e' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_2: - name: 7Networks_LH_Cont_Par_2 - lookupLabel: 260 - originalLookupLabel: 260 - center: - x: -53.0 - y: -50.0 - z: 44.0 - color: '#e6941f' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_3: - name: 7Networks_LH_Cont_Par_3 - lookupLabel: 261 - originalLookupLabel: 261 - center: - x: -31.0 - y: -72.0 - z: 50.0 - color: '#e69420' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_4: - name: 7Networks_LH_Cont_Par_4 - lookupLabel: 262 - originalLookupLabel: 262 - center: - x: -52.0 - y: -43.0 - z: 54.0 - color: '#e69421' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_5: - name: 7Networks_LH_Cont_Par_5 - lookupLabel: 263 - originalLookupLabel: 263 - center: - x: -38.0 - y: -61.0 - z: 52.0 - color: '#e69423' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_6: - name: 7Networks_LH_Cont_Par_6 - lookupLabel: 264 - originalLookupLabel: 264 - center: - x: -45.0 - y: -48.0 - z: 53.0 - color: '#e69424' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_7: - name: 7Networks_LH_Cont_Par_7 - lookupLabel: 265 - originalLookupLabel: 265 - center: - x: -43.0 - y: -54.0 - z: 50.0 - color: '#e69425' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_8: - name: 7Networks_LH_Cont_Par_8 - lookupLabel: 266 - originalLookupLabel: 266 - center: - x: -47.0 - y: -40.0 - z: 46.0 - color: '#e69426' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_9: - name: 7Networks_LH_Cont_Par_9 - lookupLabel: 267 - originalLookupLabel: 267 - center: - x: -29.0 - y: -65.0 - z: 49.0 - color: '#e69427' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_10: - name: 7Networks_LH_Cont_Par_10 - lookupLabel: 268 - originalLookupLabel: 268 - center: - x: -40.0 - y: -44.0 - z: 43.0 - color: '#e69428' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_11: - name: 7Networks_LH_Cont_Par_11 - lookupLabel: 269 - originalLookupLabel: 269 - center: - x: -33.0 - y: -59.0 - z: 43.0 - color: '#e69429' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_12: - name: 7Networks_LH_Cont_Par_12 - lookupLabel: 270 - originalLookupLabel: 270 - center: - x: -35.0 - y: -51.0 - z: 40.0 - color: '#e69522' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Temp_1: - name: 7Networks_LH_Cont_Temp_1 - lookupLabel: 271 - originalLookupLabel: 271 - center: - x: -60.0 - y: -41.0 - z: -19.0 - color: '#e6942a' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Temp_2: - name: 7Networks_LH_Cont_Temp_2 - lookupLabel: 272 - originalLookupLabel: 272 - center: - x: -61.0 - y: -46.0 - z: -12.0 - color: '#e69523' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Temp_3: - name: 7Networks_LH_Cont_Temp_3 - lookupLabel: 273 - originalLookupLabel: 273 - center: - x: -62.0 - y: -49.0 - z: -3.0 - color: '#e69524' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCd_1: - name: 7Networks_LH_Cont_PFCd_1 - lookupLabel: 274 - originalLookupLabel: 274 - center: - x: -30.0 - y: 3.0 - z: 59.0 - color: '#e69525' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCd_2: - name: 7Networks_LH_Cont_PFCd_2 - lookupLabel: 275 - originalLookupLabel: 275 - center: - x: -20.0 - y: 17.0 - z: 64.0 - color: '#e69526' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_1: - name: 7Networks_LH_Cont_PFCl_1 - lookupLabel: 276 - originalLookupLabel: 276 - center: - x: -42.0 - y: 49.0 - z: -3.0 - color: '#e6951d' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_2: - name: 7Networks_LH_Cont_PFCl_2 - lookupLabel: 277 - originalLookupLabel: 277 - center: - x: -46.0 - y: 41.0 - z: 6.0 - color: '#e6951e' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_3: - name: 7Networks_LH_Cont_PFCl_3 - lookupLabel: 278 - originalLookupLabel: 278 - center: - x: -29.0 - y: 56.0 - z: 10.0 - color: '#e6951f' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_4: - name: 7Networks_LH_Cont_PFCl_4 - lookupLabel: 279 - originalLookupLabel: 279 - center: - x: -50.0 - y: 31.0 - z: 14.0 - color: '#e69520' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_5: - name: 7Networks_LH_Cont_PFCl_5 - lookupLabel: 280 - originalLookupLabel: 280 - center: - x: -38.0 - y: 48.0 - z: 12.0 - color: '#e69521' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_6: - name: 7Networks_LH_Cont_PFCl_6 - lookupLabel: 281 - originalLookupLabel: 281 - center: - x: -50.0 - y: 12.0 - z: 12.0 - color: '#e69527' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_7: - name: 7Networks_LH_Cont_PFCl_7 - lookupLabel: 282 - originalLookupLabel: 282 - center: - x: -42.0 - y: 36.0 - z: 17.0 - color: '#e69528' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_8: - name: 7Networks_LH_Cont_PFCl_8 - lookupLabel: 283 - originalLookupLabel: 283 - center: - x: -49.0 - y: 7.0 - z: 20.0 - color: '#e69529' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_9: - name: 7Networks_LH_Cont_PFCl_9 - lookupLabel: 284 - originalLookupLabel: 284 - center: - x: -47.0 - y: 18.0 - z: 24.0 - color: '#e6952a' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_10: - name: 7Networks_LH_Cont_PFCl_10 - lookupLabel: 285 - originalLookupLabel: 285 - center: - x: -42.0 - y: 38.0 - z: 28.0 - color: '#e69623' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_11: - name: 7Networks_LH_Cont_PFCl_11 - lookupLabel: 286 - originalLookupLabel: 286 - center: - x: -45.0 - y: 25.0 - z: 28.0 - color: '#e69624' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_12: - name: 7Networks_LH_Cont_PFCl_12 - lookupLabel: 287 - originalLookupLabel: 287 - center: - x: -37.0 - y: 9.0 - z: 27.0 - color: '#e69625' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_13: - name: 7Networks_LH_Cont_PFCl_13 - lookupLabel: 288 - originalLookupLabel: 288 - center: - x: -35.0 - y: 32.0 - z: 38.0 - color: '#e69626' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_14: - name: 7Networks_LH_Cont_PFCl_14 - lookupLabel: 289 - originalLookupLabel: 289 - center: - x: -44.0 - y: 20.0 - z: 35.0 - color: '#e69627' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_15: - name: 7Networks_LH_Cont_PFCl_15 - lookupLabel: 290 - originalLookupLabel: 290 - center: - x: -39.0 - y: 5.0 - z: 34.0 - color: '#e69628' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_OFC_1: - name: 7Networks_LH_Cont_OFC_1 - lookupLabel: 291 - originalLookupLabel: 291 - center: - x: -25.0 - y: 47.0 - z: -14.0 - color: '#e79423' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCv_1: - name: 7Networks_LH_Cont_PFCv_1 - lookupLabel: 292 - originalLookupLabel: 292 - center: - x: -35.0 - y: 14.0 - z: -9.0 - color: '#e79424' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCv_2: - name: 7Networks_LH_Cont_PFCv_2 - lookupLabel: 293 - originalLookupLabel: 293 - center: - x: -32.0 - y: 21.0 - z: -1.0 - color: '#e79425' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_pCun_1: - name: 7Networks_LH_Cont_pCun_1 - lookupLabel: 294 - originalLookupLabel: 294 - center: - x: -8.0 - y: -73.0 - z: 37.0 - color: '#e79523' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_pCun_2: - name: 7Networks_LH_Cont_pCun_2 - lookupLabel: 295 - originalLookupLabel: 295 - center: - x: -9.0 - y: -77.0 - z: 45.0 - color: '#e79524' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_pCun_3: - name: 7Networks_LH_Cont_pCun_3 - lookupLabel: 296 - originalLookupLabel: 296 - center: - x: -3.0 - y: -68.0 - z: 45.0 - color: '#e79525' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_1: - name: 7Networks_LH_Cont_Cing_1 - lookupLabel: 297 - originalLookupLabel: 297 - center: - x: -7.0 - y: -38.0 - z: 25.0 - color: '#e79522' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_2: - name: 7Networks_LH_Cont_Cing_2 - lookupLabel: 298 - originalLookupLabel: 298 - center: - x: -4.0 - y: 15.0 - z: 25.0 - color: '#e79526' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_3: - name: 7Networks_LH_Cont_Cing_3 - lookupLabel: 299 - originalLookupLabel: 299 - center: - x: -5.0 - y: -26.0 - z: 28.0 - color: '#e79527' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_4: - name: 7Networks_LH_Cont_Cing_4 - lookupLabel: 300 - originalLookupLabel: 300 - center: - x: -4.0 - y: 2.0 - z: 29.0 - color: '#e79528' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_5: - name: 7Networks_LH_Cont_Cing_5 - lookupLabel: 301 - originalLookupLabel: 301 - center: - x: -4.0 - y: -12.0 - z: 30.0 - color: '#e79529' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCmp_1: - name: 7Networks_LH_Cont_PFCmp_1 - lookupLabel: 302 - originalLookupLabel: 302 - center: - x: -4.0 - y: 27.0 - z: 45.0 - color: '#e69422' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCmp_2: - name: 7Networks_LH_Cont_PFCmp_2 - lookupLabel: 303 - originalLookupLabel: 303 - center: - x: -5.0 - y: 14.0 - z: 53.0 - color: '#e69621' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Default_Temp_1: - name: 7Networks_LH_Default_Temp_1 - lookupLabel: 304 - originalLookupLabel: 304 - center: - x: -51.0 - y: 3.0 - z: -32.0 - color: '#cd3d4a' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_2: - name: 7Networks_LH_Default_Temp_2 - lookupLabel: 305 - originalLookupLabel: 305 - center: - x: -58.0 - y: -16.0 - z: -28.0 - color: '#cd3d4b' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_3: - name: 7Networks_LH_Default_Temp_3 - lookupLabel: 306 - originalLookupLabel: 306 - center: - x: -62.0 - y: -26.0 - z: -17.0 - color: '#cd3d4c' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_4: - name: 7Networks_LH_Default_Temp_4 - lookupLabel: 307 - originalLookupLabel: 307 - center: - x: -52.0 - y: 8.0 - z: -17.0 - color: '#cd3d4d' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_5: - name: 7Networks_LH_Default_Temp_5 - lookupLabel: 308 - originalLookupLabel: 308 - center: - x: -51.0 - y: 0.0 - z: -21.0 - color: '#cd3d4e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_6: - name: 7Networks_LH_Default_Temp_6 - lookupLabel: 309 - originalLookupLabel: 309 - center: - x: -61.0 - y: -10.0 - z: -15.0 - color: '#cd3d4f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_7: - name: 7Networks_LH_Default_Temp_7 - lookupLabel: 310 - originalLookupLabel: 310 - center: - x: -63.0 - y: -25.0 - z: -8.0 - color: '#cd3e48' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_8: - name: 7Networks_LH_Default_Temp_8 - lookupLabel: 311 - originalLookupLabel: 311 - center: - x: -54.0 - y: -4.0 - z: -10.0 - color: '#cd3e49' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_9: - name: 7Networks_LH_Default_Temp_9 - lookupLabel: 312 - originalLookupLabel: 312 - center: - x: -51.0 - y: -14.0 - z: -11.0 - color: '#cd3e4a' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_10: - name: 7Networks_LH_Default_Temp_10 - lookupLabel: 313 - originalLookupLabel: 313 - center: - x: -63.0 - y: -37.0 - z: -3.0 - color: '#cd3e4b' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_11: - name: 7Networks_LH_Default_Temp_11 - lookupLabel: 314 - originalLookupLabel: 314 - center: - x: -52.0 - y: -23.0 - z: -6.0 - color: '#cd3e4c' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_12: - name: 7Networks_LH_Default_Temp_12 - lookupLabel: 315 - originalLookupLabel: 315 - center: - x: -60.0 - y: -14.0 - z: -3.0 - color: '#cd3e4d' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_13: - name: 7Networks_LH_Default_Temp_13 - lookupLabel: 316 - originalLookupLabel: 316 - center: - x: -51.0 - y: -36.0 - z: 1.0 - color: '#cd3e4e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_14: - name: 7Networks_LH_Default_Temp_14 - lookupLabel: 317 - originalLookupLabel: 317 - center: - x: -62.0 - y: -52.0 - z: 6.0 - color: '#cd3e50' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_15: - name: 7Networks_LH_Default_Temp_15 - lookupLabel: 318 - originalLookupLabel: 318 - center: - x: -63.0 - y: -27.0 - z: 3.0 - color: '#cd3e51' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_16: - name: 7Networks_LH_Default_Temp_16 - lookupLabel: 319 - originalLookupLabel: 319 - center: - x: -52.0 - y: -45.0 - z: 6.0 - color: '#cd3e52' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_1: - name: 7Networks_LH_Default_Par_1 - lookupLabel: 320 - originalLookupLabel: 320 - center: - x: -47.0 - y: -60.0 - z: 18.0 - color: '#cd3e53' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_2: - name: 7Networks_LH_Default_Par_2 - lookupLabel: 321 - originalLookupLabel: 321 - center: - x: -46.0 - y: -50.0 - z: 17.0 - color: '#cd3e54' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_3: - name: 7Networks_LH_Default_Par_3 - lookupLabel: 322 - originalLookupLabel: 322 - center: - x: -60.0 - y: -50.0 - z: 16.0 - color: '#cd3e55' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_4: - name: 7Networks_LH_Default_Par_4 - lookupLabel: 323 - originalLookupLabel: 323 - center: - x: -43.0 - y: -66.0 - z: 23.0 - color: '#cd3e56' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_5: - name: 7Networks_LH_Default_Par_5 - lookupLabel: 324 - originalLookupLabel: 324 - center: - x: -43.0 - y: -57.0 - z: 25.0 - color: '#cd3f4f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_6: - name: 7Networks_LH_Default_Par_6 - lookupLabel: 325 - originalLookupLabel: 325 - center: - x: -51.0 - y: -54.0 - z: 25.0 - color: '#cd3f50' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_7: - name: 7Networks_LH_Default_Par_7 - lookupLabel: 326 - originalLookupLabel: 326 - center: - x: -48.0 - y: -70.0 - z: 32.0 - color: '#cd3f51' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_8: - name: 7Networks_LH_Default_Par_8 - lookupLabel: 327 - originalLookupLabel: 327 - center: - x: -60.0 - y: -53.0 - z: 30.0 - color: '#cd3f52' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_9: - name: 7Networks_LH_Default_Par_9 - lookupLabel: 328 - originalLookupLabel: 328 - center: - x: -46.0 - y: -63.0 - z: 34.0 - color: '#cd3f53' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_10: - name: 7Networks_LH_Default_Par_10 - lookupLabel: 329 - originalLookupLabel: 329 - center: - x: -53.0 - y: -58.0 - z: 35.0 - color: '#cd3f54' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_11: - name: 7Networks_LH_Default_Par_11 - lookupLabel: 330 - originalLookupLabel: 330 - center: - x: -38.0 - y: -75.0 - z: 44.0 - color: '#cd3f55' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_12: - name: 7Networks_LH_Default_Par_12 - lookupLabel: 331 - originalLookupLabel: 331 - center: - x: -45.0 - y: -65.0 - z: 47.0 - color: '#cd3f56' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_13: - name: 7Networks_LH_Default_Par_13 - lookupLabel: 332 - originalLookupLabel: 332 - center: - x: -50.0 - y: -57.0 - z: 48.0 - color: '#cd404f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_1: - name: 7Networks_LH_Default_PFC_1 - lookupLabel: 333 - originalLookupLabel: 333 - center: - x: -36.0 - y: 23.0 - z: -15.0 - color: '#cd3e47' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_2: - name: 7Networks_LH_Default_PFC_2 - lookupLabel: 334 - originalLookupLabel: 334 - center: - x: -36.0 - y: 36.0 - z: -12.0 - color: '#cd3f47' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_3: - name: 7Networks_LH_Default_PFC_3 - lookupLabel: 335 - originalLookupLabel: 335 - center: - x: -38.0 - y: 51.0 - z: -13.0 - color: '#cd3f48' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_4: - name: 7Networks_LH_Default_PFC_4 - lookupLabel: 336 - originalLookupLabel: 336 - center: - x: -5.0 - y: 54.0 - z: -11.0 - color: '#cd3f49' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_5: - name: 7Networks_LH_Default_PFC_5 - lookupLabel: 337 - originalLookupLabel: 337 - center: - x: -6.0 - y: 34.0 - z: -9.0 - color: '#cd3f4a' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_6: - name: 7Networks_LH_Default_PFC_6 - lookupLabel: 338 - originalLookupLabel: 338 - center: - x: -47.0 - y: 33.0 - z: -11.0 - color: '#cd3f4b' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_7: - name: 7Networks_LH_Default_PFC_7 - lookupLabel: 339 - originalLookupLabel: 339 - center: - x: -28.0 - y: 58.0 - z: -1.0 - color: '#cd3f4c' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_8: - name: 7Networks_LH_Default_PFC_8 - lookupLabel: 340 - originalLookupLabel: 340 - center: - x: -42.0 - y: 26.0 - z: 3.0 - color: '#cd3f4d' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_9: - name: 7Networks_LH_Default_PFC_9 - lookupLabel: 341 - originalLookupLabel: 341 - center: - x: -51.0 - y: 33.0 - z: -2.0 - color: '#cd404e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_10: - name: 7Networks_LH_Default_PFC_10 - lookupLabel: 342 - originalLookupLabel: 342 - center: - x: -8.0 - y: 68.0 - z: 2.0 - color: '#cd4050' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_11: - name: 7Networks_LH_Default_PFC_11 - lookupLabel: 343 - originalLookupLabel: 343 - center: - x: -7.0 - y: 58.0 - z: 6.0 - color: '#cd4051' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_12: - name: 7Networks_LH_Default_PFC_12 - lookupLabel: 344 - originalLookupLabel: 344 - center: - x: -6.0 - y: 45.0 - z: 5.0 - color: '#cd4052' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_13: - name: 7Networks_LH_Default_PFC_13 - lookupLabel: 345 - originalLookupLabel: 345 - center: - x: -52.0 - y: 20.0 - z: 9.0 - color: '#cd4053' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_14: - name: 7Networks_LH_Default_PFC_14 - lookupLabel: 346 - originalLookupLabel: 346 - center: - x: -20.0 - y: 65.0 - z: 8.0 - color: '#cd4054' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_15: - name: 7Networks_LH_Default_PFC_15 - lookupLabel: 347 - originalLookupLabel: 347 - center: - x: -2.0 - y: 35.0 - z: 11.0 - color: '#cd4055' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_16: - name: 7Networks_LH_Default_PFC_16 - lookupLabel: 348 - originalLookupLabel: 348 - center: - x: -5.0 - y: 60.0 - z: 20.0 - color: '#cd414e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_17: - name: 7Networks_LH_Default_PFC_17 - lookupLabel: 349 - originalLookupLabel: 349 - center: - x: -6.0 - y: 48.0 - z: 19.0 - color: '#cd414f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_18: - name: 7Networks_LH_Default_PFC_18 - lookupLabel: 350 - originalLookupLabel: 350 - center: - x: -23.0 - y: 57.0 - z: 20.0 - color: '#cd4150' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_19: - name: 7Networks_LH_Default_PFC_19 - lookupLabel: 351 - originalLookupLabel: 351 - center: - x: -3.0 - y: 27.0 - z: 18.0 - color: '#cd4151' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_20: - name: 7Networks_LH_Default_PFC_20 - lookupLabel: 352 - originalLookupLabel: 352 - center: - x: -15.0 - y: 61.0 - z: 25.0 - color: '#cd4152' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_21: - name: 7Networks_LH_Default_PFC_21 - lookupLabel: 353 - originalLookupLabel: 353 - center: - x: -7.0 - y: 36.0 - z: 22.0 - color: '#cd4153' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_22: - name: 7Networks_LH_Default_PFC_22 - lookupLabel: 354 - originalLookupLabel: 354 - center: - x: -21.0 - y: 48.0 - z: 32.0 - color: '#cd4154' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_23: - name: 7Networks_LH_Default_PFC_23 - lookupLabel: 355 - originalLookupLabel: 355 - center: - x: -5.0 - y: 55.0 - z: 38.0 - color: '#cd4155' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_24: - name: 7Networks_LH_Default_PFC_24 - lookupLabel: 356 - originalLookupLabel: 356 - center: - x: -3.0 - y: 41.0 - z: 35.0 - color: '#cd424e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_25: - name: 7Networks_LH_Default_PFC_25 - lookupLabel: 357 - originalLookupLabel: 357 - center: - x: -14.0 - y: 50.0 - z: 40.0 - color: '#cd424f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_26: - name: 7Networks_LH_Default_PFC_26 - lookupLabel: 358 - originalLookupLabel: 358 - center: - x: -20.0 - y: 39.0 - z: 41.0 - color: '#cd4250' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_27: - name: 7Networks_LH_Default_PFC_27 - lookupLabel: 359 - originalLookupLabel: 359 - center: - x: -28.0 - y: 29.0 - z: 47.0 - color: '#cd4251' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_28: - name: 7Networks_LH_Default_PFC_28 - lookupLabel: 360 - originalLookupLabel: 360 - center: - x: -39.0 - y: 24.0 - z: 46.0 - color: '#cd4252' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_29: - name: 7Networks_LH_Default_PFC_29 - lookupLabel: 361 - originalLookupLabel: 361 - center: - x: -46.0 - y: 13.0 - z: 41.0 - color: '#cd4253' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_30: - name: 7Networks_LH_Default_PFC_30 - lookupLabel: 362 - originalLookupLabel: 362 - center: - x: -23.0 - y: 25.0 - z: 41.0 - color: '#cd4254' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_31: - name: 7Networks_LH_Default_PFC_31 - lookupLabel: 363 - originalLookupLabel: 363 - center: - x: -11.0 - y: 43.0 - z: 51.0 - color: '#cd4255' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_32: - name: 7Networks_LH_Default_PFC_32 - lookupLabel: 364 - originalLookupLabel: 364 - center: - x: -4.0 - y: 39.0 - z: 52.0 - color: '#cd434e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_33: - name: 7Networks_LH_Default_PFC_33 - lookupLabel: 365 - originalLookupLabel: 365 - center: - x: -41.0 - y: 7.0 - z: 49.0 - color: '#cd434f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_34: - name: 7Networks_LH_Default_PFC_34 - lookupLabel: 366 - originalLookupLabel: 366 - center: - x: -38.0 - y: 14.0 - z: 56.0 - color: '#cd4350' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_35: - name: 7Networks_LH_Default_PFC_35 - lookupLabel: 367 - originalLookupLabel: 367 - center: - x: -20.0 - y: 32.0 - z: 51.0 - color: '#cd4351' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_36: - name: 7Networks_LH_Default_PFC_36 - lookupLabel: 368 - originalLookupLabel: 368 - center: - x: -29.0 - y: 17.0 - z: 55.0 - color: '#cd4352' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_37: - name: 7Networks_LH_Default_PFC_37 - lookupLabel: 369 - originalLookupLabel: 369 - center: - x: -23.0 - y: 16.0 - z: 52.0 - color: '#cd4353' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_38: - name: 7Networks_LH_Default_PFC_38 - lookupLabel: 370 - originalLookupLabel: 370 - center: - x: -12.0 - y: 26.0 - z: 60.0 - color: '#cd4354' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_39: - name: 7Networks_LH_Default_PFC_39 - lookupLabel: 371 - originalLookupLabel: 371 - center: - x: -4.0 - y: 19.0 - z: 61.0 - color: '#cd4355' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_40: - name: 7Networks_LH_Default_PFC_40 - lookupLabel: 372 - originalLookupLabel: 372 - center: - x: -12.0 - y: 12.0 - z: 67.0 - color: '#cd444e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_1: - name: 7Networks_LH_Default_pCunPCC_1 - lookupLabel: 373 - originalLookupLabel: 373 - center: - x: -10.0 - y: -53.0 - z: 8.0 - color: '#cd3e4f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_2: - name: 7Networks_LH_Default_pCunPCC_2 - lookupLabel: 374 - originalLookupLabel: 374 - center: - x: -6.0 - y: -47.0 - z: 14.0 - color: '#cd3f4e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_3: - name: 7Networks_LH_Default_pCunPCC_3 - lookupLabel: 375 - originalLookupLabel: 375 - center: - x: -11.0 - y: -59.0 - z: 16.0 - color: '#cd4056' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_4: - name: 7Networks_LH_Default_pCunPCC_4 - lookupLabel: 376 - originalLookupLabel: 376 - center: - x: -4.0 - y: -53.0 - z: 17.0 - color: '#cd4156' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_5: - name: 7Networks_LH_Default_pCunPCC_5 - lookupLabel: 377 - originalLookupLabel: 377 - center: - x: -7.0 - y: -44.0 - z: 22.0 - color: '#cd4256' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_6: - name: 7Networks_LH_Default_pCunPCC_6 - lookupLabel: 378 - originalLookupLabel: 378 - center: - x: -3.0 - y: -62.0 - z: 22.0 - color: '#cd4356' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_7: - name: 7Networks_LH_Default_pCunPCC_7 - lookupLabel: 379 - originalLookupLabel: 379 - center: - x: -12.0 - y: -66.0 - z: 25.0 - color: '#cd444f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_8: - name: 7Networks_LH_Default_pCunPCC_8 - lookupLabel: 380 - originalLookupLabel: 380 - center: - x: -5.0 - y: -51.0 - z: 25.0 - color: '#cd4450' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_9: - name: 7Networks_LH_Default_pCunPCC_9 - lookupLabel: 381 - originalLookupLabel: 381 - center: - x: -3.0 - y: -44.0 - z: 28.0 - color: '#cd4451' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_10: - name: 7Networks_LH_Default_pCunPCC_10 - lookupLabel: 382 - originalLookupLabel: 382 - center: - x: -12.0 - y: -69.0 - z: 30.0 - color: '#cd4452' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_11: - name: 7Networks_LH_Default_pCunPCC_11 - lookupLabel: 383 - originalLookupLabel: 383 - center: - x: -6.0 - y: -58.0 - z: 28.0 - color: '#cd4453' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_12: - name: 7Networks_LH_Default_pCunPCC_12 - lookupLabel: 384 - originalLookupLabel: 384 - center: - x: -3.0 - y: -35.0 - z: 29.0 - color: '#cd4454' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_13: - name: 7Networks_LH_Default_pCunPCC_13 - lookupLabel: 385 - originalLookupLabel: 385 - center: - x: -3.0 - y: -67.0 - z: 30.0 - color: '#cd4455' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_14: - name: 7Networks_LH_Default_pCunPCC_14 - lookupLabel: 386 - originalLookupLabel: 386 - center: - x: -11.0 - y: -49.0 - z: 30.0 - color: '#cd4456' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_15: - name: 7Networks_LH_Default_pCunPCC_15 - lookupLabel: 387 - originalLookupLabel: 387 - center: - x: -5.0 - y: -39.0 - z: 34.0 - color: '#cd454f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_16: - name: 7Networks_LH_Default_pCunPCC_16 - lookupLabel: 388 - originalLookupLabel: 388 - center: - x: -4.0 - y: -30.0 - z: 34.0 - color: '#cd4550' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_17: - name: 7Networks_LH_Default_pCunPCC_17 - lookupLabel: 389 - originalLookupLabel: 389 - center: - x: -2.0 - y: -16.0 - z: 36.0 - color: '#cd4551' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_18: - name: 7Networks_LH_Default_pCunPCC_18 - lookupLabel: 390 - originalLookupLabel: 390 - center: - x: -7.0 - y: -58.0 - z: 35.0 - color: '#cd4552' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_19: - name: 7Networks_LH_Default_pCunPCC_19 - lookupLabel: 391 - originalLookupLabel: 391 - center: - x: -9.0 - y: -43.0 - z: 38.0 - color: '#cd4553' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_20: - name: 7Networks_LH_Default_pCunPCC_20 - lookupLabel: 392 - originalLookupLabel: 392 - center: - x: -3.0 - y: -66.0 - z: 38.0 - color: '#cd4554' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_21: - name: 7Networks_LH_Default_pCunPCC_21 - lookupLabel: 393 - originalLookupLabel: 393 - center: - x: -4.0 - y: -25.0 - z: 40.0 - color: '#cd4555' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_22: - name: 7Networks_LH_Default_pCunPCC_22 - lookupLabel: 394 - originalLookupLabel: 394 - center: - x: -5.0 - y: -35.0 - z: 42.0 - color: '#cd4556' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_23: - name: 7Networks_LH_Default_pCunPCC_23 - lookupLabel: 395 - originalLookupLabel: 395 - center: - x: -10.0 - y: -51.0 - z: 39.0 - color: '#cd464f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_24: - name: 7Networks_LH_Default_pCunPCC_24 - lookupLabel: 396 - originalLookupLabel: 396 - center: - x: -5.0 - y: -42.0 - z: 45.0 - color: '#cd4650' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_25: - name: 7Networks_LH_Default_pCunPCC_25 - lookupLabel: 397 - originalLookupLabel: 397 - center: - x: -5.0 - y: -59.0 - z: 43.0 - color: '#cd4651' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_26: - name: 7Networks_LH_Default_pCunPCC_26 - lookupLabel: 398 - originalLookupLabel: 398 - center: - x: -6.0 - y: -50.0 - z: 47.0 - color: '#cd4652' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_27: - name: 7Networks_LH_Default_pCunPCC_27 - lookupLabel: 399 - originalLookupLabel: 399 - center: - x: -5.0 - y: -58.0 - z: 49.0 - color: '#cd4653' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PHC_1: - name: 7Networks_LH_Default_PHC_1 - lookupLabel: 400 - originalLookupLabel: 400 - center: - x: -19.0 - y: -26.0 - z: -20.0 - color: '#ce3e4f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_RH_Vis_1: - name: 7Networks_RH_Vis_1 - lookupLabel: 401 - originalLookupLabel: 401 - center: - x: 33.0 - y: -33.0 - z: -24.0 - color: '#7c0e87' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_2: - name: 7Networks_RH_Vis_2 - lookupLabel: 402 - originalLookupLabel: 402 - center: - x: 33.0 - y: -23.0 - z: -24.0 - color: '#7c0f80' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_3: - name: 7Networks_RH_Vis_3 - lookupLabel: 403 - originalLookupLabel: 403 - center: - x: 35.0 - y: -49.0 - z: -19.0 - color: '#7c0f81' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_4: - name: 7Networks_RH_Vis_4 - lookupLabel: 404 - originalLookupLabel: 404 - center: - x: 30.0 - y: -45.0 - z: -12.0 - color: '#7c0f82' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_5: - name: 7Networks_RH_Vis_5 - lookupLabel: 405 - originalLookupLabel: 405 - center: - x: 31.0 - y: -35.0 - z: -15.0 - color: '#7c0f83' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_6: - name: 7Networks_RH_Vis_6 - lookupLabel: 406 - originalLookupLabel: 406 - center: - x: 46.0 - y: -58.0 - z: -18.0 - color: '#7c0f84' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_7: - name: 7Networks_RH_Vis_7 - lookupLabel: 407 - originalLookupLabel: 407 - center: - x: 36.0 - y: -66.0 - z: -15.0 - color: '#7c0f85' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_8: - name: 7Networks_RH_Vis_8 - lookupLabel: 408 - originalLookupLabel: 408 - center: - x: 29.0 - y: -64.0 - z: -11.0 - color: '#7c0f86' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_9: - name: 7Networks_RH_Vis_9 - lookupLabel: 409 - originalLookupLabel: 409 - center: - x: 21.0 - y: -32.0 - z: -15.0 - color: '#7c0f87' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_10: - name: 7Networks_RH_Vis_10 - lookupLabel: 410 - originalLookupLabel: 410 - center: - x: 37.0 - y: -77.0 - z: -16.0 - color: '#7c1080' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_11: - name: 7Networks_RH_Vis_11 - lookupLabel: 411 - originalLookupLabel: 411 - center: - x: 26.0 - y: -79.0 - z: -12.0 - color: '#7c1081' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_12: - name: 7Networks_RH_Vis_12 - lookupLabel: 412 - originalLookupLabel: 412 - center: - x: 24.0 - y: -59.0 - z: -8.0 - color: '#7c1082' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_13: - name: 7Networks_RH_Vis_13 - lookupLabel: 413 - originalLookupLabel: 413 - center: - x: 22.0 - y: -47.0 - z: -9.0 - color: '#7c1083' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_14: - name: 7Networks_RH_Vis_14 - lookupLabel: 414 - originalLookupLabel: 414 - center: - x: 47.0 - y: -72.0 - z: -13.0 - color: '#7c1084' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_15: - name: 7Networks_RH_Vis_15 - lookupLabel: 415 - originalLookupLabel: 415 - center: - x: 18.0 - y: -74.0 - z: -9.0 - color: '#7c1085' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_16: - name: 7Networks_RH_Vis_16 - lookupLabel: 416 - originalLookupLabel: 416 - center: - x: 20.0 - y: -88.0 - z: -12.0 - color: '#7c1086' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_17: - name: 7Networks_RH_Vis_17 - lookupLabel: 417 - originalLookupLabel: 417 - center: - x: 12.0 - y: -82.0 - z: -14.0 - color: '#7c1087' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_18: - name: 7Networks_RH_Vis_18 - lookupLabel: 418 - originalLookupLabel: 418 - center: - x: 36.0 - y: -88.0 - z: -16.0 - color: '#7c1180' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_19: - name: 7Networks_RH_Vis_19 - lookupLabel: 419 - originalLookupLabel: 419 - center: - x: 17.0 - y: -37.0 - z: -12.0 - color: '#7c1181' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_20: - name: 7Networks_RH_Vis_20 - lookupLabel: 420 - originalLookupLabel: 420 - center: - x: 14.0 - y: -47.0 - z: -7.0 - color: '#7c1182' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_21: - name: 7Networks_RH_Vis_21 - lookupLabel: 421 - originalLookupLabel: 421 - center: - x: 14.0 - y: -61.0 - z: -4.0 - color: '#7c1183' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_22: - name: 7Networks_RH_Vis_22 - lookupLabel: 422 - originalLookupLabel: 422 - center: - x: 8.0 - y: -72.0 - z: -4.0 - color: '#7c1184' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_23: - name: 7Networks_RH_Vis_23 - lookupLabel: 423 - originalLookupLabel: 423 - center: - x: 15.0 - y: -96.0 - z: -12.0 - color: '#7c1185' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_24: - name: 7Networks_RH_Vis_24 - lookupLabel: 424 - originalLookupLabel: 424 - center: - x: 49.0 - y: -76.0 - z: -7.0 - color: '#7c1186' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_25: - name: 7Networks_RH_Vis_25 - lookupLabel: 425 - originalLookupLabel: 425 - center: - x: 7.0 - y: -90.0 - z: -10.0 - color: '#7c1187' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_26: - name: 7Networks_RH_Vis_26 - lookupLabel: 426 - originalLookupLabel: 426 - center: - x: 23.0 - y: -98.0 - z: -11.0 - color: '#7c1280' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_27: - name: 7Networks_RH_Vis_27 - lookupLabel: 427 - originalLookupLabel: 427 - center: - x: 14.0 - y: -56.0 - z: 2.0 - color: '#7c1281' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_28: - name: 7Networks_RH_Vis_28 - lookupLabel: 428 - originalLookupLabel: 428 - center: - x: 35.0 - y: -91.0 - z: -6.0 - color: '#7c1282' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_29: - name: 7Networks_RH_Vis_29 - lookupLabel: 429 - originalLookupLabel: 429 - center: - x: 18.0 - y: -44.0 - z: -3.0 - color: '#7c1283' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_30: - name: 7Networks_RH_Vis_30 - lookupLabel: 430 - originalLookupLabel: 430 - center: - x: 4.0 - y: -78.0 - z: -1.0 - color: '#7c1284' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_31: - name: 7Networks_RH_Vis_31 - lookupLabel: 431 - originalLookupLabel: 431 - center: - x: 45.0 - y: -65.0 - z: 0.0 - color: '#7c1285' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_32: - name: 7Networks_RH_Vis_32 - lookupLabel: 432 - originalLookupLabel: 432 - center: - x: 8.0 - y: -64.0 - z: 7.0 - color: '#7c1286' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_33: - name: 7Networks_RH_Vis_33 - lookupLabel: 433 - originalLookupLabel: 433 - center: - x: 44.0 - y: -84.0 - z: -1.0 - color: '#7c1288' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_34: - name: 7Networks_RH_Vis_34 - lookupLabel: 434 - originalLookupLabel: 434 - center: - x: 13.0 - y: -44.0 - z: 3.0 - color: '#7c1289' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_35: - name: 7Networks_RH_Vis_35 - lookupLabel: 435 - originalLookupLabel: 435 - center: - x: 11.0 - y: -96.0 - z: 1.0 - color: '#7c128a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_36: - name: 7Networks_RH_Vis_36 - lookupLabel: 436 - originalLookupLabel: 436 - center: - x: 51.0 - y: -71.0 - z: 4.0 - color: '#7c128b' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_37: - name: 7Networks_RH_Vis_37 - lookupLabel: 437 - originalLookupLabel: 437 - center: - x: 8.0 - y: -86.0 - z: 3.0 - color: '#7c128c' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_38: - name: 7Networks_RH_Vis_38 - lookupLabel: 438 - originalLookupLabel: 438 - center: - x: 25.0 - y: -99.0 - z: 2.0 - color: '#7c128d' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_39: - name: 7Networks_RH_Vis_39 - lookupLabel: 439 - originalLookupLabel: 439 - center: - x: 14.0 - y: -103.0 - z: 4.0 - color: '#7c128e' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_40: - name: 7Networks_RH_Vis_40 - lookupLabel: 440 - originalLookupLabel: 440 - center: - x: 11.0 - y: -76.0 - z: 9.0 - color: '#7c1387' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_41: - name: 7Networks_RH_Vis_41 - lookupLabel: 441 - originalLookupLabel: 441 - center: - x: 24.0 - y: -57.0 - z: 5.0 - color: '#7c1388' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_42: - name: 7Networks_RH_Vis_42 - lookupLabel: 442 - originalLookupLabel: 442 - center: - x: 18.0 - y: -69.0 - z: 8.0 - color: '#7c1389' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_43: - name: 7Networks_RH_Vis_43 - lookupLabel: 443 - originalLookupLabel: 443 - center: - x: 34.0 - y: -89.0 - z: 5.0 - color: '#7c138a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_44: - name: 7Networks_RH_Vis_44 - lookupLabel: 444 - originalLookupLabel: 444 - center: - x: 5.0 - y: -84.0 - z: 12.0 - color: '#7c138b' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_45: - name: 7Networks_RH_Vis_45 - lookupLabel: 445 - originalLookupLabel: 445 - center: - x: 19.0 - y: -98.0 - z: 14.0 - color: '#7c138c' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_46: - name: 7Networks_RH_Vis_46 - lookupLabel: 446 - originalLookupLabel: 446 - center: - x: 21.0 - y: -59.0 - z: 11.0 - color: '#7c138d' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_47: - name: 7Networks_RH_Vis_47 - lookupLabel: 447 - originalLookupLabel: 447 - center: - x: 48.0 - y: -67.0 - z: 15.0 - color: '#7c138e' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_48: - name: 7Networks_RH_Vis_48 - lookupLabel: 448 - originalLookupLabel: 448 - center: - x: 10.0 - y: -69.0 - z: 14.0 - color: '#7c1487' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_49: - name: 7Networks_RH_Vis_49 - lookupLabel: 449 - originalLookupLabel: 449 - center: - x: 44.0 - y: -78.0 - z: 10.0 - color: '#7c1488' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_50: - name: 7Networks_RH_Vis_50 - lookupLabel: 450 - originalLookupLabel: 450 - center: - x: 7.0 - y: -93.0 - z: 16.0 - color: '#7c1489' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_51: - name: 7Networks_RH_Vis_51 - lookupLabel: 451 - originalLookupLabel: 451 - center: - x: 20.0 - y: -63.0 - z: 16.0 - color: '#7c148a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_52: - name: 7Networks_RH_Vis_52 - lookupLabel: 452 - originalLookupLabel: 452 - center: - x: 29.0 - y: -89.0 - z: 18.0 - color: '#7c148b' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_53: - name: 7Networks_RH_Vis_53 - lookupLabel: 453 - originalLookupLabel: 453 - center: - x: 5.0 - y: -78.0 - z: 24.0 - color: '#7c148c' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_54: - name: 7Networks_RH_Vis_54 - lookupLabel: 454 - originalLookupLabel: 454 - center: - x: 35.0 - y: -84.0 - z: 16.0 - color: '#7c148d' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_55: - name: 7Networks_RH_Vis_55 - lookupLabel: 455 - originalLookupLabel: 455 - center: - x: 16.0 - y: -91.0 - z: 24.0 - color: '#7c148e' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_56: - name: 7Networks_RH_Vis_56 - lookupLabel: 456 - originalLookupLabel: 456 - center: - x: 13.0 - y: -69.0 - z: 22.0 - color: '#7c1587' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_57: - name: 7Networks_RH_Vis_57 - lookupLabel: 457 - originalLookupLabel: 457 - center: - x: 7.0 - y: -87.0 - z: 33.0 - color: '#7c1588' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_58: - name: 7Networks_RH_Vis_58 - lookupLabel: 458 - originalLookupLabel: 458 - center: - x: 19.0 - y: -64.0 - z: 27.0 - color: '#7c1589' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_59: - name: 7Networks_RH_Vis_59 - lookupLabel: 459 - originalLookupLabel: 459 - center: - x: 38.0 - y: -79.0 - z: 29.0 - color: '#7c158a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_60: - name: 7Networks_RH_Vis_60 - lookupLabel: 460 - originalLookupLabel: 460 - center: - x: 34.0 - y: -78.0 - z: 22.0 - color: '#7c158b' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_61: - name: 7Networks_RH_Vis_61 - lookupLabel: 461 - originalLookupLabel: 461 - center: - x: 13.0 - y: -77.0 - z: 32.0 - color: '#7c158c' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_62: - name: 7Networks_RH_Vis_62 - lookupLabel: 462 - originalLookupLabel: 462 - center: - x: 28.0 - y: -83.0 - z: 28.0 - color: '#7c158d' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_63: - name: 7Networks_RH_Vis_63 - lookupLabel: 463 - originalLookupLabel: 463 - center: - x: 19.0 - y: -71.0 - z: 34.0 - color: '#7c158e' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_64: - name: 7Networks_RH_Vis_64 - lookupLabel: 464 - originalLookupLabel: 464 - center: - x: 21.0 - y: -87.0 - z: 37.0 - color: '#7c1687' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_65: - name: 7Networks_RH_Vis_65 - lookupLabel: 465 - originalLookupLabel: 465 - center: - x: 16.0 - y: -82.0 - z: 41.0 - color: '#7c1688' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_66: - name: 7Networks_RH_Vis_66 - lookupLabel: 466 - originalLookupLabel: 466 - center: - x: 29.0 - y: -77.0 - z: 41.0 - color: '#7c1689' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_67: - name: 7Networks_RH_Vis_67 - lookupLabel: 467 - originalLookupLabel: 467 - center: - x: 22.0 - y: -81.0 - z: 48.0 - color: '#7c168a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_SomMot_1: - name: 7Networks_RH_SomMot_1 - lookupLabel: 468 - originalLookupLabel: 468 - center: - x: 54.0 - y: 5.0 - z: -5.0 - color: '#4a7eb1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_2: - name: 7Networks_RH_SomMot_2 - lookupLabel: 469 - originalLookupLabel: 469 - center: - x: 60.0 - y: -3.0 - z: -6.0 - color: '#4a7eb2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_3: - name: 7Networks_RH_SomMot_3 - lookupLabel: 470 - originalLookupLabel: 470 - center: - x: 47.0 - y: -8.0 - z: -6.0 - color: '#4a7eb3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_4: - name: 7Networks_RH_SomMot_4 - lookupLabel: 471 - originalLookupLabel: 471 - center: - x: 58.0 - y: -13.0 - z: -4.0 - color: '#4a7eb4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_5: - name: 7Networks_RH_SomMot_5 - lookupLabel: 472 - originalLookupLabel: 472 - center: - x: 54.0 - y: -23.0 - z: -1.0 - color: '#4a7eb5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_6: - name: 7Networks_RH_SomMot_6 - lookupLabel: 473 - originalLookupLabel: 473 - center: - x: 66.0 - y: -15.0 - z: 0.0 - color: '#4a7fae' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_7: - name: 7Networks_RH_SomMot_7 - lookupLabel: 474 - originalLookupLabel: 474 - center: - x: 56.0 - y: -11.0 - z: 4.0 - color: '#4a7faf' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_8: - name: 7Networks_RH_SomMot_8 - lookupLabel: 475 - originalLookupLabel: 475 - center: - x: 42.0 - y: -19.0 - z: 2.0 - color: '#4a7fb0' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_9: - name: 7Networks_RH_SomMot_9 - lookupLabel: 476 - originalLookupLabel: 476 - center: - x: 66.0 - y: -25.0 - z: 3.0 - color: '#4a7fb1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_10: - name: 7Networks_RH_SomMot_10 - lookupLabel: 477 - originalLookupLabel: 477 - center: - x: 57.0 - y: -31.0 - z: 5.0 - color: '#4a7fb2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_11: - name: 7Networks_RH_SomMot_11 - lookupLabel: 478 - originalLookupLabel: 478 - center: - x: 37.0 - y: -10.0 - z: 12.0 - color: '#4a7fb3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_12: - name: 7Networks_RH_SomMot_12 - lookupLabel: 479 - originalLookupLabel: 479 - center: - x: 41.0 - y: -21.0 - z: 11.0 - color: '#4a7fb4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_13: - name: 7Networks_RH_SomMot_13 - lookupLabel: 480 - originalLookupLabel: 480 - center: - x: 35.0 - y: -21.0 - z: 12.0 - color: '#4a7fb5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_14: - name: 7Networks_RH_SomMot_14 - lookupLabel: 481 - originalLookupLabel: 481 - center: - x: 48.0 - y: -22.0 - z: 9.0 - color: '#4a80ae' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_15: - name: 7Networks_RH_SomMot_15 - lookupLabel: 482 - originalLookupLabel: 482 - center: - x: 41.0 - y: 1.0 - z: 13.0 - color: '#4a80af' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_16: - name: 7Networks_RH_SomMot_16 - lookupLabel: 483 - originalLookupLabel: 483 - center: - x: 61.0 - y: -24.0 - z: 11.0 - color: '#4a80b0' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_17: - name: 7Networks_RH_SomMot_17 - lookupLabel: 484 - originalLookupLabel: 484 - center: - x: 38.0 - y: -9.0 - z: 18.0 - color: '#4a80b1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_18: - name: 7Networks_RH_SomMot_18 - lookupLabel: 485 - originalLookupLabel: 485 - center: - x: 65.0 - y: -35.0 - z: 11.0 - color: '#4a80b2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_19: - name: 7Networks_RH_SomMot_19 - lookupLabel: 486 - originalLookupLabel: 486 - center: - x: 35.0 - y: -21.0 - z: 19.0 - color: '#4a80b3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_20: - name: 7Networks_RH_SomMot_20 - lookupLabel: 487 - originalLookupLabel: 487 - center: - x: 43.0 - y: -12.0 - z: 17.0 - color: '#4a80b4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_21: - name: 7Networks_RH_SomMot_21 - lookupLabel: 488 - originalLookupLabel: 488 - center: - x: 42.0 - y: -31.0 - z: 16.0 - color: '#4a80b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_22: - name: 7Networks_RH_SomMot_22 - lookupLabel: 489 - originalLookupLabel: 489 - center: - x: 50.0 - y: -9.0 - z: 12.0 - color: '#4a81ae' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_23: - name: 7Networks_RH_SomMot_23 - lookupLabel: 490 - originalLookupLabel: 490 - center: - x: 40.0 - y: -25.0 - z: 20.0 - color: '#4a81af' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_24: - name: 7Networks_RH_SomMot_24 - lookupLabel: 491 - originalLookupLabel: 491 - center: - x: 60.0 - y: -1.0 - z: 11.0 - color: '#4a81b0' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_25: - name: 7Networks_RH_SomMot_25 - lookupLabel: 492 - originalLookupLabel: 492 - center: - x: 48.0 - y: -20.0 - z: 18.0 - color: '#4a81b1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_26: - name: 7Networks_RH_SomMot_26 - lookupLabel: 493 - originalLookupLabel: 493 - center: - x: 48.0 - y: -29.0 - z: 25.0 - color: '#4a81b2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_27: - name: 7Networks_RH_SomMot_27 - lookupLabel: 494 - originalLookupLabel: 494 - center: - x: 61.0 - y: -12.0 - z: 15.0 - color: '#4a81b3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_28: - name: 7Networks_RH_SomMot_28 - lookupLabel: 495 - originalLookupLabel: 495 - center: - x: 63.0 - y: -1.0 - z: 18.0 - color: '#4a81b4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_29: - name: 7Networks_RH_SomMot_29 - lookupLabel: 496 - originalLookupLabel: 496 - center: - x: 66.0 - y: -6.0 - z: 25.0 - color: '#4a81b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_30: - name: 7Networks_RH_SomMot_30 - lookupLabel: 497 - originalLookupLabel: 497 - center: - x: 61.0 - y: 4.0 - z: 28.0 - color: '#4a82ae' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_31: - name: 7Networks_RH_SomMot_31 - lookupLabel: 498 - originalLookupLabel: 498 - center: - x: 57.0 - y: -5.0 - z: 26.0 - color: '#4a82af' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_32: - name: 7Networks_RH_SomMot_32 - lookupLabel: 499 - originalLookupLabel: 499 - center: - x: 62.0 - y: -8.0 - z: 38.0 - color: '#4a82b0' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_33: - name: 7Networks_RH_SomMot_33 - lookupLabel: 500 - originalLookupLabel: 500 - center: - x: 53.0 - y: -5.0 - z: 38.0 - color: '#4a82b1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_34: - name: 7Networks_RH_SomMot_34 - lookupLabel: 501 - originalLookupLabel: 501 - center: - x: 52.0 - y: -11.0 - z: 37.0 - color: '#4a82b2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_35: - name: 7Networks_RH_SomMot_35 - lookupLabel: 502 - originalLookupLabel: 502 - center: - x: 57.0 - y: -15.0 - z: 42.0 - color: '#4a82b3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_36: - name: 7Networks_RH_SomMot_36 - lookupLabel: 503 - originalLookupLabel: 503 - center: - x: 8.0 - y: -2.0 - z: 42.0 - color: '#4a82b4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_37: - name: 7Networks_RH_SomMot_37 - lookupLabel: 504 - originalLookupLabel: 504 - center: - x: 10.0 - y: -14.0 - z: 40.0 - color: '#4a82b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_38: - name: 7Networks_RH_SomMot_38 - lookupLabel: 505 - originalLookupLabel: 505 - center: - x: 51.0 - y: -13.0 - z: 50.0 - color: '#4a82b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_39: - name: 7Networks_RH_SomMot_39 - lookupLabel: 506 - originalLookupLabel: 506 - center: - x: 53.0 - y: -20.0 - z: 50.0 - color: '#4a82b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_40: - name: 7Networks_RH_SomMot_40 - lookupLabel: 507 - originalLookupLabel: 507 - center: - x: 13.0 - y: -20.0 - z: 43.0 - color: '#4a82b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_41: - name: 7Networks_RH_SomMot_41 - lookupLabel: 508 - originalLookupLabel: 508 - center: - x: 39.0 - y: -16.0 - z: 41.0 - color: '#4a82ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_42: - name: 7Networks_RH_SomMot_42 - lookupLabel: 509 - originalLookupLabel: 509 - center: - x: 10.0 - y: -9.0 - z: 47.0 - color: '#4a82bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_43: - name: 7Networks_RH_SomMot_43 - lookupLabel: 510 - originalLookupLabel: 510 - center: - x: 46.0 - y: -9.0 - z: 51.0 - color: '#4a82bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_44: - name: 7Networks_RH_SomMot_44 - lookupLabel: 511 - originalLookupLabel: 511 - center: - x: 49.0 - y: -27.0 - z: 56.0 - color: '#4a83b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_45: - name: 7Networks_RH_SomMot_45 - lookupLabel: 512 - originalLookupLabel: 512 - center: - x: 48.0 - y: -20.0 - z: 60.0 - color: '#4a83b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_46: - name: 7Networks_RH_SomMot_46 - lookupLabel: 513 - originalLookupLabel: 513 - center: - x: 6.0 - y: 0.0 - z: 54.0 - color: '#4a83b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_47: - name: 7Networks_RH_SomMot_47 - lookupLabel: 514 - originalLookupLabel: 514 - center: - x: 10.0 - y: -27.0 - z: 48.0 - color: '#4a83b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_48: - name: 7Networks_RH_SomMot_48 - lookupLabel: 515 - originalLookupLabel: 515 - center: - x: 41.0 - y: -20.0 - z: 50.0 - color: '#4a83b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_49: - name: 7Networks_RH_SomMot_49 - lookupLabel: 516 - originalLookupLabel: 516 - center: - x: 6.0 - y: -15.0 - z: 51.0 - color: '#4a83ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_50: - name: 7Networks_RH_SomMot_50 - lookupLabel: 517 - originalLookupLabel: 517 - center: - x: 41.0 - y: -16.0 - z: 57.0 - color: '#4a83bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_51: - name: 7Networks_RH_SomMot_51 - lookupLabel: 518 - originalLookupLabel: 518 - center: - x: 29.0 - y: -37.0 - z: 55.0 - color: '#4a83bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_52: - name: 7Networks_RH_SomMot_52 - lookupLabel: 519 - originalLookupLabel: 519 - center: - x: 40.0 - y: -33.0 - z: 62.0 - color: '#4a84b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_53: - name: 7Networks_RH_SomMot_53 - lookupLabel: 520 - originalLookupLabel: 520 - center: - x: 7.0 - y: -34.0 - z: 53.0 - color: '#4a84b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_54: - name: 7Networks_RH_SomMot_54 - lookupLabel: 521 - originalLookupLabel: 521 - center: - x: 33.0 - y: -41.0 - z: 66.0 - color: '#4a84b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_55: - name: 7Networks_RH_SomMot_55 - lookupLabel: 522 - originalLookupLabel: 522 - center: - x: 36.0 - y: -27.0 - z: 61.0 - color: '#4a84b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_56: - name: 7Networks_RH_SomMot_56 - lookupLabel: 523 - originalLookupLabel: 523 - center: - x: 38.0 - y: -14.0 - z: 67.0 - color: '#4a84b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_57: - name: 7Networks_RH_SomMot_57 - lookupLabel: 524 - originalLookupLabel: 524 - center: - x: 4.0 - y: -21.0 - z: 59.0 - color: '#4a84ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_58: - name: 7Networks_RH_SomMot_58 - lookupLabel: 525 - originalLookupLabel: 525 - center: - x: 29.0 - y: -34.0 - z: 66.0 - color: '#4a84bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_59: - name: 7Networks_RH_SomMot_59 - lookupLabel: 526 - originalLookupLabel: 526 - center: - x: 32.0 - y: -23.0 - z: 62.0 - color: '#4a84bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_60: - name: 7Networks_RH_SomMot_60 - lookupLabel: 527 - originalLookupLabel: 527 - center: - x: 28.0 - y: -11.0 - z: 65.0 - color: '#4a85b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_61: - name: 7Networks_RH_SomMot_61 - lookupLabel: 528 - originalLookupLabel: 528 - center: - x: 9.0 - y: -41.0 - z: 65.0 - color: '#4a85b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_62: - name: 7Networks_RH_SomMot_62 - lookupLabel: 529 - originalLookupLabel: 529 - center: - x: 30.0 - y: -18.0 - z: 72.0 - color: '#4a85b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_63: - name: 7Networks_RH_SomMot_63 - lookupLabel: 530 - originalLookupLabel: 530 - center: - x: 24.0 - y: -41.0 - z: 64.0 - color: '#4a85b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_64: - name: 7Networks_RH_SomMot_64 - lookupLabel: 531 - originalLookupLabel: 531 - center: - x: 3.0 - y: -31.0 - z: 63.0 - color: '#4a85b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_65: - name: 7Networks_RH_SomMot_65 - lookupLabel: 532 - originalLookupLabel: 532 - center: - x: 24.0 - y: -28.0 - z: 67.0 - color: '#4a85ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_66: - name: 7Networks_RH_SomMot_66 - lookupLabel: 533 - originalLookupLabel: 533 - center: - x: 18.0 - y: -5.0 - z: 69.0 - color: '#4a85bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_67: - name: 7Networks_RH_SomMot_67 - lookupLabel: 534 - originalLookupLabel: 534 - center: - x: 21.0 - y: -24.0 - z: 67.0 - color: '#4a85bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_68: - name: 7Networks_RH_SomMot_68 - lookupLabel: 535 - originalLookupLabel: 535 - center: - x: 22.0 - y: -34.0 - z: 70.0 - color: '#4a86b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_69: - name: 7Networks_RH_SomMot_69 - lookupLabel: 536 - originalLookupLabel: 536 - center: - x: 19.0 - y: -14.0 - z: 72.0 - color: '#4a86b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_70: - name: 7Networks_RH_SomMot_70 - lookupLabel: 537 - originalLookupLabel: 537 - center: - x: 21.0 - y: -42.0 - z: 72.0 - color: '#4a86b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_71: - name: 7Networks_RH_SomMot_71 - lookupLabel: 538 - originalLookupLabel: 538 - center: - x: 8.0 - y: -17.0 - z: 74.0 - color: '#4a86b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_72: - name: 7Networks_RH_SomMot_72 - lookupLabel: 539 - originalLookupLabel: 539 - center: - x: 10.0 - y: -39.0 - z: 75.0 - color: '#4a86b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_73: - name: 7Networks_RH_SomMot_73 - lookupLabel: 540 - originalLookupLabel: 540 - center: - x: 5.0 - y: -32.0 - z: 73.0 - color: '#4a86ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_74: - name: 7Networks_RH_SomMot_74 - lookupLabel: 541 - originalLookupLabel: 541 - center: - x: 14.0 - y: -32.0 - z: 73.0 - color: '#4a86bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_75: - name: 7Networks_RH_SomMot_75 - lookupLabel: 542 - originalLookupLabel: 542 - center: - x: 14.0 - y: -26.0 - z: 73.0 - color: '#4a86bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_76: - name: 7Networks_RH_SomMot_76 - lookupLabel: 543 - originalLookupLabel: 543 - center: - x: 15.0 - y: -33.0 - z: 79.0 - color: '#4a87b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_DorsAttn_Post_1: - name: 7Networks_RH_DorsAttn_Post_1 - lookupLabel: 544 - originalLookupLabel: 544 - center: - x: 48.0 - y: -34.0 - z: -22.0 - color: '#04750c' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_2: - name: 7Networks_RH_DorsAttn_Post_2 - lookupLabel: 545 - originalLookupLabel: 545 - center: - x: 49.0 - y: -44.0 - z: -19.0 - color: '#04750d' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_3: - name: 7Networks_RH_DorsAttn_Post_3 - lookupLabel: 546 - originalLookupLabel: 546 - center: - x: 51.0 - y: -55.0 - z: -13.0 - color: '#04750e' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_4: - name: 7Networks_RH_DorsAttn_Post_4 - lookupLabel: 547 - originalLookupLabel: 547 - center: - x: 59.0 - y: -54.0 - z: -12.0 - color: '#04750f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_5: - name: 7Networks_RH_DorsAttn_Post_5 - lookupLabel: 548 - originalLookupLabel: 548 - center: - x: 50.0 - y: -61.0 - z: -6.0 - color: '#047608' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_6: - name: 7Networks_RH_DorsAttn_Post_6 - lookupLabel: 549 - originalLookupLabel: 549 - center: - x: 62.0 - y: -50.0 - z: -5.0 - color: '#047609' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_7: - name: 7Networks_RH_DorsAttn_Post_7 - lookupLabel: 550 - originalLookupLabel: 550 - center: - x: 55.0 - y: -58.0 - z: -2.0 - color: '#04760a' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_8: - name: 7Networks_RH_DorsAttn_Post_8 - lookupLabel: 551 - originalLookupLabel: 551 - center: - x: 61.0 - y: -55.0 - z: 5.0 - color: '#04760b' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_9: - name: 7Networks_RH_DorsAttn_Post_9 - lookupLabel: 552 - originalLookupLabel: 552 - center: - x: 50.0 - y: -61.0 - z: 9.0 - color: '#04760c' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_10: - name: 7Networks_RH_DorsAttn_Post_10 - lookupLabel: 553 - originalLookupLabel: 553 - center: - x: 53.0 - y: -54.0 - z: 13.0 - color: '#04760d' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_11: - name: 7Networks_RH_DorsAttn_Post_11 - lookupLabel: 554 - originalLookupLabel: 554 - center: - x: 49.0 - y: -59.0 - z: 19.0 - color: '#04760e' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_12: - name: 7Networks_RH_DorsAttn_Post_12 - lookupLabel: 555 - originalLookupLabel: 555 - center: - x: 43.0 - y: -81.0 - z: 21.0 - color: '#04760f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_13: - name: 7Networks_RH_DorsAttn_Post_13 - lookupLabel: 556 - originalLookupLabel: 556 - center: - x: 59.0 - y: -14.0 - z: 33.0 - color: '#047708' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_14: - name: 7Networks_RH_DorsAttn_Post_14 - lookupLabel: 557 - originalLookupLabel: 557 - center: - x: 36.0 - y: -74.0 - z: 37.0 - color: '#047709' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_15: - name: 7Networks_RH_DorsAttn_Post_15 - lookupLabel: 558 - originalLookupLabel: 558 - center: - x: 31.0 - y: -67.0 - z: 32.0 - color: '#04770a' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_16: - name: 7Networks_RH_DorsAttn_Post_16 - lookupLabel: 559 - originalLookupLabel: 559 - center: - x: 57.0 - y: -22.0 - z: 44.0 - color: '#04770b' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_17: - name: 7Networks_RH_DorsAttn_Post_17 - lookupLabel: 560 - originalLookupLabel: 560 - center: - x: 53.0 - y: -32.0 - z: 52.0 - color: '#04770c' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_18: - name: 7Networks_RH_DorsAttn_Post_18 - lookupLabel: 561 - originalLookupLabel: 561 - center: - x: 32.0 - y: -68.0 - z: 46.0 - color: '#04770d' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_19: - name: 7Networks_RH_DorsAttn_Post_19 - lookupLabel: 562 - originalLookupLabel: 562 - center: - x: 47.0 - y: -38.0 - z: 52.0 - color: '#04770e' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_20: - name: 7Networks_RH_DorsAttn_Post_20 - lookupLabel: 563 - originalLookupLabel: 563 - center: - x: 25.0 - y: -64.0 - z: 44.0 - color: '#047710' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_21: - name: 7Networks_RH_DorsAttn_Post_21 - lookupLabel: 564 - originalLookupLabel: 564 - center: - x: 50.0 - y: -21.0 - z: 39.0 - color: '#047711' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_22: - name: 7Networks_RH_DorsAttn_Post_22 - lookupLabel: 565 - originalLookupLabel: 565 - center: - x: 45.0 - y: -29.0 - z: 44.0 - color: '#047712' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_23: - name: 7Networks_RH_DorsAttn_Post_23 - lookupLabel: 566 - originalLookupLabel: 566 - center: - x: 40.0 - y: -39.0 - z: 48.0 - color: '#047713' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_24: - name: 7Networks_RH_DorsAttn_Post_24 - lookupLabel: 567 - originalLookupLabel: 567 - center: - x: 15.0 - y: -75.0 - z: 52.0 - color: '#047714' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_25: - name: 7Networks_RH_DorsAttn_Post_25 - lookupLabel: 568 - originalLookupLabel: 568 - center: - x: 29.0 - y: -63.0 - z: 54.0 - color: '#047715' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_26: - name: 7Networks_RH_DorsAttn_Post_26 - lookupLabel: 569 - originalLookupLabel: 569 - center: - x: 34.0 - y: -46.0 - z: 47.0 - color: '#047716' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_27: - name: 7Networks_RH_DorsAttn_Post_27 - lookupLabel: 570 - originalLookupLabel: 570 - center: - x: 32.0 - y: -54.0 - z: 53.0 - color: '#04780f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_28: - name: 7Networks_RH_DorsAttn_Post_28 - lookupLabel: 571 - originalLookupLabel: 571 - center: - x: 35.0 - y: -34.0 - z: 48.0 - color: '#047810' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_29: - name: 7Networks_RH_DorsAttn_Post_29 - lookupLabel: 572 - originalLookupLabel: 572 - center: - x: 21.0 - y: -67.0 - z: 54.0 - color: '#047811' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_30: - name: 7Networks_RH_DorsAttn_Post_30 - lookupLabel: 573 - originalLookupLabel: 573 - center: - x: 37.0 - y: -40.0 - z: 58.0 - color: '#047812' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_31: - name: 7Networks_RH_DorsAttn_Post_31 - lookupLabel: 574 - originalLookupLabel: 574 - center: - x: 8.0 - y: -70.0 - z: 54.0 - color: '#047813' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_32: - name: 7Networks_RH_DorsAttn_Post_32 - lookupLabel: 575 - originalLookupLabel: 575 - center: - x: 6.0 - y: -53.0 - z: 53.0 - color: '#047814' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_33: - name: 7Networks_RH_DorsAttn_Post_33 - lookupLabel: 576 - originalLookupLabel: 576 - center: - x: 37.0 - y: -48.0 - z: 61.0 - color: '#047815' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_34: - name: 7Networks_RH_DorsAttn_Post_34 - lookupLabel: 577 - originalLookupLabel: 577 - center: - x: 27.0 - y: -56.0 - z: 61.0 - color: '#047816' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_35: - name: 7Networks_RH_DorsAttn_Post_35 - lookupLabel: 578 - originalLookupLabel: 578 - center: - x: 13.0 - y: -69.0 - z: 61.0 - color: '#04790f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_36: - name: 7Networks_RH_DorsAttn_Post_36 - lookupLabel: 579 - originalLookupLabel: 579 - center: - x: 8.0 - y: -61.0 - z: 59.0 - color: '#047910' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_37: - name: 7Networks_RH_DorsAttn_Post_37 - lookupLabel: 580 - originalLookupLabel: 580 - center: - x: 21.0 - y: -64.0 - z: 65.0 - color: '#047911' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_38: - name: 7Networks_RH_DorsAttn_Post_38 - lookupLabel: 581 - originalLookupLabel: 581 - center: - x: 13.0 - y: -59.0 - z: 67.0 - color: '#047912' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_39: - name: 7Networks_RH_DorsAttn_Post_39 - lookupLabel: 582 - originalLookupLabel: 582 - center: - x: 7.0 - y: -50.0 - z: 65.0 - color: '#047913' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_40: - name: 7Networks_RH_DorsAttn_Post_40 - lookupLabel: 583 - originalLookupLabel: 583 - center: - x: 29.0 - y: -48.0 - z: 69.0 - color: '#047914' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_41: - name: 7Networks_RH_DorsAttn_Post_41 - lookupLabel: 584 - originalLookupLabel: 584 - center: - x: 20.0 - y: -54.0 - z: 69.0 - color: '#047915' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_42: - name: 7Networks_RH_DorsAttn_Post_42 - lookupLabel: 585 - originalLookupLabel: 585 - center: - x: 14.0 - y: -48.0 - z: 75.0 - color: '#047916' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_1: - name: 7Networks_RH_DorsAttn_FEF_1 - lookupLabel: 586 - originalLookupLabel: 586 - center: - x: 44.0 - y: -2.0 - z: 50.0 - color: '#05760d' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_2: - name: 7Networks_RH_DorsAttn_FEF_2 - lookupLabel: 587 - originalLookupLabel: 587 - center: - x: 34.0 - y: -2.0 - z: 51.0 - color: '#05760f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_3: - name: 7Networks_RH_DorsAttn_FEF_3 - lookupLabel: 588 - originalLookupLabel: 588 - center: - x: 26.0 - y: 3.0 - z: 52.0 - color: '#057610' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_4: - name: 7Networks_RH_DorsAttn_FEF_4 - lookupLabel: 589 - originalLookupLabel: 589 - center: - x: 37.0 - y: -6.0 - z: 60.0 - color: '#057611' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_5: - name: 7Networks_RH_DorsAttn_FEF_5 - lookupLabel: 590 - originalLookupLabel: 590 - center: - x: 27.0 - y: -8.0 - z: 52.0 - color: '#057612' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_6: - name: 7Networks_RH_DorsAttn_FEF_6 - lookupLabel: 591 - originalLookupLabel: 591 - center: - x: 25.0 - y: -2.0 - z: 62.0 - color: '#057613' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_PrCv_1: - name: 7Networks_RH_DorsAttn_PrCv_1 - lookupLabel: 592 - originalLookupLabel: 592 - center: - x: 60.0 - y: 9.0 - z: 22.0 - color: '#057614' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_PrCv_2: - name: 7Networks_RH_DorsAttn_PrCv_2 - lookupLabel: 593 - originalLookupLabel: 593 - center: - x: 42.0 - y: 11.0 - z: 24.0 - color: '#057615' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_PrCv_3: - name: 7Networks_RH_DorsAttn_PrCv_3 - lookupLabel: 594 - originalLookupLabel: 594 - center: - x: 46.0 - y: 6.0 - z: 29.0 - color: '#057616' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_PrCv_4: - name: 7Networks_RH_DorsAttn_PrCv_4 - lookupLabel: 595 - originalLookupLabel: 595 - center: - x: 55.0 - y: 7.0 - z: 35.0 - color: '#05770f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_SalVentAttn_TempOccPar_1: - name: 7Networks_RH_SalVentAttn_TempOccPar_1 - lookupLabel: 596 - originalLookupLabel: 596 - center: - x: 58.0 - y: -46.0 - z: 9.0 - color: '#c93af6' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_2: - name: 7Networks_RH_SalVentAttn_TempOccPar_2 - lookupLabel: 597 - originalLookupLabel: 597 - center: - x: 51.0 - y: -40.0 - z: 12.0 - color: '#c93af7' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_3: - name: 7Networks_RH_SalVentAttn_TempOccPar_3 - lookupLabel: 598 - originalLookupLabel: 598 - center: - x: 56.0 - y: -39.0 - z: 20.0 - color: '#c93af8' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_4: - name: 7Networks_RH_SalVentAttn_TempOccPar_4 - lookupLabel: 599 - originalLookupLabel: 599 - center: - x: 61.0 - y: -32.0 - z: 21.0 - color: '#c93af9' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_5: - name: 7Networks_RH_SalVentAttn_TempOccPar_5 - lookupLabel: 600 - originalLookupLabel: 600 - center: - x: 65.0 - y: -39.0 - z: 20.0 - color: '#c93afa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_6: - name: 7Networks_RH_SalVentAttn_TempOccPar_6 - lookupLabel: 601 - originalLookupLabel: 601 - center: - x: 57.0 - y: -22.0 - z: 21.0 - color: '#c93afc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_7: - name: 7Networks_RH_SalVentAttn_TempOccPar_7 - lookupLabel: 602 - originalLookupLabel: 602 - center: - x: 63.0 - y: -41.0 - z: 26.0 - color: '#c93afd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_8: - name: 7Networks_RH_SalVentAttn_TempOccPar_8 - lookupLabel: 603 - originalLookupLabel: 603 - center: - x: 65.0 - y: -31.0 - z: 29.0 - color: '#c93afe' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_9: - name: 7Networks_RH_SalVentAttn_TempOccPar_9 - lookupLabel: 604 - originalLookupLabel: 604 - center: - x: 56.0 - y: -29.0 - z: 32.0 - color: '#c93aff' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_10: - name: 7Networks_RH_SalVentAttn_TempOccPar_10 - lookupLabel: 605 - originalLookupLabel: 605 - center: - x: 64.0 - y: -15.0 - z: 25.0 - color: '#c633fa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_11: - name: 7Networks_RH_SalVentAttn_TempOccPar_11 - lookupLabel: 606 - originalLookupLabel: 606 - center: - x: 64.0 - y: -21.0 - z: 31.0 - color: '#c633fb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_12: - name: 7Networks_RH_SalVentAttn_TempOccPar_12 - lookupLabel: 607 - originalLookupLabel: 607 - center: - x: 62.0 - y: -37.0 - z: 37.0 - color: '#c634f4' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_13: - name: 7Networks_RH_SalVentAttn_TempOccPar_13 - lookupLabel: 608 - originalLookupLabel: 608 - center: - x: 63.0 - y: -26.0 - z: 42.0 - color: '#c634f5' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_PrC_1: - name: 7Networks_RH_SalVentAttn_PrC_1 - lookupLabel: 609 - originalLookupLabel: 609 - center: - x: 53.0 - y: 2.0 - z: 45.0 - color: '#c93bfb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_1: - name: 7Networks_RH_SalVentAttn_FrOperIns_1 - lookupLabel: 610 - originalLookupLabel: 610 - center: - x: 39.0 - y: 5.0 - z: -12.0 - color: '#c93bf5' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_2: - name: 7Networks_RH_SalVentAttn_FrOperIns_2 - lookupLabel: 611 - originalLookupLabel: 611 - center: - x: 41.0 - y: -7.0 - z: -7.0 - color: '#c93bf6' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_3: - name: 7Networks_RH_SalVentAttn_FrOperIns_3 - lookupLabel: 612 - originalLookupLabel: 612 - center: - x: 40.0 - y: 9.0 - z: -2.0 - color: '#c93bf7' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_4: - name: 7Networks_RH_SalVentAttn_FrOperIns_4 - lookupLabel: 613 - originalLookupLabel: 613 - center: - x: 35.0 - y: 28.0 - z: 1.0 - color: '#c93bf8' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_5: - name: 7Networks_RH_SalVentAttn_FrOperIns_5 - lookupLabel: 614 - originalLookupLabel: 614 - center: - x: 39.0 - y: -14.0 - z: 3.0 - color: '#c93bf9' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_6: - name: 7Networks_RH_SalVentAttn_FrOperIns_6 - lookupLabel: 615 - originalLookupLabel: 615 - center: - x: 38.0 - y: 0.0 - z: 7.0 - color: '#c93bfa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_7: - name: 7Networks_RH_SalVentAttn_FrOperIns_7 - lookupLabel: 616 - originalLookupLabel: 616 - center: - x: 33.0 - y: 19.0 - z: 8.0 - color: '#c93bfc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_8: - name: 7Networks_RH_SalVentAttn_FrOperIns_8 - lookupLabel: 617 - originalLookupLabel: 617 - center: - x: 41.0 - y: 23.0 - z: 6.0 - color: '#c93bfd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_9: - name: 7Networks_RH_SalVentAttn_FrOperIns_9 - lookupLabel: 618 - originalLookupLabel: 618 - center: - x: 36.0 - y: 8.0 - z: 11.0 - color: '#c93bfe' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_10: - name: 7Networks_RH_SalVentAttn_FrOperIns_10 - lookupLabel: 619 - originalLookupLabel: 619 - center: - x: 44.0 - y: 14.0 - z: 4.0 - color: '#c93bff' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_11: - name: 7Networks_RH_SalVentAttn_FrOperIns_11 - lookupLabel: 620 - originalLookupLabel: 620 - center: - x: 49.0 - y: 8.0 - z: 0.0 - color: '#c634fa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_12: - name: 7Networks_RH_SalVentAttn_FrOperIns_12 - lookupLabel: 621 - originalLookupLabel: 621 - center: - x: 47.0 - y: -2.0 - z: 8.0 - color: '#c634fb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_13: - name: 7Networks_RH_SalVentAttn_FrOperIns_13 - lookupLabel: 622 - originalLookupLabel: 622 - center: - x: 57.0 - y: 4.0 - z: 6.0 - color: '#c635f4' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_14: - name: 7Networks_RH_SalVentAttn_FrOperIns_14 - lookupLabel: 623 - originalLookupLabel: 623 - center: - x: 54.0 - y: 11.0 - z: 10.0 - color: '#c635f5' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_15: - name: 7Networks_RH_SalVentAttn_FrOperIns_15 - lookupLabel: 624 - originalLookupLabel: 624 - center: - x: 53.0 - y: 9.0 - z: 19.0 - color: '#c635f6' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_PFCv_1: - name: 7Networks_RH_SalVentAttn_PFCv_1 - lookupLabel: 625 - originalLookupLabel: 625 - center: - x: 50.0 - y: 41.0 - z: 1.0 - color: '#c83afa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_PFCl_1: - name: 7Networks_RH_SalVentAttn_PFCl_1 - lookupLabel: 626 - originalLookupLabel: 626 - center: - x: 28.0 - y: 46.0 - z: 31.0 - color: '#c839fb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_1: - name: 7Networks_RH_SalVentAttn_Med_1 - lookupLabel: 627 - originalLookupLabel: 627 - center: - x: 7.0 - y: 23.0 - z: 32.0 - color: '#c839f3' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_2: - name: 7Networks_RH_SalVentAttn_Med_2 - lookupLabel: 628 - originalLookupLabel: 628 - center: - x: 5.0 - y: 9.0 - z: 35.0 - color: '#c839f4' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_3: - name: 7Networks_RH_SalVentAttn_Med_3 - lookupLabel: 629 - originalLookupLabel: 629 - center: - x: 4.0 - y: -4.0 - z: 36.0 - color: '#c839f5' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_4: - name: 7Networks_RH_SalVentAttn_Med_4 - lookupLabel: 630 - originalLookupLabel: 630 - center: - x: 9.0 - y: -27.0 - z: 41.0 - color: '#c839f6' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_5: - name: 7Networks_RH_SalVentAttn_Med_5 - lookupLabel: 631 - originalLookupLabel: 631 - center: - x: 9.0 - y: 11.0 - z: 45.0 - color: '#c839f7' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_6: - name: 7Networks_RH_SalVentAttn_Med_6 - lookupLabel: 632 - originalLookupLabel: 632 - center: - x: 11.0 - y: -37.0 - z: 44.0 - color: '#c839f8' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_7: - name: 7Networks_RH_SalVentAttn_Med_7 - lookupLabel: 633 - originalLookupLabel: 633 - center: - x: 15.0 - y: -29.0 - z: 40.0 - color: '#c839fa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_8: - name: 7Networks_RH_SalVentAttn_Med_8 - lookupLabel: 634 - originalLookupLabel: 634 - center: - x: 6.0 - y: 14.0 - z: 53.0 - color: '#c839fc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_9: - name: 7Networks_RH_SalVentAttn_Med_9 - lookupLabel: 635 - originalLookupLabel: 635 - center: - x: 9.0 - y: -42.0 - z: 51.0 - color: '#c839fd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_10: - name: 7Networks_RH_SalVentAttn_Med_10 - lookupLabel: 636 - originalLookupLabel: 636 - center: - x: 16.0 - y: -35.0 - z: 48.0 - color: '#c839fe' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_11: - name: 7Networks_RH_SalVentAttn_Med_11 - lookupLabel: 637 - originalLookupLabel: 637 - center: - x: 5.0 - y: 11.0 - z: 60.0 - color: '#c839ff' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_12: - name: 7Networks_RH_SalVentAttn_Med_12 - lookupLabel: 638 - originalLookupLabel: 638 - center: - x: 13.0 - y: -39.0 - z: 56.0 - color: '#c83af9' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_13: - name: 7Networks_RH_SalVentAttn_Med_13 - lookupLabel: 639 - originalLookupLabel: 639 - center: - x: 11.0 - y: -45.0 - z: 59.0 - color: '#c83afb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_14: - name: 7Networks_RH_SalVentAttn_Med_14 - lookupLabel: 640 - originalLookupLabel: 640 - center: - x: 6.0 - y: -1.0 - z: 66.0 - color: '#c83afc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_15: - name: 7Networks_RH_SalVentAttn_Med_15 - lookupLabel: 641 - originalLookupLabel: 641 - center: - x: 15.0 - y: 7.0 - z: 69.0 - color: '#c83afd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_16: - name: 7Networks_RH_SalVentAttn_Med_16 - lookupLabel: 642 - originalLookupLabel: 642 - center: - x: 11.0 - y: -5.0 - z: 73.0 - color: '#c83afe' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_Limbic_OFC_1: - name: 7Networks_RH_Limbic_OFC_1 - lookupLabel: 643 - originalLookupLabel: 643 - center: - x: 20.0 - y: 13.0 - z: -22.0 - color: '#e0f9a1' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_2: - name: 7Networks_RH_Limbic_OFC_2 - lookupLabel: 644 - originalLookupLabel: 644 - center: - x: 15.0 - y: 28.0 - z: -24.0 - color: '#e0f9a2' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_3: - name: 7Networks_RH_Limbic_OFC_3 - lookupLabel: 645 - originalLookupLabel: 645 - center: - x: 13.0 - y: 18.0 - z: -16.0 - color: '#e0f9a3' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_4: - name: 7Networks_RH_Limbic_OFC_4 - lookupLabel: 646 - originalLookupLabel: 646 - center: - x: 9.0 - y: 33.0 - z: -21.0 - color: '#e0f9a5' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_5: - name: 7Networks_RH_Limbic_OFC_5 - lookupLabel: 647 - originalLookupLabel: 647 - center: - x: 24.0 - y: 28.0 - z: -19.0 - color: '#e0f9a6' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_6: - name: 7Networks_RH_Limbic_OFC_6 - lookupLabel: 648 - originalLookupLabel: 648 - center: - x: 9.0 - y: 51.0 - z: -22.0 - color: '#e0f9a7' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_7: - name: 7Networks_RH_Limbic_OFC_7 - lookupLabel: 649 - originalLookupLabel: 649 - center: - x: 5.0 - y: 20.0 - z: -20.0 - color: '#e0f9a8' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_8: - name: 7Networks_RH_Limbic_OFC_8 - lookupLabel: 650 - originalLookupLabel: 650 - center: - x: 3.0 - y: 41.0 - z: -25.0 - color: '#e0f9a9' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_9: - name: 7Networks_RH_Limbic_OFC_9 - lookupLabel: 651 - originalLookupLabel: 651 - center: - x: 4.0 - y: 22.0 - z: -12.0 - color: '#e0f9aa' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_10: - name: 7Networks_RH_Limbic_OFC_10 - lookupLabel: 652 - originalLookupLabel: 652 - center: - x: 9.0 - y: 64.0 - z: -14.0 - color: '#e0f9ab' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_1: - name: 7Networks_RH_Limbic_TempPole_1 - lookupLabel: 653 - originalLookupLabel: 653 - center: - x: 28.0 - y: 2.0 - z: -44.0 - color: '#e0f99f' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_2: - name: 7Networks_RH_Limbic_TempPole_2 - lookupLabel: 654 - originalLookupLabel: 654 - center: - x: 34.0 - y: 12.0 - z: -40.0 - color: '#e0f9a0' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_3: - name: 7Networks_RH_Limbic_TempPole_3 - lookupLabel: 655 - originalLookupLabel: 655 - center: - x: 47.0 - y: -4.0 - z: -42.0 - color: '#e0f9a4' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_4: - name: 7Networks_RH_Limbic_TempPole_4 - lookupLabel: 656 - originalLookupLabel: 656 - center: - x: 40.0 - y: -10.0 - z: -35.0 - color: '#e0f9ac' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_5: - name: 7Networks_RH_Limbic_TempPole_5 - lookupLabel: 657 - originalLookupLabel: 657 - center: - x: 31.0 - y: -10.0 - z: -35.0 - color: '#e0faa5' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_6: - name: 7Networks_RH_Limbic_TempPole_6 - lookupLabel: 658 - originalLookupLabel: 658 - center: - x: 20.0 - y: 0.0 - z: -32.0 - color: '#e0faa6' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_7: - name: 7Networks_RH_Limbic_TempPole_7 - lookupLabel: 659 - originalLookupLabel: 659 - center: - x: 24.0 - y: 6.0 - z: -30.0 - color: '#e0faa7' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_8: - name: 7Networks_RH_Limbic_TempPole_8 - lookupLabel: 660 - originalLookupLabel: 660 - center: - x: 52.0 - y: -20.0 - z: -31.0 - color: '#e0faa8' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_9: - name: 7Networks_RH_Limbic_TempPole_9 - lookupLabel: 661 - originalLookupLabel: 661 - center: - x: 43.0 - y: -25.0 - z: -24.0 - color: '#e0faa9' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_10: - name: 7Networks_RH_Limbic_TempPole_10 - lookupLabel: 662 - originalLookupLabel: 662 - center: - x: 31.0 - y: 15.0 - z: -31.0 - color: '#e0faaa' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_11: - name: 7Networks_RH_Limbic_TempPole_11 - lookupLabel: 663 - originalLookupLabel: 663 - center: - x: 40.0 - y: 21.0 - z: -29.0 - color: '#e0faab' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_12: - name: 7Networks_RH_Limbic_TempPole_12 - lookupLabel: 664 - originalLookupLabel: 664 - center: - x: 22.0 - y: -14.0 - z: -30.0 - color: '#e0faac' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_13: - name: 7Networks_RH_Limbic_TempPole_13 - lookupLabel: 665 - originalLookupLabel: 665 - center: - x: 40.0 - y: 9.0 - z: -22.0 - color: '#e0fba5' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_14: - name: 7Networks_RH_Limbic_TempPole_14 - lookupLabel: 666 - originalLookupLabel: 666 - center: - x: 22.0 - y: -23.0 - z: -23.0 - color: '#e0fba6' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_15: - name: 7Networks_RH_Limbic_TempPole_15 - lookupLabel: 667 - originalLookupLabel: 667 - center: - x: 46.0 - y: 9.0 - z: -16.0 - color: '#e0fba7' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Cont_Par_1: - name: 7Networks_RH_Cont_Par_1 - lookupLabel: 668 - originalLookupLabel: 668 - center: - x: 59.0 - y: -45.0 - z: 37.0 - color: '#ea931e' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_2: - name: 7Networks_RH_Cont_Par_2 - lookupLabel: 669 - originalLookupLabel: 669 - center: - x: 43.0 - y: -74.0 - z: 38.0 - color: '#ea931f' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_3: - name: 7Networks_RH_Cont_Par_3 - lookupLabel: 670 - originalLookupLabel: 670 - center: - x: 56.0 - y: -50.0 - z: 44.0 - color: '#ea9320' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_4: - name: 7Networks_RH_Cont_Par_4 - lookupLabel: 671 - originalLookupLabel: 671 - center: - x: 59.0 - y: -32.0 - z: 50.0 - color: '#ea9321' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_5: - name: 7Networks_RH_Cont_Par_5 - lookupLabel: 672 - originalLookupLabel: 672 - center: - x: 54.0 - y: -39.0 - z: 48.0 - color: '#ea9323' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_6: - name: 7Networks_RH_Cont_Par_6 - lookupLabel: 673 - originalLookupLabel: 673 - center: - x: 50.0 - y: -54.0 - z: 52.0 - color: '#ea9324' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_7: - name: 7Networks_RH_Cont_Par_7 - lookupLabel: 674 - originalLookupLabel: 674 - center: - x: 39.0 - y: -68.0 - z: 50.0 - color: '#ea9325' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_8: - name: 7Networks_RH_Cont_Par_8 - lookupLabel: 675 - originalLookupLabel: 675 - center: - x: 49.0 - y: -44.0 - z: 49.0 - color: '#ea9326' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_9: - name: 7Networks_RH_Cont_Par_9 - lookupLabel: 676 - originalLookupLabel: 676 - center: - x: 42.0 - y: -54.0 - z: 49.0 - color: '#ea9327' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_10: - name: 7Networks_RH_Cont_Par_10 - lookupLabel: 677 - originalLookupLabel: 677 - center: - x: 43.0 - y: -46.0 - z: 44.0 - color: '#ea9328' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_11: - name: 7Networks_RH_Cont_Par_11 - lookupLabel: 678 - originalLookupLabel: 678 - center: - x: 37.0 - y: -58.0 - z: 46.0 - color: '#ea9329' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Temp_1: - name: 7Networks_RH_Cont_Temp_1 - lookupLabel: 679 - originalLookupLabel: 679 - center: - x: 59.0 - y: -28.0 - z: -24.0 - color: '#ea9322' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Temp_2: - name: 7Networks_RH_Cont_Temp_2 - lookupLabel: 680 - originalLookupLabel: 680 - center: - x: 59.0 - y: -44.0 - z: -22.0 - color: '#ea9421' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Temp_3: - name: 7Networks_RH_Cont_Temp_3 - lookupLabel: 681 - originalLookupLabel: 681 - center: - x: 64.0 - y: -40.0 - z: -11.0 - color: '#ea9422' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCv_1: - name: 7Networks_RH_Cont_PFCv_1 - lookupLabel: 682 - originalLookupLabel: 682 - center: - x: 33.0 - y: 18.0 - z: -11.0 - color: '#e99423' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCv_2: - name: 7Networks_RH_Cont_PFCv_2 - lookupLabel: 683 - originalLookupLabel: 683 - center: - x: 34.0 - y: 22.0 - z: -6.0 - color: '#e99424' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_1: - name: 7Networks_RH_Cont_PFCl_1 - lookupLabel: 684 - originalLookupLabel: 684 - center: - x: 22.0 - y: 41.0 - z: -17.0 - color: '#e9931b' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_2: - name: 7Networks_RH_Cont_PFCl_2 - lookupLabel: 685 - originalLookupLabel: 685 - center: - x: 26.0 - y: 56.0 - z: -14.0 - color: '#e9931c' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_3: - name: 7Networks_RH_Cont_PFCl_3 - lookupLabel: 686 - originalLookupLabel: 686 - center: - x: 41.0 - y: 51.0 - z: -13.0 - color: '#e9931d' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_4: - name: 7Networks_RH_Cont_PFCl_4 - lookupLabel: 687 - originalLookupLabel: 687 - center: - x: 31.0 - y: 59.0 - z: -4.0 - color: '#e9931e' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_5: - name: 7Networks_RH_Cont_PFCl_5 - lookupLabel: 688 - originalLookupLabel: 688 - center: - x: 20.0 - y: 65.0 - z: -3.0 - color: '#e9931f' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_6: - name: 7Networks_RH_Cont_PFCl_6 - lookupLabel: 689 - originalLookupLabel: 689 - center: - x: 43.0 - y: 50.0 - z: -3.0 - color: '#e99320' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_7: - name: 7Networks_RH_Cont_PFCl_7 - lookupLabel: 690 - originalLookupLabel: 690 - center: - x: 26.0 - y: 57.0 - z: 5.0 - color: '#e99321' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_8: - name: 7Networks_RH_Cont_PFCl_8 - lookupLabel: 691 - originalLookupLabel: 691 - center: - x: 41.0 - y: 49.0 - z: 7.0 - color: '#e9941a' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_9: - name: 7Networks_RH_Cont_PFCl_9 - lookupLabel: 692 - originalLookupLabel: 692 - center: - x: 35.0 - y: 57.0 - z: 10.0 - color: '#e9941b' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_10: - name: 7Networks_RH_Cont_PFCl_10 - lookupLabel: 693 - originalLookupLabel: 693 - center: - x: 46.0 - y: 39.0 - z: 9.0 - color: '#e9941c' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_11: - name: 7Networks_RH_Cont_PFCl_11 - lookupLabel: 694 - originalLookupLabel: 694 - center: - x: 56.0 - y: 18.0 - z: 10.0 - color: '#e9941d' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_12: - name: 7Networks_RH_Cont_PFCl_12 - lookupLabel: 695 - originalLookupLabel: 695 - center: - x: 53.0 - y: 30.0 - z: 17.0 - color: '#e9941e' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_13: - name: 7Networks_RH_Cont_PFCl_13 - lookupLabel: 696 - originalLookupLabel: 696 - center: - x: 25.0 - y: 56.0 - z: 15.0 - color: '#e9941f' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_14: - name: 7Networks_RH_Cont_PFCl_14 - lookupLabel: 697 - originalLookupLabel: 697 - center: - x: 52.0 - y: 18.0 - z: 22.0 - color: '#e99420' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_15: - name: 7Networks_RH_Cont_PFCl_15 - lookupLabel: 698 - originalLookupLabel: 698 - center: - x: 43.0 - y: 44.0 - z: 17.0 - color: '#e99422' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_16: - name: 7Networks_RH_Cont_PFCl_16 - lookupLabel: 699 - originalLookupLabel: 699 - center: - x: 33.0 - y: 49.0 - z: 21.0 - color: '#e99425' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_17: - name: 7Networks_RH_Cont_PFCl_17 - lookupLabel: 700 - originalLookupLabel: 700 - center: - x: 46.0 - y: 31.0 - z: 23.0 - color: '#e99426' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_18: - name: 7Networks_RH_Cont_PFCl_18 - lookupLabel: 701 - originalLookupLabel: 701 - center: - x: 25.0 - y: 55.0 - z: 26.0 - color: '#e99427' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_19: - name: 7Networks_RH_Cont_PFCl_19 - lookupLabel: 702 - originalLookupLabel: 702 - center: - x: 43.0 - y: 19.0 - z: 27.0 - color: '#e99428' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_20: - name: 7Networks_RH_Cont_PFCl_20 - lookupLabel: 703 - originalLookupLabel: 703 - center: - x: 39.0 - y: 41.0 - z: 29.0 - color: '#e99521' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_21: - name: 7Networks_RH_Cont_PFCl_21 - lookupLabel: 704 - originalLookupLabel: 704 - center: - x: 50.0 - y: 26.0 - z: 33.0 - color: '#e99522' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_22: - name: 7Networks_RH_Cont_PFCl_22 - lookupLabel: 705 - originalLookupLabel: 705 - center: - x: 38.0 - y: 11.0 - z: 34.0 - color: '#e99523' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_23: - name: 7Networks_RH_Cont_PFCl_23 - lookupLabel: 706 - originalLookupLabel: 706 - center: - x: 40.0 - y: 31.0 - z: 38.0 - color: '#e99524' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_24: - name: 7Networks_RH_Cont_PFCl_24 - lookupLabel: 707 - originalLookupLabel: 707 - center: - x: 30.0 - y: 41.0 - z: 38.0 - color: '#e99525' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_25: - name: 7Networks_RH_Cont_PFCl_25 - lookupLabel: 708 - originalLookupLabel: 708 - center: - x: 43.0 - y: 4.0 - z: 40.0 - color: '#e99526' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_26: - name: 7Networks_RH_Cont_PFCl_26 - lookupLabel: 709 - originalLookupLabel: 709 - center: - x: 46.0 - y: 17.0 - z: 42.0 - color: '#e99527' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_27: - name: 7Networks_RH_Cont_PFCl_27 - lookupLabel: 710 - originalLookupLabel: 710 - center: - x: 38.0 - y: 28.0 - z: 48.0 - color: '#e99528' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_28: - name: 7Networks_RH_Cont_PFCl_28 - lookupLabel: 711 - originalLookupLabel: 711 - center: - x: 45.0 - y: 6.0 - z: 49.0 - color: '#e99621' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_29: - name: 7Networks_RH_Cont_PFCl_29 - lookupLabel: 712 - originalLookupLabel: 712 - center: - x: 39.0 - y: 12.0 - z: 57.0 - color: '#e99622' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_30: - name: 7Networks_RH_Cont_PFCl_30 - lookupLabel: 713 - originalLookupLabel: 713 - center: - x: 30.0 - y: 16.0 - z: 53.0 - color: '#e99623' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_31: - name: 7Networks_RH_Cont_PFCl_31 - lookupLabel: 714 - originalLookupLabel: 714 - center: - x: 23.0 - y: 11.0 - z: 53.0 - color: '#e99624' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_32: - name: 7Networks_RH_Cont_PFCl_32 - lookupLabel: 715 - originalLookupLabel: 715 - center: - x: 23.0 - y: 9.0 - z: 65.0 - color: '#e99625' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_pCun_1: - name: 7Networks_RH_Cont_pCun_1 - lookupLabel: 716 - originalLookupLabel: 716 - center: - x: 11.0 - y: -66.0 - z: 33.0 - color: '#e99323' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_pCun_2: - name: 7Networks_RH_Cont_pCun_2 - lookupLabel: 717 - originalLookupLabel: 717 - center: - x: 13.0 - y: -74.0 - z: 42.0 - color: '#e99324' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_pCun_4: - name: 7Networks_RH_Cont_pCun_4 - lookupLabel: 718 - originalLookupLabel: 718 - center: - x: 4.0 - y: -69.0 - z: 42.0 - color: '#e99325' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_pCun_5: - name: 7Networks_RH_Cont_pCun_5 - lookupLabel: 719 - originalLookupLabel: 719 - center: - x: 6.0 - y: -76.0 - z: 48.0 - color: '#e99326' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_pCun_6: - name: 7Networks_RH_Cont_pCun_6 - lookupLabel: 720 - originalLookupLabel: 720 - center: - x: 5.0 - y: -65.0 - z: 50.0 - color: '#e99327' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Cing_1: - name: 7Networks_RH_Cont_Cing_1 - lookupLabel: 721 - originalLookupLabel: 721 - center: - x: 7.0 - y: -33.0 - z: 27.0 - color: '#e99322' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Cing_2: - name: 7Networks_RH_Cont_Cing_2 - lookupLabel: 722 - originalLookupLabel: 722 - center: - x: 5.0 - y: 3.0 - z: 29.0 - color: '#e99328' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Cing_3: - name: 7Networks_RH_Cont_Cing_3 - lookupLabel: 723 - originalLookupLabel: 723 - center: - x: 5.0 - y: -18.0 - z: 30.0 - color: '#e99421' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCmp_1: - name: 7Networks_RH_Cont_PFCmp_1 - lookupLabel: 724 - originalLookupLabel: 724 - center: - x: 8.0 - y: 35.0 - z: 20.0 - color: '#ea9425' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCmp_2: - name: 7Networks_RH_Cont_PFCmp_2 - lookupLabel: 725 - originalLookupLabel: 725 - center: - x: 7.0 - y: 35.0 - z: 32.0 - color: '#ea9426' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCmp_3: - name: 7Networks_RH_Cont_PFCmp_3 - lookupLabel: 726 - originalLookupLabel: 726 - center: - x: 5.0 - y: 28.0 - z: 48.0 - color: '#ea9427' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Default_Par_1: - name: 7Networks_RH_Default_Par_1 - lookupLabel: 727 - originalLookupLabel: 727 - center: - x: 50.0 - y: -49.0 - z: 15.0 - color: '#d13e4a' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_2: - name: 7Networks_RH_Default_Par_2 - lookupLabel: 728 - originalLookupLabel: 728 - center: - x: 53.0 - y: -45.0 - z: 19.0 - color: '#d13e4b' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_3: - name: 7Networks_RH_Default_Par_3 - lookupLabel: 729 - originalLookupLabel: 729 - center: - x: 57.0 - y: -48.0 - z: 22.0 - color: '#d13e4c' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_4: - name: 7Networks_RH_Default_Par_4 - lookupLabel: 730 - originalLookupLabel: 730 - center: - x: 49.0 - y: -68.0 - z: 24.0 - color: '#d13e4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_5: - name: 7Networks_RH_Default_Par_5 - lookupLabel: 731 - originalLookupLabel: 731 - center: - x: 48.0 - y: -54.0 - z: 26.0 - color: '#d13e4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_6: - name: 7Networks_RH_Default_Par_6 - lookupLabel: 732 - originalLookupLabel: 732 - center: - x: 54.0 - y: -43.0 - z: 28.0 - color: '#d13e50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_7: - name: 7Networks_RH_Default_Par_7 - lookupLabel: 733 - originalLookupLabel: 733 - center: - x: 49.0 - y: -63.0 - z: 34.0 - color: '#d13e51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_8: - name: 7Networks_RH_Default_Par_8 - lookupLabel: 734 - originalLookupLabel: 734 - center: - x: 57.0 - y: -52.0 - z: 30.0 - color: '#d13e52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_9: - name: 7Networks_RH_Default_Par_9 - lookupLabel: 735 - originalLookupLabel: 735 - center: - x: 54.0 - y: -58.0 - z: 37.0 - color: '#d13e53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_10: - name: 7Networks_RH_Default_Par_10 - lookupLabel: 736 - originalLookupLabel: 736 - center: - x: 47.0 - y: -64.0 - z: 44.0 - color: '#d13e54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_1: - name: 7Networks_RH_Default_Temp_1 - lookupLabel: 737 - originalLookupLabel: 737 - center: - x: 49.0 - y: 9.0 - z: -34.0 - color: '#d13d49' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_2: - name: 7Networks_RH_Default_Temp_2 - lookupLabel: 738 - originalLookupLabel: 738 - center: - x: 58.0 - y: -8.0 - z: -27.0 - color: '#d13d4a' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_3: - name: 7Networks_RH_Default_Temp_3 - lookupLabel: 739 - originalLookupLabel: 739 - center: - x: 50.0 - y: 16.0 - z: -21.0 - color: '#d13d4b' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_4: - name: 7Networks_RH_Default_Temp_4 - lookupLabel: 740 - originalLookupLabel: 740 - center: - x: 60.0 - y: -5.0 - z: -17.0 - color: '#d13d4c' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_5: - name: 7Networks_RH_Default_Temp_5 - lookupLabel: 741 - originalLookupLabel: 741 - center: - x: 65.0 - y: -24.0 - z: -16.0 - color: '#d13d4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_6: - name: 7Networks_RH_Default_Temp_6 - lookupLabel: 742 - originalLookupLabel: 742 - center: - x: 53.0 - y: 3.0 - z: -16.0 - color: '#d13d4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_7: - name: 7Networks_RH_Default_Temp_7 - lookupLabel: 743 - originalLookupLabel: 743 - center: - x: 62.0 - y: -18.0 - z: -10.0 - color: '#d13d50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_8: - name: 7Networks_RH_Default_Temp_8 - lookupLabel: 744 - originalLookupLabel: 744 - center: - x: 51.0 - y: -9.0 - z: -13.0 - color: '#d13d51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_9: - name: 7Networks_RH_Default_Temp_9 - lookupLabel: 745 - originalLookupLabel: 745 - center: - x: 65.0 - y: -29.0 - z: -4.0 - color: '#d13d52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_10: - name: 7Networks_RH_Default_Temp_10 - lookupLabel: 746 - originalLookupLabel: 746 - center: - x: 49.0 - y: -20.0 - z: -9.0 - color: '#d13d53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_11: - name: 7Networks_RH_Default_Temp_11 - lookupLabel: 747 - originalLookupLabel: 747 - center: - x: 53.0 - y: -28.0 - z: -6.0 - color: '#d13d54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_12: - name: 7Networks_RH_Default_Temp_12 - lookupLabel: 748 - originalLookupLabel: 748 - center: - x: 63.0 - y: -43.0 - z: 3.0 - color: '#d13d55' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_13: - name: 7Networks_RH_Default_Temp_13 - lookupLabel: 749 - originalLookupLabel: 749 - center: - x: 49.0 - y: -35.0 - z: 1.0 - color: '#d13e55' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_1: - name: 7Networks_RH_Default_PFCv_1 - lookupLabel: 750 - originalLookupLabel: 750 - center: - x: 29.0 - y: 19.0 - z: -20.0 - color: '#d13d4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_2: - name: 7Networks_RH_Default_PFCv_2 - lookupLabel: 751 - originalLookupLabel: 751 - center: - x: 35.0 - y: 37.0 - z: -13.0 - color: '#d13e4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_3: - name: 7Networks_RH_Default_PFCv_3 - lookupLabel: 752 - originalLookupLabel: 752 - center: - x: 39.0 - y: 25.0 - z: -16.0 - color: '#d13f4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_4: - name: 7Networks_RH_Default_PFCv_4 - lookupLabel: 753 - originalLookupLabel: 753 - center: - x: 47.0 - y: 31.0 - z: -11.0 - color: '#d13f4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_5: - name: 7Networks_RH_Default_PFCv_5 - lookupLabel: 754 - originalLookupLabel: 754 - center: - x: 50.0 - y: 32.0 - z: -3.0 - color: '#d13f4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_6: - name: 7Networks_RH_Default_PFCv_6 - lookupLabel: 755 - originalLookupLabel: 755 - center: - x: 53.0 - y: 26.0 - z: 5.0 - color: '#d13f50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_1: - name: 7Networks_RH_Default_PFCdPFCm_1 - lookupLabel: 756 - originalLookupLabel: 756 - center: - x: 5.0 - y: 40.0 - z: -13.0 - color: '#d03d4c' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_2: - name: 7Networks_RH_Default_PFCdPFCm_2 - lookupLabel: 757 - originalLookupLabel: 757 - center: - x: 6.0 - y: 56.0 - z: -10.0 - color: '#d03d4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_3: - name: 7Networks_RH_Default_PFCdPFCm_3 - lookupLabel: 758 - originalLookupLabel: 758 - center: - x: 4.0 - y: 28.0 - z: -8.0 - color: '#d03d4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_4: - name: 7Networks_RH_Default_PFCdPFCm_4 - lookupLabel: 759 - originalLookupLabel: 759 - center: - x: 8.0 - y: 50.0 - z: -3.0 - color: '#d03e47' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_5: - name: 7Networks_RH_Default_PFCdPFCm_5 - lookupLabel: 760 - originalLookupLabel: 760 - center: - x: 7.0 - y: 67.0 - z: 1.0 - color: '#d03e48' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_6: - name: 7Networks_RH_Default_PFCdPFCm_6 - lookupLabel: 761 - originalLookupLabel: 761 - center: - x: 6.0 - y: 39.0 - z: -1.0 - color: '#d03e49' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_7: - name: 7Networks_RH_Default_PFCdPFCm_7 - lookupLabel: 762 - originalLookupLabel: 762 - center: - x: 19.0 - y: 66.0 - z: 11.0 - color: '#d03e4a' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_8: - name: 7Networks_RH_Default_PFCdPFCm_8 - lookupLabel: 763 - originalLookupLabel: 763 - center: - x: 7.0 - y: 57.0 - z: 10.0 - color: '#d03e4b' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_9: - name: 7Networks_RH_Default_PFCdPFCm_9 - lookupLabel: 764 - originalLookupLabel: 764 - center: - x: 9.0 - y: 43.0 - z: 10.0 - color: '#d03e4c' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_10: - name: 7Networks_RH_Default_PFCdPFCm_10 - lookupLabel: 765 - originalLookupLabel: 765 - center: - x: 6.0 - y: 30.0 - z: 13.0 - color: '#d03e4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_11: - name: 7Networks_RH_Default_PFCdPFCm_11 - lookupLabel: 766 - originalLookupLabel: 766 - center: - x: 15.0 - y: 62.0 - z: 22.0 - color: '#d03e4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_12: - name: 7Networks_RH_Default_PFCdPFCm_12 - lookupLabel: 767 - originalLookupLabel: 767 - center: - x: 7.0 - y: 45.0 - z: 22.0 - color: '#d03e50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_13: - name: 7Networks_RH_Default_PFCdPFCm_13 - lookupLabel: 768 - originalLookupLabel: 768 - center: - x: 6.0 - y: 19.0 - z: 22.0 - color: '#d03e51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_14: - name: 7Networks_RH_Default_PFCdPFCm_14 - lookupLabel: 769 - originalLookupLabel: 769 - center: - x: 6.0 - y: 57.0 - z: 29.0 - color: '#d03e52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_15: - name: 7Networks_RH_Default_PFCdPFCm_15 - lookupLabel: 770 - originalLookupLabel: 770 - center: - x: 16.0 - y: 53.0 - z: 37.0 - color: '#d03e53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_16: - name: 7Networks_RH_Default_PFCdPFCm_16 - lookupLabel: 771 - originalLookupLabel: 771 - center: - x: 21.0 - y: 40.0 - z: 35.0 - color: '#d03e54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_17: - name: 7Networks_RH_Default_PFCdPFCm_17 - lookupLabel: 772 - originalLookupLabel: 772 - center: - x: 5.0 - y: 44.0 - z: 41.0 - color: '#d03e55' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_18: - name: 7Networks_RH_Default_PFCdPFCm_18 - lookupLabel: 773 - originalLookupLabel: 773 - center: - x: 11.0 - y: 46.0 - z: 48.0 - color: '#d03f4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_19: - name: 7Networks_RH_Default_PFCdPFCm_19 - lookupLabel: 774 - originalLookupLabel: 774 - center: - x: 29.0 - y: 30.0 - z: 39.0 - color: '#d03f4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_20: - name: 7Networks_RH_Default_PFCdPFCm_20 - lookupLabel: 775 - originalLookupLabel: 775 - center: - x: 23.0 - y: 39.0 - z: 46.0 - color: '#d03f50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_21: - name: 7Networks_RH_Default_PFCdPFCm_21 - lookupLabel: 776 - originalLookupLabel: 776 - center: - x: 13.0 - y: 34.0 - z: 55.0 - color: '#d03f51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_22: - name: 7Networks_RH_Default_PFCdPFCm_22 - lookupLabel: 777 - originalLookupLabel: 777 - center: - x: 23.0 - y: 24.0 - z: 46.0 - color: '#d03f52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_23: - name: 7Networks_RH_Default_PFCdPFCm_23 - lookupLabel: 778 - originalLookupLabel: 778 - center: - x: 23.0 - y: 23.0 - z: 59.0 - color: '#d03f53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_24: - name: 7Networks_RH_Default_PFCdPFCm_24 - lookupLabel: 779 - originalLookupLabel: 779 - center: - x: 10.0 - y: 20.0 - z: 63.0 - color: '#d03f54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_1: - name: 7Networks_RH_Default_pCunPCC_1 - lookupLabel: 780 - originalLookupLabel: 780 - center: - x: 11.0 - y: -49.0 - z: 7.0 - color: '#d03e46' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_2: - name: 7Networks_RH_Default_pCunPCC_2 - lookupLabel: 781 - originalLookupLabel: 781 - center: - x: 11.0 - y: -54.0 - z: 13.0 - color: '#d03e4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_3: - name: 7Networks_RH_Default_pCunPCC_3 - lookupLabel: 782 - originalLookupLabel: 782 - center: - x: 7.0 - y: -47.0 - z: 13.0 - color: '#d03f4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_4: - name: 7Networks_RH_Default_pCunPCC_4 - lookupLabel: 783 - originalLookupLabel: 783 - center: - x: 16.0 - y: -58.0 - z: 21.0 - color: '#d0404d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_5: - name: 7Networks_RH_Default_pCunPCC_5 - lookupLabel: 784 - originalLookupLabel: 784 - center: - x: 5.0 - y: -51.0 - z: 18.0 - color: '#d0404e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_6: - name: 7Networks_RH_Default_pCunPCC_6 - lookupLabel: 785 - originalLookupLabel: 785 - center: - x: 8.0 - y: -43.0 - z: 22.0 - color: '#d0404f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_7: - name: 7Networks_RH_Default_pCunPCC_7 - lookupLabel: 786 - originalLookupLabel: 786 - center: - x: 4.0 - y: -57.0 - z: 22.0 - color: '#d04050' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_8: - name: 7Networks_RH_Default_pCunPCC_8 - lookupLabel: 787 - originalLookupLabel: 787 - center: - x: 7.0 - y: -65.0 - z: 26.0 - color: '#d04051' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_9: - name: 7Networks_RH_Default_pCunPCC_9 - lookupLabel: 788 - originalLookupLabel: 788 - center: - x: 7.0 - y: -48.0 - z: 27.0 - color: '#d04052' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_10: - name: 7Networks_RH_Default_pCunPCC_10 - lookupLabel: 789 - originalLookupLabel: 789 - center: - x: 4.0 - y: -41.0 - z: 29.0 - color: '#d04053' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_11: - name: 7Networks_RH_Default_pCunPCC_11 - lookupLabel: 790 - originalLookupLabel: 790 - center: - x: 6.0 - y: -57.0 - z: 28.0 - color: '#d04054' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_12: - name: 7Networks_RH_Default_pCunPCC_12 - lookupLabel: 791 - originalLookupLabel: 791 - center: - x: 12.0 - y: -51.0 - z: 32.0 - color: '#d0414d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_13: - name: 7Networks_RH_Default_pCunPCC_13 - lookupLabel: 792 - originalLookupLabel: 792 - center: - x: 12.0 - y: -43.0 - z: 34.0 - color: '#d0414e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_14: - name: 7Networks_RH_Default_pCunPCC_14 - lookupLabel: 793 - originalLookupLabel: 793 - center: - x: 4.0 - y: -28.0 - z: 37.0 - color: '#d0414f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_15: - name: 7Networks_RH_Default_pCunPCC_15 - lookupLabel: 794 - originalLookupLabel: 794 - center: - x: 6.0 - y: -36.0 - z: 36.0 - color: '#d04150' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_16: - name: 7Networks_RH_Default_pCunPCC_16 - lookupLabel: 795 - originalLookupLabel: 795 - center: - x: 4.0 - y: -16.0 - z: 37.0 - color: '#d04151' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_17: - name: 7Networks_RH_Default_pCunPCC_17 - lookupLabel: 796 - originalLookupLabel: 796 - center: - x: 5.0 - y: -62.0 - z: 34.0 - color: '#d04152' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_18: - name: 7Networks_RH_Default_pCunPCC_18 - lookupLabel: 797 - originalLookupLabel: 797 - center: - x: 11.0 - y: -51.0 - z: 38.0 - color: '#d04153' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_19: - name: 7Networks_RH_Default_pCunPCC_19 - lookupLabel: 798 - originalLookupLabel: 798 - center: - x: 7.0 - y: -59.0 - z: 42.0 - color: '#d04154' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_20: - name: 7Networks_RH_Default_pCunPCC_20 - lookupLabel: 799 - originalLookupLabel: 799 - center: - x: 7.0 - y: -49.0 - z: 45.0 - color: '#d0424d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Cont_pCun_3: - name: 7Networks_RH_Cont_pCun_3 - lookupLabel: 800 - originalLookupLabel: 800 - center: - x: 7.0 - y: -44.0 - z: 41.0 - color: '#eb9524' - hemisphere: right - hasParent: - - RH_Cont - versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_800Parcels_7Networks_order_FSLMNI152_1mm.nii.gz diff --git a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-800_res-1_desc-ordered_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-800_res-1_desc-ordered_dseg.yaml similarity index 99% rename from tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-800_res-1_desc-ordered_dseg.yaml rename to tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-800_res-1_desc-ordered_dseg.yaml index 14bc6e48a..6552a2f8b 100644 --- a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-800_res-1_desc-ordered_dseg.yaml +++ b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-800_res-1_desc-ordered_dseg.yaml @@ -1,14 +1,12 @@ name: Schaefer2018 abbreviation: Schaefer2018 versionIdentifier: '2018' -coordinateSpace: - name: MNI152 - abbreviation: FSLMNI152 - nativeUnit: mm +coordinateSpace: FSLMNI152 terminology: label: Schaefer2018_800Parcels_7Networks_order versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_800Parcels_7Networks_order_FSLMNI152_1mm.nii.gz + dataLocation: + schaefer2018_original_mni/Schaefer2018_800Parcels_7Networks_order_FSLMNI152_1mm.nii.gz entities: 7Networks_LH_Vis_1: name: 7Networks_LH_Vis_1 diff --git a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-900_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-900_dseg.yaml deleted file mode 100644 index ea8217078..000000000 --- a/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-900_dseg.yaml +++ /dev/null @@ -1,10921 +0,0 @@ -name: Schaefer2018 -abbreviation: Schaefer2018 -versionIdentifier: '2018' -coordinateSpace: MNI152NLin6Asym -terminology: - label: Schaefer2018_900Parcels_7Networks_order - entities: - LH_Vis: - name: LH_Vis - lookupLabel: -1 - hemisphere: left - center: - x: -20.5 - y: -74.7 - z: 5.2 - LH_SomMot: - name: LH_SomMot - lookupLabel: -2 - hemisphere: left - center: - x: -37.3 - y: -21.0 - z: 41.1 - LH_DorsAttn: - name: LH_DorsAttn - lookupLabel: -3 - hemisphere: left - center: - x: -34.7 - y: -46.0 - z: 38.5 - LH_SalVentAttn: - name: LH_SalVentAttn - lookupLabel: -4 - hemisphere: left - center: - x: -34.8 - y: -9.6 - z: 24.7 - LH_Limbic: - name: LH_Limbic - lookupLabel: -5 - hemisphere: left - center: - x: -27.8 - y: 8.8 - z: -25.7 - LH_Cont: - name: LH_Cont - lookupLabel: -6 - hemisphere: left - center: - x: -31.4 - y: -6.8 - z: 31.0 - LH_Default: - name: LH_Default - lookupLabel: -7 - hemisphere: left - center: - x: -29.3 - y: -14.2 - z: 18.5 - RH_Vis: - name: RH_Vis - lookupLabel: -8 - hemisphere: right - center: - x: 25.0 - y: -72.4 - z: 3.7 - RH_SomMot: - name: RH_SomMot - lookupLabel: -9 - hemisphere: right - center: - x: 36.2 - y: -19.4 - z: 40.1 - RH_DorsAttn: - name: RH_DorsAttn - lookupLabel: -10 - hemisphere: right - center: - x: 36.0 - y: -42.7 - z: 39.0 - RH_SalVentAttn: - name: RH_SalVentAttn - lookupLabel: -11 - hemisphere: right - center: - x: 34.2 - y: -7.7 - z: 26.7 - RH_Limbic: - name: RH_Limbic - lookupLabel: -12 - hemisphere: right - center: - x: 25.4 - y: 13.1 - z: -26.1 - RH_Cont: - name: RH_Cont - lookupLabel: -13 - hemisphere: right - center: - x: 36.8 - y: 5.3 - z: 24.2 - RH_Default: - name: RH_Default - lookupLabel: -14 - hemisphere: right - center: - x: 29.3 - y: -7.0 - z: 15.5 - 7Networks_LH_Vis_1: - name: 7Networks_LH_Vis_1 - lookupLabel: 1 - originalLookupLabel: 1 - center: - x: -35.0 - y: -43.0 - z: -21.0 - color: '#780e82' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_2: - name: 7Networks_LH_Vis_2 - lookupLabel: 2 - originalLookupLabel: 2 - center: - x: -29.0 - y: -36.0 - z: -21.0 - color: '#780e83' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_3: - name: 7Networks_LH_Vis_3 - lookupLabel: 3 - originalLookupLabel: 3 - center: - x: -37.0 - y: -60.0 - z: -18.0 - color: '#780e84' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_4: - name: 7Networks_LH_Vis_4 - lookupLabel: 4 - originalLookupLabel: 4 - center: - x: -31.0 - y: -40.0 - z: -12.0 - color: '#780e85' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_5: - name: 7Networks_LH_Vis_5 - lookupLabel: 5 - originalLookupLabel: 5 - center: - x: -29.0 - y: -60.0 - z: -14.0 - color: '#780e86' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_6: - name: 7Networks_LH_Vis_6 - lookupLabel: 6 - originalLookupLabel: 6 - center: - x: -39.0 - y: -72.0 - z: -17.0 - color: '#780f7f' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_7: - name: 7Networks_LH_Vis_7 - lookupLabel: 7 - originalLookupLabel: 7 - center: - x: -29.0 - y: -75.0 - z: -14.0 - color: '#780f80' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_8: - name: 7Networks_LH_Vis_8 - lookupLabel: 8 - originalLookupLabel: 8 - center: - x: -25.0 - y: -58.0 - z: -9.0 - color: '#780f81' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_9: - name: 7Networks_LH_Vis_9 - lookupLabel: 9 - originalLookupLabel: 9 - center: - x: -24.0 - y: -71.0 - z: -8.0 - color: '#780f82' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_10: - name: 7Networks_LH_Vis_10 - lookupLabel: 10 - originalLookupLabel: 10 - center: - x: -28.0 - y: -49.0 - z: -5.0 - color: '#780f83' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_11: - name: 7Networks_LH_Vis_11 - lookupLabel: 11 - originalLookupLabel: 11 - center: - x: -28.0 - y: -85.0 - z: -16.0 - color: '#780f84' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_12: - name: 7Networks_LH_Vis_12 - lookupLabel: 12 - originalLookupLabel: 12 - center: - x: -46.0 - y: -72.0 - z: -10.0 - color: '#780f85' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_13: - name: 7Networks_LH_Vis_13 - lookupLabel: 13 - originalLookupLabel: 13 - center: - x: -40.0 - y: -82.0 - z: -16.0 - color: '#780f86' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_14: - name: 7Networks_LH_Vis_14 - lookupLabel: 14 - originalLookupLabel: 14 - center: - x: -17.0 - y: -81.0 - z: -13.0 - color: '#78107f' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_15: - name: 7Networks_LH_Vis_15 - lookupLabel: 15 - originalLookupLabel: 15 - center: - x: -19.0 - y: -58.0 - z: -5.0 - color: '#781080' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_16: - name: 7Networks_LH_Vis_16 - lookupLabel: 16 - originalLookupLabel: 16 - center: - x: -16.0 - y: -72.0 - z: -9.0 - color: '#781081' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_17: - name: 7Networks_LH_Vis_17 - lookupLabel: 17 - originalLookupLabel: 17 - center: - x: -21.0 - y: -48.0 - z: -7.0 - color: '#781082' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_18: - name: 7Networks_LH_Vis_18 - lookupLabel: 18 - originalLookupLabel: 18 - center: - x: -15.0 - y: -89.0 - z: -15.0 - color: '#781083' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_19: - name: 7Networks_LH_Vis_19 - lookupLabel: 19 - originalLookupLabel: 19 - center: - x: -16.0 - y: -38.0 - z: -11.0 - color: '#781084' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_20: - name: 7Networks_LH_Vis_20 - lookupLabel: 20 - originalLookupLabel: 20 - center: - x: -32.0 - y: -92.0 - z: -14.0 - color: '#781085' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_21: - name: 7Networks_LH_Vis_21 - lookupLabel: 21 - originalLookupLabel: 21 - center: - x: -11.0 - y: -64.0 - z: -4.0 - color: '#781086' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_22: - name: 7Networks_LH_Vis_22 - lookupLabel: 22 - originalLookupLabel: 22 - center: - x: -17.0 - y: -97.0 - z: -16.0 - color: '#78117f' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_23: - name: 7Networks_LH_Vis_23 - lookupLabel: 23 - originalLookupLabel: 23 - center: - x: -13.0 - y: -50.0 - z: -7.0 - color: '#781180' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_24: - name: 7Networks_LH_Vis_24 - lookupLabel: 24 - originalLookupLabel: 24 - center: - x: -7.0 - y: -75.0 - z: -5.0 - color: '#781181' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_25: - name: 7Networks_LH_Vis_25 - lookupLabel: 25 - originalLookupLabel: 25 - center: - x: -5.0 - y: -87.0 - z: -13.0 - color: '#781182' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_26: - name: 7Networks_LH_Vis_26 - lookupLabel: 26 - originalLookupLabel: 26 - center: - x: -44.0 - y: -85.0 - z: -4.0 - color: '#781183' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_27: - name: 7Networks_LH_Vis_27 - lookupLabel: 27 - originalLookupLabel: 27 - center: - x: -8.0 - y: -96.0 - z: -13.0 - color: '#781184' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_28: - name: 7Networks_LH_Vis_28 - lookupLabel: 28 - originalLookupLabel: 28 - center: - x: -13.0 - y: -41.0 - z: -5.0 - color: '#781185' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_29: - name: 7Networks_LH_Vis_29 - lookupLabel: 29 - originalLookupLabel: 29 - center: - x: -24.0 - y: -100.0 - z: -8.0 - color: '#781186' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_30: - name: 7Networks_LH_Vis_30 - lookupLabel: 30 - originalLookupLabel: 30 - center: - x: -8.0 - y: -61.0 - z: 3.0 - color: '#78127f' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_31: - name: 7Networks_LH_Vis_31 - lookupLabel: 31 - originalLookupLabel: 31 - center: - x: -33.0 - y: -92.0 - z: -2.0 - color: '#781280' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_32: - name: 7Networks_LH_Vis_32 - lookupLabel: 32 - originalLookupLabel: 32 - center: - x: -45.0 - y: -76.0 - z: 5.0 - color: '#781281' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_33: - name: 7Networks_LH_Vis_33 - lookupLabel: 33 - originalLookupLabel: 33 - center: - x: -3.0 - y: -68.0 - z: 5.0 - color: '#781282' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_34: - name: 7Networks_LH_Vis_34 - lookupLabel: 34 - originalLookupLabel: 34 - center: - x: -17.0 - y: -54.0 - z: 0.0 - color: '#781283' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_35: - name: 7Networks_LH_Vis_35 - lookupLabel: 35 - originalLookupLabel: 35 - center: - x: -6.0 - y: -86.0 - z: 1.0 - color: '#781284' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_36: - name: 7Networks_LH_Vis_36 - lookupLabel: 36 - originalLookupLabel: 36 - center: - x: -11.0 - y: -44.0 - z: 2.0 - color: '#781285' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_37: - name: 7Networks_LH_Vis_37 - lookupLabel: 37 - originalLookupLabel: 37 - center: - x: -41.0 - y: -88.0 - z: 6.0 - color: '#781287' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_38: - name: 7Networks_LH_Vis_38 - lookupLabel: 38 - originalLookupLabel: 38 - center: - x: -7.0 - y: -103.0 - z: -1.0 - color: '#781288' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_39: - name: 7Networks_LH_Vis_39 - lookupLabel: 39 - originalLookupLabel: 39 - center: - x: -14.0 - y: -68.0 - z: 4.0 - color: '#781289' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_40: - name: 7Networks_LH_Vis_40 - lookupLabel: 40 - originalLookupLabel: 40 - center: - x: -7.0 - y: -95.0 - z: 0.0 - color: '#78128a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_41: - name: 7Networks_LH_Vis_41 - lookupLabel: 41 - originalLookupLabel: 41 - center: - x: -22.0 - y: -99.0 - z: 4.0 - color: '#78128b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_42: - name: 7Networks_LH_Vis_42 - lookupLabel: 42 - originalLookupLabel: 42 - center: - x: -9.0 - y: -77.0 - z: 7.0 - color: '#78128c' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_43: - name: 7Networks_LH_Vis_43 - lookupLabel: 43 - originalLookupLabel: 43 - center: - x: -11.0 - y: -48.0 - z: 4.0 - color: '#78128d' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_44: - name: 7Networks_LH_Vis_44 - lookupLabel: 44 - originalLookupLabel: 44 - center: - x: -29.0 - y: -90.0 - z: 7.0 - color: '#781386' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_45: - name: 7Networks_LH_Vis_45 - lookupLabel: 45 - originalLookupLabel: 45 - center: - x: -22.0 - y: -59.0 - z: 6.0 - color: '#781387' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_46: - name: 7Networks_LH_Vis_46 - lookupLabel: 46 - originalLookupLabel: 46 - center: - x: -51.0 - y: -74.0 - z: 15.0 - color: '#781388' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_47: - name: 7Networks_LH_Vis_47 - lookupLabel: 47 - originalLookupLabel: 47 - center: - x: -17.0 - y: -71.0 - z: 7.0 - color: '#781389' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_48: - name: 7Networks_LH_Vis_48 - lookupLabel: 48 - originalLookupLabel: 48 - center: - x: -2.0 - y: -85.0 - z: 9.0 - color: '#78138a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_49: - name: 7Networks_LH_Vis_49 - lookupLabel: 49 - originalLookupLabel: 49 - center: - x: -41.0 - y: -80.0 - z: 14.0 - color: '#78138b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_50: - name: 7Networks_LH_Vis_50 - lookupLabel: 50 - originalLookupLabel: 50 - center: - x: -12.0 - y: -100.0 - z: 12.0 - color: '#78138c' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_51: - name: 7Networks_LH_Vis_51 - lookupLabel: 51 - originalLookupLabel: 51 - center: - x: -19.0 - y: -61.0 - z: 9.0 - color: '#78138d' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_52: - name: 7Networks_LH_Vis_52 - lookupLabel: 52 - originalLookupLabel: 52 - center: - x: -24.0 - y: -95.0 - z: 14.0 - color: '#781486' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_53: - name: 7Networks_LH_Vis_53 - lookupLabel: 53 - originalLookupLabel: 53 - center: - x: -6.0 - y: -74.0 - z: 13.0 - color: '#781487' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_54: - name: 7Networks_LH_Vis_54 - lookupLabel: 54 - originalLookupLabel: 54 - center: - x: -3.0 - y: -96.0 - z: 13.0 - color: '#781488' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_55: - name: 7Networks_LH_Vis_55 - lookupLabel: 55 - originalLookupLabel: 55 - center: - x: -16.0 - y: -64.0 - z: 13.0 - color: '#781489' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_56: - name: 7Networks_LH_Vis_56 - lookupLabel: 56 - originalLookupLabel: 56 - center: - x: -32.0 - y: -90.0 - z: 16.0 - color: '#78148a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_57: - name: 7Networks_LH_Vis_57 - lookupLabel: 57 - originalLookupLabel: 57 - center: - x: -7.0 - y: -68.0 - z: 16.0 - color: '#78148b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_58: - name: 7Networks_LH_Vis_58 - lookupLabel: 58 - originalLookupLabel: 58 - center: - x: -2.0 - y: -83.0 - z: 21.0 - color: '#78148c' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_59: - name: 7Networks_LH_Vis_59 - lookupLabel: 59 - originalLookupLabel: 59 - center: - x: -18.0 - y: -91.0 - z: 22.0 - color: '#78148d' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_60: - name: 7Networks_LH_Vis_60 - lookupLabel: 60 - originalLookupLabel: 60 - center: - x: -40.0 - y: -85.0 - z: 22.0 - color: '#781586' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_61: - name: 7Networks_LH_Vis_61 - lookupLabel: 61 - originalLookupLabel: 61 - center: - x: -7.0 - y: -93.0 - z: 25.0 - color: '#781587' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_62: - name: 7Networks_LH_Vis_62 - lookupLabel: 62 - originalLookupLabel: 62 - center: - x: -15.0 - y: -71.0 - z: 19.0 - color: '#781588' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_63: - name: 7Networks_LH_Vis_63 - lookupLabel: 63 - originalLookupLabel: 63 - center: - x: -16.0 - y: -64.0 - z: 22.0 - color: '#781589' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_64: - name: 7Networks_LH_Vis_64 - lookupLabel: 64 - originalLookupLabel: 64 - center: - x: -27.0 - y: -84.0 - z: 19.0 - color: '#78158a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_65: - name: 7Networks_LH_Vis_65 - lookupLabel: 65 - originalLookupLabel: 65 - center: - x: -7.0 - y: -76.0 - z: 26.0 - color: '#78158b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_66: - name: 7Networks_LH_Vis_66 - lookupLabel: 66 - originalLookupLabel: 66 - center: - x: -32.0 - y: -84.0 - z: 26.0 - color: '#78158c' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_67: - name: 7Networks_LH_Vis_67 - lookupLabel: 67 - originalLookupLabel: 67 - center: - x: -6.0 - y: -87.0 - z: 35.0 - color: '#78158d' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_68: - name: 7Networks_LH_Vis_68 - lookupLabel: 68 - originalLookupLabel: 68 - center: - x: -17.0 - y: -89.0 - z: 34.0 - color: '#781686' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_69: - name: 7Networks_LH_Vis_69 - lookupLabel: 69 - originalLookupLabel: 69 - center: - x: -24.0 - y: -82.0 - z: 28.0 - color: '#781687' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_70: - name: 7Networks_LH_Vis_70 - lookupLabel: 70 - originalLookupLabel: 70 - center: - x: -15.0 - y: -73.0 - z: 31.0 - color: '#781688' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_71: - name: 7Networks_LH_Vis_71 - lookupLabel: 71 - originalLookupLabel: 71 - center: - x: -30.0 - y: -74.0 - z: 25.0 - color: '#781689' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_72: - name: 7Networks_LH_Vis_72 - lookupLabel: 72 - originalLookupLabel: 72 - center: - x: -13.0 - y: -81.0 - z: 36.0 - color: '#78168a' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_73: - name: 7Networks_LH_Vis_73 - lookupLabel: 73 - originalLookupLabel: 73 - center: - x: -17.0 - y: -86.0 - z: 44.0 - color: '#78168b' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_74: - name: 7Networks_LH_Vis_74 - lookupLabel: 74 - originalLookupLabel: 74 - center: - x: -23.0 - y: -80.0 - z: 40.0 - color: '#78168c' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_Vis_75: - name: 7Networks_LH_Vis_75 - lookupLabel: 75 - originalLookupLabel: 75 - center: - x: -13.0 - y: -80.0 - z: 45.0 - color: '#78168d' - hemisphere: left - hasParent: - - LH_Vis - 7Networks_LH_SomMot_1: - name: 7Networks_LH_SomMot_1 - lookupLabel: 76 - originalLookupLabel: 76 - center: - x: -51.0 - y: 4.0 - z: -6.0 - color: '#467db2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_2: - name: 7Networks_LH_SomMot_2 - lookupLabel: 77 - originalLookupLabel: 77 - center: - x: -57.0 - y: -4.0 - z: 1.0 - color: '#467db3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_3: - name: 7Networks_LH_SomMot_3 - lookupLabel: 78 - originalLookupLabel: 78 - center: - x: -48.0 - y: -12.0 - z: -1.0 - color: '#467db4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_4: - name: 7Networks_LH_SomMot_4 - lookupLabel: 79 - originalLookupLabel: 79 - center: - x: -56.0 - y: -17.0 - z: 6.0 - color: '#467ead' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_5: - name: 7Networks_LH_SomMot_5 - lookupLabel: 80 - originalLookupLabel: 80 - center: - x: -42.0 - y: -20.0 - z: 4.0 - color: '#467eae' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_6: - name: 7Networks_LH_SomMot_6 - lookupLabel: 81 - originalLookupLabel: 81 - center: - x: -65.0 - y: -30.0 - z: 5.0 - color: '#467eaf' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_7: - name: 7Networks_LH_SomMot_7 - lookupLabel: 82 - originalLookupLabel: 82 - center: - x: -61.0 - y: -26.0 - z: 10.0 - color: '#467eb0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_8: - name: 7Networks_LH_SomMot_8 - lookupLabel: 83 - originalLookupLabel: 83 - center: - x: -36.0 - y: -11.0 - z: 13.0 - color: '#467eb1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_9: - name: 7Networks_LH_SomMot_9 - lookupLabel: 84 - originalLookupLabel: 84 - center: - x: -40.0 - y: -25.0 - z: 12.0 - color: '#467eb2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_10: - name: 7Networks_LH_SomMot_10 - lookupLabel: 85 - originalLookupLabel: 85 - center: - x: -34.0 - y: -23.0 - z: 10.0 - color: '#467eb3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_11: - name: 7Networks_LH_SomMot_11 - lookupLabel: 86 - originalLookupLabel: 86 - center: - x: -61.0 - y: -40.0 - z: 9.0 - color: '#467eb4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_12: - name: 7Networks_LH_SomMot_12 - lookupLabel: 87 - originalLookupLabel: 87 - center: - x: -42.0 - y: -30.0 - z: 9.0 - color: '#467fad' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_13: - name: 7Networks_LH_SomMot_13 - lookupLabel: 88 - originalLookupLabel: 88 - center: - x: -36.0 - y: -14.0 - z: 18.0 - color: '#467fae' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_14: - name: 7Networks_LH_SomMot_14 - lookupLabel: 89 - originalLookupLabel: 89 - center: - x: -48.0 - y: -34.0 - z: 11.0 - color: '#467faf' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_15: - name: 7Networks_LH_SomMot_15 - lookupLabel: 90 - originalLookupLabel: 90 - center: - x: -35.0 - y: -27.0 - z: 18.0 - color: '#467fb0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_16: - name: 7Networks_LH_SomMot_16 - lookupLabel: 91 - originalLookupLabel: 91 - center: - x: -42.0 - y: -13.0 - z: 17.0 - color: '#467fb1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_17: - name: 7Networks_LH_SomMot_17 - lookupLabel: 92 - originalLookupLabel: 92 - center: - x: -59.0 - y: -37.0 - z: 16.0 - color: '#467fb2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_18: - name: 7Networks_LH_SomMot_18 - lookupLabel: 93 - originalLookupLabel: 93 - center: - x: -48.0 - y: -12.0 - z: 13.0 - color: '#467fb3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_19: - name: 7Networks_LH_SomMot_19 - lookupLabel: 94 - originalLookupLabel: 94 - center: - x: -58.0 - y: -6.0 - z: 9.0 - color: '#467fb4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_20: - name: 7Networks_LH_SomMot_20 - lookupLabel: 95 - originalLookupLabel: 95 - center: - x: -40.0 - y: -36.0 - z: 17.0 - color: '#4680ad' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_21: - name: 7Networks_LH_SomMot_21 - lookupLabel: 96 - originalLookupLabel: 96 - center: - x: -42.0 - y: -26.0 - z: 21.0 - color: '#4680ae' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_22: - name: 7Networks_LH_SomMot_22 - lookupLabel: 97 - originalLookupLabel: 97 - center: - x: -59.0 - y: 0.0 - z: 12.0 - color: '#4680af' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_23: - name: 7Networks_LH_SomMot_23 - lookupLabel: 98 - originalLookupLabel: 98 - center: - x: -57.0 - y: -15.0 - z: 15.0 - color: '#4680b0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_24: - name: 7Networks_LH_SomMot_24 - lookupLabel: 99 - originalLookupLabel: 99 - center: - x: -46.0 - y: -40.0 - z: 20.0 - color: '#4680b1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_25: - name: 7Networks_LH_SomMot_25 - lookupLabel: 100 - originalLookupLabel: 100 - center: - x: -50.0 - y: -21.0 - z: 18.0 - color: '#4680b2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_26: - name: 7Networks_LH_SomMot_26 - lookupLabel: 101 - originalLookupLabel: 101 - center: - x: -64.0 - y: -9.0 - z: 13.0 - color: '#4680b3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_27: - name: 7Networks_LH_SomMot_27 - lookupLabel: 102 - originalLookupLabel: 102 - center: - x: -48.0 - y: -30.0 - z: 17.0 - color: '#4680b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_28: - name: 7Networks_LH_SomMot_28 - lookupLabel: 103 - originalLookupLabel: 103 - center: - x: -62.0 - y: -18.0 - z: 21.0 - color: '#4681ad' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_29: - name: 7Networks_LH_SomMot_29 - lookupLabel: 104 - originalLookupLabel: 104 - center: - x: -60.0 - y: -2.0 - z: 19.0 - color: '#4681ae' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_30: - name: 7Networks_LH_SomMot_30 - lookupLabel: 105 - originalLookupLabel: 105 - center: - x: -64.0 - y: -9.0 - z: 22.0 - color: '#4681af' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_31: - name: 7Networks_LH_SomMot_31 - lookupLabel: 106 - originalLookupLabel: 106 - center: - x: -57.0 - y: -1.0 - z: 27.0 - color: '#4681b0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_32: - name: 7Networks_LH_SomMot_32 - lookupLabel: 107 - originalLookupLabel: 107 - center: - x: -57.0 - y: -8.0 - z: 25.0 - color: '#4681b1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_33: - name: 7Networks_LH_SomMot_33 - lookupLabel: 108 - originalLookupLabel: 108 - center: - x: -57.0 - y: 7.0 - z: 34.0 - color: '#4681b2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_34: - name: 7Networks_LH_SomMot_34 - lookupLabel: 109 - originalLookupLabel: 109 - center: - x: -62.0 - y: -9.0 - z: 33.0 - color: '#4681b3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_35: - name: 7Networks_LH_SomMot_35 - lookupLabel: 110 - originalLookupLabel: 110 - center: - x: -55.0 - y: -4.0 - z: 36.0 - color: '#4681b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_36: - name: 7Networks_LH_SomMot_36 - lookupLabel: 111 - originalLookupLabel: 111 - center: - x: -51.0 - y: -11.0 - z: 31.0 - color: '#4682ad' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_37: - name: 7Networks_LH_SomMot_37 - lookupLabel: 112 - originalLookupLabel: 112 - center: - x: -57.0 - y: -11.0 - z: 41.0 - color: '#4682ae' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_38: - name: 7Networks_LH_SomMot_38 - lookupLabel: 113 - originalLookupLabel: 113 - center: - x: -56.0 - y: -17.0 - z: 39.0 - color: '#4682af' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_39: - name: 7Networks_LH_SomMot_39 - lookupLabel: 114 - originalLookupLabel: 114 - center: - x: -53.0 - y: -22.0 - z: 43.0 - color: '#4682b0' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_40: - name: 7Networks_LH_SomMot_40 - lookupLabel: 115 - originalLookupLabel: 115 - center: - x: -49.0 - y: -17.0 - z: 41.0 - color: '#4682b1' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_41: - name: 7Networks_LH_SomMot_41 - lookupLabel: 116 - originalLookupLabel: 116 - center: - x: -47.0 - y: -12.0 - z: 40.0 - color: '#4682b2' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_42: - name: 7Networks_LH_SomMot_42 - lookupLabel: 117 - originalLookupLabel: 117 - center: - x: -57.0 - y: -17.0 - z: 49.0 - color: '#4682b3' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_43: - name: 7Networks_LH_SomMot_43 - lookupLabel: 118 - originalLookupLabel: 118 - center: - x: -8.0 - y: -8.0 - z: 41.0 - color: '#4682b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_44: - name: 7Networks_LH_SomMot_44 - lookupLabel: 119 - originalLookupLabel: 119 - center: - x: -52.0 - y: -1.0 - z: 48.0 - color: '#4682b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_45: - name: 7Networks_LH_SomMot_45 - lookupLabel: 120 - originalLookupLabel: 120 - center: - x: -48.0 - y: -27.0 - z: 47.0 - color: '#4682b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_46: - name: 7Networks_LH_SomMot_46 - lookupLabel: 121 - originalLookupLabel: 121 - center: - x: -38.0 - y: -18.0 - z: 41.0 - color: '#4682b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_47: - name: 7Networks_LH_SomMot_47 - lookupLabel: 122 - originalLookupLabel: 122 - center: - x: -9.0 - y: -8.0 - z: 47.0 - color: '#4682b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_48: - name: 7Networks_LH_SomMot_48 - lookupLabel: 123 - originalLookupLabel: 123 - center: - x: -47.0 - y: -17.0 - z: 51.0 - color: '#4682ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_49: - name: 7Networks_LH_SomMot_49 - lookupLabel: 124 - originalLookupLabel: 124 - center: - x: -52.0 - y: -24.0 - z: 55.0 - color: '#4682bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_50: - name: 7Networks_LH_SomMot_50 - lookupLabel: 125 - originalLookupLabel: 125 - center: - x: -44.0 - y: -32.0 - z: 52.0 - color: '#4683b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_51: - name: 7Networks_LH_SomMot_51 - lookupLabel: 126 - originalLookupLabel: 126 - center: - x: -44.0 - y: -12.0 - z: 51.0 - color: '#4683b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_52: - name: 7Networks_LH_SomMot_52 - lookupLabel: 127 - originalLookupLabel: 127 - center: - x: -7.0 - y: -17.0 - z: 49.0 - color: '#4683b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_53: - name: 7Networks_LH_SomMot_53 - lookupLabel: 128 - originalLookupLabel: 128 - center: - x: -37.0 - y: -22.0 - z: 48.0 - color: '#4683b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_54: - name: 7Networks_LH_SomMot_54 - lookupLabel: 129 - originalLookupLabel: 129 - center: - x: -47.0 - y: -20.0 - z: 60.0 - color: '#4683b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_55: - name: 7Networks_LH_SomMot_55 - lookupLabel: 130 - originalLookupLabel: 130 - center: - x: -39.0 - y: -37.0 - z: 55.0 - color: '#4683b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_56: - name: 7Networks_LH_SomMot_56 - lookupLabel: 131 - originalLookupLabel: 131 - center: - x: -44.0 - y: -34.0 - z: 63.0 - color: '#4683ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_57: - name: 7Networks_LH_SomMot_57 - lookupLabel: 132 - originalLookupLabel: 132 - center: - x: -39.0 - y: -15.0 - z: 61.0 - color: '#4683bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_58: - name: 7Networks_LH_SomMot_58 - lookupLabel: 133 - originalLookupLabel: 133 - center: - x: -5.0 - y: -26.0 - z: 55.0 - color: '#4684b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_59: - name: 7Networks_LH_SomMot_59 - lookupLabel: 134 - originalLookupLabel: 134 - center: - x: -39.0 - y: -27.0 - z: 58.0 - color: '#4684b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_60: - name: 7Networks_LH_SomMot_60 - lookupLabel: 135 - originalLookupLabel: 135 - center: - x: -4.0 - y: -13.0 - z: 58.0 - color: '#4684b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_61: - name: 7Networks_LH_SomMot_61 - lookupLabel: 136 - originalLookupLabel: 136 - center: - x: -8.0 - y: -39.0 - z: 56.0 - color: '#4684b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_62: - name: 7Networks_LH_SomMot_62 - lookupLabel: 137 - originalLookupLabel: 137 - center: - x: -34.0 - y: -26.0 - z: 54.0 - color: '#4684b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_63: - name: 7Networks_LH_SomMot_63 - lookupLabel: 138 - originalLookupLabel: 138 - center: - x: -32.0 - y: -39.0 - z: 62.0 - color: '#4684b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_64: - name: 7Networks_LH_SomMot_64 - lookupLabel: 139 - originalLookupLabel: 139 - center: - x: -30.0 - y: -47.0 - z: 63.0 - color: '#4684ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_65: - name: 7Networks_LH_SomMot_65 - lookupLabel: 140 - originalLookupLabel: 140 - center: - x: -28.0 - y: -11.0 - z: 65.0 - color: '#4684bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_66: - name: 7Networks_LH_SomMot_66 - lookupLabel: 141 - originalLookupLabel: 141 - center: - x: -30.0 - y: -22.0 - z: 67.0 - color: '#4685b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_67: - name: 7Networks_LH_SomMot_67 - lookupLabel: 142 - originalLookupLabel: 142 - center: - x: -31.0 - y: -29.0 - z: 68.0 - color: '#4685b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_68: - name: 7Networks_LH_SomMot_68 - lookupLabel: 143 - originalLookupLabel: 143 - center: - x: -27.0 - y: -29.0 - z: 55.0 - color: '#4685b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_69: - name: 7Networks_LH_SomMot_69 - lookupLabel: 144 - originalLookupLabel: 144 - center: - x: -18.0 - y: -10.0 - z: 63.0 - color: '#4685b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_70: - name: 7Networks_LH_SomMot_70 - lookupLabel: 145 - originalLookupLabel: 145 - center: - x: -3.0 - y: -20.0 - z: 66.0 - color: '#4685b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_71: - name: 7Networks_LH_SomMot_71 - lookupLabel: 146 - originalLookupLabel: 146 - center: - x: -21.0 - y: -12.0 - z: 72.0 - color: '#4685b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_72: - name: 7Networks_LH_SomMot_72 - lookupLabel: 147 - originalLookupLabel: 147 - center: - x: -24.0 - y: -38.0 - z: 69.0 - color: '#4685ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_73: - name: 7Networks_LH_SomMot_73 - lookupLabel: 148 - originalLookupLabel: 148 - center: - x: -7.0 - y: -8.0 - z: 71.0 - color: '#4685bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_74: - name: 7Networks_LH_SomMot_74 - lookupLabel: 149 - originalLookupLabel: 149 - center: - x: -8.0 - y: -43.0 - z: 69.0 - color: '#4686b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_75: - name: 7Networks_LH_SomMot_75 - lookupLabel: 150 - originalLookupLabel: 150 - center: - x: -20.0 - y: -50.0 - z: 68.0 - color: '#4686b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_76: - name: 7Networks_LH_SomMot_76 - lookupLabel: 151 - originalLookupLabel: 151 - center: - x: -14.0 - y: -4.0 - z: 69.0 - color: '#4686b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_77: - name: 7Networks_LH_SomMot_77 - lookupLabel: 152 - originalLookupLabel: 152 - center: - x: -3.0 - y: -31.0 - z: 66.0 - color: '#4686b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_78: - name: 7Networks_LH_SomMot_78 - lookupLabel: 153 - originalLookupLabel: 153 - center: - x: -19.0 - y: -24.0 - z: 68.0 - color: '#4686b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_79: - name: 7Networks_LH_SomMot_79 - lookupLabel: 154 - originalLookupLabel: 154 - center: - x: -20.0 - y: -31.0 - z: 67.0 - color: '#4686b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_80: - name: 7Networks_LH_SomMot_80 - lookupLabel: 155 - originalLookupLabel: 155 - center: - x: -15.0 - y: -48.0 - z: 74.0 - color: '#4686ba' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_81: - name: 7Networks_LH_SomMot_81 - lookupLabel: 156 - originalLookupLabel: 156 - center: - x: -15.0 - y: -14.0 - z: 74.0 - color: '#4686bb' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_82: - name: 7Networks_LH_SomMot_82 - lookupLabel: 157 - originalLookupLabel: 157 - center: - x: -7.0 - y: -17.0 - z: 75.0 - color: '#4687b4' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_83: - name: 7Networks_LH_SomMot_83 - lookupLabel: 158 - originalLookupLabel: 158 - center: - x: -18.0 - y: -39.0 - z: 74.0 - color: '#4687b5' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_84: - name: 7Networks_LH_SomMot_84 - lookupLabel: 159 - originalLookupLabel: 159 - center: - x: -12.0 - y: -26.0 - z: 73.0 - color: '#4687b6' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_85: - name: 7Networks_LH_SomMot_85 - lookupLabel: 160 - originalLookupLabel: 160 - center: - x: -13.0 - y: -32.0 - z: 73.0 - color: '#4687b7' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_86: - name: 7Networks_LH_SomMot_86 - lookupLabel: 161 - originalLookupLabel: 161 - center: - x: -10.0 - y: -36.0 - z: 78.0 - color: '#4687b8' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_SomMot_87: - name: 7Networks_LH_SomMot_87 - lookupLabel: 162 - originalLookupLabel: 162 - center: - x: -6.0 - y: -35.0 - z: 73.0 - color: '#4687b9' - hemisphere: left - hasParent: - - LH_SomMot - 7Networks_LH_DorsAttn_Post_1: - name: 7Networks_LH_DorsAttn_Post_1 - lookupLabel: 163 - originalLookupLabel: 163 - center: - x: -46.0 - y: -43.0 - z: -21.0 - color: '#00740b' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_2: - name: 7Networks_LH_DorsAttn_Post_2 - lookupLabel: 164 - originalLookupLabel: 164 - center: - x: -54.0 - y: -50.0 - z: -21.0 - color: '#00740c' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_3: - name: 7Networks_LH_DorsAttn_Post_3 - lookupLabel: 165 - originalLookupLabel: 165 - center: - x: -44.0 - y: -55.0 - z: -15.0 - color: '#00740d' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_4: - name: 7Networks_LH_DorsAttn_Post_4 - lookupLabel: 166 - originalLookupLabel: 166 - center: - x: -48.0 - y: -60.0 - z: -10.0 - color: '#00740e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_5: - name: 7Networks_LH_DorsAttn_Post_5 - lookupLabel: 167 - originalLookupLabel: 167 - center: - x: -45.0 - y: -65.0 - z: -1.0 - color: '#007507' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_6: - name: 7Networks_LH_DorsAttn_Post_6 - lookupLabel: 168 - originalLookupLabel: 168 - center: - x: -57.0 - y: -59.0 - z: -5.0 - color: '#007508' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_7: - name: 7Networks_LH_DorsAttn_Post_7 - lookupLabel: 169 - originalLookupLabel: 169 - center: - x: -52.0 - y: -68.0 - z: 4.0 - color: '#007509' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_8: - name: 7Networks_LH_DorsAttn_Post_8 - lookupLabel: 170 - originalLookupLabel: 170 - center: - x: -57.0 - y: -61.0 - z: 6.0 - color: '#00750a' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_9: - name: 7Networks_LH_DorsAttn_Post_9 - lookupLabel: 171 - originalLookupLabel: 171 - center: - x: -47.0 - y: -66.0 - z: 9.0 - color: '#00750b' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_10: - name: 7Networks_LH_DorsAttn_Post_10 - lookupLabel: 172 - originalLookupLabel: 172 - center: - x: -48.0 - y: -61.0 - z: 13.0 - color: '#00750c' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_11: - name: 7Networks_LH_DorsAttn_Post_11 - lookupLabel: 173 - originalLookupLabel: 173 - center: - x: -45.0 - y: -68.0 - z: 17.0 - color: '#00750d' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_12: - name: 7Networks_LH_DorsAttn_Post_12 - lookupLabel: 174 - originalLookupLabel: 174 - center: - x: -45.0 - y: -74.0 - z: 23.0 - color: '#00750e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_13: - name: 7Networks_LH_DorsAttn_Post_13 - lookupLabel: 175 - originalLookupLabel: 175 - center: - x: -29.0 - y: -77.0 - z: 39.0 - color: '#007607' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_14: - name: 7Networks_LH_DorsAttn_Post_14 - lookupLabel: 176 - originalLookupLabel: 176 - center: - x: -25.0 - y: -69.0 - z: 32.0 - color: '#007608' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_15: - name: 7Networks_LH_DorsAttn_Post_15 - lookupLabel: 177 - originalLookupLabel: 177 - center: - x: -56.0 - y: -25.0 - z: 40.0 - color: '#007609' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_16: - name: 7Networks_LH_DorsAttn_Post_16 - lookupLabel: 178 - originalLookupLabel: 178 - center: - x: -27.0 - y: -67.0 - z: 40.0 - color: '#00760a' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_17: - name: 7Networks_LH_DorsAttn_Post_17 - lookupLabel: 179 - originalLookupLabel: 179 - center: - x: -56.0 - y: -33.0 - z: 46.0 - color: '#00760b' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_18: - name: 7Networks_LH_DorsAttn_Post_18 - lookupLabel: 180 - originalLookupLabel: 180 - center: - x: -49.0 - y: -29.0 - z: 42.0 - color: '#00760c' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_19: - name: 7Networks_LH_DorsAttn_Post_19 - lookupLabel: 181 - originalLookupLabel: 181 - center: - x: -43.0 - y: -38.0 - z: 42.0 - color: '#00760d' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_20: - name: 7Networks_LH_DorsAttn_Post_20 - lookupLabel: 182 - originalLookupLabel: 182 - center: - x: -19.0 - y: -79.0 - z: 51.0 - color: '#00760f' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_21: - name: 7Networks_LH_DorsAttn_Post_21 - lookupLabel: 183 - originalLookupLabel: 183 - center: - x: -30.0 - y: -61.0 - z: 47.0 - color: '#007610' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_22: - name: 7Networks_LH_DorsAttn_Post_22 - lookupLabel: 184 - originalLookupLabel: 184 - center: - x: -19.0 - y: -71.0 - z: 47.0 - color: '#007611' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_23: - name: 7Networks_LH_DorsAttn_Post_23 - lookupLabel: 185 - originalLookupLabel: 185 - center: - x: -43.0 - y: -32.0 - z: 43.0 - color: '#007612' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_24: - name: 7Networks_LH_DorsAttn_Post_24 - lookupLabel: 186 - originalLookupLabel: 186 - center: - x: -23.0 - y: -64.0 - z: 49.0 - color: '#007613' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_25: - name: 7Networks_LH_DorsAttn_Post_25 - lookupLabel: 187 - originalLookupLabel: 187 - center: - x: -36.0 - y: -37.0 - z: 46.0 - color: '#007614' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_26: - name: 7Networks_LH_DorsAttn_Post_26 - lookupLabel: 188 - originalLookupLabel: 188 - center: - x: -32.0 - y: -46.0 - z: 45.0 - color: '#007615' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_27: - name: 7Networks_LH_DorsAttn_Post_27 - lookupLabel: 189 - originalLookupLabel: 189 - center: - x: -28.0 - y: -54.0 - z: 49.0 - color: '#00770e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_28: - name: 7Networks_LH_DorsAttn_Post_28 - lookupLabel: 190 - originalLookupLabel: 190 - center: - x: -27.0 - y: -59.0 - z: 54.0 - color: '#00770f' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_29: - name: 7Networks_LH_DorsAttn_Post_29 - lookupLabel: 191 - originalLookupLabel: 191 - center: - x: -12.0 - y: -74.0 - z: 54.0 - color: '#007710' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_30: - name: 7Networks_LH_DorsAttn_Post_30 - lookupLabel: 192 - originalLookupLabel: 192 - center: - x: -38.0 - y: -51.0 - z: 57.0 - color: '#007711' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_31: - name: 7Networks_LH_DorsAttn_Post_31 - lookupLabel: 193 - originalLookupLabel: 193 - center: - x: -38.0 - y: -42.0 - z: 57.0 - color: '#007712' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_32: - name: 7Networks_LH_DorsAttn_Post_32 - lookupLabel: 194 - originalLookupLabel: 194 - center: - x: -32.0 - y: -57.0 - z: 59.0 - color: '#007713' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_33: - name: 7Networks_LH_DorsAttn_Post_33 - lookupLabel: 195 - originalLookupLabel: 195 - center: - x: -6.0 - y: -70.0 - z: 58.0 - color: '#007714' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_34: - name: 7Networks_LH_DorsAttn_Post_34 - lookupLabel: 196 - originalLookupLabel: 196 - center: - x: -20.0 - y: -70.0 - z: 58.0 - color: '#007715' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_35: - name: 7Networks_LH_DorsAttn_Post_35 - lookupLabel: 197 - originalLookupLabel: 197 - center: - x: -28.0 - y: -63.0 - z: 61.0 - color: '#00780e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_36: - name: 7Networks_LH_DorsAttn_Post_36 - lookupLabel: 198 - originalLookupLabel: 198 - center: - x: -4.0 - y: -53.0 - z: 57.0 - color: '#00780f' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_37: - name: 7Networks_LH_DorsAttn_Post_37 - lookupLabel: 199 - originalLookupLabel: 199 - center: - x: -14.0 - y: -65.0 - z: 62.0 - color: '#007810' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_38: - name: 7Networks_LH_DorsAttn_Post_38 - lookupLabel: 200 - originalLookupLabel: 200 - center: - x: -34.0 - y: -56.0 - z: 65.0 - color: '#007811' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_39: - name: 7Networks_LH_DorsAttn_Post_39 - lookupLabel: 201 - originalLookupLabel: 201 - center: - x: -7.0 - y: -61.0 - z: 61.0 - color: '#007812' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_40: - name: 7Networks_LH_DorsAttn_Post_40 - lookupLabel: 202 - originalLookupLabel: 202 - center: - x: -23.0 - y: -58.0 - z: 64.0 - color: '#007813' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_41: - name: 7Networks_LH_DorsAttn_Post_41 - lookupLabel: 203 - originalLookupLabel: 203 - center: - x: -7.0 - y: -53.0 - z: 68.0 - color: '#007814' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_Post_42: - name: 7Networks_LH_DorsAttn_Post_42 - lookupLabel: 204 - originalLookupLabel: 204 - center: - x: -15.0 - y: -59.0 - z: 68.0 - color: '#007815' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_1: - name: 7Networks_LH_DorsAttn_FEF_1 - lookupLabel: 205 - originalLookupLabel: 205 - center: - x: -42.0 - y: -3.0 - z: 50.0 - color: '#00760e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_2: - name: 7Networks_LH_DorsAttn_FEF_2 - lookupLabel: 206 - originalLookupLabel: 206 - center: - x: -28.0 - y: 3.0 - z: 57.0 - color: '#007616' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_3: - name: 7Networks_LH_DorsAttn_FEF_3 - lookupLabel: 207 - originalLookupLabel: 207 - center: - x: -32.0 - y: -6.0 - z: 52.0 - color: '#007716' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_4: - name: 7Networks_LH_DorsAttn_FEF_4 - lookupLabel: 208 - originalLookupLabel: 208 - center: - x: -23.0 - y: -6.0 - z: 55.0 - color: '#007816' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_FEF_5: - name: 7Networks_LH_DorsAttn_FEF_5 - lookupLabel: 209 - originalLookupLabel: 209 - center: - x: -22.0 - y: 4.0 - z: 65.0 - color: '#00790f' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_PrCv_1: - name: 7Networks_LH_DorsAttn_PrCv_1 - lookupLabel: 210 - originalLookupLabel: 210 - center: - x: -58.0 - y: 6.0 - z: 24.0 - color: '#00770d' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_PrCv_2: - name: 7Networks_LH_DorsAttn_PrCv_2 - lookupLabel: 211 - originalLookupLabel: 211 - center: - x: -45.0 - y: 5.0 - z: 25.0 - color: '#00790e' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_PrCv_3: - name: 7Networks_LH_DorsAttn_PrCv_3 - lookupLabel: 212 - originalLookupLabel: 212 - center: - x: -48.0 - y: 4.0 - z: 31.0 - color: '#007910' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_PrCv_4: - name: 7Networks_LH_DorsAttn_PrCv_4 - lookupLabel: 213 - originalLookupLabel: 213 - center: - x: -51.0 - y: 2.0 - z: 38.0 - color: '#007911' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_DorsAttn_PrCv_5: - name: 7Networks_LH_DorsAttn_PrCv_5 - lookupLabel: 214 - originalLookupLabel: 214 - center: - x: -47.0 - y: 3.0 - z: 43.0 - color: '#007912' - hemisphere: left - hasParent: - - LH_DorsAttn - 7Networks_LH_SalVentAttn_ParOper_1: - name: 7Networks_LH_SalVentAttn_ParOper_1 - lookupLabel: 215 - originalLookupLabel: 215 - center: - x: -61.0 - y: -46.0 - z: 22.0 - color: '#c43af6' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_2: - name: 7Networks_LH_SalVentAttn_ParOper_2 - lookupLabel: 216 - originalLookupLabel: 216 - center: - x: -47.0 - y: -36.0 - z: 26.0 - color: '#c43af7' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_3: - name: 7Networks_LH_SalVentAttn_ParOper_3 - lookupLabel: 217 - originalLookupLabel: 217 - center: - x: -52.0 - y: -43.0 - z: 25.0 - color: '#c43af8' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_4: - name: 7Networks_LH_SalVentAttn_ParOper_4 - lookupLabel: 218 - originalLookupLabel: 218 - center: - x: -59.0 - y: -24.0 - z: 20.0 - color: '#c43af9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_5: - name: 7Networks_LH_SalVentAttn_ParOper_5 - lookupLabel: 219 - originalLookupLabel: 219 - center: - x: -60.0 - y: -30.0 - z: 23.0 - color: '#c43afb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_6: - name: 7Networks_LH_SalVentAttn_ParOper_6 - lookupLabel: 220 - originalLookupLabel: 220 - center: - x: -57.0 - y: -38.0 - z: 29.0 - color: '#c43afc' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_7: - name: 7Networks_LH_SalVentAttn_ParOper_7 - lookupLabel: 221 - originalLookupLabel: 221 - center: - x: -61.0 - y: -44.0 - z: 31.0 - color: '#c43afd' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_8: - name: 7Networks_LH_SalVentAttn_ParOper_8 - lookupLabel: 222 - originalLookupLabel: 222 - center: - x: -59.0 - y: -16.0 - z: 29.0 - color: '#c43afe' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_9: - name: 7Networks_LH_SalVentAttn_ParOper_9 - lookupLabel: 223 - originalLookupLabel: 223 - center: - x: -62.0 - y: -24.0 - z: 34.0 - color: '#c43aff' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_10: - name: 7Networks_LH_SalVentAttn_ParOper_10 - lookupLabel: 224 - originalLookupLabel: 224 - center: - x: -61.0 - y: -32.0 - z: 34.0 - color: '#c133fa' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_ParOper_11: - name: 7Networks_LH_SalVentAttn_ParOper_11 - lookupLabel: 225 - originalLookupLabel: 225 - center: - x: -62.0 - y: -37.0 - z: 38.0 - color: '#c134f3' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_TempOcc_1: - name: 7Networks_LH_SalVentAttn_TempOcc_1 - lookupLabel: 226 - originalLookupLabel: 226 - center: - x: -56.0 - y: -56.0 - z: 13.0 - color: '#c133f9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_1: - name: 7Networks_LH_SalVentAttn_FrOperIns_1 - lookupLabel: 227 - originalLookupLabel: 227 - center: - x: -35.0 - y: 9.0 - z: -13.0 - color: '#c43afa' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_2: - name: 7Networks_LH_SalVentAttn_FrOperIns_2 - lookupLabel: 228 - originalLookupLabel: 228 - center: - x: -39.0 - y: 4.0 - z: -8.0 - color: '#c43bf3' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_3: - name: 7Networks_LH_SalVentAttn_FrOperIns_3 - lookupLabel: 229 - originalLookupLabel: 229 - center: - x: -39.0 - y: -8.0 - z: -9.0 - color: '#c43bf4' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_4: - name: 7Networks_LH_SalVentAttn_FrOperIns_4 - lookupLabel: 230 - originalLookupLabel: 230 - center: - x: -39.0 - y: 0.0 - z: 1.0 - color: '#c43bf5' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_5: - name: 7Networks_LH_SalVentAttn_FrOperIns_5 - lookupLabel: 231 - originalLookupLabel: 231 - center: - x: -34.0 - y: 30.0 - z: -1.0 - color: '#c43bf6' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_6: - name: 7Networks_LH_SalVentAttn_FrOperIns_6 - lookupLabel: 232 - originalLookupLabel: 232 - center: - x: -41.0 - y: -13.0 - z: -5.0 - color: '#c43bf7' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_7: - name: 7Networks_LH_SalVentAttn_FrOperIns_7 - lookupLabel: 233 - originalLookupLabel: 233 - center: - x: -30.0 - y: 19.0 - z: 6.0 - color: '#c43bf8' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_8: - name: 7Networks_LH_SalVentAttn_FrOperIns_8 - lookupLabel: 234 - originalLookupLabel: 234 - center: - x: -34.0 - y: 26.0 - z: 7.0 - color: '#c43bf9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_9: - name: 7Networks_LH_SalVentAttn_FrOperIns_9 - lookupLabel: 235 - originalLookupLabel: 235 - center: - x: -37.0 - y: -3.0 - z: 9.0 - color: '#c43bfb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_10: - name: 7Networks_LH_SalVentAttn_FrOperIns_10 - lookupLabel: 236 - originalLookupLabel: 236 - center: - x: -38.0 - y: -16.0 - z: 5.0 - color: '#c43bfc' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_11: - name: 7Networks_LH_SalVentAttn_FrOperIns_11 - lookupLabel: 237 - originalLookupLabel: 237 - center: - x: -32.0 - y: 14.0 - z: 11.0 - color: '#c43bfd' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_12: - name: 7Networks_LH_SalVentAttn_FrOperIns_12 - lookupLabel: 238 - originalLookupLabel: 238 - center: - x: -38.0 - y: 19.0 - z: 8.0 - color: '#c43bfe' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_13: - name: 7Networks_LH_SalVentAttn_FrOperIns_13 - lookupLabel: 239 - originalLookupLabel: 239 - center: - x: -37.0 - y: 5.0 - z: 12.0 - color: '#c43bff' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_14: - name: 7Networks_LH_SalVentAttn_FrOperIns_14 - lookupLabel: 240 - originalLookupLabel: 240 - center: - x: -43.0 - y: 12.0 - z: 2.0 - color: '#c134fa' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_15: - name: 7Networks_LH_SalVentAttn_FrOperIns_15 - lookupLabel: 241 - originalLookupLabel: 241 - center: - x: -42.0 - y: -2.0 - z: 13.0 - color: '#c135f3' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_16: - name: 7Networks_LH_SalVentAttn_FrOperIns_16 - lookupLabel: 242 - originalLookupLabel: 242 - center: - x: -49.0 - y: 7.0 - z: 0.0 - color: '#c135f4' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_17: - name: 7Networks_LH_SalVentAttn_FrOperIns_17 - lookupLabel: 243 - originalLookupLabel: 243 - center: - x: -46.0 - y: -3.0 - z: 9.0 - color: '#c135f5' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_18: - name: 7Networks_LH_SalVentAttn_FrOperIns_18 - lookupLabel: 244 - originalLookupLabel: 244 - center: - x: -54.0 - y: 1.0 - z: 5.0 - color: '#c135f6' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_19: - name: 7Networks_LH_SalVentAttn_FrOperIns_19 - lookupLabel: 245 - originalLookupLabel: 245 - center: - x: -55.0 - y: 9.0 - z: 9.0 - color: '#c135f7' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_FrOperIns_20: - name: 7Networks_LH_SalVentAttn_FrOperIns_20 - lookupLabel: 246 - originalLookupLabel: 246 - center: - x: -57.0 - y: 7.0 - z: 16.0 - color: '#c135f8' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_PFCl_1: - name: 7Networks_LH_SalVentAttn_PFCl_1 - lookupLabel: 247 - originalLookupLabel: 247 - center: - x: -30.0 - y: 45.0 - z: 28.0 - color: '#c134f9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_PFCl_2: - name: 7Networks_LH_SalVentAttn_PFCl_2 - lookupLabel: 248 - originalLookupLabel: 248 - center: - x: -26.0 - y: 37.0 - z: 40.0 - color: '#c134fb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_1: - name: 7Networks_LH_SalVentAttn_Med_1 - lookupLabel: 249 - originalLookupLabel: 249 - center: - x: -6.0 - y: 17.0 - z: 31.0 - color: '#c53af4' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_2: - name: 7Networks_LH_SalVentAttn_Med_2 - lookupLabel: 250 - originalLookupLabel: 250 - center: - x: -6.0 - y: 4.0 - z: 39.0 - color: '#c53af5' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_3: - name: 7Networks_LH_SalVentAttn_Med_3 - lookupLabel: 251 - originalLookupLabel: 251 - center: - x: -8.0 - y: -20.0 - z: 39.0 - color: '#c53af6' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_4: - name: 7Networks_LH_SalVentAttn_Med_4 - lookupLabel: 252 - originalLookupLabel: 252 - center: - x: -6.0 - y: 15.0 - z: 42.0 - color: '#c53af7' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_5: - name: 7Networks_LH_SalVentAttn_Med_5 - lookupLabel: 253 - originalLookupLabel: 253 - center: - x: -12.0 - y: -32.0 - z: 40.0 - color: '#c53af8' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_6: - name: 7Networks_LH_SalVentAttn_Med_6 - lookupLabel: 254 - originalLookupLabel: 254 - center: - x: -12.0 - y: -21.0 - z: 41.0 - color: '#c53af9' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_7: - name: 7Networks_LH_SalVentAttn_Med_7 - lookupLabel: 255 - originalLookupLabel: 255 - center: - x: -14.0 - y: -41.0 - z: 46.0 - color: '#c53afb' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_8: - name: 7Networks_LH_SalVentAttn_Med_8 - lookupLabel: 256 - originalLookupLabel: 256 - center: - x: -5.0 - y: 3.0 - z: 52.0 - color: '#c53afc' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_9: - name: 7Networks_LH_SalVentAttn_Med_9 - lookupLabel: 257 - originalLookupLabel: 257 - center: - x: -4.0 - y: -48.0 - z: 50.0 - color: '#c53afd' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_10: - name: 7Networks_LH_SalVentAttn_Med_10 - lookupLabel: 258 - originalLookupLabel: 258 - center: - x: -12.0 - y: -33.0 - z: 48.0 - color: '#c53afe' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_11: - name: 7Networks_LH_SalVentAttn_Med_11 - lookupLabel: 259 - originalLookupLabel: 259 - center: - x: -12.0 - y: -45.0 - z: 52.0 - color: '#c53aff' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_12: - name: 7Networks_LH_SalVentAttn_Med_12 - lookupLabel: 260 - originalLookupLabel: 260 - center: - x: -9.0 - y: -48.0 - z: 60.0 - color: '#c233fa' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_13: - name: 7Networks_LH_SalVentAttn_Med_13 - lookupLabel: 261 - originalLookupLabel: 261 - center: - x: -4.0 - y: -3.0 - z: 64.0 - color: '#c234f3' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_14: - name: 7Networks_LH_SalVentAttn_Med_14 - lookupLabel: 262 - originalLookupLabel: 262 - center: - x: -13.0 - y: 9.0 - z: 66.0 - color: '#c234f4' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_SalVentAttn_Med_15: - name: 7Networks_LH_SalVentAttn_Med_15 - lookupLabel: 263 - originalLookupLabel: 263 - center: - x: -11.0 - y: 2.0 - z: 72.0 - color: '#c234f5' - hemisphere: left - hasParent: - - LH_SalVentAttn - 7Networks_LH_Limbic_OFC_1: - name: 7Networks_LH_Limbic_OFC_1 - lookupLabel: 264 - originalLookupLabel: 264 - center: - x: -15.0 - y: 18.0 - z: -22.0 - color: '#dcf8a0' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_2: - name: 7Networks_LH_Limbic_OFC_2 - lookupLabel: 265 - originalLookupLabel: 265 - center: - x: -24.0 - y: 15.0 - z: -23.0 - color: '#dcf8a1' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_3: - name: 7Networks_LH_Limbic_OFC_3 - lookupLabel: 266 - originalLookupLabel: 266 - center: - x: -11.0 - y: 28.0 - z: -20.0 - color: '#dcf8a2' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_4: - name: 7Networks_LH_Limbic_OFC_4 - lookupLabel: 267 - originalLookupLabel: 267 - center: - x: -24.0 - y: 28.0 - z: -17.0 - color: '#dcf8a3' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_5: - name: 7Networks_LH_Limbic_OFC_5 - lookupLabel: 268 - originalLookupLabel: 268 - center: - x: -19.0 - y: 40.0 - z: -19.0 - color: '#dcf8a5' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_6: - name: 7Networks_LH_Limbic_OFC_6 - lookupLabel: 269 - originalLookupLabel: 269 - center: - x: -8.0 - y: 48.0 - z: -23.0 - color: '#dcf8a6' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_7: - name: 7Networks_LH_Limbic_OFC_7 - lookupLabel: 270 - originalLookupLabel: 270 - center: - x: -5.0 - y: 19.0 - z: -19.0 - color: '#dcf8a7' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_8: - name: 7Networks_LH_Limbic_OFC_8 - lookupLabel: 271 - originalLookupLabel: 271 - center: - x: -3.0 - y: 38.0 - z: -22.0 - color: '#dcf8a8' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_9: - name: 7Networks_LH_Limbic_OFC_9 - lookupLabel: 272 - originalLookupLabel: 272 - center: - x: -13.0 - y: 58.0 - z: -19.0 - color: '#dcf8a9' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_10: - name: 7Networks_LH_Limbic_OFC_10 - lookupLabel: 273 - originalLookupLabel: 273 - center: - x: -4.0 - y: 18.0 - z: -9.0 - color: '#dcf8aa' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_OFC_11: - name: 7Networks_LH_Limbic_OFC_11 - lookupLabel: 274 - originalLookupLabel: 274 - center: - x: -8.0 - y: 65.0 - z: -13.0 - color: '#dcf8ab' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_1: - name: 7Networks_LH_Limbic_TempPole_1 - lookupLabel: 275 - originalLookupLabel: 275 - center: - x: -31.0 - y: -2.0 - z: -44.0 - color: '#dcf89e' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_2: - name: 7Networks_LH_Limbic_TempPole_2 - lookupLabel: 276 - originalLookupLabel: 276 - center: - x: -38.0 - y: -12.0 - z: -37.0 - color: '#dcf89f' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_3: - name: 7Networks_LH_Limbic_TempPole_3 - lookupLabel: 277 - originalLookupLabel: 277 - center: - x: -49.0 - y: -11.0 - z: -39.0 - color: '#dcf8a4' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_4: - name: 7Networks_LH_Limbic_TempPole_4 - lookupLabel: 278 - originalLookupLabel: 278 - center: - x: -28.0 - y: 12.0 - z: -40.0 - color: '#dcf8ac' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_5: - name: 7Networks_LH_Limbic_TempPole_5 - lookupLabel: 279 - originalLookupLabel: 279 - center: - x: -28.0 - y: -7.0 - z: -34.0 - color: '#dcf9a5' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_6: - name: 7Networks_LH_Limbic_TempPole_6 - lookupLabel: 280 - originalLookupLabel: 280 - center: - x: -44.0 - y: 5.0 - z: -39.0 - color: '#dcf9a6' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_7: - name: 7Networks_LH_Limbic_TempPole_7 - lookupLabel: 281 - originalLookupLabel: 281 - center: - x: -19.0 - y: -1.0 - z: -31.0 - color: '#dcf9a7' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_8: - name: 7Networks_LH_Limbic_TempPole_8 - lookupLabel: 282 - originalLookupLabel: 282 - center: - x: -38.0 - y: -18.0 - z: -29.0 - color: '#dcf9a8' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_9: - name: 7Networks_LH_Limbic_TempPole_9 - lookupLabel: 283 - originalLookupLabel: 283 - center: - x: -50.0 - y: -26.0 - z: -28.0 - color: '#dcf9a9' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_10: - name: 7Networks_LH_Limbic_TempPole_10 - lookupLabel: 284 - originalLookupLabel: 284 - center: - x: -21.0 - y: -14.0 - z: -30.0 - color: '#dcf9aa' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_11: - name: 7Networks_LH_Limbic_TempPole_11 - lookupLabel: 285 - originalLookupLabel: 285 - center: - x: -27.0 - y: 7.0 - z: -29.0 - color: '#dcf9ab' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_12: - name: 7Networks_LH_Limbic_TempPole_12 - lookupLabel: 286 - originalLookupLabel: 286 - center: - x: -43.0 - y: -31.0 - z: -22.0 - color: '#dcf9ac' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_13: - name: 7Networks_LH_Limbic_TempPole_13 - lookupLabel: 287 - originalLookupLabel: 287 - center: - x: -42.0 - y: 17.0 - z: -29.0 - color: '#dcfaa5' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_14: - name: 7Networks_LH_Limbic_TempPole_14 - lookupLabel: 288 - originalLookupLabel: 288 - center: - x: -58.0 - y: -33.0 - z: -25.0 - color: '#dcfaa6' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_15: - name: 7Networks_LH_Limbic_TempPole_15 - lookupLabel: 289 - originalLookupLabel: 289 - center: - x: -31.0 - y: -27.0 - z: -22.0 - color: '#dcfaa7' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_16: - name: 7Networks_LH_Limbic_TempPole_16 - lookupLabel: 290 - originalLookupLabel: 290 - center: - x: -37.0 - y: 10.0 - z: -25.0 - color: '#dcfaa8' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_17: - name: 7Networks_LH_Limbic_TempPole_17 - lookupLabel: 291 - originalLookupLabel: 291 - center: - x: -42.0 - y: 4.0 - z: -20.0 - color: '#dcfaa9' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Limbic_TempPole_18: - name: 7Networks_LH_Limbic_TempPole_18 - lookupLabel: 292 - originalLookupLabel: 292 - center: - x: -45.0 - y: 6.0 - z: -15.0 - color: '#dcfaaa' - hemisphere: left - hasParent: - - LH_Limbic - 7Networks_LH_Cont_Par_1: - name: 7Networks_LH_Cont_Par_1 - lookupLabel: 293 - originalLookupLabel: 293 - center: - x: -59.0 - y: -48.0 - z: 41.0 - color: '#e6941e' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_2: - name: 7Networks_LH_Cont_Par_2 - lookupLabel: 294 - originalLookupLabel: 294 - center: - x: -59.0 - y: -42.0 - z: 46.0 - color: '#e6941f' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_3: - name: 7Networks_LH_Cont_Par_3 - lookupLabel: 295 - originalLookupLabel: 295 - center: - x: -50.0 - y: -53.0 - z: 49.0 - color: '#e69420' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_4: - name: 7Networks_LH_Cont_Par_4 - lookupLabel: 296 - originalLookupLabel: 296 - center: - x: -53.0 - y: -47.0 - z: 52.0 - color: '#e69421' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_5: - name: 7Networks_LH_Cont_Par_5 - lookupLabel: 297 - originalLookupLabel: 297 - center: - x: -33.0 - y: -67.0 - z: 49.0 - color: '#e69423' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_6: - name: 7Networks_LH_Cont_Par_6 - lookupLabel: 298 - originalLookupLabel: 298 - center: - x: -51.0 - y: -40.0 - z: 49.0 - color: '#e69424' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_7: - name: 7Networks_LH_Cont_Par_7 - lookupLabel: 299 - originalLookupLabel: 299 - center: - x: -38.0 - y: -59.0 - z: 50.0 - color: '#e69425' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_8: - name: 7Networks_LH_Cont_Par_8 - lookupLabel: 300 - originalLookupLabel: 300 - center: - x: -42.0 - y: -53.0 - z: 48.0 - color: '#e69426' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_9: - name: 7Networks_LH_Cont_Par_9 - lookupLabel: 301 - originalLookupLabel: 301 - center: - x: -44.0 - y: -45.0 - z: 50.0 - color: '#e69427' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_10: - name: 7Networks_LH_Cont_Par_10 - lookupLabel: 302 - originalLookupLabel: 302 - center: - x: -37.0 - y: -45.0 - z: 39.0 - color: '#e69428' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Par_11: - name: 7Networks_LH_Cont_Par_11 - lookupLabel: 303 - originalLookupLabel: 303 - center: - x: -32.0 - y: -53.0 - z: 41.0 - color: '#e69429' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Temp_1: - name: 7Networks_LH_Cont_Temp_1 - lookupLabel: 304 - originalLookupLabel: 304 - center: - x: -59.0 - y: -51.0 - z: -14.0 - color: '#e6942a' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCd_1: - name: 7Networks_LH_Cont_PFCd_1 - lookupLabel: 305 - originalLookupLabel: 305 - center: - x: -36.0 - y: 1.0 - z: 59.0 - color: '#e69523' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCd_2: - name: 7Networks_LH_Cont_PFCd_2 - lookupLabel: 306 - originalLookupLabel: 306 - center: - x: -23.0 - y: 9.0 - z: 52.0 - color: '#e69524' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCd_3: - name: 7Networks_LH_Cont_PFCd_3 - lookupLabel: 307 - originalLookupLabel: 307 - center: - x: -21.0 - y: 19.0 - z: 60.0 - color: '#e69525' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_1: - name: 7Networks_LH_Cont_PFCl_1 - lookupLabel: 308 - originalLookupLabel: 308 - center: - x: -40.0 - y: 51.0 - z: -7.0 - color: '#e6951c' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_2: - name: 7Networks_LH_Cont_PFCl_2 - lookupLabel: 309 - originalLookupLabel: 309 - center: - x: -39.0 - y: 49.0 - z: 6.0 - color: '#e6951d' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_3: - name: 7Networks_LH_Cont_PFCl_3 - lookupLabel: 310 - originalLookupLabel: 310 - center: - x: -50.0 - y: 36.0 - z: 8.0 - color: '#e6951e' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_4: - name: 7Networks_LH_Cont_PFCl_4 - lookupLabel: 311 - originalLookupLabel: 311 - center: - x: -29.0 - y: 56.0 - z: 10.0 - color: '#e6951f' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_5: - name: 7Networks_LH_Cont_PFCl_5 - lookupLabel: 312 - originalLookupLabel: 312 - center: - x: -49.0 - y: 11.0 - z: 11.0 - color: '#e69520' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_6: - name: 7Networks_LH_Cont_PFCl_6 - lookupLabel: 313 - originalLookupLabel: 313 - center: - x: -46.0 - y: 27.0 - z: 19.0 - color: '#e69521' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_7: - name: 7Networks_LH_Cont_PFCl_7 - lookupLabel: 314 - originalLookupLabel: 314 - center: - x: -38.0 - y: 47.0 - z: 17.0 - color: '#e69522' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_8: - name: 7Networks_LH_Cont_PFCl_8 - lookupLabel: 315 - originalLookupLabel: 315 - center: - x: -42.0 - y: 37.0 - z: 16.0 - color: '#e69526' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_9: - name: 7Networks_LH_Cont_PFCl_9 - lookupLabel: 316 - originalLookupLabel: 316 - center: - x: -48.0 - y: 7.0 - z: 20.0 - color: '#e69527' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_10: - name: 7Networks_LH_Cont_PFCl_10 - lookupLabel: 317 - originalLookupLabel: 317 - center: - x: -48.0 - y: 16.0 - z: 25.0 - color: '#e69528' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_11: - name: 7Networks_LH_Cont_PFCl_11 - lookupLabel: 318 - originalLookupLabel: 318 - center: - x: -44.0 - y: 24.0 - z: 27.0 - color: '#e69529' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_12: - name: 7Networks_LH_Cont_PFCl_12 - lookupLabel: 319 - originalLookupLabel: 319 - center: - x: -43.0 - y: 37.0 - z: 29.0 - color: '#e6952a' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_13: - name: 7Networks_LH_Cont_PFCl_13 - lookupLabel: 320 - originalLookupLabel: 320 - center: - x: -37.0 - y: 11.0 - z: 26.0 - color: '#e69623' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_14: - name: 7Networks_LH_Cont_PFCl_14 - lookupLabel: 321 - originalLookupLabel: 321 - center: - x: -37.0 - y: 8.0 - z: 31.0 - color: '#e69624' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_15: - name: 7Networks_LH_Cont_PFCl_15 - lookupLabel: 322 - originalLookupLabel: 322 - center: - x: -45.0 - y: 20.0 - z: 35.0 - color: '#e69625' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_16: - name: 7Networks_LH_Cont_PFCl_16 - lookupLabel: 323 - originalLookupLabel: 323 - center: - x: -35.0 - y: 32.0 - z: 38.0 - color: '#e69626' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCl_17: - name: 7Networks_LH_Cont_PFCl_17 - lookupLabel: 324 - originalLookupLabel: 324 - center: - x: -40.0 - y: 4.0 - z: 36.0 - color: '#e69627' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_OFC_1: - name: 7Networks_LH_Cont_OFC_1 - lookupLabel: 325 - originalLookupLabel: 325 - center: - x: -28.0 - y: 49.0 - z: -13.0 - color: '#e79423' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCv_1: - name: 7Networks_LH_Cont_PFCv_1 - lookupLabel: 326 - originalLookupLabel: 326 - center: - x: -35.0 - y: 16.0 - z: -7.0 - color: '#e79424' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCv_2: - name: 7Networks_LH_Cont_PFCv_2 - lookupLabel: 327 - originalLookupLabel: 327 - center: - x: -32.0 - y: 22.0 - z: -1.0 - color: '#e79425' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_pCun_1: - name: 7Networks_LH_Cont_pCun_1 - lookupLabel: 328 - originalLookupLabel: 328 - center: - x: -8.0 - y: -74.0 - z: 40.0 - color: '#e79523' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_pCun_2: - name: 7Networks_LH_Cont_pCun_2 - lookupLabel: 329 - originalLookupLabel: 329 - center: - x: -6.0 - y: -78.0 - z: 49.0 - color: '#e79524' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_pCun_3: - name: 7Networks_LH_Cont_pCun_3 - lookupLabel: 330 - originalLookupLabel: 330 - center: - x: -3.0 - y: -71.0 - z: 48.0 - color: '#e79525' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_pCun_4: - name: 7Networks_LH_Cont_pCun_4 - lookupLabel: 331 - originalLookupLabel: 331 - center: - x: -6.0 - y: -63.0 - z: 52.0 - color: '#e79526' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_1: - name: 7Networks_LH_Cont_Cing_1 - lookupLabel: 332 - originalLookupLabel: 332 - center: - x: -7.0 - y: -37.0 - z: 25.0 - color: '#e79522' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_2: - name: 7Networks_LH_Cont_Cing_2 - lookupLabel: 333 - originalLookupLabel: 333 - center: - x: -4.0 - y: 15.0 - z: 25.0 - color: '#e79527' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_3: - name: 7Networks_LH_Cont_Cing_3 - lookupLabel: 334 - originalLookupLabel: 334 - center: - x: -6.0 - y: -29.0 - z: 27.0 - color: '#e79528' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_4: - name: 7Networks_LH_Cont_Cing_4 - lookupLabel: 335 - originalLookupLabel: 335 - center: - x: -4.0 - y: -16.0 - z: 29.0 - color: '#e79529' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_5: - name: 7Networks_LH_Cont_Cing_5 - lookupLabel: 336 - originalLookupLabel: 336 - center: - x: -4.0 - y: 1.0 - z: 30.0 - color: '#e7952a' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_Cing_6: - name: 7Networks_LH_Cont_Cing_6 - lookupLabel: 337 - originalLookupLabel: 337 - center: - x: -2.0 - y: -27.0 - z: 30.0 - color: '#e79623' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCmp_1: - name: 7Networks_LH_Cont_PFCmp_1 - lookupLabel: 338 - originalLookupLabel: 338 - center: - x: -5.0 - y: 25.0 - z: 35.0 - color: '#e69422' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCmp_2: - name: 7Networks_LH_Cont_PFCmp_2 - lookupLabel: 339 - originalLookupLabel: 339 - center: - x: -3.0 - y: 28.0 - z: 47.0 - color: '#e69621' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Cont_PFCmp_3: - name: 7Networks_LH_Cont_PFCmp_3 - lookupLabel: 340 - originalLookupLabel: 340 - center: - x: -6.0 - y: 15.0 - z: 53.0 - color: '#e69622' - hemisphere: left - hasParent: - - LH_Cont - 7Networks_LH_Default_Par_1: - name: 7Networks_LH_Default_Par_1 - lookupLabel: 341 - originalLookupLabel: 341 - center: - x: -46.0 - y: -51.0 - z: 14.0 - color: '#cd3d4d' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_2: - name: 7Networks_LH_Default_Par_2 - lookupLabel: 342 - originalLookupLabel: 342 - center: - x: -53.0 - y: -48.0 - z: 15.0 - color: '#cd3d4e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_3: - name: 7Networks_LH_Default_Par_3 - lookupLabel: 343 - originalLookupLabel: 343 - center: - x: -63.0 - y: -49.0 - z: 16.0 - color: '#cd3e47' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_4: - name: 7Networks_LH_Default_Par_4 - lookupLabel: 344 - originalLookupLabel: 344 - center: - x: -46.0 - y: -60.0 - z: 20.0 - color: '#cd3e48' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_5: - name: 7Networks_LH_Default_Par_5 - lookupLabel: 345 - originalLookupLabel: 345 - center: - x: -41.0 - y: -67.0 - z: 22.0 - color: '#cd3e49' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_6: - name: 7Networks_LH_Default_Par_6 - lookupLabel: 346 - originalLookupLabel: 346 - center: - x: -46.0 - y: -52.0 - z: 23.0 - color: '#cd3e4a' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_7: - name: 7Networks_LH_Default_Par_7 - lookupLabel: 347 - originalLookupLabel: 347 - center: - x: -57.0 - y: -54.0 - z: 21.0 - color: '#cd3e4b' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_8: - name: 7Networks_LH_Default_Par_8 - lookupLabel: 348 - originalLookupLabel: 348 - center: - x: -43.0 - y: -77.0 - z: 29.0 - color: '#cd3e4c' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_9: - name: 7Networks_LH_Default_Par_9 - lookupLabel: 349 - originalLookupLabel: 349 - center: - x: -47.0 - y: -62.0 - z: 27.0 - color: '#cd3e4d' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_10: - name: 7Networks_LH_Default_Par_10 - lookupLabel: 350 - originalLookupLabel: 350 - center: - x: -47.0 - y: -69.0 - z: 29.0 - color: '#cd3e4f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_11: - name: 7Networks_LH_Default_Par_11 - lookupLabel: 351 - originalLookupLabel: 351 - center: - x: -45.0 - y: -57.0 - z: 30.0 - color: '#cd3e50' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_12: - name: 7Networks_LH_Default_Par_12 - lookupLabel: 352 - originalLookupLabel: 352 - center: - x: -53.0 - y: -57.0 - z: 29.0 - color: '#cd3e51' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_13: - name: 7Networks_LH_Default_Par_13 - lookupLabel: 353 - originalLookupLabel: 353 - center: - x: -36.0 - y: -83.0 - z: 36.0 - color: '#cd3e52' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_14: - name: 7Networks_LH_Default_Par_14 - lookupLabel: 354 - originalLookupLabel: 354 - center: - x: -60.0 - y: -53.0 - z: 29.0 - color: '#cd3e53' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_15: - name: 7Networks_LH_Default_Par_15 - lookupLabel: 355 - originalLookupLabel: 355 - center: - x: -44.0 - y: -72.0 - z: 40.0 - color: '#cd3e54' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_16: - name: 7Networks_LH_Default_Par_16 - lookupLabel: 356 - originalLookupLabel: 356 - center: - x: -47.0 - y: -64.0 - z: 37.0 - color: '#cd3e55' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_17: - name: 7Networks_LH_Default_Par_17 - lookupLabel: 357 - originalLookupLabel: 357 - center: - x: -52.0 - y: -59.0 - z: 39.0 - color: '#cd3f4e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_18: - name: 7Networks_LH_Default_Par_18 - lookupLabel: 358 - originalLookupLabel: 358 - center: - x: -54.0 - y: -51.0 - z: 39.0 - color: '#cd3f4f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_19: - name: 7Networks_LH_Default_Par_19 - lookupLabel: 359 - originalLookupLabel: 359 - center: - x: -35.0 - y: -75.0 - z: 49.0 - color: '#cd3f50' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_20: - name: 7Networks_LH_Default_Par_20 - lookupLabel: 360 - originalLookupLabel: 360 - center: - x: -41.0 - y: -67.0 - z: 50.0 - color: '#cd3f51' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Par_21: - name: 7Networks_LH_Default_Par_21 - lookupLabel: 361 - originalLookupLabel: 361 - center: - x: -47.0 - y: -60.0 - z: 50.0 - color: '#cd3f52' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_1: - name: 7Networks_LH_Default_Temp_1 - lookupLabel: 362 - originalLookupLabel: 362 - center: - x: -58.0 - y: -18.0 - z: -29.0 - color: '#cd3d4f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_2: - name: 7Networks_LH_Default_Temp_2 - lookupLabel: 363 - originalLookupLabel: 363 - center: - x: -54.0 - y: -1.0 - z: -30.0 - color: '#cd3e4e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_3: - name: 7Networks_LH_Default_Temp_3 - lookupLabel: 364 - originalLookupLabel: 364 - center: - x: -62.0 - y: -16.0 - z: -19.0 - color: '#cd3e56' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_4: - name: 7Networks_LH_Default_Temp_4 - lookupLabel: 365 - originalLookupLabel: 365 - center: - x: -60.0 - y: -36.0 - z: -17.0 - color: '#cd3f53' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_5: - name: 7Networks_LH_Default_Temp_5 - lookupLabel: 366 - originalLookupLabel: 366 - center: - x: -58.0 - y: -4.0 - z: -16.0 - color: '#cd3f54' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_6: - name: 7Networks_LH_Default_Temp_6 - lookupLabel: 367 - originalLookupLabel: 367 - center: - x: -52.0 - y: 7.0 - z: -19.0 - color: '#cd3f55' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_7: - name: 7Networks_LH_Default_Temp_7 - lookupLabel: 368 - originalLookupLabel: 368 - center: - x: -64.0 - y: -37.0 - z: -10.0 - color: '#cd3f56' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_8: - name: 7Networks_LH_Default_Temp_8 - lookupLabel: 369 - originalLookupLabel: 369 - center: - x: -63.0 - y: -25.0 - z: -8.0 - color: '#cd404f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_9: - name: 7Networks_LH_Default_Temp_9 - lookupLabel: 370 - originalLookupLabel: 370 - center: - x: -53.0 - y: -4.0 - z: -11.0 - color: '#cd4050' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_10: - name: 7Networks_LH_Default_Temp_10 - lookupLabel: 371 - originalLookupLabel: 371 - center: - x: -54.0 - y: -14.0 - z: -12.0 - color: '#cd4051' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_11: - name: 7Networks_LH_Default_Temp_11 - lookupLabel: 372 - originalLookupLabel: 372 - center: - x: -51.0 - y: -25.0 - z: -8.0 - color: '#cd4052' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_12: - name: 7Networks_LH_Default_Temp_12 - lookupLabel: 373 - originalLookupLabel: 373 - center: - x: -62.0 - y: -47.0 - z: -5.0 - color: '#cd4053' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_13: - name: 7Networks_LH_Default_Temp_13 - lookupLabel: 374 - originalLookupLabel: 374 - center: - x: -62.0 - y: -36.0 - z: -2.0 - color: '#cd4054' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_14: - name: 7Networks_LH_Default_Temp_14 - lookupLabel: 375 - originalLookupLabel: 375 - center: - x: -60.0 - y: -13.0 - z: -3.0 - color: '#cd4055' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_15: - name: 7Networks_LH_Default_Temp_15 - lookupLabel: 376 - originalLookupLabel: 376 - center: - x: -57.0 - y: -23.0 - z: -2.0 - color: '#cd4056' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_16: - name: 7Networks_LH_Default_Temp_16 - lookupLabel: 377 - originalLookupLabel: 377 - center: - x: -57.0 - y: -43.0 - z: 1.0 - color: '#cd414f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_17: - name: 7Networks_LH_Default_Temp_17 - lookupLabel: 378 - originalLookupLabel: 378 - center: - x: -52.0 - y: -35.0 - z: 1.0 - color: '#cd4150' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_18: - name: 7Networks_LH_Default_Temp_18 - lookupLabel: 379 - originalLookupLabel: 379 - center: - x: -62.0 - y: -51.0 - z: 5.0 - color: '#cd4151' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_Temp_19: - name: 7Networks_LH_Default_Temp_19 - lookupLabel: 380 - originalLookupLabel: 380 - center: - x: -51.0 - y: -46.0 - z: 6.0 - color: '#cd4152' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_1: - name: 7Networks_LH_Default_PFC_1 - lookupLabel: 381 - originalLookupLabel: 381 - center: - x: -28.0 - y: 17.0 - z: -16.0 - color: '#cd3d4b' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_2: - name: 7Networks_LH_Default_PFC_2 - lookupLabel: 382 - originalLookupLabel: 382 - center: - x: -35.0 - y: 36.0 - z: -12.0 - color: '#cd3d4c' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_3: - name: 7Networks_LH_Default_PFC_3 - lookupLabel: 383 - originalLookupLabel: 383 - center: - x: -37.0 - y: 24.0 - z: -15.0 - color: '#cd3f47' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_4: - name: 7Networks_LH_Default_PFC_4 - lookupLabel: 384 - originalLookupLabel: 384 - center: - x: -45.0 - y: 37.0 - z: -16.0 - color: '#cd3f48' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_5: - name: 7Networks_LH_Default_PFC_5 - lookupLabel: 385 - originalLookupLabel: 385 - center: - x: -5.0 - y: 55.0 - z: -10.0 - color: '#cd3f49' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_6: - name: 7Networks_LH_Default_PFC_6 - lookupLabel: 386 - originalLookupLabel: 386 - center: - x: -6.0 - y: 35.0 - z: -9.0 - color: '#cd3f4a' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_7: - name: 7Networks_LH_Default_PFC_7 - lookupLabel: 387 - originalLookupLabel: 387 - center: - x: -20.0 - y: 63.0 - z: -8.0 - color: '#cd3f4b' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_8: - name: 7Networks_LH_Default_PFC_8 - lookupLabel: 388 - originalLookupLabel: 388 - center: - x: -44.0 - y: 28.0 - z: -6.0 - color: '#cd3f4c' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_9: - name: 7Networks_LH_Default_PFC_9 - lookupLabel: 389 - originalLookupLabel: 389 - center: - x: -49.0 - y: 40.0 - z: -6.0 - color: '#cd3f4d' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_10: - name: 7Networks_LH_Default_PFC_10 - lookupLabel: 390 - originalLookupLabel: 390 - center: - x: -29.0 - y: 58.0 - z: -1.0 - color: '#cd404e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_11: - name: 7Networks_LH_Default_PFC_11 - lookupLabel: 391 - originalLookupLabel: 391 - center: - x: -7.0 - y: 50.0 - z: 0.0 - color: '#cd414e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_12: - name: 7Networks_LH_Default_PFC_12 - lookupLabel: 392 - originalLookupLabel: 392 - center: - x: -49.0 - y: 27.0 - z: 1.0 - color: '#cd4153' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_13: - name: 7Networks_LH_Default_PFC_13 - lookupLabel: 393 - originalLookupLabel: 393 - center: - x: -4.0 - y: 39.0 - z: 2.0 - color: '#cd4154' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_14: - name: 7Networks_LH_Default_PFC_14 - lookupLabel: 394 - originalLookupLabel: 394 - center: - x: -12.0 - y: 69.0 - z: 4.0 - color: '#cd4155' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_15: - name: 7Networks_LH_Default_PFC_15 - lookupLabel: 395 - originalLookupLabel: 395 - center: - x: -50.0 - y: 19.0 - z: 7.0 - color: '#cd424e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_16: - name: 7Networks_LH_Default_PFC_16 - lookupLabel: 396 - originalLookupLabel: 396 - center: - x: -6.0 - y: 59.0 - z: 7.0 - color: '#cd424f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_17: - name: 7Networks_LH_Default_PFC_17 - lookupLabel: 397 - originalLookupLabel: 397 - center: - x: -22.0 - y: 64.0 - z: 10.0 - color: '#cd4250' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_18: - name: 7Networks_LH_Default_PFC_18 - lookupLabel: 398 - originalLookupLabel: 398 - center: - x: -56.0 - y: 19.0 - z: 17.0 - color: '#cd4251' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_19: - name: 7Networks_LH_Default_PFC_19 - lookupLabel: 399 - originalLookupLabel: 399 - center: - x: -2.0 - y: 35.0 - z: 11.0 - color: '#cd4252' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_20: - name: 7Networks_LH_Default_PFC_20 - lookupLabel: 400 - originalLookupLabel: 400 - center: - x: -7.0 - y: 44.0 - z: 12.0 - color: '#cd4253' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_21: - name: 7Networks_LH_Default_PFC_21 - lookupLabel: 401 - originalLookupLabel: 401 - center: - x: -6.0 - y: 65.0 - z: 19.0 - color: '#cd4254' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_22: - name: 7Networks_LH_Default_PFC_22 - lookupLabel: 402 - originalLookupLabel: 402 - center: - x: -3.0 - y: 26.0 - z: 18.0 - color: '#cd4255' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_23: - name: 7Networks_LH_Default_PFC_23 - lookupLabel: 403 - originalLookupLabel: 403 - center: - x: -23.0 - y: 57.0 - z: 21.0 - color: '#cd434e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_24: - name: 7Networks_LH_Default_PFC_24 - lookupLabel: 404 - originalLookupLabel: 404 - center: - x: -5.0 - y: 53.0 - z: 21.0 - color: '#cd434f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_25: - name: 7Networks_LH_Default_PFC_25 - lookupLabel: 405 - originalLookupLabel: 405 - center: - x: -15.0 - y: 61.0 - z: 24.0 - color: '#cd4350' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_26: - name: 7Networks_LH_Default_PFC_26 - lookupLabel: 406 - originalLookupLabel: 406 - center: - x: -7.0 - y: 32.0 - z: 25.0 - color: '#cd4351' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_27: - name: 7Networks_LH_Default_PFC_27 - lookupLabel: 407 - originalLookupLabel: 407 - center: - x: -21.0 - y: 46.0 - z: 34.0 - color: '#cd4352' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_28: - name: 7Networks_LH_Default_PFC_28 - lookupLabel: 408 - originalLookupLabel: 408 - center: - x: -5.0 - y: 57.0 - z: 36.0 - color: '#cd4353' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_29: - name: 7Networks_LH_Default_PFC_29 - lookupLabel: 409 - originalLookupLabel: 409 - center: - x: -3.0 - y: 42.0 - z: 35.0 - color: '#cd4354' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_30: - name: 7Networks_LH_Default_PFC_30 - lookupLabel: 410 - originalLookupLabel: 410 - center: - x: -14.0 - y: 50.0 - z: 41.0 - color: '#cd4355' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_31: - name: 7Networks_LH_Default_PFC_31 - lookupLabel: 411 - originalLookupLabel: 411 - center: - x: -20.0 - y: 38.0 - z: 41.0 - color: '#cd444e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_32: - name: 7Networks_LH_Default_PFC_32 - lookupLabel: 412 - originalLookupLabel: 412 - center: - x: -47.0 - y: 13.0 - z: 40.0 - color: '#cd444f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_33: - name: 7Networks_LH_Default_PFC_33 - lookupLabel: 413 - originalLookupLabel: 413 - center: - x: -39.0 - y: 24.0 - z: 46.0 - color: '#cd4450' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_34: - name: 7Networks_LH_Default_PFC_34 - lookupLabel: 414 - originalLookupLabel: 414 - center: - x: -25.0 - y: 27.0 - z: 44.0 - color: '#cd4451' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_35: - name: 7Networks_LH_Default_PFC_35 - lookupLabel: 415 - originalLookupLabel: 415 - center: - x: -8.0 - y: 42.0 - z: 52.0 - color: '#cd4452' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_36: - name: 7Networks_LH_Default_PFC_36 - lookupLabel: 416 - originalLookupLabel: 416 - center: - x: -41.0 - y: 8.0 - z: 48.0 - color: '#cd4453' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_37: - name: 7Networks_LH_Default_PFC_37 - lookupLabel: 417 - originalLookupLabel: 417 - center: - x: -39.0 - y: 15.0 - z: 55.0 - color: '#cd4454' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_38: - name: 7Networks_LH_Default_PFC_38 - lookupLabel: 418 - originalLookupLabel: 418 - center: - x: -20.0 - y: 33.0 - z: 51.0 - color: '#cd4455' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_39: - name: 7Networks_LH_Default_PFC_39 - lookupLabel: 419 - originalLookupLabel: 419 - center: - x: -29.0 - y: 16.0 - z: 56.0 - color: '#cd454e' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_40: - name: 7Networks_LH_Default_PFC_40 - lookupLabel: 420 - originalLookupLabel: 420 - center: - x: -23.0 - y: 17.0 - z: 49.0 - color: '#cd454f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_41: - name: 7Networks_LH_Default_PFC_41 - lookupLabel: 421 - originalLookupLabel: 421 - center: - x: -12.0 - y: 24.0 - z: 61.0 - color: '#cd4550' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PFC_42: - name: 7Networks_LH_Default_PFC_42 - lookupLabel: 422 - originalLookupLabel: 422 - center: - x: -5.0 - y: 12.0 - z: 64.0 - color: '#cd4551' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_1: - name: 7Networks_LH_Default_pCunPCC_1 - lookupLabel: 423 - originalLookupLabel: 423 - center: - x: -11.0 - y: -54.0 - z: 8.0 - color: '#cd4156' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_2: - name: 7Networks_LH_Default_pCunPCC_2 - lookupLabel: 424 - originalLookupLabel: 424 - center: - x: -6.0 - y: -47.0 - z: 13.0 - color: '#cd4256' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_3: - name: 7Networks_LH_Default_pCunPCC_3 - lookupLabel: 425 - originalLookupLabel: 425 - center: - x: -4.0 - y: -55.0 - z: 11.0 - color: '#cd4356' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_4: - name: 7Networks_LH_Default_pCunPCC_4 - lookupLabel: 426 - originalLookupLabel: 426 - center: - x: -12.0 - y: -59.0 - z: 17.0 - color: '#cd4456' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_5: - name: 7Networks_LH_Default_pCunPCC_5 - lookupLabel: 427 - originalLookupLabel: 427 - center: - x: -5.0 - y: -51.0 - z: 17.0 - color: '#cd4552' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_6: - name: 7Networks_LH_Default_pCunPCC_6 - lookupLabel: 428 - originalLookupLabel: 428 - center: - x: -7.0 - y: -43.0 - z: 22.0 - color: '#cd4553' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_7: - name: 7Networks_LH_Default_pCunPCC_7 - lookupLabel: 429 - originalLookupLabel: 429 - center: - x: -4.0 - y: -57.0 - z: 19.0 - color: '#cd4554' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_8: - name: 7Networks_LH_Default_pCunPCC_8 - lookupLabel: 430 - originalLookupLabel: 430 - center: - x: -3.0 - y: -48.0 - z: 25.0 - color: '#cd4555' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_9: - name: 7Networks_LH_Default_pCunPCC_9 - lookupLabel: 431 - originalLookupLabel: 431 - center: - x: -4.0 - y: -65.0 - z: 23.0 - color: '#cd4556' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_10: - name: 7Networks_LH_Default_pCunPCC_10 - lookupLabel: 432 - originalLookupLabel: 432 - center: - x: -13.0 - y: -67.0 - z: 28.0 - color: '#cd464f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_11: - name: 7Networks_LH_Default_pCunPCC_11 - lookupLabel: 433 - originalLookupLabel: 433 - center: - x: -6.0 - y: -57.0 - z: 26.0 - color: '#cd4650' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_12: - name: 7Networks_LH_Default_pCunPCC_12 - lookupLabel: 434 - originalLookupLabel: 434 - center: - x: -3.0 - y: -39.0 - z: 29.0 - color: '#cd4651' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_13: - name: 7Networks_LH_Default_pCunPCC_13 - lookupLabel: 435 - originalLookupLabel: 435 - center: - x: -8.0 - y: -47.0 - z: 30.0 - color: '#cd4652' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_14: - name: 7Networks_LH_Default_pCunPCC_14 - lookupLabel: 436 - originalLookupLabel: 436 - center: - x: -3.0 - y: -64.0 - z: 30.0 - color: '#cd4653' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_15: - name: 7Networks_LH_Default_pCunPCC_15 - lookupLabel: 437 - originalLookupLabel: 437 - center: - x: -7.0 - y: -71.0 - z: 32.0 - color: '#cd4654' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_16: - name: 7Networks_LH_Default_pCunPCC_16 - lookupLabel: 438 - originalLookupLabel: 438 - center: - x: -10.0 - y: -53.0 - z: 32.0 - color: '#cd4655' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_17: - name: 7Networks_LH_Default_pCunPCC_17 - lookupLabel: 439 - originalLookupLabel: 439 - center: - x: -6.0 - y: -40.0 - z: 34.0 - color: '#cd4656' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_18: - name: 7Networks_LH_Default_pCunPCC_18 - lookupLabel: 440 - originalLookupLabel: 440 - center: - x: -2.0 - y: -15.0 - z: 37.0 - color: '#ce3f4f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_19: - name: 7Networks_LH_Default_pCunPCC_19 - lookupLabel: 441 - originalLookupLabel: 441 - center: - x: -4.0 - y: -32.0 - z: 38.0 - color: '#ce3f50' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_20: - name: 7Networks_LH_Default_pCunPCC_20 - lookupLabel: 442 - originalLookupLabel: 442 - center: - x: -12.0 - y: -45.0 - z: 35.0 - color: '#ce3f51' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_21: - name: 7Networks_LH_Default_pCunPCC_21 - lookupLabel: 443 - originalLookupLabel: 443 - center: - x: -6.0 - y: -58.0 - z: 35.0 - color: '#ce3f52' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_22: - name: 7Networks_LH_Default_pCunPCC_22 - lookupLabel: 444 - originalLookupLabel: 444 - center: - x: -5.0 - y: -38.0 - z: 43.0 - color: '#ce3f53' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_23: - name: 7Networks_LH_Default_pCunPCC_23 - lookupLabel: 445 - originalLookupLabel: 445 - center: - x: -3.0 - y: -66.0 - z: 41.0 - color: '#ce3f54' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_24: - name: 7Networks_LH_Default_pCunPCC_24 - lookupLabel: 446 - originalLookupLabel: 446 - center: - x: -8.0 - y: -52.0 - z: 41.0 - color: '#ce3f55' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_25: - name: 7Networks_LH_Default_pCunPCC_25 - lookupLabel: 447 - originalLookupLabel: 447 - center: - x: -6.0 - y: -44.0 - z: 44.0 - color: '#ce3f56' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_pCunPCC_26: - name: 7Networks_LH_Default_pCunPCC_26 - lookupLabel: 448 - originalLookupLabel: 448 - center: - x: -5.0 - y: -57.0 - z: 46.0 - color: '#ce404f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PHC_1: - name: 7Networks_LH_Default_PHC_1 - lookupLabel: 449 - originalLookupLabel: 449 - center: - x: -20.0 - y: -23.0 - z: -23.0 - color: '#ce3e4f' - hemisphere: left - hasParent: - - LH_Default - 7Networks_LH_Default_PHC_2: - name: 7Networks_LH_Default_PHC_2 - lookupLabel: 450 - originalLookupLabel: 450 - center: - x: -21.0 - y: -35.0 - z: -15.0 - color: '#ce3e50' - hemisphere: left - hasParent: - - LH_Default - 7Networks_RH_Vis_1: - name: 7Networks_RH_Vis_1 - lookupLabel: 451 - originalLookupLabel: 451 - center: - x: 32.0 - y: -36.0 - z: -23.0 - color: '#780e85' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_2: - name: 7Networks_RH_Vis_2 - lookupLabel: 452 - originalLookupLabel: 452 - center: - x: 33.0 - y: -25.0 - z: -22.0 - color: '#780e86' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_3: - name: 7Networks_RH_Vis_3 - lookupLabel: 453 - originalLookupLabel: 453 - center: - x: 36.0 - y: -51.0 - z: -18.0 - color: '#780e87' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_4: - name: 7Networks_RH_Vis_4 - lookupLabel: 454 - originalLookupLabel: 454 - center: - x: 33.0 - y: -39.0 - z: -13.0 - color: '#780f80' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_5: - name: 7Networks_RH_Vis_5 - lookupLabel: 455 - originalLookupLabel: 455 - center: - x: 29.0 - y: -52.0 - z: -11.0 - color: '#780f81' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_6: - name: 7Networks_RH_Vis_6 - lookupLabel: 456 - originalLookupLabel: 456 - center: - x: 46.0 - y: -58.0 - z: -16.0 - color: '#780f82' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_7: - name: 7Networks_RH_Vis_7 - lookupLabel: 457 - originalLookupLabel: 457 - center: - x: 37.0 - y: -67.0 - z: -16.0 - color: '#780f83' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_8: - name: 7Networks_RH_Vis_8 - lookupLabel: 458 - originalLookupLabel: 458 - center: - x: 23.0 - y: -32.0 - z: -15.0 - color: '#780f84' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_9: - name: 7Networks_RH_Vis_9 - lookupLabel: 459 - originalLookupLabel: 459 - center: - x: 28.0 - y: -72.0 - z: -10.0 - color: '#780f85' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_10: - name: 7Networks_RH_Vis_10 - lookupLabel: 460 - originalLookupLabel: 460 - center: - x: 30.0 - y: -81.0 - z: -13.0 - color: '#780f86' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_11: - name: 7Networks_RH_Vis_11 - lookupLabel: 461 - originalLookupLabel: 461 - center: - x: 41.0 - y: -76.0 - z: -15.0 - color: '#780f87' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_12: - name: 7Networks_RH_Vis_12 - lookupLabel: 462 - originalLookupLabel: 462 - center: - x: 24.0 - y: -57.0 - z: -8.0 - color: '#781080' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_13: - name: 7Networks_RH_Vis_13 - lookupLabel: 463 - originalLookupLabel: 463 - center: - x: 25.0 - y: -46.0 - z: -8.0 - color: '#781081' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_14: - name: 7Networks_RH_Vis_14 - lookupLabel: 464 - originalLookupLabel: 464 - center: - x: 21.0 - y: -69.0 - z: -9.0 - color: '#781082' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_15: - name: 7Networks_RH_Vis_15 - lookupLabel: 465 - originalLookupLabel: 465 - center: - x: 36.0 - y: -85.0 - z: -17.0 - color: '#781083' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_16: - name: 7Networks_RH_Vis_16 - lookupLabel: 466 - originalLookupLabel: 466 - center: - x: 17.0 - y: -80.0 - z: -13.0 - color: '#781084' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_17: - name: 7Networks_RH_Vis_17 - lookupLabel: 467 - originalLookupLabel: 467 - center: - x: 48.0 - y: -75.0 - z: -13.0 - color: '#781085' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_18: - name: 7Networks_RH_Vis_18 - lookupLabel: 468 - originalLookupLabel: 468 - center: - x: 20.0 - y: -88.0 - z: -12.0 - color: '#781086' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_19: - name: 7Networks_RH_Vis_19 - lookupLabel: 469 - originalLookupLabel: 469 - center: - x: 17.0 - y: -35.0 - z: -12.0 - color: '#781087' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_20: - name: 7Networks_RH_Vis_20 - lookupLabel: 470 - originalLookupLabel: 470 - center: - x: 15.0 - y: -48.0 - z: -8.0 - color: '#781180' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_21: - name: 7Networks_RH_Vis_21 - lookupLabel: 471 - originalLookupLabel: 471 - center: - x: 15.0 - y: -61.0 - z: -5.0 - color: '#781181' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_22: - name: 7Networks_RH_Vis_22 - lookupLabel: 472 - originalLookupLabel: 472 - center: - x: 9.0 - y: -74.0 - z: -6.0 - color: '#781182' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_23: - name: 7Networks_RH_Vis_23 - lookupLabel: 473 - originalLookupLabel: 473 - center: - x: 49.0 - y: -63.0 - z: -5.0 - color: '#781183' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_24: - name: 7Networks_RH_Vis_24 - lookupLabel: 474 - originalLookupLabel: 474 - center: - x: 27.0 - y: -95.0 - z: -14.0 - color: '#781184' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_25: - name: 7Networks_RH_Vis_25 - lookupLabel: 475 - originalLookupLabel: 475 - center: - x: 15.0 - y: -96.0 - z: -13.0 - color: '#781185' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_26: - name: 7Networks_RH_Vis_26 - lookupLabel: 476 - originalLookupLabel: 476 - center: - x: 41.0 - y: -87.0 - z: -9.0 - color: '#781186' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_27: - name: 7Networks_RH_Vis_27 - lookupLabel: 477 - originalLookupLabel: 477 - center: - x: 5.0 - y: -87.0 - z: -9.0 - color: '#781187' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_28: - name: 7Networks_RH_Vis_28 - lookupLabel: 478 - originalLookupLabel: 478 - center: - x: 6.0 - y: -67.0 - z: 1.0 - color: '#781280' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_29: - name: 7Networks_RH_Vis_29 - lookupLabel: 479 - originalLookupLabel: 479 - center: - x: 49.0 - y: -75.0 - z: -5.0 - color: '#781281' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_30: - name: 7Networks_RH_Vis_30 - lookupLabel: 480 - originalLookupLabel: 480 - center: - x: 16.0 - y: -40.0 - z: -5.0 - color: '#781282' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_31: - name: 7Networks_RH_Vis_31 - lookupLabel: 481 - originalLookupLabel: 481 - center: - x: 14.0 - y: -55.0 - z: 1.0 - color: '#781283' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_32: - name: 7Networks_RH_Vis_32 - lookupLabel: 482 - originalLookupLabel: 482 - center: - x: 4.0 - y: -76.0 - z: 3.0 - color: '#781284' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_33: - name: 7Networks_RH_Vis_33 - lookupLabel: 483 - originalLookupLabel: 483 - center: - x: 33.0 - y: -93.0 - z: -4.0 - color: '#781285' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_34: - name: 7Networks_RH_Vis_34 - lookupLabel: 484 - originalLookupLabel: 484 - center: - x: 45.0 - y: -68.0 - z: -1.0 - color: '#781286' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_35: - name: 7Networks_RH_Vis_35 - lookupLabel: 485 - originalLookupLabel: 485 - center: - x: 20.0 - y: -101.0 - z: -6.0 - color: '#781288' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_36: - name: 7Networks_RH_Vis_36 - lookupLabel: 486 - originalLookupLabel: 486 - center: - x: 21.0 - y: -49.0 - z: 0.0 - color: '#781289' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_37: - name: 7Networks_RH_Vis_37 - lookupLabel: 487 - originalLookupLabel: 487 - center: - x: 11.0 - y: -62.0 - z: 6.0 - color: '#78128a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_38: - name: 7Networks_RH_Vis_38 - lookupLabel: 488 - originalLookupLabel: 488 - center: - x: 43.0 - y: -85.0 - z: -2.0 - color: '#78128b' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_39: - name: 7Networks_RH_Vis_39 - lookupLabel: 489 - originalLookupLabel: 489 - center: - x: 12.0 - y: -97.0 - z: 0.0 - color: '#78128c' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_40: - name: 7Networks_RH_Vis_40 - lookupLabel: 490 - originalLookupLabel: 490 - center: - x: 52.0 - y: -74.0 - z: 2.0 - color: '#78128d' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_41: - name: 7Networks_RH_Vis_41 - lookupLabel: 491 - originalLookupLabel: 491 - center: - x: 13.0 - y: -45.0 - z: 3.0 - color: '#78128e' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_42: - name: 7Networks_RH_Vis_42 - lookupLabel: 492 - originalLookupLabel: 492 - center: - x: 8.0 - y: -86.0 - z: 3.0 - color: '#781387' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_43: - name: 7Networks_RH_Vis_43 - lookupLabel: 493 - originalLookupLabel: 493 - center: - x: 25.0 - y: -99.0 - z: 3.0 - color: '#781388' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_44: - name: 7Networks_RH_Vis_44 - lookupLabel: 494 - originalLookupLabel: 494 - center: - x: 20.0 - y: -69.0 - z: 6.0 - color: '#781389' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_45: - name: 7Networks_RH_Vis_45 - lookupLabel: 495 - originalLookupLabel: 495 - center: - x: 23.0 - y: -58.0 - z: 6.0 - color: '#78138a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_46: - name: 7Networks_RH_Vis_46 - lookupLabel: 496 - originalLookupLabel: 496 - center: - x: 50.0 - y: -67.0 - z: 8.0 - color: '#78138b' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_47: - name: 7Networks_RH_Vis_47 - lookupLabel: 497 - originalLookupLabel: 497 - center: - x: 34.0 - y: -89.0 - z: 4.0 - color: '#78138c' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_48: - name: 7Networks_RH_Vis_48 - lookupLabel: 498 - originalLookupLabel: 498 - center: - x: 11.0 - y: -73.0 - z: 11.0 - color: '#78138d' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_49: - name: 7Networks_RH_Vis_49 - lookupLabel: 499 - originalLookupLabel: 499 - center: - x: 16.0 - y: -100.0 - z: 13.0 - color: '#78138e' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_50: - name: 7Networks_RH_Vis_50 - lookupLabel: 500 - originalLookupLabel: 500 - center: - x: 45.0 - y: -78.0 - z: 7.0 - color: '#781487' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_51: - name: 7Networks_RH_Vis_51 - lookupLabel: 501 - originalLookupLabel: 501 - center: - x: 5.0 - y: -85.0 - z: 11.0 - color: '#781488' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_52: - name: 7Networks_RH_Vis_52 - lookupLabel: 502 - originalLookupLabel: 502 - center: - x: 28.0 - y: -95.0 - z: 14.0 - color: '#781489' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_53: - name: 7Networks_RH_Vis_53 - lookupLabel: 503 - originalLookupLabel: 503 - center: - x: 7.0 - y: -94.0 - z: 16.0 - color: '#78148a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_54: - name: 7Networks_RH_Vis_54 - lookupLabel: 504 - originalLookupLabel: 504 - center: - x: 46.0 - y: -72.0 - z: 15.0 - color: '#78148b' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_55: - name: 7Networks_RH_Vis_55 - lookupLabel: 505 - originalLookupLabel: 505 - center: - x: 20.0 - y: -61.0 - z: 15.0 - color: '#78148c' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_56: - name: 7Networks_RH_Vis_56 - lookupLabel: 506 - originalLookupLabel: 506 - center: - x: 37.0 - y: -84.0 - z: 10.0 - color: '#78148d' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_57: - name: 7Networks_RH_Vis_57 - lookupLabel: 507 - originalLookupLabel: 507 - center: - x: 16.0 - y: -94.0 - z: 21.0 - color: '#78148e' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_58: - name: 7Networks_RH_Vis_58 - lookupLabel: 508 - originalLookupLabel: 508 - center: - x: 5.0 - y: -81.0 - z: 24.0 - color: '#781587' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_59: - name: 7Networks_RH_Vis_59 - lookupLabel: 509 - originalLookupLabel: 509 - center: - x: 8.0 - y: -68.0 - z: 20.0 - color: '#781588' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_60: - name: 7Networks_RH_Vis_60 - lookupLabel: 510 - originalLookupLabel: 510 - center: - x: 29.0 - y: -88.0 - z: 18.0 - color: '#781589' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_61: - name: 7Networks_RH_Vis_61 - lookupLabel: 511 - originalLookupLabel: 511 - center: - x: 43.0 - y: -81.0 - z: 18.0 - color: '#78158a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_62: - name: 7Networks_RH_Vis_62 - lookupLabel: 512 - originalLookupLabel: 512 - center: - x: 21.0 - y: -61.0 - z: 23.0 - color: '#78158b' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_63: - name: 7Networks_RH_Vis_63 - lookupLabel: 513 - originalLookupLabel: 513 - center: - x: 17.0 - y: -71.0 - z: 24.0 - color: '#78158c' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_64: - name: 7Networks_RH_Vis_64 - lookupLabel: 514 - originalLookupLabel: 514 - center: - x: 8.0 - y: -89.0 - z: 32.0 - color: '#78158d' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_65: - name: 7Networks_RH_Vis_65 - lookupLabel: 515 - originalLookupLabel: 515 - center: - x: 36.0 - y: -80.0 - z: 25.0 - color: '#78158e' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_66: - name: 7Networks_RH_Vis_66 - lookupLabel: 516 - originalLookupLabel: 516 - center: - x: 21.0 - y: -87.0 - z: 29.0 - color: '#781687' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_67: - name: 7Networks_RH_Vis_67 - lookupLabel: 517 - originalLookupLabel: 517 - center: - x: 10.0 - y: -78.0 - z: 33.0 - color: '#781688' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_68: - name: 7Networks_RH_Vis_68 - lookupLabel: 518 - originalLookupLabel: 518 - center: - x: 30.0 - y: -78.0 - z: 26.0 - color: '#781689' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_69: - name: 7Networks_RH_Vis_69 - lookupLabel: 519 - originalLookupLabel: 519 - center: - x: 19.0 - y: -86.0 - z: 41.0 - color: '#78168a' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_70: - name: 7Networks_RH_Vis_70 - lookupLabel: 520 - originalLookupLabel: 520 - center: - x: 18.0 - y: -79.0 - z: 38.0 - color: '#78168b' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_71: - name: 7Networks_RH_Vis_71 - lookupLabel: 521 - originalLookupLabel: 521 - center: - x: 29.0 - y: -78.0 - z: 41.0 - color: '#78168c' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_Vis_72: - name: 7Networks_RH_Vis_72 - lookupLabel: 522 - originalLookupLabel: 522 - center: - x: 21.0 - y: -80.0 - z: 49.0 - color: '#78168d' - hemisphere: right - hasParent: - - RH_Vis - 7Networks_RH_SomMot_1: - name: 7Networks_RH_SomMot_1 - lookupLabel: 523 - originalLookupLabel: 523 - center: - x: 51.0 - y: 11.0 - z: -9.0 - color: '#467db4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_2: - name: 7Networks_RH_SomMot_2 - lookupLabel: 524 - originalLookupLabel: 524 - center: - x: 55.0 - y: 1.0 - z: -3.0 - color: '#467db5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_3: - name: 7Networks_RH_SomMot_3 - lookupLabel: 525 - originalLookupLabel: 525 - center: - x: 47.0 - y: -8.0 - z: -7.0 - color: '#467eae' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_4: - name: 7Networks_RH_SomMot_4 - lookupLabel: 526 - originalLookupLabel: 526 - center: - x: 61.0 - y: -13.0 - z: -4.0 - color: '#467eaf' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_5: - name: 7Networks_RH_SomMot_5 - lookupLabel: 527 - originalLookupLabel: 527 - center: - x: 57.0 - y: -10.0 - z: 4.0 - color: '#467eb0' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_6: - name: 7Networks_RH_SomMot_6 - lookupLabel: 528 - originalLookupLabel: 528 - center: - x: 44.0 - y: -17.0 - z: 0.0 - color: '#467eb1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_7: - name: 7Networks_RH_SomMot_7 - lookupLabel: 529 - originalLookupLabel: 529 - center: - x: 52.0 - y: -29.0 - z: 2.0 - color: '#467eb2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_8: - name: 7Networks_RH_SomMot_8 - lookupLabel: 530 - originalLookupLabel: 530 - center: - x: 63.0 - y: -21.0 - z: 1.0 - color: '#467eb3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_9: - name: 7Networks_RH_SomMot_9 - lookupLabel: 531 - originalLookupLabel: 531 - center: - x: 37.0 - y: -17.0 - z: 7.0 - color: '#467eb4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_10: - name: 7Networks_RH_SomMot_10 - lookupLabel: 532 - originalLookupLabel: 532 - center: - x: 40.0 - y: -21.0 - z: 6.0 - color: '#467eb5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_11: - name: 7Networks_RH_SomMot_11 - lookupLabel: 533 - originalLookupLabel: 533 - center: - x: 37.0 - y: -9.0 - z: 12.0 - color: '#467fae' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_12: - name: 7Networks_RH_SomMot_12 - lookupLabel: 534 - originalLookupLabel: 534 - center: - x: 48.0 - y: -21.0 - z: 9.0 - color: '#467faf' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_13: - name: 7Networks_RH_SomMot_13 - lookupLabel: 535 - originalLookupLabel: 535 - center: - x: 35.0 - y: -22.0 - z: 12.0 - color: '#467fb0' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_14: - name: 7Networks_RH_SomMot_14 - lookupLabel: 536 - originalLookupLabel: 536 - center: - x: 64.0 - y: -32.0 - z: 6.0 - color: '#467fb1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_15: - name: 7Networks_RH_SomMot_15 - lookupLabel: 537 - originalLookupLabel: 537 - center: - x: 61.0 - y: -23.0 - z: 10.0 - color: '#467fb2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_16: - name: 7Networks_RH_SomMot_16 - lookupLabel: 538 - originalLookupLabel: 538 - center: - x: 41.0 - y: -1.0 - z: 15.0 - color: '#467fb3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_17: - name: 7Networks_RH_SomMot_17 - lookupLabel: 539 - originalLookupLabel: 539 - center: - x: 37.0 - y: -11.0 - z: 18.0 - color: '#467fb4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_18: - name: 7Networks_RH_SomMot_18 - lookupLabel: 540 - originalLookupLabel: 540 - center: - x: 54.0 - y: -38.0 - z: 12.0 - color: '#467fb5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_19: - name: 7Networks_RH_SomMot_19 - lookupLabel: 541 - originalLookupLabel: 541 - center: - x: 35.0 - y: -20.0 - z: 18.0 - color: '#4680ae' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_20: - name: 7Networks_RH_SomMot_20 - lookupLabel: 542 - originalLookupLabel: 542 - center: - x: 41.0 - y: -29.0 - z: 13.0 - color: '#4680af' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_21: - name: 7Networks_RH_SomMot_21 - lookupLabel: 543 - originalLookupLabel: 543 - center: - x: 43.0 - y: -12.0 - z: 17.0 - color: '#4680b0' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_22: - name: 7Networks_RH_SomMot_22 - lookupLabel: 544 - originalLookupLabel: 544 - center: - x: 67.0 - y: -30.0 - z: 14.0 - color: '#4680b1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_23: - name: 7Networks_RH_SomMot_23 - lookupLabel: 545 - originalLookupLabel: 545 - center: - x: 50.0 - y: -9.0 - z: 12.0 - color: '#4680b2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_24: - name: 7Networks_RH_SomMot_24 - lookupLabel: 546 - originalLookupLabel: 546 - center: - x: 40.0 - y: -27.0 - z: 20.0 - color: '#4680b3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_25: - name: 7Networks_RH_SomMot_25 - lookupLabel: 547 - originalLookupLabel: 547 - center: - x: 50.0 - y: -32.0 - z: 18.0 - color: '#4680b4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_26: - name: 7Networks_RH_SomMot_26 - lookupLabel: 548 - originalLookupLabel: 548 - center: - x: 59.0 - y: -1.0 - z: 11.0 - color: '#4680b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_27: - name: 7Networks_RH_SomMot_27 - lookupLabel: 549 - originalLookupLabel: 549 - center: - x: 49.0 - y: -20.0 - z: 18.0 - color: '#4681ae' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_28: - name: 7Networks_RH_SomMot_28 - lookupLabel: 550 - originalLookupLabel: 550 - center: - x: 57.0 - y: -13.0 - z: 16.0 - color: '#4681af' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_29: - name: 7Networks_RH_SomMot_29 - lookupLabel: 551 - originalLookupLabel: 551 - center: - x: 66.0 - y: -10.0 - z: 15.0 - color: '#4681b0' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_30: - name: 7Networks_RH_SomMot_30 - lookupLabel: 552 - originalLookupLabel: 552 - center: - x: 62.0 - y: 2.0 - z: 17.0 - color: '#4681b1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_31: - name: 7Networks_RH_SomMot_31 - lookupLabel: 553 - originalLookupLabel: 553 - center: - x: 64.0 - y: -5.0 - z: 23.0 - color: '#4681b2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_32: - name: 7Networks_RH_SomMot_32 - lookupLabel: 554 - originalLookupLabel: 554 - center: - x: 64.0 - y: -12.0 - z: 26.0 - color: '#4681b3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_33: - name: 7Networks_RH_SomMot_33 - lookupLabel: 555 - originalLookupLabel: 555 - center: - x: 60.0 - y: 2.0 - z: 26.0 - color: '#4681b4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_34: - name: 7Networks_RH_SomMot_34 - lookupLabel: 556 - originalLookupLabel: 556 - center: - x: 62.0 - y: -11.0 - z: 35.0 - color: '#4681b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_35: - name: 7Networks_RH_SomMot_35 - lookupLabel: 557 - originalLookupLabel: 557 - center: - x: 55.0 - y: -8.0 - z: 34.0 - color: '#4682ae' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_36: - name: 7Networks_RH_SomMot_36 - lookupLabel: 558 - originalLookupLabel: 558 - center: - x: 53.0 - y: -5.0 - z: 37.0 - color: '#4682af' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_37: - name: 7Networks_RH_SomMot_37 - lookupLabel: 559 - originalLookupLabel: 559 - center: - x: 7.0 - y: -2.0 - z: 41.0 - color: '#4682b0' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_38: - name: 7Networks_RH_SomMot_38 - lookupLabel: 560 - originalLookupLabel: 560 - center: - x: 56.0 - y: -16.0 - z: 41.0 - color: '#4682b1' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_39: - name: 7Networks_RH_SomMot_39 - lookupLabel: 561 - originalLookupLabel: 561 - center: - x: 59.0 - y: -11.0 - z: 46.0 - color: '#4682b2' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_40: - name: 7Networks_RH_SomMot_40 - lookupLabel: 562 - originalLookupLabel: 562 - center: - x: 10.0 - y: -14.0 - z: 40.0 - color: '#4682b3' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_41: - name: 7Networks_RH_SomMot_41 - lookupLabel: 563 - originalLookupLabel: 563 - center: - x: 49.0 - y: -21.0 - z: 40.0 - color: '#4682b4' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_42: - name: 7Networks_RH_SomMot_42 - lookupLabel: 564 - originalLookupLabel: 564 - center: - x: 42.0 - y: -16.0 - z: 39.0 - color: '#4682b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_43: - name: 7Networks_RH_SomMot_43 - lookupLabel: 565 - originalLookupLabel: 565 - center: - x: 54.0 - y: -19.0 - z: 50.0 - color: '#4682b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_44: - name: 7Networks_RH_SomMot_44 - lookupLabel: 566 - originalLookupLabel: 566 - center: - x: 13.0 - y: -20.0 - z: 43.0 - color: '#4682b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_45: - name: 7Networks_RH_SomMot_45 - lookupLabel: 567 - originalLookupLabel: 567 - center: - x: 50.0 - y: -13.0 - z: 49.0 - color: '#4682b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_46: - name: 7Networks_RH_SomMot_46 - lookupLabel: 568 - originalLookupLabel: 568 - center: - x: 11.0 - y: -9.0 - z: 46.0 - color: '#4682ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_47: - name: 7Networks_RH_SomMot_47 - lookupLabel: 569 - originalLookupLabel: 569 - center: - x: 45.0 - y: -10.0 - z: 49.0 - color: '#4682bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_48: - name: 7Networks_RH_SomMot_48 - lookupLabel: 570 - originalLookupLabel: 570 - center: - x: 52.0 - y: -18.0 - z: 58.0 - color: '#4682bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_49: - name: 7Networks_RH_SomMot_49 - lookupLabel: 571 - originalLookupLabel: 571 - center: - x: 49.0 - y: -27.0 - z: 56.0 - color: '#4683b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_50: - name: 7Networks_RH_SomMot_50 - lookupLabel: 572 - originalLookupLabel: 572 - center: - x: 39.0 - y: -19.0 - z: 47.0 - color: '#4683b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_51: - name: 7Networks_RH_SomMot_51 - lookupLabel: 573 - originalLookupLabel: 573 - center: - x: 10.0 - y: -27.0 - z: 48.0 - color: '#4683b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_52: - name: 7Networks_RH_SomMot_52 - lookupLabel: 574 - originalLookupLabel: 574 - center: - x: 6.0 - y: -1.0 - z: 55.0 - color: '#4683b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_53: - name: 7Networks_RH_SomMot_53 - lookupLabel: 575 - originalLookupLabel: 575 - center: - x: 7.0 - y: -15.0 - z: 51.0 - color: '#4683b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_54: - name: 7Networks_RH_SomMot_54 - lookupLabel: 576 - originalLookupLabel: 576 - center: - x: 41.0 - y: -5.0 - z: 61.0 - color: '#4683ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_55: - name: 7Networks_RH_SomMot_55 - lookupLabel: 577 - originalLookupLabel: 577 - center: - x: 33.0 - y: -39.0 - z: 57.0 - color: '#4683bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_56: - name: 7Networks_RH_SomMot_56 - lookupLabel: 578 - originalLookupLabel: 578 - center: - x: 44.0 - y: -23.0 - z: 58.0 - color: '#4683bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_57: - name: 7Networks_RH_SomMot_57 - lookupLabel: 579 - originalLookupLabel: 579 - center: - x: 41.0 - y: -15.0 - z: 59.0 - color: '#4684b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_58: - name: 7Networks_RH_SomMot_58 - lookupLabel: 580 - originalLookupLabel: 580 - center: - x: 40.0 - y: -33.0 - z: 61.0 - color: '#4684b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_59: - name: 7Networks_RH_SomMot_59 - lookupLabel: 581 - originalLookupLabel: 581 - center: - x: 8.0 - y: -35.0 - z: 53.0 - color: '#4684b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_60: - name: 7Networks_RH_SomMot_60 - lookupLabel: 582 - originalLookupLabel: 582 - center: - x: 34.0 - y: -23.0 - z: 54.0 - color: '#4684b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_61: - name: 7Networks_RH_SomMot_61 - lookupLabel: 583 - originalLookupLabel: 583 - center: - x: 4.0 - y: -20.0 - z: 57.0 - color: '#4684b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_62: - name: 7Networks_RH_SomMot_62 - lookupLabel: 584 - originalLookupLabel: 584 - center: - x: 29.0 - y: -34.0 - z: 64.0 - color: '#4684ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_63: - name: 7Networks_RH_SomMot_63 - lookupLabel: 585 - originalLookupLabel: 585 - center: - x: 31.0 - y: -41.0 - z: 66.0 - color: '#4684bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_64: - name: 7Networks_RH_SomMot_64 - lookupLabel: 586 - originalLookupLabel: 586 - center: - x: 34.0 - y: -28.0 - z: 64.0 - color: '#4684bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_65: - name: 7Networks_RH_SomMot_65 - lookupLabel: 587 - originalLookupLabel: 587 - center: - x: 7.0 - y: -39.0 - z: 61.0 - color: '#4685b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_66: - name: 7Networks_RH_SomMot_66 - lookupLabel: 588 - originalLookupLabel: 588 - center: - x: 34.0 - y: -19.0 - z: 68.0 - color: '#4685b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_67: - name: 7Networks_RH_SomMot_67 - lookupLabel: 589 - originalLookupLabel: 589 - center: - x: 28.0 - y: -12.0 - z: 65.0 - color: '#4685b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_68: - name: 7Networks_RH_SomMot_68 - lookupLabel: 590 - originalLookupLabel: 590 - center: - x: 26.0 - y: -25.0 - z: 57.0 - color: '#4685b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_69: - name: 7Networks_RH_SomMot_69 - lookupLabel: 591 - originalLookupLabel: 591 - center: - x: 4.0 - y: -29.0 - z: 63.0 - color: '#4685b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_70: - name: 7Networks_RH_SomMot_70 - lookupLabel: 592 - originalLookupLabel: 592 - center: - x: 24.0 - y: -28.0 - z: 68.0 - color: '#4685ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_71: - name: 7Networks_RH_SomMot_71 - lookupLabel: 593 - originalLookupLabel: 593 - center: - x: 5.0 - y: -12.0 - z: 70.0 - color: '#4685bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_72: - name: 7Networks_RH_SomMot_72 - lookupLabel: 594 - originalLookupLabel: 594 - center: - x: 22.0 - y: -45.0 - z: 68.0 - color: '#4685bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_73: - name: 7Networks_RH_SomMot_73 - lookupLabel: 595 - originalLookupLabel: 595 - center: - x: 23.0 - y: -34.0 - z: 70.0 - color: '#4686b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_74: - name: 7Networks_RH_SomMot_74 - lookupLabel: 596 - originalLookupLabel: 596 - center: - x: 23.0 - y: -23.0 - z: 70.0 - color: '#4686b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_75: - name: 7Networks_RH_SomMot_75 - lookupLabel: 597 - originalLookupLabel: 597 - center: - x: 20.0 - y: -12.0 - z: 70.0 - color: '#4686b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_76: - name: 7Networks_RH_SomMot_76 - lookupLabel: 598 - originalLookupLabel: 598 - center: - x: 10.0 - y: -40.0 - z: 71.0 - color: '#4686b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_77: - name: 7Networks_RH_SomMot_77 - lookupLabel: 599 - originalLookupLabel: 599 - center: - x: 18.0 - y: -27.0 - z: 63.0 - color: '#4686b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_78: - name: 7Networks_RH_SomMot_78 - lookupLabel: 600 - originalLookupLabel: 600 - center: - x: 16.0 - y: -45.0 - z: 77.0 - color: '#4686ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_79: - name: 7Networks_RH_SomMot_79 - lookupLabel: 601 - originalLookupLabel: 601 - center: - x: 12.0 - y: -11.0 - z: 71.0 - color: '#4686bb' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_80: - name: 7Networks_RH_SomMot_80 - lookupLabel: 602 - originalLookupLabel: 602 - center: - x: 4.0 - y: -31.0 - z: 72.0 - color: '#4686bc' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_81: - name: 7Networks_RH_SomMot_81 - lookupLabel: 603 - originalLookupLabel: 603 - center: - x: 7.0 - y: -21.0 - z: 75.0 - color: '#4687b5' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_82: - name: 7Networks_RH_SomMot_82 - lookupLabel: 604 - originalLookupLabel: 604 - center: - x: 14.0 - y: -17.0 - z: 76.0 - color: '#4687b6' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_83: - name: 7Networks_RH_SomMot_83 - lookupLabel: 605 - originalLookupLabel: 605 - center: - x: 19.0 - y: -35.0 - z: 77.0 - color: '#4687b7' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_84: - name: 7Networks_RH_SomMot_84 - lookupLabel: 606 - originalLookupLabel: 606 - center: - x: 15.0 - y: -31.0 - z: 72.0 - color: '#4687b8' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_85: - name: 7Networks_RH_SomMot_85 - lookupLabel: 607 - originalLookupLabel: 607 - center: - x: 13.0 - y: -26.0 - z: 72.0 - color: '#4687b9' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_SomMot_86: - name: 7Networks_RH_SomMot_86 - lookupLabel: 608 - originalLookupLabel: 608 - center: - x: 9.0 - y: -33.0 - z: 77.0 - color: '#4687ba' - hemisphere: right - hasParent: - - RH_SomMot - 7Networks_RH_DorsAttn_Post_1: - name: 7Networks_RH_DorsAttn_Post_1 - lookupLabel: 609 - originalLookupLabel: 609 - center: - x: 49.0 - y: -37.0 - z: -22.0 - color: '#00750c' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_2: - name: 7Networks_RH_DorsAttn_Post_2 - lookupLabel: 610 - originalLookupLabel: 610 - center: - x: 46.0 - y: -45.0 - z: -19.0 - color: '#00750d' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_3: - name: 7Networks_RH_DorsAttn_Post_3 - lookupLabel: 611 - originalLookupLabel: 611 - center: - x: 55.0 - y: -48.0 - z: -20.0 - color: '#00750e' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_4: - name: 7Networks_RH_DorsAttn_Post_4 - lookupLabel: 612 - originalLookupLabel: 612 - center: - x: 50.0 - y: -59.0 - z: -11.0 - color: '#00750f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_5: - name: 7Networks_RH_DorsAttn_Post_5 - lookupLabel: 613 - originalLookupLabel: 613 - center: - x: 57.0 - y: -56.0 - z: -10.0 - color: '#007608' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_6: - name: 7Networks_RH_DorsAttn_Post_6 - lookupLabel: 614 - originalLookupLabel: 614 - center: - x: 60.0 - y: -52.0 - z: -5.0 - color: '#007609' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_7: - name: 7Networks_RH_DorsAttn_Post_7 - lookupLabel: 615 - originalLookupLabel: 615 - center: - x: 51.0 - y: -58.0 - z: -1.0 - color: '#00760a' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_8: - name: 7Networks_RH_DorsAttn_Post_8 - lookupLabel: 616 - originalLookupLabel: 616 - center: - x: 58.0 - y: -58.0 - z: 4.0 - color: '#00760b' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_9: - name: 7Networks_RH_DorsAttn_Post_9 - lookupLabel: 617 - originalLookupLabel: 617 - center: - x: 47.0 - y: -61.0 - z: 5.0 - color: '#00760c' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_10: - name: 7Networks_RH_DorsAttn_Post_10 - lookupLabel: 618 - originalLookupLabel: 618 - center: - x: 52.0 - y: -59.0 - z: 12.0 - color: '#00760d' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_11: - name: 7Networks_RH_DorsAttn_Post_11 - lookupLabel: 619 - originalLookupLabel: 619 - center: - x: 47.0 - y: -63.0 - z: 16.0 - color: '#00760e' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_12: - name: 7Networks_RH_DorsAttn_Post_12 - lookupLabel: 620 - originalLookupLabel: 620 - center: - x: 43.0 - y: -78.0 - z: 34.0 - color: '#00760f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_13: - name: 7Networks_RH_DorsAttn_Post_13 - lookupLabel: 621 - originalLookupLabel: 621 - center: - x: 37.0 - y: -75.0 - z: 36.0 - color: '#007708' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_14: - name: 7Networks_RH_DorsAttn_Post_14 - lookupLabel: 622 - originalLookupLabel: 622 - center: - x: 59.0 - y: -17.0 - z: 31.0 - color: '#007709' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_15: - name: 7Networks_RH_DorsAttn_Post_15 - lookupLabel: 623 - originalLookupLabel: 623 - center: - x: 31.0 - y: -66.0 - z: 33.0 - color: '#00770a' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_16: - name: 7Networks_RH_DorsAttn_Post_16 - lookupLabel: 624 - originalLookupLabel: 624 - center: - x: 57.0 - y: -22.0 - z: 43.0 - color: '#00770b' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_17: - name: 7Networks_RH_DorsAttn_Post_17 - lookupLabel: 625 - originalLookupLabel: 625 - center: - x: 56.0 - y: -28.0 - z: 53.0 - color: '#00770c' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_18: - name: 7Networks_RH_DorsAttn_Post_18 - lookupLabel: 626 - originalLookupLabel: 626 - center: - x: 33.0 - y: -68.0 - z: 46.0 - color: '#00770d' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_19: - name: 7Networks_RH_DorsAttn_Post_19 - lookupLabel: 627 - originalLookupLabel: 627 - center: - x: 46.0 - y: -38.0 - z: 50.0 - color: '#00770e' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_20: - name: 7Networks_RH_DorsAttn_Post_20 - lookupLabel: 628 - originalLookupLabel: 628 - center: - x: 23.0 - y: -69.0 - z: 48.0 - color: '#007710' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_21: - name: 7Networks_RH_DorsAttn_Post_21 - lookupLabel: 629 - originalLookupLabel: 629 - center: - x: 45.0 - y: -29.0 - z: 44.0 - color: '#007711' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_22: - name: 7Networks_RH_DorsAttn_Post_22 - lookupLabel: 630 - originalLookupLabel: 630 - center: - x: 38.0 - y: -42.0 - z: 43.0 - color: '#007712' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_23: - name: 7Networks_RH_DorsAttn_Post_23 - lookupLabel: 631 - originalLookupLabel: 631 - center: - x: 41.0 - y: -36.0 - z: 53.0 - color: '#007713' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_24: - name: 7Networks_RH_DorsAttn_Post_24 - lookupLabel: 632 - originalLookupLabel: 632 - center: - x: 28.0 - y: -64.0 - z: 52.0 - color: '#007714' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_25: - name: 7Networks_RH_DorsAttn_Post_25 - lookupLabel: 633 - originalLookupLabel: 633 - center: - x: 16.0 - y: -75.0 - z: 52.0 - color: '#007715' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_26: - name: 7Networks_RH_DorsAttn_Post_26 - lookupLabel: 634 - originalLookupLabel: 634 - center: - x: 34.0 - y: -57.0 - z: 55.0 - color: '#007716' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_27: - name: 7Networks_RH_DorsAttn_Post_27 - lookupLabel: 635 - originalLookupLabel: 635 - center: - x: 33.0 - y: -47.0 - z: 49.0 - color: '#00780f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_28: - name: 7Networks_RH_DorsAttn_Post_28 - lookupLabel: 636 - originalLookupLabel: 636 - center: - x: 35.0 - y: -33.0 - z: 47.0 - color: '#007810' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_29: - name: 7Networks_RH_DorsAttn_Post_29 - lookupLabel: 637 - originalLookupLabel: 637 - center: - x: 40.0 - y: -41.0 - z: 58.0 - color: '#007811' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_30: - name: 7Networks_RH_DorsAttn_Post_30 - lookupLabel: 638 - originalLookupLabel: 638 - center: - x: 5.0 - y: -66.0 - z: 52.0 - color: '#007812' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_31: - name: 7Networks_RH_DorsAttn_Post_31 - lookupLabel: 639 - originalLookupLabel: 639 - center: - x: 19.0 - y: -68.0 - z: 57.0 - color: '#007813' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_32: - name: 7Networks_RH_DorsAttn_Post_32 - lookupLabel: 640 - originalLookupLabel: 640 - center: - x: 10.0 - y: -71.0 - z: 56.0 - color: '#007814' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_33: - name: 7Networks_RH_DorsAttn_Post_33 - lookupLabel: 641 - originalLookupLabel: 641 - center: - x: 6.0 - y: -52.0 - z: 55.0 - color: '#007815' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_34: - name: 7Networks_RH_DorsAttn_Post_34 - lookupLabel: 642 - originalLookupLabel: 642 - center: - x: 38.0 - y: -48.0 - z: 62.0 - color: '#007816' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_35: - name: 7Networks_RH_DorsAttn_Post_35 - lookupLabel: 643 - originalLookupLabel: 643 - center: - x: 28.0 - y: -56.0 - z: 60.0 - color: '#00790f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_36: - name: 7Networks_RH_DorsAttn_Post_36 - lookupLabel: 644 - originalLookupLabel: 644 - center: - x: 22.0 - y: -62.0 - z: 62.0 - color: '#007910' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_37: - name: 7Networks_RH_DorsAttn_Post_37 - lookupLabel: 645 - originalLookupLabel: 645 - center: - x: 8.0 - y: -60.0 - z: 61.0 - color: '#007911' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_38: - name: 7Networks_RH_DorsAttn_Post_38 - lookupLabel: 646 - originalLookupLabel: 646 - center: - x: 14.0 - y: -64.0 - z: 66.0 - color: '#007912' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_39: - name: 7Networks_RH_DorsAttn_Post_39 - lookupLabel: 647 - originalLookupLabel: 647 - center: - x: 30.0 - y: -49.0 - z: 69.0 - color: '#007913' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_40: - name: 7Networks_RH_DorsAttn_Post_40 - lookupLabel: 648 - originalLookupLabel: 648 - center: - x: 22.0 - y: -55.0 - z: 70.0 - color: '#007914' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_41: - name: 7Networks_RH_DorsAttn_Post_41 - lookupLabel: 649 - originalLookupLabel: 649 - center: - x: 8.0 - y: -48.0 - z: 69.0 - color: '#007915' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_Post_42: - name: 7Networks_RH_DorsAttn_Post_42 - lookupLabel: 650 - originalLookupLabel: 650 - center: - x: 14.0 - y: -53.0 - z: 69.0 - color: '#007916' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_1: - name: 7Networks_RH_DorsAttn_FEF_1 - lookupLabel: 651 - originalLookupLabel: 651 - center: - x: 41.0 - y: -3.0 - z: 50.0 - color: '#01760d' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_2: - name: 7Networks_RH_DorsAttn_FEF_2 - lookupLabel: 652 - originalLookupLabel: 652 - center: - x: 30.0 - y: -2.0 - z: 50.0 - color: '#01760f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_3: - name: 7Networks_RH_DorsAttn_FEF_3 - lookupLabel: 653 - originalLookupLabel: 653 - center: - x: 24.0 - y: 7.0 - z: 55.0 - color: '#017610' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_4: - name: 7Networks_RH_DorsAttn_FEF_4 - lookupLabel: 654 - originalLookupLabel: 654 - center: - x: 33.0 - y: -8.0 - z: 59.0 - color: '#017611' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_5: - name: 7Networks_RH_DorsAttn_FEF_5 - lookupLabel: 655 - originalLookupLabel: 655 - center: - x: 26.0 - y: -7.0 - z: 53.0 - color: '#017612' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_FEF_6: - name: 7Networks_RH_DorsAttn_FEF_6 - lookupLabel: 656 - originalLookupLabel: 656 - center: - x: 25.0 - y: -3.0 - z: 63.0 - color: '#017613' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_PrCv_1: - name: 7Networks_RH_DorsAttn_PrCv_1 - lookupLabel: 657 - originalLookupLabel: 657 - center: - x: 48.0 - y: 10.0 - z: 21.0 - color: '#017614' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_PrCv_2: - name: 7Networks_RH_DorsAttn_PrCv_2 - lookupLabel: 658 - originalLookupLabel: 658 - center: - x: 57.0 - y: 10.0 - z: 27.0 - color: '#017615' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_PrCv_3: - name: 7Networks_RH_DorsAttn_PrCv_3 - lookupLabel: 659 - originalLookupLabel: 659 - center: - x: 43.0 - y: 6.0 - z: 29.0 - color: '#017616' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_DorsAttn_PrCv_4: - name: 7Networks_RH_DorsAttn_PrCv_4 - lookupLabel: 660 - originalLookupLabel: 660 - center: - x: 53.0 - y: 5.0 - z: 37.0 - color: '#01770f' - hemisphere: right - hasParent: - - RH_DorsAttn - 7Networks_RH_SalVentAttn_TempOccPar_1: - name: 7Networks_RH_SalVentAttn_TempOccPar_1 - lookupLabel: 661 - originalLookupLabel: 661 - center: - x: 60.0 - y: -46.0 - z: 6.0 - color: '#c53af6' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_2: - name: 7Networks_RH_SalVentAttn_TempOccPar_2 - lookupLabel: 662 - originalLookupLabel: 662 - center: - x: 52.0 - y: -43.0 - z: 12.0 - color: '#c53af7' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_3: - name: 7Networks_RH_SalVentAttn_TempOccPar_3 - lookupLabel: 663 - originalLookupLabel: 663 - center: - x: 55.0 - y: -54.0 - z: 11.0 - color: '#c53af8' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_4: - name: 7Networks_RH_SalVentAttn_TempOccPar_4 - lookupLabel: 664 - originalLookupLabel: 664 - center: - x: 63.0 - y: -38.0 - z: 15.0 - color: '#c53af9' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_5: - name: 7Networks_RH_SalVentAttn_TempOccPar_5 - lookupLabel: 665 - originalLookupLabel: 665 - center: - x: 56.0 - y: -40.0 - z: 21.0 - color: '#c53afa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_6: - name: 7Networks_RH_SalVentAttn_TempOccPar_6 - lookupLabel: 666 - originalLookupLabel: 666 - center: - x: 62.0 - y: -32.0 - z: 22.0 - color: '#c53afc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_7: - name: 7Networks_RH_SalVentAttn_TempOccPar_7 - lookupLabel: 667 - originalLookupLabel: 667 - center: - x: 50.0 - y: -29.0 - z: 26.0 - color: '#c53afd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_8: - name: 7Networks_RH_SalVentAttn_TempOccPar_8 - lookupLabel: 668 - originalLookupLabel: 668 - center: - x: 65.0 - y: -39.0 - z: 26.0 - color: '#c53afe' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_9: - name: 7Networks_RH_SalVentAttn_TempOccPar_9 - lookupLabel: 669 - originalLookupLabel: 669 - center: - x: 61.0 - y: -22.0 - z: 22.0 - color: '#c53aff' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_10: - name: 7Networks_RH_SalVentAttn_TempOccPar_10 - lookupLabel: 670 - originalLookupLabel: 670 - center: - x: 57.0 - y: -28.0 - z: 33.0 - color: '#c233fa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_11: - name: 7Networks_RH_SalVentAttn_TempOccPar_11 - lookupLabel: 671 - originalLookupLabel: 671 - center: - x: 64.0 - y: -30.0 - z: 34.0 - color: '#c233fb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_12: - name: 7Networks_RH_SalVentAttn_TempOccPar_12 - lookupLabel: 672 - originalLookupLabel: 672 - center: - x: 64.0 - y: -24.0 - z: 40.0 - color: '#c234f4' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_TempOccPar_13: - name: 7Networks_RH_SalVentAttn_TempOccPar_13 - lookupLabel: 673 - originalLookupLabel: 673 - center: - x: 62.0 - y: -34.0 - z: 45.0 - color: '#c234f5' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_PrC_1: - name: 7Networks_RH_SalVentAttn_PrC_1 - lookupLabel: 674 - originalLookupLabel: 674 - center: - x: 53.0 - y: 0.0 - z: 47.0 - color: '#c53bfb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_1: - name: 7Networks_RH_SalVentAttn_FrOperIns_1 - lookupLabel: 675 - originalLookupLabel: 675 - center: - x: 38.0 - y: 7.0 - z: -15.0 - color: '#c53afb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_2: - name: 7Networks_RH_SalVentAttn_FrOperIns_2 - lookupLabel: 676 - originalLookupLabel: 676 - center: - x: 46.0 - y: 7.0 - z: -15.0 - color: '#c53bf4' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_3: - name: 7Networks_RH_SalVentAttn_FrOperIns_3 - lookupLabel: 677 - originalLookupLabel: 677 - center: - x: 40.0 - y: 2.0 - z: -11.0 - color: '#c53bf5' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_4: - name: 7Networks_RH_SalVentAttn_FrOperIns_4 - lookupLabel: 678 - originalLookupLabel: 678 - center: - x: 41.0 - y: -7.0 - z: -8.0 - color: '#c53bf6' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_5: - name: 7Networks_RH_SalVentAttn_FrOperIns_5 - lookupLabel: 679 - originalLookupLabel: 679 - center: - x: 40.0 - y: 9.0 - z: -2.0 - color: '#c53bf7' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_6: - name: 7Networks_RH_SalVentAttn_FrOperIns_6 - lookupLabel: 680 - originalLookupLabel: 680 - center: - x: 34.0 - y: 29.0 - z: 0.0 - color: '#c53bf8' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_7: - name: 7Networks_RH_SalVentAttn_FrOperIns_7 - lookupLabel: 681 - originalLookupLabel: 681 - center: - x: 32.0 - y: 20.0 - z: 5.0 - color: '#c53bf9' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_8: - name: 7Networks_RH_SalVentAttn_FrOperIns_8 - lookupLabel: 682 - originalLookupLabel: 682 - center: - x: 40.0 - y: -12.0 - z: 0.0 - color: '#c53bfa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_9: - name: 7Networks_RH_SalVentAttn_FrOperIns_9 - lookupLabel: 683 - originalLookupLabel: 683 - center: - x: 38.0 - y: 1.0 - z: 6.0 - color: '#c53bfc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_10: - name: 7Networks_RH_SalVentAttn_FrOperIns_10 - lookupLabel: 684 - originalLookupLabel: 684 - center: - x: 39.0 - y: 25.0 - z: 6.0 - color: '#c53bfd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_11: - name: 7Networks_RH_SalVentAttn_FrOperIns_11 - lookupLabel: 685 - originalLookupLabel: 685 - center: - x: 35.0 - y: 16.0 - z: 10.0 - color: '#c53bfe' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_12: - name: 7Networks_RH_SalVentAttn_FrOperIns_12 - lookupLabel: 686 - originalLookupLabel: 686 - center: - x: 47.0 - y: 24.0 - z: 2.0 - color: '#c53bff' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_13: - name: 7Networks_RH_SalVentAttn_FrOperIns_13 - lookupLabel: 687 - originalLookupLabel: 687 - center: - x: 36.0 - y: 5.0 - z: 12.0 - color: '#c234fa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_14: - name: 7Networks_RH_SalVentAttn_FrOperIns_14 - lookupLabel: 688 - originalLookupLabel: 688 - center: - x: 45.0 - y: 17.0 - z: 3.0 - color: '#c234fb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_15: - name: 7Networks_RH_SalVentAttn_FrOperIns_15 - lookupLabel: 689 - originalLookupLabel: 689 - center: - x: 42.0 - y: 10.0 - z: 7.0 - color: '#c235f4' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_16: - name: 7Networks_RH_SalVentAttn_FrOperIns_16 - lookupLabel: 690 - originalLookupLabel: 690 - center: - x: 49.0 - y: 9.0 - z: 0.0 - color: '#c235f5' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_17: - name: 7Networks_RH_SalVentAttn_FrOperIns_17 - lookupLabel: 691 - originalLookupLabel: 691 - center: - x: 46.0 - y: -2.0 - z: 8.0 - color: '#c235f6' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_18: - name: 7Networks_RH_SalVentAttn_FrOperIns_18 - lookupLabel: 692 - originalLookupLabel: 692 - center: - x: 56.0 - y: 3.0 - z: 5.0 - color: '#c235f7' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_19: - name: 7Networks_RH_SalVentAttn_FrOperIns_19 - lookupLabel: 693 - originalLookupLabel: 693 - center: - x: 54.0 - y: 10.0 - z: 12.0 - color: '#c235f8' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_FrOperIns_20: - name: 7Networks_RH_SalVentAttn_FrOperIns_20 - lookupLabel: 694 - originalLookupLabel: 694 - center: - x: 61.0 - y: 9.0 - z: 16.0 - color: '#c235f9' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_PFCl_1: - name: 7Networks_RH_SalVentAttn_PFCl_1 - lookupLabel: 695 - originalLookupLabel: 695 - center: - x: 28.0 - y: 45.0 - z: 32.0 - color: '#c439fb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_1: - name: 7Networks_RH_SalVentAttn_Med_1 - lookupLabel: 696 - originalLookupLabel: 696 - center: - x: 5.0 - y: 22.0 - z: 28.0 - color: '#c438f8' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_2: - name: 7Networks_RH_SalVentAttn_Med_2 - lookupLabel: 697 - originalLookupLabel: 697 - center: - x: 4.0 - y: 8.0 - z: 35.0 - color: '#c438f9' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_3: - name: 7Networks_RH_SalVentAttn_Med_3 - lookupLabel: 698 - originalLookupLabel: 698 - center: - x: 4.0 - y: -12.0 - z: 37.0 - color: '#c439f2' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_4: - name: 7Networks_RH_SalVentAttn_Med_4 - lookupLabel: 699 - originalLookupLabel: 699 - center: - x: 9.0 - y: 25.0 - z: 37.0 - color: '#c439f3' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_5: - name: 7Networks_RH_SalVentAttn_Med_5 - lookupLabel: 700 - originalLookupLabel: 700 - center: - x: 9.0 - y: 14.0 - z: 39.0 - color: '#c439f4' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_6: - name: 7Networks_RH_SalVentAttn_Med_6 - lookupLabel: 701 - originalLookupLabel: 701 - center: - x: 9.0 - y: -27.0 - z: 41.0 - color: '#c439f5' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_7: - name: 7Networks_RH_SalVentAttn_Med_7 - lookupLabel: 702 - originalLookupLabel: 702 - center: - x: 10.0 - y: -37.0 - z: 44.0 - color: '#c439f6' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_8: - name: 7Networks_RH_SalVentAttn_Med_8 - lookupLabel: 703 - originalLookupLabel: 703 - center: - x: 7.0 - y: 16.0 - z: 49.0 - color: '#c439f7' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_9: - name: 7Networks_RH_SalVentAttn_Med_9 - lookupLabel: 704 - originalLookupLabel: 704 - center: - x: 8.0 - y: 5.0 - z: 48.0 - color: '#c439f8' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_10: - name: 7Networks_RH_SalVentAttn_Med_10 - lookupLabel: 705 - originalLookupLabel: 705 - center: - x: 15.0 - y: -29.0 - z: 40.0 - color: '#c439fa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_11: - name: 7Networks_RH_SalVentAttn_Med_11 - lookupLabel: 706 - originalLookupLabel: 706 - center: - x: 10.0 - y: -41.0 - z: 48.0 - color: '#c439fc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_12: - name: 7Networks_RH_SalVentAttn_Med_12 - lookupLabel: 707 - originalLookupLabel: 707 - center: - x: 16.0 - y: -35.0 - z: 47.0 - color: '#c439fd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_13: - name: 7Networks_RH_SalVentAttn_Med_13 - lookupLabel: 708 - originalLookupLabel: 708 - center: - x: 6.0 - y: -44.0 - z: 53.0 - color: '#c439fe' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_14: - name: 7Networks_RH_SalVentAttn_Med_14 - lookupLabel: 709 - originalLookupLabel: 709 - center: - x: 5.0 - y: 10.0 - z: 58.0 - color: '#c439ff' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_15: - name: 7Networks_RH_SalVentAttn_Med_15 - lookupLabel: 710 - originalLookupLabel: 710 - center: - x: 14.0 - y: -41.0 - z: 54.0 - color: '#c43af9' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_16: - name: 7Networks_RH_SalVentAttn_Med_16 - lookupLabel: 711 - originalLookupLabel: 711 - center: - x: 12.0 - y: -46.0 - z: 60.0 - color: '#c43afa' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_17: - name: 7Networks_RH_SalVentAttn_Med_17 - lookupLabel: 712 - originalLookupLabel: 712 - center: - x: 7.0 - y: 12.0 - z: 68.0 - color: '#c43afb' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_18: - name: 7Networks_RH_SalVentAttn_Med_18 - lookupLabel: 713 - originalLookupLabel: 713 - center: - x: 6.0 - y: -1.0 - z: 66.0 - color: '#c43afc' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_19: - name: 7Networks_RH_SalVentAttn_Med_19 - lookupLabel: 714 - originalLookupLabel: 714 - center: - x: 15.0 - y: 7.0 - z: 69.0 - color: '#c43afd' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_20: - name: 7Networks_RH_SalVentAttn_Med_20 - lookupLabel: 715 - originalLookupLabel: 715 - center: - x: 19.0 - y: -3.0 - z: 70.0 - color: '#c43afe' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_SalVentAttn_Med_21: - name: 7Networks_RH_SalVentAttn_Med_21 - lookupLabel: 716 - originalLookupLabel: 716 - center: - x: 12.0 - y: -3.0 - z: 72.0 - color: '#c43aff' - hemisphere: right - hasParent: - - RH_SalVentAttn - 7Networks_RH_Limbic_OFC_1: - name: 7Networks_RH_Limbic_OFC_1 - lookupLabel: 717 - originalLookupLabel: 717 - center: - x: 21.0 - y: 14.0 - z: -22.0 - color: '#dcf99f' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_2: - name: 7Networks_RH_Limbic_OFC_2 - lookupLabel: 718 - originalLookupLabel: 718 - center: - x: 14.0 - y: 16.0 - z: -17.0 - color: '#dcf9a0' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_3: - name: 7Networks_RH_Limbic_OFC_3 - lookupLabel: 719 - originalLookupLabel: 719 - center: - x: 15.0 - y: 27.0 - z: -24.0 - color: '#dcf9a1' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_4: - name: 7Networks_RH_Limbic_OFC_4 - lookupLabel: 720 - originalLookupLabel: 720 - center: - x: 10.0 - y: 28.0 - z: -20.0 - color: '#dcf9a2' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_5: - name: 7Networks_RH_Limbic_OFC_5 - lookupLabel: 721 - originalLookupLabel: 721 - center: - x: 10.0 - y: 42.0 - z: -23.0 - color: '#dcf9a3' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_6: - name: 7Networks_RH_Limbic_OFC_6 - lookupLabel: 722 - originalLookupLabel: 722 - center: - x: 23.0 - y: 28.0 - z: -19.0 - color: '#dcf9a5' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_7: - name: 7Networks_RH_Limbic_OFC_7 - lookupLabel: 723 - originalLookupLabel: 723 - center: - x: 17.0 - y: 47.0 - z: -19.0 - color: '#dcf9a6' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_8: - name: 7Networks_RH_Limbic_OFC_8 - lookupLabel: 724 - originalLookupLabel: 724 - center: - x: 5.0 - y: 20.0 - z: -20.0 - color: '#dcf9a7' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_9: - name: 7Networks_RH_Limbic_OFC_9 - lookupLabel: 725 - originalLookupLabel: 725 - center: - x: 3.0 - y: 41.0 - z: -25.0 - color: '#dcf9a8' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_10: - name: 7Networks_RH_Limbic_OFC_10 - lookupLabel: 726 - originalLookupLabel: 726 - center: - x: 7.0 - y: 57.0 - z: -21.0 - color: '#dcf9a9' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_11: - name: 7Networks_RH_Limbic_OFC_11 - lookupLabel: 727 - originalLookupLabel: 727 - center: - x: 20.0 - y: 62.0 - z: -14.0 - color: '#dcf9aa' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_12: - name: 7Networks_RH_Limbic_OFC_12 - lookupLabel: 728 - originalLookupLabel: 728 - center: - x: 4.0 - y: 25.0 - z: -11.0 - color: '#dcf9ab' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_OFC_13: - name: 7Networks_RH_Limbic_OFC_13 - lookupLabel: 729 - originalLookupLabel: 729 - center: - x: 12.0 - y: 66.0 - z: -7.0 - color: '#dcfaa4' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_1: - name: 7Networks_RH_Limbic_TempPole_1 - lookupLabel: 730 - originalLookupLabel: 730 - center: - x: 36.0 - y: 0.0 - z: -45.0 - color: '#dcf99e' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_2: - name: 7Networks_RH_Limbic_TempPole_2 - lookupLabel: 731 - originalLookupLabel: 731 - center: - x: 24.0 - y: 6.0 - z: -43.0 - color: '#dcf9a4' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_3: - name: 7Networks_RH_Limbic_TempPole_3 - lookupLabel: 732 - originalLookupLabel: 732 - center: - x: 33.0 - y: 14.0 - z: -40.0 - color: '#dcf9ac' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_4: - name: 7Networks_RH_Limbic_TempPole_4 - lookupLabel: 733 - originalLookupLabel: 733 - center: - x: 40.0 - y: -10.0 - z: -35.0 - color: '#dcfaa5' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_5: - name: 7Networks_RH_Limbic_TempPole_5 - lookupLabel: 734 - originalLookupLabel: 734 - center: - x: 29.0 - y: -7.0 - z: -36.0 - color: '#dcfaa6' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_6: - name: 7Networks_RH_Limbic_TempPole_6 - lookupLabel: 735 - originalLookupLabel: 735 - center: - x: 51.0 - y: -7.0 - z: -38.0 - color: '#dcfaa7' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_7: - name: 7Networks_RH_Limbic_TempPole_7 - lookupLabel: 736 - originalLookupLabel: 736 - center: - x: 20.0 - y: 0.0 - z: -32.0 - color: '#dcfaa8' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_8: - name: 7Networks_RH_Limbic_TempPole_8 - lookupLabel: 737 - originalLookupLabel: 737 - center: - x: 23.0 - y: 5.0 - z: -29.0 - color: '#dcfaa9' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_9: - name: 7Networks_RH_Limbic_TempPole_9 - lookupLabel: 738 - originalLookupLabel: 738 - center: - x: 35.0 - y: -17.0 - z: -31.0 - color: '#dcfaaa' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_10: - name: 7Networks_RH_Limbic_TempPole_10 - lookupLabel: 739 - originalLookupLabel: 739 - center: - x: 52.0 - y: -21.0 - z: -30.0 - color: '#dcfaab' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_11: - name: 7Networks_RH_Limbic_TempPole_11 - lookupLabel: 740 - originalLookupLabel: 740 - center: - x: 42.0 - y: -22.0 - z: -25.0 - color: '#dcfaac' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_12: - name: 7Networks_RH_Limbic_TempPole_12 - lookupLabel: 741 - originalLookupLabel: 741 - center: - x: 31.0 - y: 14.0 - z: -31.0 - color: '#dcfba5' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_13: - name: 7Networks_RH_Limbic_TempPole_13 - lookupLabel: 742 - originalLookupLabel: 742 - center: - x: 40.0 - y: 22.0 - z: -31.0 - color: '#dcfba6' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_14: - name: 7Networks_RH_Limbic_TempPole_14 - lookupLabel: 743 - originalLookupLabel: 743 - center: - x: 22.0 - y: -14.0 - z: -30.0 - color: '#dcfba7' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_15: - name: 7Networks_RH_Limbic_TempPole_15 - lookupLabel: 744 - originalLookupLabel: 744 - center: - x: 45.0 - y: -31.0 - z: -23.0 - color: '#dcfba8' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_16: - name: 7Networks_RH_Limbic_TempPole_16 - lookupLabel: 745 - originalLookupLabel: 745 - center: - x: 39.0 - y: 11.0 - z: -24.0 - color: '#dcfba9' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_17: - name: 7Networks_RH_Limbic_TempPole_17 - lookupLabel: 746 - originalLookupLabel: 746 - center: - x: 22.0 - y: -23.0 - z: -23.0 - color: '#dcfbaa' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Limbic_TempPole_18: - name: 7Networks_RH_Limbic_TempPole_18 - lookupLabel: 747 - originalLookupLabel: 747 - center: - x: 43.0 - y: 12.0 - z: -21.0 - color: '#dcfbab' - hemisphere: right - hasParent: - - RH_Limbic - 7Networks_RH_Cont_Par_1: - name: 7Networks_RH_Cont_Par_1 - lookupLabel: 748 - originalLookupLabel: 748 - center: - x: 60.0 - y: -40.0 - z: 36.0 - color: '#e6931e' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_2: - name: 7Networks_RH_Cont_Par_2 - lookupLabel: 749 - originalLookupLabel: 749 - center: - x: 60.0 - y: -45.0 - z: 41.0 - color: '#e6931f' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_3: - name: 7Networks_RH_Cont_Par_3 - lookupLabel: 750 - originalLookupLabel: 750 - center: - x: 55.0 - y: -51.0 - z: 47.0 - color: '#e69320' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_4: - name: 7Networks_RH_Cont_Par_4 - lookupLabel: 751 - originalLookupLabel: 751 - center: - x: 56.0 - y: -38.0 - z: 47.0 - color: '#e69321' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_5: - name: 7Networks_RH_Cont_Par_5 - lookupLabel: 752 - originalLookupLabel: 752 - center: - x: 37.0 - y: -73.0 - z: 47.0 - color: '#e69323' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_6: - name: 7Networks_RH_Cont_Par_6 - lookupLabel: 753 - originalLookupLabel: 753 - center: - x: 52.0 - y: -43.0 - z: 49.0 - color: '#e69324' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_7: - name: 7Networks_RH_Cont_Par_7 - lookupLabel: 754 - originalLookupLabel: 754 - center: - x: 44.0 - y: -62.0 - z: 53.0 - color: '#e69325' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_8: - name: 7Networks_RH_Cont_Par_8 - lookupLabel: 755 - originalLookupLabel: 755 - center: - x: 52.0 - y: -34.0 - z: 50.0 - color: '#e69326' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_9: - name: 7Networks_RH_Cont_Par_9 - lookupLabel: 756 - originalLookupLabel: 756 - center: - x: 45.0 - y: -52.0 - z: 54.0 - color: '#e69327' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_10: - name: 7Networks_RH_Cont_Par_10 - lookupLabel: 757 - originalLookupLabel: 757 - center: - x: 46.0 - y: -46.0 - z: 47.0 - color: '#e69328' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_11: - name: 7Networks_RH_Cont_Par_11 - lookupLabel: 758 - originalLookupLabel: 758 - center: - x: 38.0 - y: -61.0 - z: 47.0 - color: '#e69329' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Par_12: - name: 7Networks_RH_Cont_Par_12 - lookupLabel: 759 - originalLookupLabel: 759 - center: - x: 40.0 - y: -52.0 - z: 43.0 - color: '#e69422' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Temp_1: - name: 7Networks_RH_Cont_Temp_1 - lookupLabel: 760 - originalLookupLabel: 760 - center: - x: 60.0 - y: -26.0 - z: -24.0 - color: '#e69322' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Temp_2: - name: 7Networks_RH_Cont_Temp_2 - lookupLabel: 761 - originalLookupLabel: 761 - center: - x: 60.0 - y: -38.0 - z: -20.0 - color: '#e69421' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Temp_3: - name: 7Networks_RH_Cont_Temp_3 - lookupLabel: 762 - originalLookupLabel: 762 - center: - x: 65.0 - y: -33.0 - z: -13.0 - color: '#e69423' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Temp_4: - name: 7Networks_RH_Cont_Temp_4 - lookupLabel: 763 - originalLookupLabel: 763 - center: - x: 62.0 - y: -44.0 - z: -14.0 - color: '#e69424' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Temp_5: - name: 7Networks_RH_Cont_Temp_5 - lookupLabel: 764 - originalLookupLabel: 764 - center: - x: 66.0 - y: -41.0 - z: -6.0 - color: '#e69425' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Temp_6: - name: 7Networks_RH_Cont_Temp_6 - lookupLabel: 765 - originalLookupLabel: 765 - center: - x: 64.0 - y: -50.0 - z: 2.0 - color: '#e69426' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCv_1: - name: 7Networks_RH_Cont_PFCv_1 - lookupLabel: 766 - originalLookupLabel: 766 - center: - x: 33.0 - y: 19.0 - z: -10.0 - color: '#e59423' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCv_2: - name: 7Networks_RH_Cont_PFCv_2 - lookupLabel: 767 - originalLookupLabel: 767 - center: - x: 41.0 - y: 24.0 - z: -12.0 - color: '#e59424' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCv_3: - name: 7Networks_RH_Cont_PFCv_3 - lookupLabel: 768 - originalLookupLabel: 768 - center: - x: 34.0 - y: 23.0 - z: -3.0 - color: '#e59425' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_1: - name: 7Networks_RH_Cont_PFCl_1 - lookupLabel: 769 - originalLookupLabel: 769 - center: - x: 25.0 - y: 40.0 - z: -16.0 - color: '#e59221' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_2: - name: 7Networks_RH_Cont_PFCl_2 - lookupLabel: 770 - originalLookupLabel: 770 - center: - x: 26.0 - y: 51.0 - z: -14.0 - color: '#e5931a' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_3: - name: 7Networks_RH_Cont_PFCl_3 - lookupLabel: 771 - originalLookupLabel: 771 - center: - x: 36.0 - y: 55.0 - z: -12.0 - color: '#e5931b' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_4: - name: 7Networks_RH_Cont_PFCl_4 - lookupLabel: 772 - originalLookupLabel: 772 - center: - x: 44.0 - y: 46.0 - z: -14.0 - color: '#e5931c' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_5: - name: 7Networks_RH_Cont_PFCl_5 - lookupLabel: 773 - originalLookupLabel: 773 - center: - x: 51.0 - y: 40.0 - z: -8.0 - color: '#e5931d' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_6: - name: 7Networks_RH_Cont_PFCl_6 - lookupLabel: 774 - originalLookupLabel: 774 - center: - x: 30.0 - y: 59.0 - z: -4.0 - color: '#e5931e' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_7: - name: 7Networks_RH_Cont_PFCl_7 - lookupLabel: 775 - originalLookupLabel: 775 - center: - x: 42.0 - y: 51.0 - z: -3.0 - color: '#e5931f' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_8: - name: 7Networks_RH_Cont_PFCl_8 - lookupLabel: 776 - originalLookupLabel: 776 - center: - x: 23.0 - y: 62.0 - z: 1.0 - color: '#e59320' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_9: - name: 7Networks_RH_Cont_PFCl_9 - lookupLabel: 777 - originalLookupLabel: 777 - center: - x: 49.0 - y: 42.0 - z: 1.0 - color: '#e59321' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_10: - name: 7Networks_RH_Cont_PFCl_10 - lookupLabel: 778 - originalLookupLabel: 778 - center: - x: 33.0 - y: 56.0 - z: 9.0 - color: '#e5941a' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_11: - name: 7Networks_RH_Cont_PFCl_11 - lookupLabel: 779 - originalLookupLabel: 779 - center: - x: 41.0 - y: 50.0 - z: 7.0 - color: '#e5941b' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_12: - name: 7Networks_RH_Cont_PFCl_12 - lookupLabel: 780 - originalLookupLabel: 780 - center: - x: 45.0 - y: 39.0 - z: 10.0 - color: '#e5941c' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_13: - name: 7Networks_RH_Cont_PFCl_13 - lookupLabel: 781 - originalLookupLabel: 781 - center: - x: 55.0 - y: 16.0 - z: 12.0 - color: '#e5941d' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_14: - name: 7Networks_RH_Cont_PFCl_14 - lookupLabel: 782 - originalLookupLabel: 782 - center: - x: 25.0 - y: 58.0 - z: 13.0 - color: '#e5941e' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_15: - name: 7Networks_RH_Cont_PFCl_15 - lookupLabel: 783 - originalLookupLabel: 783 - center: - x: 52.0 - y: 29.0 - z: 18.0 - color: '#e5941f' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_16: - name: 7Networks_RH_Cont_PFCl_16 - lookupLabel: 784 - originalLookupLabel: 784 - center: - x: 43.0 - y: 45.0 - z: 18.0 - color: '#e59420' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_17: - name: 7Networks_RH_Cont_PFCl_17 - lookupLabel: 785 - originalLookupLabel: 785 - center: - x: 50.0 - y: 18.0 - z: 22.0 - color: '#e59422' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_18: - name: 7Networks_RH_Cont_PFCl_18 - lookupLabel: 786 - originalLookupLabel: 786 - center: - x: 44.0 - y: 33.0 - z: 19.0 - color: '#e59426' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_19: - name: 7Networks_RH_Cont_PFCl_19 - lookupLabel: 787 - originalLookupLabel: 787 - center: - x: 32.0 - y: 48.0 - z: 21.0 - color: '#e59427' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_20: - name: 7Networks_RH_Cont_PFCl_20 - lookupLabel: 788 - originalLookupLabel: 788 - center: - x: 25.0 - y: 56.0 - z: 25.0 - color: '#e59428' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_21: - name: 7Networks_RH_Cont_PFCl_21 - lookupLabel: 789 - originalLookupLabel: 789 - center: - x: 46.0 - y: 25.0 - z: 26.0 - color: '#e59521' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_22: - name: 7Networks_RH_Cont_PFCl_22 - lookupLabel: 790 - originalLookupLabel: 790 - center: - x: 46.0 - y: 34.0 - z: 28.0 - color: '#e59522' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_23: - name: 7Networks_RH_Cont_PFCl_23 - lookupLabel: 791 - originalLookupLabel: 791 - center: - x: 38.0 - y: 41.0 - z: 29.0 - color: '#e59523' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_24: - name: 7Networks_RH_Cont_PFCl_24 - lookupLabel: 792 - originalLookupLabel: 792 - center: - x: 41.0 - y: 17.0 - z: 28.0 - color: '#e59524' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_25: - name: 7Networks_RH_Cont_PFCl_25 - lookupLabel: 793 - originalLookupLabel: 793 - center: - x: 51.0 - y: 24.0 - z: 33.0 - color: '#e59525' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_26: - name: 7Networks_RH_Cont_PFCl_26 - lookupLabel: 794 - originalLookupLabel: 794 - center: - x: 41.0 - y: 31.0 - z: 37.0 - color: '#e59526' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_27: - name: 7Networks_RH_Cont_PFCl_27 - lookupLabel: 795 - originalLookupLabel: 795 - center: - x: 38.0 - y: 10.0 - z: 35.0 - color: '#e59527' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_28: - name: 7Networks_RH_Cont_PFCl_28 - lookupLabel: 796 - originalLookupLabel: 796 - center: - x: 33.0 - y: 39.0 - z: 40.0 - color: '#e59528' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_29: - name: 7Networks_RH_Cont_PFCl_29 - lookupLabel: 797 - originalLookupLabel: 797 - center: - x: 44.0 - y: 19.0 - z: 44.0 - color: '#e59621' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_30: - name: 7Networks_RH_Cont_PFCl_30 - lookupLabel: 798 - originalLookupLabel: 798 - center: - x: 35.0 - y: 32.0 - z: 45.0 - color: '#e59622' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_31: - name: 7Networks_RH_Cont_PFCl_31 - lookupLabel: 799 - originalLookupLabel: 799 - center: - x: 45.0 - y: 6.0 - z: 47.0 - color: '#e59623' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_32: - name: 7Networks_RH_Cont_PFCl_32 - lookupLabel: 800 - originalLookupLabel: 800 - center: - x: 31.0 - y: 24.0 - z: 51.0 - color: '#e59624' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_33: - name: 7Networks_RH_Cont_PFCl_33 - lookupLabel: 801 - originalLookupLabel: 801 - center: - x: 39.0 - y: 10.0 - z: 57.0 - color: '#e59625' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_34: - name: 7Networks_RH_Cont_PFCl_34 - lookupLabel: 802 - originalLookupLabel: 802 - center: - x: 30.0 - y: 11.0 - z: 53.0 - color: '#e59626' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_35: - name: 7Networks_RH_Cont_PFCl_35 - lookupLabel: 803 - originalLookupLabel: 803 - center: - x: 23.0 - y: 19.0 - z: 61.0 - color: '#e59627' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCl_36: - name: 7Networks_RH_Cont_PFCl_36 - lookupLabel: 804 - originalLookupLabel: 804 - center: - x: 24.0 - y: 8.0 - z: 65.0 - color: '#e59628' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_pCun_1: - name: 7Networks_RH_Cont_pCun_1 - lookupLabel: 805 - originalLookupLabel: 805 - center: - x: 15.0 - y: -66.0 - z: 33.0 - color: '#e59323' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_pCun_2: - name: 7Networks_RH_Cont_pCun_2 - lookupLabel: 806 - originalLookupLabel: 806 - center: - x: 14.0 - y: -74.0 - z: 43.0 - color: '#e59324' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_pCun_3: - name: 7Networks_RH_Cont_pCun_3 - lookupLabel: 807 - originalLookupLabel: 807 - center: - x: 6.0 - y: -75.0 - z: 47.0 - color: '#e59325' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Cing_1: - name: 7Networks_RH_Cont_Cing_1 - lookupLabel: 808 - originalLookupLabel: 808 - center: - x: 7.0 - y: -33.0 - z: 27.0 - color: '#e59322' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Cing_2: - name: 7Networks_RH_Cont_Cing_2 - lookupLabel: 809 - originalLookupLabel: 809 - center: - x: 6.0 - y: 10.0 - z: 27.0 - color: '#e59326' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Cing_3: - name: 7Networks_RH_Cont_Cing_3 - lookupLabel: 810 - originalLookupLabel: 810 - center: - x: 5.0 - y: -18.0 - z: 30.0 - color: '#e59327' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_Cing_4: - name: 7Networks_RH_Cont_Cing_4 - lookupLabel: 811 - originalLookupLabel: 811 - center: - x: 5.0 - y: -2.0 - z: 31.0 - color: '#e59328' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCmp_1: - name: 7Networks_RH_Cont_PFCmp_1 - lookupLabel: 812 - originalLookupLabel: 812 - center: - x: 8.0 - y: 35.0 - z: 20.0 - color: '#e69427' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCmp_2: - name: 7Networks_RH_Cont_PFCmp_2 - lookupLabel: 813 - originalLookupLabel: 813 - center: - x: 11.0 - y: 27.0 - z: 28.0 - color: '#e69428' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCmp_3: - name: 7Networks_RH_Cont_PFCmp_3 - lookupLabel: 814 - originalLookupLabel: 814 - center: - x: 7.0 - y: 35.0 - z: 32.0 - color: '#e69429' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCmp_4: - name: 7Networks_RH_Cont_PFCmp_4 - lookupLabel: 815 - originalLookupLabel: 815 - center: - x: 5.0 - y: 28.0 - z: 47.0 - color: '#e6942a' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Cont_PFCmp_5: - name: 7Networks_RH_Cont_PFCmp_5 - lookupLabel: 816 - originalLookupLabel: 816 - center: - x: 5.0 - y: 19.0 - z: 60.0 - color: '#e6942b' - hemisphere: right - hasParent: - - RH_Cont - 7Networks_RH_Default_Par_1: - name: 7Networks_RH_Default_Par_1 - lookupLabel: 817 - originalLookupLabel: 817 - center: - x: 57.0 - y: -48.0 - z: 13.0 - color: '#cd3e47' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_2: - name: 7Networks_RH_Default_Par_2 - lookupLabel: 818 - originalLookupLabel: 818 - center: - x: 51.0 - y: -44.0 - z: 20.0 - color: '#cd3e48' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_3: - name: 7Networks_RH_Default_Par_3 - lookupLabel: 819 - originalLookupLabel: 819 - center: - x: 49.0 - y: -57.0 - z: 19.0 - color: '#cd3e49' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_4: - name: 7Networks_RH_Default_Par_4 - lookupLabel: 820 - originalLookupLabel: 820 - center: - x: 48.0 - y: -51.0 - z: 19.0 - color: '#cd3e4a' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_5: - name: 7Networks_RH_Default_Par_5 - lookupLabel: 821 - originalLookupLabel: 821 - center: - x: 56.0 - y: -48.0 - z: 22.0 - color: '#cd3e4b' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_6: - name: 7Networks_RH_Default_Par_6 - lookupLabel: 822 - originalLookupLabel: 822 - center: - x: 50.0 - y: -63.0 - z: 23.0 - color: '#cd3e4c' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_7: - name: 7Networks_RH_Default_Par_7 - lookupLabel: 823 - originalLookupLabel: 823 - center: - x: 44.0 - y: -56.0 - z: 28.0 - color: '#cd3e4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_8: - name: 7Networks_RH_Default_Par_8 - lookupLabel: 824 - originalLookupLabel: 824 - center: - x: 48.0 - y: -70.0 - z: 27.0 - color: '#cd3e4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_9: - name: 7Networks_RH_Default_Par_9 - lookupLabel: 825 - originalLookupLabel: 825 - center: - x: 54.0 - y: -54.0 - z: 25.0 - color: '#cd3e50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_10: - name: 7Networks_RH_Default_Par_10 - lookupLabel: 826 - originalLookupLabel: 826 - center: - x: 55.0 - y: -43.0 - z: 30.0 - color: '#cd3e51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_11: - name: 7Networks_RH_Default_Par_11 - lookupLabel: 827 - originalLookupLabel: 827 - center: - x: 55.0 - y: -49.0 - z: 32.0 - color: '#cd3e52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_12: - name: 7Networks_RH_Default_Par_12 - lookupLabel: 828 - originalLookupLabel: 828 - center: - x: 50.0 - y: -61.0 - z: 34.0 - color: '#cd3e53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_13: - name: 7Networks_RH_Default_Par_13 - lookupLabel: 829 - originalLookupLabel: 829 - center: - x: 57.0 - y: -55.0 - z: 34.0 - color: '#cd3e54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_14: - name: 7Networks_RH_Default_Par_14 - lookupLabel: 830 - originalLookupLabel: 830 - center: - x: 47.0 - y: -67.0 - z: 42.0 - color: '#cd3f4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Par_15: - name: 7Networks_RH_Default_Par_15 - lookupLabel: 831 - originalLookupLabel: 831 - center: - x: 50.0 - y: -58.0 - z: 45.0 - color: '#cd3f4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_1: - name: 7Networks_RH_Default_Temp_1 - lookupLabel: 832 - originalLookupLabel: 832 - center: - x: 46.0 - y: 9.0 - z: -37.0 - color: '#cd3d47' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_2: - name: 7Networks_RH_Default_Temp_2 - lookupLabel: 833 - originalLookupLabel: 833 - center: - x: 58.0 - y: -5.0 - z: -27.0 - color: '#cd3d48' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_3: - name: 7Networks_RH_Default_Temp_3 - lookupLabel: 834 - originalLookupLabel: 834 - center: - x: 52.0 - y: 9.0 - z: -27.0 - color: '#cd3d49' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_4: - name: 7Networks_RH_Default_Temp_4 - lookupLabel: 835 - originalLookupLabel: 835 - center: - x: 49.0 - y: 18.0 - z: -23.0 - color: '#cd3d4a' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_5: - name: 7Networks_RH_Default_Temp_5 - lookupLabel: 836 - originalLookupLabel: 836 - center: - x: 65.0 - y: -11.0 - z: -17.0 - color: '#cd3d4b' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_6: - name: 7Networks_RH_Default_Temp_6 - lookupLabel: 837 - originalLookupLabel: 837 - center: - x: 57.0 - y: -2.0 - z: -19.0 - color: '#cd3d4c' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_7: - name: 7Networks_RH_Default_Temp_7 - lookupLabel: 838 - originalLookupLabel: 838 - center: - x: 53.0 - y: 10.0 - z: -18.0 - color: '#cd3d4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_8: - name: 7Networks_RH_Default_Temp_8 - lookupLabel: 839 - originalLookupLabel: 839 - center: - x: 65.0 - y: -24.0 - z: -16.0 - color: '#cd3d4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_9: - name: 7Networks_RH_Default_Temp_9 - lookupLabel: 840 - originalLookupLabel: 840 - center: - x: 54.0 - y: 3.0 - z: -14.0 - color: '#cd3d50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_10: - name: 7Networks_RH_Default_Temp_10 - lookupLabel: 841 - originalLookupLabel: 841 - center: - x: 55.0 - y: -12.0 - z: -14.0 - color: '#cd3d51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_11: - name: 7Networks_RH_Default_Temp_11 - lookupLabel: 842 - originalLookupLabel: 842 - center: - x: 63.0 - y: -19.0 - z: -10.0 - color: '#cd3d52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_12: - name: 7Networks_RH_Default_Temp_12 - lookupLabel: 843 - originalLookupLabel: 843 - center: - x: 55.0 - y: -6.0 - z: -9.0 - color: '#cd3d53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_13: - name: 7Networks_RH_Default_Temp_13 - lookupLabel: 844 - originalLookupLabel: 844 - center: - x: 64.0 - y: -28.0 - z: -5.0 - color: '#cd3d54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_14: - name: 7Networks_RH_Default_Temp_14 - lookupLabel: 845 - originalLookupLabel: 845 - center: - x: 49.0 - y: -20.0 - z: -8.0 - color: '#cd3d55' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_15: - name: 7Networks_RH_Default_Temp_15 - lookupLabel: 846 - originalLookupLabel: 846 - center: - x: 51.0 - y: -31.0 - z: -4.0 - color: '#cd3e55' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_16: - name: 7Networks_RH_Default_Temp_16 - lookupLabel: 847 - originalLookupLabel: 847 - center: - x: 63.0 - y: -39.0 - z: 1.0 - color: '#cd3f4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_Temp_17: - name: 7Networks_RH_Default_Temp_17 - lookupLabel: 848 - originalLookupLabel: 848 - center: - x: 50.0 - y: -38.0 - z: 4.0 - color: '#cd3f50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_1: - name: 7Networks_RH_Default_PFCv_1 - lookupLabel: 849 - originalLookupLabel: 849 - center: - x: 29.0 - y: 19.0 - z: -20.0 - color: '#cd3d4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_2: - name: 7Networks_RH_Default_PFCv_2 - lookupLabel: 850 - originalLookupLabel: 850 - center: - x: 37.0 - y: 26.0 - z: -18.0 - color: '#cd3e4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_3: - name: 7Networks_RH_Default_PFCv_3 - lookupLabel: 851 - originalLookupLabel: 851 - center: - x: 36.0 - y: 37.0 - z: -13.0 - color: '#cd3f51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_4: - name: 7Networks_RH_Default_PFCv_4 - lookupLabel: 852 - originalLookupLabel: 852 - center: - x: 46.0 - y: 30.0 - z: -12.0 - color: '#cd3f52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_5: - name: 7Networks_RH_Default_PFCv_5 - lookupLabel: 853 - originalLookupLabel: 853 - center: - x: 48.0 - y: 31.0 - z: -4.0 - color: '#cd3f53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_6: - name: 7Networks_RH_Default_PFCv_6 - lookupLabel: 854 - originalLookupLabel: 854 - center: - x: 55.0 - y: 31.0 - z: 4.0 - color: '#cd3f54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCv_7: - name: 7Networks_RH_Default_PFCv_7 - lookupLabel: 855 - originalLookupLabel: 855 - center: - x: 55.0 - y: 22.0 - z: 8.0 - color: '#cd404d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_1: - name: 7Networks_RH_Default_PFCdPFCm_1 - lookupLabel: 856 - originalLookupLabel: 856 - center: - x: 5.0 - y: 41.0 - z: -13.0 - color: '#cc3d4b' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_2: - name: 7Networks_RH_Default_PFCdPFCm_2 - lookupLabel: 857 - originalLookupLabel: 857 - center: - x: 6.0 - y: 56.0 - z: -10.0 - color: '#cc3d4c' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_3: - name: 7Networks_RH_Default_PFCdPFCm_3 - lookupLabel: 858 - originalLookupLabel: 858 - center: - x: 5.0 - y: 34.0 - z: -6.0 - color: '#cc3d4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_4: - name: 7Networks_RH_Default_PFCdPFCm_4 - lookupLabel: 859 - originalLookupLabel: 859 - center: - x: 8.0 - y: 50.0 - z: -3.0 - color: '#cc3d4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_5: - name: 7Networks_RH_Default_PFCdPFCm_5 - lookupLabel: 860 - originalLookupLabel: 860 - center: - x: 7.0 - y: 65.0 - z: 3.0 - color: '#cc3e47' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_6: - name: 7Networks_RH_Default_PFCdPFCm_6 - lookupLabel: 861 - originalLookupLabel: 861 - center: - x: 7.0 - y: 41.0 - z: 1.0 - color: '#cc3e48' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_7: - name: 7Networks_RH_Default_PFCdPFCm_7 - lookupLabel: 862 - originalLookupLabel: 862 - center: - x: 18.0 - y: 67.0 - z: 11.0 - color: '#cc3e49' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_8: - name: 7Networks_RH_Default_PFCdPFCm_8 - lookupLabel: 863 - originalLookupLabel: 863 - center: - x: 7.0 - y: 54.0 - z: 10.0 - color: '#cc3e4a' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_9: - name: 7Networks_RH_Default_PFCdPFCm_9 - lookupLabel: 864 - originalLookupLabel: 864 - center: - x: 9.0 - y: 43.0 - z: 10.0 - color: '#cc3e4b' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_10: - name: 7Networks_RH_Default_PFCdPFCm_10 - lookupLabel: 865 - originalLookupLabel: 865 - center: - x: 6.0 - y: 32.0 - z: 12.0 - color: '#cc3e4c' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_11: - name: 7Networks_RH_Default_PFCdPFCm_11 - lookupLabel: 866 - originalLookupLabel: 866 - center: - x: 7.0 - y: 65.0 - z: 16.0 - color: '#cc3e4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_12: - name: 7Networks_RH_Default_PFCdPFCm_12 - lookupLabel: 867 - originalLookupLabel: 867 - center: - x: 15.0 - y: 62.0 - z: 23.0 - color: '#cc3e4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_13: - name: 7Networks_RH_Default_PFCdPFCm_13 - lookupLabel: 868 - originalLookupLabel: 868 - center: - x: 5.0 - y: 21.0 - z: 21.0 - color: '#cc3e50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_14: - name: 7Networks_RH_Default_PFCdPFCm_14 - lookupLabel: 869 - originalLookupLabel: 869 - center: - x: 7.0 - y: 45.0 - z: 22.0 - color: '#cc3e51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_15: - name: 7Networks_RH_Default_PFCdPFCm_15 - lookupLabel: 870 - originalLookupLabel: 870 - center: - x: 5.0 - y: 57.0 - z: 27.0 - color: '#cc3e52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_16: - name: 7Networks_RH_Default_PFCdPFCm_16 - lookupLabel: 871 - originalLookupLabel: 871 - center: - x: 17.0 - y: 52.0 - z: 36.0 - color: '#cc3e53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_17: - name: 7Networks_RH_Default_PFCdPFCm_17 - lookupLabel: 872 - originalLookupLabel: 872 - center: - x: 9.0 - y: 57.0 - z: 39.0 - color: '#cc3e54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_18: - name: 7Networks_RH_Default_PFCdPFCm_18 - lookupLabel: 873 - originalLookupLabel: 873 - center: - x: 22.0 - y: 39.0 - z: 35.0 - color: '#cc3e55' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_19: - name: 7Networks_RH_Default_PFCdPFCm_19 - lookupLabel: 874 - originalLookupLabel: 874 - center: - x: 5.0 - y: 45.0 - z: 40.0 - color: '#cc3f4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_20: - name: 7Networks_RH_Default_PFCdPFCm_20 - lookupLabel: 875 - originalLookupLabel: 875 - center: - x: 12.0 - y: 46.0 - z: 48.0 - color: '#cc3f4f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_21: - name: 7Networks_RH_Default_PFCdPFCm_21 - lookupLabel: 876 - originalLookupLabel: 876 - center: - x: 29.0 - y: 30.0 - z: 39.0 - color: '#cc3f50' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_22: - name: 7Networks_RH_Default_PFCdPFCm_22 - lookupLabel: 877 - originalLookupLabel: 877 - center: - x: 24.0 - y: 40.0 - z: 45.0 - color: '#cc3f51' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_23: - name: 7Networks_RH_Default_PFCdPFCm_23 - lookupLabel: 878 - originalLookupLabel: 878 - center: - x: 8.0 - y: 34.0 - z: 57.0 - color: '#cc3f52' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_24: - name: 7Networks_RH_Default_PFCdPFCm_24 - lookupLabel: 879 - originalLookupLabel: 879 - center: - x: 23.0 - y: 24.0 - z: 47.0 - color: '#cc3f53' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_25: - name: 7Networks_RH_Default_PFCdPFCm_25 - lookupLabel: 880 - originalLookupLabel: 880 - center: - x: 19.0 - y: 34.0 - z: 54.0 - color: '#cc3f54' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_PFCdPFCm_26: - name: 7Networks_RH_Default_PFCdPFCm_26 - lookupLabel: 881 - originalLookupLabel: 881 - center: - x: 12.0 - y: 22.0 - z: 62.0 - color: '#cc3f55' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_1: - name: 7Networks_RH_Default_pCunPCC_1 - lookupLabel: 882 - originalLookupLabel: 882 - center: - x: 10.0 - y: -51.0 - z: 9.0 - color: '#cc3e46' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_2: - name: 7Networks_RH_Default_pCunPCC_2 - lookupLabel: 883 - originalLookupLabel: 883 - center: - x: 7.0 - y: -46.0 - z: 14.0 - color: '#cc3e4e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_3: - name: 7Networks_RH_Default_pCunPCC_3 - lookupLabel: 884 - originalLookupLabel: 884 - center: - x: 13.0 - y: -56.0 - z: 18.0 - color: '#cc3f4d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_4: - name: 7Networks_RH_Default_pCunPCC_4 - lookupLabel: 885 - originalLookupLabel: 885 - center: - x: 5.0 - y: -52.0 - z: 18.0 - color: '#cc404d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_5: - name: 7Networks_RH_Default_pCunPCC_5 - lookupLabel: 886 - originalLookupLabel: 886 - center: - x: 7.0 - y: -42.0 - z: 23.0 - color: '#cc404e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_6: - name: 7Networks_RH_Default_pCunPCC_6 - lookupLabel: 887 - originalLookupLabel: 887 - center: - x: 12.0 - y: -64.0 - z: 26.0 - color: '#cc404f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_7: - name: 7Networks_RH_Default_pCunPCC_7 - lookupLabel: 888 - originalLookupLabel: 888 - center: - x: 4.0 - y: -59.0 - z: 25.0 - color: '#cc4050' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_8: - name: 7Networks_RH_Default_pCunPCC_8 - lookupLabel: 889 - originalLookupLabel: 889 - center: - x: 6.0 - y: -48.0 - z: 26.0 - color: '#cc4051' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_9: - name: 7Networks_RH_Default_pCunPCC_9 - lookupLabel: 890 - originalLookupLabel: 890 - center: - x: 6.0 - y: -42.0 - z: 31.0 - color: '#cc4052' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_10: - name: 7Networks_RH_Default_pCunPCC_10 - lookupLabel: 891 - originalLookupLabel: 891 - center: - x: 4.0 - y: -31.0 - z: 30.0 - color: '#cc4053' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_11: - name: 7Networks_RH_Default_pCunPCC_11 - lookupLabel: 892 - originalLookupLabel: 892 - center: - x: 11.0 - y: -52.0 - z: 30.0 - color: '#cc4054' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_12: - name: 7Networks_RH_Default_pCunPCC_12 - lookupLabel: 893 - originalLookupLabel: 893 - center: - x: 5.0 - y: -64.0 - z: 33.0 - color: '#cc414d' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_13: - name: 7Networks_RH_Default_pCunPCC_13 - lookupLabel: 894 - originalLookupLabel: 894 - center: - x: 5.0 - y: -34.0 - z: 36.0 - color: '#cc414e' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_14: - name: 7Networks_RH_Default_pCunPCC_14 - lookupLabel: 895 - originalLookupLabel: 895 - center: - x: 4.0 - y: -25.0 - z: 38.0 - color: '#cc414f' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_15: - name: 7Networks_RH_Default_pCunPCC_15 - lookupLabel: 896 - originalLookupLabel: 896 - center: - x: 10.0 - y: -43.0 - z: 38.0 - color: '#cc4150' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_16: - name: 7Networks_RH_Default_pCunPCC_16 - lookupLabel: 897 - originalLookupLabel: 897 - center: - x: 8.0 - y: -55.0 - z: 37.0 - color: '#cc4151' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_17: - name: 7Networks_RH_Default_pCunPCC_17 - lookupLabel: 898 - originalLookupLabel: 898 - center: - x: 6.0 - y: -64.0 - z: 43.0 - color: '#cc4152' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_18: - name: 7Networks_RH_Default_pCunPCC_18 - lookupLabel: 899 - originalLookupLabel: 899 - center: - x: 8.0 - y: -48.0 - z: 44.0 - color: '#cc4153' - hemisphere: right - hasParent: - - RH_Default - 7Networks_RH_Default_pCunPCC_19: - name: 7Networks_RH_Default_pCunPCC_19 - lookupLabel: 900 - originalLookupLabel: 900 - center: - x: 6.0 - y: -54.0 - z: 46.0 - color: '#cc4154' - hemisphere: right - hasParent: - - RH_Default - versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_900Parcels_7Networks_order_FSLMNI152_1mm.nii.gz diff --git a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-900_res-1_desc-ordered_dseg.yaml b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-900_res-1_desc-ordered_dseg.yaml similarity index 99% rename from tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-900_res-1_desc-ordered_dseg.yaml rename to tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-900_res-1_desc-ordered_dseg.yaml index 7ea80a9de..6c0827d1f 100644 --- a/tvbo/data/tvbo_data/atlas/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-900_res-1_desc-ordered_dseg.yaml +++ b/tvbo/database/atlases/tpl-FSLMNI152_atlas-Schaefer2018_seg-7Networks_scale-900_res-1_desc-ordered_dseg.yaml @@ -1,14 +1,12 @@ name: Schaefer2018 abbreviation: Schaefer2018 versionIdentifier: '2018' -coordinateSpace: - name: MNI152 - abbreviation: FSLMNI152 - nativeUnit: mm +coordinateSpace: FSLMNI152 terminology: label: Schaefer2018_900Parcels_7Networks_order versionIdentifier: '2018' - dataLocation: schaefer2018_original_mni/Schaefer2018_900Parcels_7Networks_order_FSLMNI152_1mm.nii.gz + dataLocation: + schaefer2018_original_mni/Schaefer2018_900Parcels_7Networks_order_FSLMNI152_1mm.nii.gz entities: 7Networks_LH_Vis_1: name: 7Networks_LH_Vis_1 diff --git a/tvbo/data/tvbo_data/atlas/tpl-MNI152NLin2009b_atlas-hcpmmp1_desc-ordered_centers.txt b/tvbo/database/atlases/tpl-MNI152NLin2009b_atlas-hcpmmp1_desc-ordered_centers.txt similarity index 100% rename from tvbo/data/tvbo_data/atlas/tpl-MNI152NLin2009b_atlas-hcpmmp1_desc-ordered_centers.txt rename to tvbo/database/atlases/tpl-MNI152NLin2009b_atlas-hcpmmp1_desc-ordered_centers.txt diff --git a/tvbo/database/atlases/tpl-MNI152NLin2009b_atlas-hcpmmp1_desc-ordered_dseg.yaml b/tvbo/database/atlases/tpl-MNI152NLin2009b_atlas-hcpmmp1_desc-ordered_dseg.yaml index 06807e1b3..de7efd2df 100644 --- a/tvbo/database/atlases/tpl-MNI152NLin2009b_atlas-hcpmmp1_desc-ordered_dseg.yaml +++ b/tvbo/database/atlases/tpl-MNI152NLin2009b_atlas-hcpmmp1_desc-ordered_dseg.yaml @@ -10,6 +10,8 @@ terminology: x: -10.363954536003888 y: -84.10040543350198 z: 1.6224097304040441 + alternateName: + - L_V1_ROI L_MST: name: L_MST lookupLabel: 2 @@ -17,6 +19,8 @@ terminology: x: -43.78398058252427 y: -66.80582524271844 z: 11.951456310679617 + alternateName: + - L_MST_ROI L_V6: name: L_V6 lookupLabel: 3 @@ -24,6 +28,8 @@ terminology: x: -14.882160804020103 y: -80.57311557788944 z: 32.21532663316583 + alternateName: + - L_V6_ROI L_V2: name: L_V2 lookupLabel: 4 @@ -31,6 +37,8 @@ terminology: x: -10.568908096106568 y: -82.33163508048528 z: 4.062901435254929 + alternateName: + - L_V2_ROI L_V3: name: L_V3 lookupLabel: 5 @@ -38,6 +46,8 @@ terminology: x: -15.975991009399266 y: -86.19554556599918 z: 7.9722108704536225 + alternateName: + - L_V3_ROI L_V4: name: L_V4 lookupLabel: 6 @@ -45,6 +55,8 @@ terminology: x: -28.375145857642934 y: -86.97578763127188 z: -0.006126021003495907 + alternateName: + - L_V4_ROI L_V8: name: L_V8 lookupLabel: 7 @@ -52,6 +64,8 @@ terminology: x: -30.34229098805646 y: -76.89657980456026 z: -12.875407166123779 + alternateName: + - L_V8_ROI L_4: name: L_4 lookupLabel: 8 @@ -59,6 +73,8 @@ terminology: x: -28.428445042111974 y: -20.36759501734022 z: 54.63718239082738 + alternateName: + - L_4_ROI L_3b: name: L_3b lookupLabel: 9 @@ -66,6 +82,8 @@ terminology: x: -39.39708467623792 y: -22.295268092587165 z: 52.810357456782896 + alternateName: + - L_3b_ROI L_FEF: name: L_FEF lookupLabel: 10 @@ -73,6 +91,8 @@ terminology: x: -41.82425742574257 y: -6.82508250825083 z: 51.54785478547855 + alternateName: + - L_FEF_ROI L_PEF: name: L_PEF lookupLabel: 11 @@ -80,6 +100,8 @@ terminology: x: -49.009512937595126 y: -0.45167427701673546 z: 40.59170471841705 + alternateName: + - L_PEF_ROI L_55b: name: L_55b lookupLabel: 12 @@ -87,6 +109,8 @@ terminology: x: -48.98161361141602 y: -1.5128979143798063 z: 50.190724478594944 + alternateName: + - L_55b_ROI L_V3A: name: L_V3A lookupLabel: 13 @@ -94,6 +118,8 @@ terminology: x: -15.015406162464984 y: -91.6078431372549 z: 28.244397759103634 + alternateName: + - L_V3A_ROI L_RSC: name: L_RSC lookupLabel: 14 @@ -101,6 +127,8 @@ terminology: x: -4.884923664122141 y: -36.57099236641221 z: 21.112213740458017 + alternateName: + - L_RSC_ROI L_POS2: name: L_POS2 lookupLabel: 15 @@ -108,6 +136,8 @@ terminology: x: -9.494167287168025 y: -72.25235790518738 z: 36.790208488458674 + alternateName: + - L_POS2_ROI L_V7: name: L_V7 lookupLabel: 16 @@ -115,6 +145,8 @@ terminology: x: -24.09813753581662 y: -87.07378223495702 z: 29.61676217765043 + alternateName: + - L_V7_ROI L_IPS1: name: L_IPS1 lookupLabel: 17 @@ -122,6 +154,8 @@ terminology: x: -24.30388127853881 y: -75.26963470319635 z: 37.459589041095896 + alternateName: + - L_IPS1_ROI L_FFC: name: L_FFC lookupLabel: 18 @@ -129,6 +163,8 @@ terminology: x: -42.021202412363365 y: -61.422446287222016 z: -17.290708631737658 + alternateName: + - L_FFC_ROI L_V3B: name: L_V3B lookupLabel: 19 @@ -136,6 +172,8 @@ terminology: x: -26.29415011037527 y: -83.02814569536423 z: 17.652869757174386 + alternateName: + - L_V3B_ROI L_LO1: name: L_LO1 lookupLabel: 20 @@ -143,6 +181,8 @@ terminology: x: -39.78090332805071 y: -83.91164817749603 z: 8.24445324881141 + alternateName: + - L_LO1_ROI L_LO2: name: L_LO2 lookupLabel: 21 @@ -150,6 +190,8 @@ terminology: x: -45.77868391451069 y: -85.16957255343081 z: 0.7286276715410622 + alternateName: + - L_LO2_ROI L_PIT: name: L_PIT lookupLabel: 22 @@ -157,6 +199,8 @@ terminology: x: -43.705652173913045 y: -83.2108695652174 z: -11.014347826086954 + alternateName: + - L_PIT_ROI L_MT: name: L_MT lookupLabel: 23 @@ -164,6 +208,8 @@ terminology: x: -42.772167487684726 y: -69.95935960591133 z: 14.451970443349751 + alternateName: + - L_MT_ROI L_A1: name: L_A1 lookupLabel: 24 @@ -171,6 +217,8 @@ terminology: x: -43.17227979274612 y: -25.35794473229707 z: 12.323402417962 + alternateName: + - L_A1_ROI L_PSL: name: L_PSL lookupLabel: 25 @@ -178,6 +226,8 @@ terminology: x: -58.58393501805054 y: -47.228339350180505 z: 25.431107099879668 + alternateName: + - L_PSL_ROI L_SFL: name: L_SFL lookupLabel: 26 @@ -185,6 +235,8 @@ terminology: x: -8.609526235354053 y: 17.51371200543386 z: 63.92931737137036 + alternateName: + - L_SFL_ROI L_PCV: name: L_PCV lookupLabel: 27 @@ -192,6 +244,8 @@ terminology: x: -6.298026315789471 y: -51.15789473684211 z: 49.208552631578954 + alternateName: + - L_PCV_ROI L_STV: name: L_STV lookupLabel: 28 @@ -199,6 +253,8 @@ terminology: x: -61.08898305084746 y: -50.95208604954368 z: 18.23239895697523 + alternateName: + - L_STV_ROI L_7Pm: name: L_7Pm lookupLabel: 29 @@ -206,6 +262,8 @@ terminology: x: -4.206202651515156 y: -70.42140151515152 z: 50.34043560606061 + alternateName: + - L_7Pm_ROI L_7m: name: L_7m lookupLabel: 30 @@ -213,6 +271,8 @@ terminology: x: -4.284500339904824 y: -63.87848402447315 z: 35.18405846363018 + alternateName: + - L_7m_ROI L_POS1: name: L_POS1 lookupLabel: 31 @@ -220,6 +280,8 @@ terminology: x: -12.60349383440986 y: -59.00190839694656 z: 15.042425132119789 + alternateName: + - L_POS1_ROI L_23d: name: L_23d lookupLabel: 32 @@ -227,6 +289,8 @@ terminology: x: -2.8880784708249507 y: -20.67806841046277 z: 39.35865191146881 + alternateName: + - L_23d_ROI L_v23ab: name: L_v23ab lookupLabel: 33 @@ -234,6 +298,8 @@ terminology: x: -3.3635817307692264 y: -58.24699519230769 z: 18.21334134615384 + alternateName: + - L_v23ab_ROI L_d23ab: name: L_d23ab lookupLabel: 34 @@ -241,6 +307,8 @@ terminology: x: -3.0437872535534183 y: -42.68076570380559 z: 31.2974552957359 + alternateName: + - L_d23ab_ROI L_31pv: name: L_31pv lookupLabel: 35 @@ -248,6 +316,8 @@ terminology: x: -9.407347204161255 y: -46.760403120936274 z: 32.54193758127438 + alternateName: + - L_31pv_ROI L_5m: name: L_5m lookupLabel: 36 @@ -255,6 +325,8 @@ terminology: x: -6.284216046145772 y: -41.917278447823804 z: 63.399711588883065 + alternateName: + - L_5m_ROI L_5mv: name: L_5mv lookupLabel: 37 @@ -262,6 +334,8 @@ terminology: x: -13.701790633608809 y: -37.139348025711655 z: 50.381772268135904 + alternateName: + - L_5mv_ROI L_23c: name: L_23c lookupLabel: 38 @@ -269,6 +343,8 @@ terminology: x: -11.448782961460452 y: -30.526876267748477 z: 43.00828262339418 + alternateName: + - L_23c_ROI L_5L: name: L_5L lookupLabel: 39 @@ -276,6 +352,8 @@ terminology: x: -14.777593818984542 y: -48.60651214128035 z: 72.59326710816777 + alternateName: + - L_5L_ROI L_24dd: name: L_24dd lookupLabel: 40 @@ -283,6 +361,8 @@ terminology: x: -5.885481852315394 y: -16.012578222778473 z: 50.5897997496871 + alternateName: + - L_24dd_ROI L_24dv: name: L_24dv lookupLabel: 41 @@ -290,6 +370,8 @@ terminology: x: -8.302213393870602 y: -0.3765607264472237 z: 44.810158910329164 + alternateName: + - L_24dv_ROI L_7AL: name: L_7AL lookupLabel: 42 @@ -297,6 +379,8 @@ terminology: x: -20.40274803711634 y: -51.99125624553891 z: 65.6771948608137 + alternateName: + - L_7AL_ROI L_SCEF: name: L_SCEF lookupLabel: 43 @@ -304,6 +388,8 @@ terminology: x: -5.931673905780158 y: 4.134229869695957 z: 59.60315736719011 + alternateName: + - L_SCEF_ROI L_6ma: name: L_6ma lookupLabel: 44 @@ -311,6 +397,8 @@ terminology: x: -20.098363393453567 y: 3.969438877755522 z: 67.89028056112224 + alternateName: + - L_6ma_ROI L_7Am: name: L_7Am lookupLabel: 45 @@ -318,6 +406,8 @@ terminology: x: -6.9458244617932365 y: -60.317305417553825 z: 61.458067187130354 + alternateName: + - L_7Am_ROI L_7PL: name: L_7PL lookupLabel: 46 @@ -325,6 +415,8 @@ terminology: x: -14.81601941747573 y: -73.71116504854369 z: 56.00825242718446 + alternateName: + - L_7PL_ROI L_7PC: name: L_7PC lookupLabel: 47 @@ -332,6 +424,8 @@ terminology: x: -37.4515145140934 y: -46.7108750525873 z: 60.62757677745057 + alternateName: + - L_7PC_ROI L_LIPv: name: L_LIPv lookupLabel: 48 @@ -339,6 +433,8 @@ terminology: x: -30.85463618802318 y: -58.40292981326465 z: 55.232292337411465 + alternateName: + - L_LIPv_ROI L_VIP: name: L_VIP lookupLabel: 49 @@ -346,6 +442,8 @@ terminology: x: -22.821780653111517 y: -63.50477510782501 z: 64.474584103512 + alternateName: + - L_VIP_ROI L_MIP: name: L_MIP lookupLabel: 50 @@ -353,6 +451,8 @@ terminology: x: -24.856965174129357 y: -67.12810945273633 z: 47.10074626865672 + alternateName: + - L_MIP_ROI L_1: name: L_1 lookupLabel: 51 @@ -360,6 +460,8 @@ terminology: x: -47.029623477297896 y: -26.318106312292358 z: 56.384772978959035 + alternateName: + - L_1_ROI L_2: name: L_2 lookupLabel: 52 @@ -367,6 +469,8 @@ terminology: x: -38.86826484018265 y: -32.92016742770167 z: 51.957001522070016 + alternateName: + - L_2_ROI L_3a: name: L_3a lookupLabel: 53 @@ -374,6 +478,8 @@ terminology: x: -35.28051493960585 y: -20.509694850603935 z: 42.83391608391608 + alternateName: + - L_3a_ROI L_6d: name: L_6d lookupLabel: 54 @@ -381,6 +487,8 @@ terminology: x: -33.79434121621621 y: -14.21621621621621 z: 67.734375 + alternateName: + - L_6d_ROI L_6mp: name: L_6mp lookupLabel: 55 @@ -388,6 +496,8 @@ terminology: x: -10.733435381587583 y: -15.008692324513447 z: 71.02618631095561 + alternateName: + - L_6mp_ROI L_6v: name: L_6v lookupLabel: 56 @@ -395,6 +505,8 @@ terminology: x: -59.50335215243472 y: 3.787050105857446 z: 31.906669019054334 + alternateName: + - L_6v_ROI L_p24pr: name: L_p24pr lookupLabel: 57 @@ -402,6 +514,8 @@ terminology: x: -3.961538461538467 y: -2.244123931623932 z: 40.376068376068375 + alternateName: + - L_p24pr_ROI L_33pr: name: L_33pr lookupLabel: 58 @@ -409,6 +523,8 @@ terminology: x: -2.3982504604051513 y: 11.25920810313076 z: 28.721454880294658 + alternateName: + - L_33pr_ROI L_a24pr: name: L_a24pr lookupLabel: 59 @@ -416,6 +532,8 @@ terminology: x: -5.386851015801355 y: 18.300225733634306 z: 30.981376975169297 + alternateName: + - L_a24pr_ROI L_p32pr: name: L_p32pr lookupLabel: 60 @@ -423,6 +541,8 @@ terminology: x: -7.929197994987462 y: 15.395363408521291 z: 38.79594820384294 + alternateName: + - L_p32pr_ROI L_a24: name: L_a24 lookupLabel: 61 @@ -430,6 +550,8 @@ terminology: x: -6.136344359626804 y: 41.96501272264632 z: -4.496819338422398 + alternateName: + - L_a24_ROI L_d32: name: L_d32 lookupLabel: 62 @@ -437,6 +559,8 @@ terminology: x: -8.040343074968234 y: 42.475540025412954 z: 24.959656925031766 + alternateName: + - L_d32_ROI L_8BM: name: L_8BM lookupLabel: 63 @@ -444,6 +568,8 @@ terminology: x: -4.759222919937201 y: 32.56828885400313 z: 45.16620879120879 + alternateName: + - L_8BM_ROI L_p32: name: L_p32 lookupLabel: 64 @@ -451,6 +577,8 @@ terminology: x: -11.275899280575544 y: 50.39244604316548 z: -2.33920863309352 + alternateName: + - L_p32_ROI L_10r: name: L_10r lookupLabel: 65 @@ -458,6 +586,8 @@ terminology: x: -6.034112149532717 y: 51.64065420560749 z: -10.644392523364488 + alternateName: + - L_10r_ROI L_47m: name: L_47m lookupLabel: 66 @@ -465,6 +595,8 @@ terminology: x: -37.49242424242424 y: 31.53484848484848 z: -13.922727272727272 + alternateName: + - L_47m_ROI L_8Av: name: L_8Av lookupLabel: 67 @@ -472,6 +604,8 @@ terminology: x: -38.33117890382627 y: 16.588934850051714 z: 52.27921406411582 + alternateName: + - L_8Av_ROI L_8Ad: name: L_8Ad lookupLabel: 68 @@ -479,6 +613,8 @@ terminology: x: -23.35066850176956 y: 28.99596932756586 z: 43.34653952025167 + alternateName: + - L_8Ad_ROI L_9m: name: L_9m lookupLabel: 69 @@ -486,6 +622,8 @@ terminology: x: -6.037457296242067 y: 55.14775500244022 z: 24.263665202537823 + alternateName: + - L_9m_ROI L_8BL: name: L_8BL lookupLabel: 70 @@ -493,6 +631,8 @@ terminology: x: -11.6218459495352 y: 37.147299690128364 z: 53.800464807436924 + alternateName: + - L_8BL_ROI L_9p: name: L_9p lookupLabel: 71 @@ -500,6 +640,8 @@ terminology: x: -19.89443462897526 y: 47.305653710247356 z: 38.47924028268551 + alternateName: + - L_9p_ROI L_10d: name: L_10d lookupLabel: 72 @@ -507,6 +649,8 @@ terminology: x: -11.1631633356306 y: 66.29583046175051 z: 8.404376292212262 + alternateName: + - L_10d_ROI L_8C: name: L_8C lookupLabel: 73 @@ -514,6 +658,8 @@ terminology: x: -43.70362268113406 y: 11.811778088904447 z: 37.70974798739937 + alternateName: + - L_8C_ROI L_44: name: L_44 lookupLabel: 74 @@ -521,6 +667,8 @@ terminology: x: -53.8786231884058 y: 14.841183574879238 z: 14.009661835748787 + alternateName: + - L_44_ROI L_45: name: L_45 lookupLabel: 75 @@ -528,6 +676,8 @@ terminology: x: -50.60904463586531 y: 25.568715740015648 z: 3.2206342991386094 + alternateName: + - L_45_ROI L_47l: name: L_47l lookupLabel: 76 @@ -535,6 +685,8 @@ terminology: x: -46.77078085642317 y: 30.10012594458439 z: -9.95780856423174 + alternateName: + - L_47l_ROI L_a47r: name: L_a47r lookupLabel: 77 @@ -542,6 +694,8 @@ terminology: x: -41.356263633530695 y: 48.56380492365224 z: -11.907214085384858 + alternateName: + - L_a47r_ROI L_6r: name: L_6r lookupLabel: 78 @@ -549,6 +703,8 @@ terminology: x: -52.490793201133144 y: 6.664069877242696 z: 17.774079320113316 + alternateName: + - L_6r_ROI L_IFJa: name: L_IFJa lookupLabel: 79 @@ -556,6 +712,8 @@ terminology: x: -41.00675675675676 y: 10.852602602602616 z: 26.385635635635637 + alternateName: + - L_IFJa_ROI L_IFJp: name: L_IFJp lookupLabel: 80 @@ -563,6 +721,8 @@ terminology: x: -41.36342894393742 y: 2.2956323337679407 z: 30.064211212516298 + alternateName: + - L_IFJp_ROI L_IFSp: name: L_IFSp lookupLabel: 81 @@ -570,6 +730,8 @@ terminology: x: -48.801580698835274 y: 20.908901830282872 z: 22.851497504159738 + alternateName: + - L_IFSp_ROI L_IFSa: name: L_IFSa lookupLabel: 82 @@ -577,6 +739,8 @@ terminology: x: -48.10146804835924 y: 32.12161773172136 z: 10.653281519861835 + alternateName: + - L_IFSa_ROI L_p9-46v: name: L_p9-46v lookupLabel: 83 @@ -584,6 +748,8 @@ terminology: x: -47.190255459414914 y: 28.89194478780388 z: 25.991450350226614 + alternateName: + - L_p9-46v_ROI L_46: name: L_46 lookupLabel: 84 @@ -591,6 +757,8 @@ terminology: x: -38.40568557618926 y: 37.85264563724243 z: 32.920694479776145 + alternateName: + - L_46_ROI L_a9-46v: name: L_a9-46v lookupLabel: 85 @@ -598,6 +766,8 @@ terminology: x: -40.00723412251033 y: 51.63970311912814 z: 9.1727733934611 + alternateName: + - L_a9-46v_ROI L_9-46d: name: L_9-46d lookupLabel: 86 @@ -605,6 +775,8 @@ terminology: x: -29.44874715261959 y: 45.85791571753987 z: 23.46355353075171 + alternateName: + - L_9-46d_ROI L_9a: name: L_9a lookupLabel: 87 @@ -612,6 +784,8 @@ terminology: x: -21.72691334598356 y: 57.56277672359266 z: 24.152593295382673 + alternateName: + - L_9a_ROI L_10v: name: L_10v lookupLabel: 88 @@ -619,6 +793,8 @@ terminology: x: -4.007095158597664 y: 52.91193656093489 z: -17.83430717863105 + alternateName: + - L_10v_ROI L_a10p: name: L_a10p lookupLabel: 89 @@ -626,6 +802,8 @@ terminology: x: -26.478136882129277 y: 59.74201520912547 z: -6.898669201520917 + alternateName: + - L_a10p_ROI L_10pp: name: L_10pp lookupLabel: 90 @@ -633,6 +811,8 @@ terminology: x: -12.772091310751108 y: 62.28313696612665 z: -16.248527245949923 + alternateName: + - L_10pp_ROI L_11l: name: L_11l lookupLabel: 91 @@ -640,6 +820,8 @@ terminology: x: -25.936197404640183 y: 49.47611089264649 z: -15.47139205662603 + alternateName: + - L_11l_ROI L_13l: name: L_13l lookupLabel: 92 @@ -647,6 +829,8 @@ terminology: x: -23.304250320375914 y: 30.078278513455786 z: -19.88648013669372 + alternateName: + - L_13l_ROI L_OFC: name: L_OFC lookupLabel: 93 @@ -654,6 +838,8 @@ terminology: x: -10.828698655034529 y: 33.53898582333696 z: -24.50517993456925 + alternateName: + - L_OFC_ROI L_47s: name: L_47s lookupLabel: 94 @@ -661,6 +847,8 @@ terminology: x: -34.5232782369146 y: 22.11336088154269 z: -19.154683195592284 + alternateName: + - L_47s_ROI L_LIPd: name: L_LIPd lookupLabel: 95 @@ -668,6 +856,8 @@ terminology: x: -30.07446043165467 y: -55.44352517985611 z: 42.899640287769785 + alternateName: + - L_LIPd_ROI L_6a: name: L_6a lookupLabel: 96 @@ -675,6 +865,8 @@ terminology: x: -25.360372340425528 y: -4.931848404255305 z: 55.56183510638297 + alternateName: + - L_6a_ROI L_i6-8: name: L_i6-8 lookupLabel: 97 @@ -682,6 +874,8 @@ terminology: x: -29.576462765957444 y: 5.227393617021278 z: 56.748005319148945 + alternateName: + - L_i6-8_ROI L_s6-8: name: L_s6-8 lookupLabel: 98 @@ -689,6 +883,8 @@ terminology: x: -22.3087219343696 y: 24.151554404145088 z: 56.29663212435233 + alternateName: + - L_s6-8_ROI L_43: name: L_43 lookupLabel: 99 @@ -696,6 +892,8 @@ terminology: x: -56.383133133133136 y: -0.33658658658657714 z: 9.476726726726724 + alternateName: + - L_43_ROI L_OP4: name: L_OP4 lookupLabel: 100 @@ -703,6 +901,8 @@ terminology: x: -59.22332421340629 y: -13.484610123119012 z: 15.314979480164155 + alternateName: + - L_OP4_ROI L_OP1: name: L_OP1 lookupLabel: 101 @@ -710,6 +910,8 @@ terminology: x: -46.949643493761144 y: -22.380124777183596 z: 19.142156862745097 + alternateName: + - L_OP1_ROI L_OP2-3: name: L_OP2-3 lookupLabel: 102 @@ -717,6 +919,8 @@ terminology: x: -40.460134128166914 y: -17.24329359165425 z: 19.021236959761552 + alternateName: + - L_OP2-3_ROI L_52: name: L_52 lookupLabel: 103 @@ -724,6 +928,8 @@ terminology: x: -38.001619870410366 y: -22.361231101511876 z: 1.9379049676025915 + alternateName: + - L_52_ROI L_RI: name: L_RI lookupLabel: 104 @@ -731,6 +937,8 @@ terminology: x: -40.184648581997536 y: -35.52188655980271 z: 20.243218249075213 + alternateName: + - L_RI_ROI L_PFcm: name: L_PFcm lookupLabel: 105 @@ -738,6 +946,8 @@ terminology: x: -50.40590405904059 y: -32.3090405904059 z: 21.746309963099634 + alternateName: + - L_PFcm_ROI L_PoI2: name: L_PoI2 lookupLabel: 106 @@ -745,6 +955,8 @@ terminology: x: -40.4908400357462 y: -2.9287310098302157 z: -0.0029043789097471517 + alternateName: + - L_PoI2_ROI L_TA2: name: L_TA2 lookupLabel: 107 @@ -752,6 +964,8 @@ terminology: x: -50.36752577319588 y: -0.17371134020618229 z: -5.478865979381439 + alternateName: + - L_TA2_ROI L_FOP4: name: L_FOP4 lookupLabel: 108 @@ -759,6 +973,8 @@ terminology: x: -41.49167171411266 y: 12.777559055118104 z: 5.6918534221683785 + alternateName: + - L_FOP4_ROI L_MI: name: L_MI lookupLabel: 109 @@ -766,6 +982,8 @@ terminology: x: -36.28790271636134 y: 11.19630448515477 z: 3.326121288692363 + alternateName: + - L_MI_ROI L_Pir: name: L_Pir lookupLabel: 110 @@ -773,6 +991,8 @@ terminology: x: -32.0389502762431 y: 6.381491712707174 z: -17.67983425414365 + alternateName: + - L_Pir_ROI L_AVI: name: L_AVI lookupLabel: 111 @@ -780,6 +1000,8 @@ terminology: x: -30.860792192881746 y: 25.40269804822043 z: -2.488805970149258 + alternateName: + - L_AVI_ROI L_AAIC: name: L_AAIC lookupLabel: 112 @@ -787,6 +1009,8 @@ terminology: x: -35.42083946980854 y: 14.344992636229762 z: -10.438512518409425 + alternateName: + - L_AAIC_ROI L_FOP1: name: L_FOP1 lookupLabel: 113 @@ -794,6 +1018,8 @@ terminology: x: -49.8875 y: 1.6589285714285609 z: 4.569642857142853 + alternateName: + - L_FOP1_ROI L_FOP3: name: L_FOP3 lookupLabel: 114 @@ -801,6 +1027,8 @@ terminology: x: -35.99497991967871 y: 2.1375502008032186 z: 13.442771084337352 + alternateName: + - L_FOP3_ROI L_FOP2: name: L_FOP2 lookupLabel: 115 @@ -808,6 +1036,8 @@ terminology: x: -42.412835249042146 y: -4.953065134099603 z: 14.79980842911877 + alternateName: + - L_FOP2_ROI L_PFt: name: L_PFt lookupLabel: 116 @@ -815,6 +1045,8 @@ terminology: x: -56.39276729559749 y: -25.75377358490566 z: 36.533018867924525 + alternateName: + - L_PFt_ROI L_AIP: name: L_AIP lookupLabel: 117 @@ -822,6 +1054,8 @@ terminology: x: -39.7851617440225 y: -39.01371308016877 z: 42.27672292545711 + alternateName: + - L_AIP_ROI L_EC: name: L_EC lookupLabel: 118 @@ -829,6 +1063,8 @@ terminology: x: -22.93984812150279 y: -13.646083133493207 z: -31.66806554756195 + alternateName: + - L_EC_ROI L_PreS: name: L_PreS lookupLabel: 119 @@ -836,6 +1072,8 @@ terminology: x: -16.928135405105436 y: -34.299389567147614 z: -13.86043285238624 + alternateName: + - L_PreS_ROI L_H: name: L_H lookupLabel: 120 @@ -843,6 +1081,8 @@ terminology: x: -11.916666666666671 y: -39.75 z: -2.9166666666666714 + alternateName: + - L_H_ROI L_ProS: name: L_ProS lookupLabel: 121 @@ -850,6 +1090,8 @@ terminology: x: -22.06854838709677 y: -57.01075268817205 z: 4.69086021505376 + alternateName: + - L_ProS_ROI L_PeEc: name: L_PeEc lookupLabel: 122 @@ -857,6 +1099,8 @@ terminology: x: -31.135586449344842 y: -9.588926174496649 z: -33.602828379674015 + alternateName: + - L_PeEc_ROI L_STGa: name: L_STGa lookupLabel: 123 @@ -864,6 +1108,8 @@ terminology: x: -50.85345821325648 y: 12.921469740633995 z: -16.669596541786746 + alternateName: + - L_STGa_ROI L_PBelt: name: L_PBelt lookupLabel: 124 @@ -871,6 +1117,8 @@ terminology: x: -52.70952197378566 y: -26.003662297609864 z: 9.005975327679266 + alternateName: + - L_PBelt_ROI L_A5: name: L_A5 lookupLabel: 125 @@ -878,6 +1126,8 @@ terminology: x: -62.983247422680414 y: -15.211769759450178 z: -1.1005154639175316 + alternateName: + - L_A5_ROI L_PHA1: name: L_PHA1 lookupLabel: 126 @@ -885,6 +1135,8 @@ terminology: x: -23.349369085173507 y: -37.71924290220821 z: -14.638012618296528 + alternateName: + - L_PHA1_ROI L_PHA3: name: L_PHA3 lookupLabel: 127 @@ -892,6 +1144,8 @@ terminology: x: -31.839830508474577 y: -37.931016949152536 z: -17.730677966101695 + alternateName: + - L_PHA3_ROI L_STSda: name: L_STSda lookupLabel: 128 @@ -899,6 +1153,8 @@ terminology: x: -54.80822550831793 y: -4.146796056685162 z: -11.595656192236596 + alternateName: + - L_STSda_ROI L_STSdp: name: L_STSdp lookupLabel: 129 @@ -906,6 +1162,8 @@ terminology: x: -52.7883502170767 y: -32.63856729377713 z: 1.1349493487698936 + alternateName: + - L_STSdp_ROI L_STSvp: name: L_STSvp lookupLabel: 130 @@ -913,6 +1171,8 @@ terminology: x: -54.889782016348775 y: -34.85517711171663 z: -3.435831062670303 + alternateName: + - L_STSvp_ROI L_TGd: name: L_TGd lookupLabel: 131 @@ -920,6 +1180,8 @@ terminology: x: -38.19212869283691 y: 12.305038445973281 z: -34.47271684877917 + alternateName: + - L_TGd_ROI L_TE1a: name: L_TE1a lookupLabel: 132 @@ -927,6 +1189,8 @@ terminology: x: -59.77543720190779 y: -5.224562798092222 z: -23.115129835718072 + alternateName: + - L_TE1a_ROI L_TE1p: name: L_TE1p lookupLabel: 133 @@ -934,6 +1198,8 @@ terminology: x: -61.772608695652174 y: -48.213478260869564 z: -8.696304347826086 + alternateName: + - L_TE1p_ROI L_TE2a: name: L_TE2a lookupLabel: 134 @@ -941,6 +1207,8 @@ terminology: x: -57.275185518326964 y: -24.38323588936362 z: -27.70086575219249 + alternateName: + - L_TE2a_ROI L_TF: name: L_TF lookupLabel: 135 @@ -948,6 +1216,8 @@ terminology: x: -42.3942250149611 y: -22.009724715739083 z: -30.005236385397964 + alternateName: + - L_TF_ROI L_TE2p: name: L_TE2p lookupLabel: 136 @@ -955,6 +1225,8 @@ terminology: x: -49.39131607335491 y: -43.42349874145991 z: -20.50566343042071 + alternateName: + - L_TE2p_ROI L_PHT: name: L_PHT lookupLabel: 137 @@ -962,6 +1234,8 @@ terminology: x: -58.391753572808035 y: -60.646098879876405 z: 3.228949401313244 + alternateName: + - L_PHT_ROI L_PH: name: L_PH lookupLabel: 138 @@ -969,6 +1243,8 @@ terminology: x: -45.984491315136474 y: -65.14660876757651 z: -5.342224979321756 + alternateName: + - L_PH_ROI L_TPOJ1: name: L_TPOJ1 lookupLabel: 139 @@ -976,6 +1252,8 @@ terminology: x: -54.167647058823526 y: -46.32024221453287 z: 10.260034602076118 + alternateName: + - L_TPOJ1_ROI L_TPOJ2: name: L_TPOJ2 lookupLabel: 140 @@ -983,6 +1261,8 @@ terminology: x: -51.993362831858406 y: -62.363032984714394 z: 15.783789219629924 + alternateName: + - L_TPOJ2_ROI L_TPOJ3: name: L_TPOJ3 lookupLabel: 141 @@ -990,6 +1270,8 @@ terminology: x: -45.97455902306648 y: -72.67401628222524 z: 20.70115332428766 + alternateName: + - L_TPOJ3_ROI L_DVT: name: L_DVT lookupLabel: 142 @@ -997,6 +1279,8 @@ terminology: x: -17.637888707037646 y: -74.29009819967267 z: 36.31055646481178 + alternateName: + - L_DVT_ROI L_PGp: name: L_PGp lookupLabel: 143 @@ -1004,6 +1288,8 @@ terminology: x: -38.69778987828315 y: -85.43289557975658 z: 23.08888532991672 + alternateName: + - L_PGp_ROI L_IP2: name: L_IP2 lookupLabel: 144 @@ -1011,6 +1297,8 @@ terminology: x: -40.949077359829666 y: -48.80039034776438 z: 43.375266146202975 + alternateName: + - L_IP2_ROI L_IP1: name: L_IP1 lookupLabel: 145 @@ -1018,6 +1306,8 @@ terminology: x: -30.258007117437728 y: -70.63256227758006 z: 39.10231316725978 + alternateName: + - L_IP1_ROI L_IP0: name: L_IP0 lookupLabel: 146 @@ -1025,6 +1315,8 @@ terminology: x: -30.844692400482515 y: -79.07569360675512 z: 24.272316043425818 + alternateName: + - L_IP0_ROI L_PFop: name: L_PFop lookupLabel: 147 @@ -1032,6 +1324,8 @@ terminology: x: -62.96147540983606 y: -23.73606557377049 z: 24.032786885245898 + alternateName: + - L_PFop_ROI L_PF: name: L_PF lookupLabel: 148 @@ -1039,6 +1333,8 @@ terminology: x: -60.30597512216792 y: -37.278209684584624 z: 37.90526432696579 + alternateName: + - L_PF_ROI L_PFm: name: L_PFm lookupLabel: 149 @@ -1046,6 +1342,8 @@ terminology: x: -49.51604231703087 y: -58.048300381546994 z: 44.89516129032258 + alternateName: + - L_PFm_ROI L_PGi: name: L_PGi lookupLabel: 150 @@ -1053,6 +1351,8 @@ terminology: x: -46.54554531490015 y: -64.01082949308756 z: 27.54201228878648 + alternateName: + - L_PGi_ROI L_PGs: name: L_PGs lookupLabel: 151 @@ -1060,6 +1360,8 @@ terminology: x: -39.190649867374006 y: -78.0709549071618 z: 38.99038461538461 + alternateName: + - L_PGs_ROI L_V6A: name: L_V6A lookupLabel: 152 @@ -1067,6 +1369,8 @@ terminology: x: -21.78363914373088 y: -86.1888379204893 z: 42.722477064220186 + alternateName: + - L_V6A_ROI L_VMV1: name: L_VMV1 lookupLabel: 153 @@ -1074,6 +1378,8 @@ terminology: x: -18.661894273127757 y: -55.941629955947135 z: -5.522026431718061 + alternateName: + - L_VMV1_ROI L_VMV3: name: L_VMV3 lookupLabel: 154 @@ -1081,6 +1387,8 @@ terminology: x: -27.721874999999997 y: -62.696875000000006 z: -11.214062499999997 + alternateName: + - L_VMV3_ROI L_PHA2: name: L_PHA2 lookupLabel: 155 @@ -1088,6 +1396,8 @@ terminology: x: -31.92342342342343 y: -37.4481981981982 z: -11.781531531531535 + alternateName: + - L_PHA2_ROI L_V4t: name: L_V4t lookupLabel: 156 @@ -1095,6 +1405,8 @@ terminology: x: -49.261019283746556 y: -77.11776859504133 z: 7.835399449035819 + alternateName: + - L_V4t_ROI L_FST: name: L_FST lookupLabel: 157 @@ -1102,6 +1414,8 @@ terminology: x: -45.82532751091703 y: -68.69213973799127 z: 5.620087336244538 + alternateName: + - L_FST_ROI L_V3CD: name: L_V3CD lookupLabel: 158 @@ -1109,6 +1423,8 @@ terminology: x: -35.65 y: -88.84571428571428 z: 11.272857142857148 + alternateName: + - L_V3CD_ROI L_LO3: name: L_LO3 lookupLabel: 159 @@ -1116,6 +1432,8 @@ terminology: x: -41.209493670886076 y: -77.17278481012659 z: 15.155063291139243 + alternateName: + - L_LO3_ROI L_VMV2: name: L_VMV2 lookupLabel: 160 @@ -1123,6 +1441,8 @@ terminology: x: -27.337475149105373 y: -54.82355864811133 z: -6.411033797216703 + alternateName: + - L_VMV2_ROI L_31pd: name: L_31pd lookupLabel: 161 @@ -1130,6 +1450,8 @@ terminology: x: -8.700000000000003 y: -53.43229166666667 z: 34.646874999999994 + alternateName: + - L_31pd_ROI L_31a: name: L_31a lookupLabel: 162 @@ -1137,6 +1459,8 @@ terminology: x: -4.678950307091014 y: -37.74553322166388 z: 43.55792853154662 + alternateName: + - L_31a_ROI L_VVC: name: L_VVC lookupLabel: 163 @@ -1144,6 +1468,8 @@ terminology: x: -31.03338762214983 y: -53.23588490770901 z: -17.340662323561347 + alternateName: + - L_VVC_ROI L_25: name: L_25 lookupLabel: 164 @@ -1151,6 +1477,8 @@ terminology: x: -4.275012444001987 y: 23.93790443006472 z: -14.756222000995521 + alternateName: + - L_25_ROI L_s32: name: L_s32 lookupLabel: 165 @@ -1158,6 +1486,8 @@ terminology: x: -7.536610878661094 y: 35.66213389121339 z: -15.06589958158996 + alternateName: + - L_s32_ROI L_pOFC: name: L_pOFC lookupLabel: 166 @@ -1165,6 +1495,8 @@ terminology: x: -14.397169811320751 y: 14.35641509433961 z: -20.889245283018866 + alternateName: + - L_pOFC_ROI L_PoI1: name: L_PoI1 lookupLabel: 167 @@ -1172,6 +1504,8 @@ terminology: x: -39.19017094017094 y: -12.182789432789434 z: -2.267094017094024 + alternateName: + - L_PoI1_ROI L_Ig: name: L_Ig lookupLabel: 168 @@ -1179,6 +1513,8 @@ terminology: x: -35.59035087719298 y: -16.179824561403507 z: 15.986842105263165 + alternateName: + - L_Ig_ROI L_FOP5: name: L_FOP5 lookupLabel: 169 @@ -1186,6 +1522,8 @@ terminology: x: -35.410526315789475 y: 26.75 z: 5.168421052631572 + alternateName: + - L_FOP5_ROI L_p10p: name: L_p10p lookupLabel: 170 @@ -1193,6 +1531,8 @@ terminology: x: -24.070744081172492 y: 62.92023675310034 z: 2.393179255918824 + alternateName: + - L_p10p_ROI L_p47r: name: L_p47r lookupLabel: 171 @@ -1200,6 +1540,8 @@ terminology: x: -45.63447971781305 y: 43.07951205173427 z: 0.9857436801881221 + alternateName: + - L_p47r_ROI L_TGv: name: L_TGv lookupLabel: 172 @@ -1207,6 +1549,8 @@ terminology: x: -37.30673758865248 y: -1.312217923920059 z: -44.45825274016764 + alternateName: + - L_TGv_ROI L_MBelt: name: L_MBelt lookupLabel: 173 @@ -1214,6 +1558,8 @@ terminology: x: -44.38879781420765 y: -17.70628415300547 z: 4.348907103825141 + alternateName: + - L_MBelt_ROI L_LBelt: name: L_LBelt lookupLabel: 174 @@ -1221,6 +1567,8 @@ terminology: x: -45.298706240487064 y: -27.43493150684931 z: 9.052891933028917 + alternateName: + - L_LBelt_ROI L_A4: name: L_A4 lookupLabel: 175 @@ -1228,6 +1576,8 @@ terminology: x: -63.31973947895791 y: -23.574048096192385 z: 9.17004008016032 + alternateName: + - L_A4_ROI L_STSva: name: L_STSva lookupLabel: 176 @@ -1235,6 +1585,8 @@ terminology: x: -51.63795003673769 y: -7.799228508449673 z: -16.96565025716385 + alternateName: + - L_STSva_ROI L_TE1m: name: L_TE1m lookupLabel: 177 @@ -1242,6 +1594,8 @@ terminology: x: -64.13602654176424 y: -26.129391100702577 z: -14.955308352849336 + alternateName: + - L_TE1m_ROI L_PI: name: L_PI lookupLabel: 178 @@ -1249,6 +1603,8 @@ terminology: x: -43.94744318181818 y: -4.144886363636374 z: -13.57244318181818 + alternateName: + - L_PI_ROI L_a32pr: name: L_a32pr lookupLabel: 179 @@ -1256,6 +1612,8 @@ terminology: x: -7.680207587687903 y: 30.63224767358625 z: 28.654795991410168 + alternateName: + - L_a32pr_ROI L_p24: name: L_p24 lookupLabel: 180 @@ -1263,6 +1621,8 @@ terminology: x: -5.170354826402132 y: 38.859309423884014 z: 13.873998473864944 + alternateName: + - L_p24_ROI R_V1: name: R_V1 lookupLabel: 181 @@ -1270,6 +1630,8 @@ terminology: x: 12.44857482185273 y: -80.39251781472684 z: 4.057244655581954 + alternateName: + - R_V1_ROI R_MST: name: R_MST lookupLabel: 182 @@ -1277,6 +1639,8 @@ terminology: x: 48.033760683760676 y: -64.23717948717949 z: 7.262820512820511 + alternateName: + - R_MST_ROI R_V6: name: R_V6 lookupLabel: 183 @@ -1284,6 +1648,8 @@ terminology: x: 17.9109098567818 y: -76.95134793597305 z: 31.02969671440607 + alternateName: + - R_V6_ROI R_V2: name: R_V2 lookupLabel: 184 @@ -1291,6 +1657,8 @@ terminology: x: 12.265188897455673 y: -79.28616037008481 z: 6.877987663839633 + alternateName: + - R_V2_ROI R_V3: name: R_V3 lookupLabel: 185 @@ -1298,6 +1666,8 @@ terminology: x: 17.421965588180285 y: -85.24111651393304 z: 8.912521039835426 + alternateName: + - R_V3_ROI R_V4: name: R_V4 lookupLabel: 186 @@ -1305,6 +1675,8 @@ terminology: x: 30.753990688393742 y: -84.88335550382442 z: -1.1632025274359847 + alternateName: + - R_V4_ROI R_V8: name: R_V8 lookupLabel: 187 @@ -1312,6 +1684,8 @@ terminology: x: 30.43438914027149 y: -75.26131221719457 z: -11.8789592760181 + alternateName: + - R_V8_ROI R_4: name: R_4 lookupLabel: 188 @@ -1319,6 +1693,8 @@ terminology: x: 29.77963938745266 y: -17.152931006092544 z: 55.20726988308908 + alternateName: + - R_4_ROI R_3b: name: R_3b lookupLabel: 189 @@ -1326,6 +1702,8 @@ terminology: x: 40.143928571428575 y: -19.370000000000005 z: 51.0025 + alternateName: + - R_3b_ROI R_FEF: name: R_FEF lookupLabel: 190 @@ -1333,6 +1711,8 @@ terminology: x: 44.802502050861364 y: -2.431706316652992 z: 51.70159967186218 + alternateName: + - R_FEF_ROI R_PEF: name: R_PEF lookupLabel: 191 @@ -1340,6 +1720,8 @@ terminology: x: 47.4892703862661 y: 2.6072961373390626 z: 37.136266094420606 + alternateName: + - R_PEF_ROI R_55b: name: R_55b lookupLabel: 192 @@ -1347,6 +1729,8 @@ terminology: x: 50.35502838605029 y: 1.9929034874290323 z: 47.079278183292786 + alternateName: + - R_55b_ROI R_V3A: name: R_V3A lookupLabel: 193 @@ -1354,6 +1738,8 @@ terminology: x: 16.760077059869587 y: -89.18212803793716 z: 30.947391819798455 + alternateName: + - R_V3A_ROI R_RSC: name: R_RSC lookupLabel: 194 @@ -1361,6 +1747,8 @@ terminology: x: 5.562176165803109 y: -36.43782383419689 z: 21.563471502590673 + alternateName: + - R_RSC_ROI R_POS2: name: R_POS2 lookupLabel: 195 @@ -1368,6 +1756,8 @@ terminology: x: 12.009044216167936 y: -70.26585529254132 z: 38.215386333184455 + alternateName: + - R_POS2_ROI R_V7: name: R_V7 lookupLabel: 196 @@ -1375,6 +1765,8 @@ terminology: x: 28.28285543608125 y: -84.39516129032259 z: 31.162186379928315 + alternateName: + - R_V7_ROI R_IPS1: name: R_IPS1 lookupLabel: 197 @@ -1382,6 +1774,8 @@ terminology: x: 27.329166666666666 y: -72.735 z: 39.84 + alternateName: + - R_IPS1_ROI R_FFC: name: R_FFC lookupLabel: 198 @@ -1389,6 +1783,8 @@ terminology: x: 40.82234314980795 y: -53.460307298335465 z: -19.196222791293216 + alternateName: + - R_FFC_ROI R_V3B: name: R_V3B lookupLabel: 199 @@ -1396,6 +1792,8 @@ terminology: x: 29.712376237623758 y: -77.21336633663367 z: 20.854950495049508 + alternateName: + - R_V3B_ROI R_LO1: name: R_LO1 lookupLabel: 200 @@ -1403,6 +1801,8 @@ terminology: x: 39.69767441860466 y: -80.23255813953489 z: 4.844961240310084 + alternateName: + - R_LO1_ROI R_LO2: name: R_LO2 lookupLabel: 201 @@ -1410,6 +1810,8 @@ terminology: x: 44.594444444444434 y: -83.4508547008547 z: -0.8363247863247807 + alternateName: + - R_LO2_ROI R_PIT: name: R_PIT lookupLabel: 202 @@ -1417,6 +1819,8 @@ terminology: x: 42.783807829181484 y: -80.54537366548043 z: -11.879003558718864 + alternateName: + - R_PIT_ROI R_MT: name: R_MT lookupLabel: 203 @@ -1424,6 +1828,8 @@ terminology: x: 51.98973727422003 y: -69.6252052545156 z: 10.795977011494259 + alternateName: + - R_MT_ROI R_A1: name: R_A1 lookupLabel: 204 @@ -1431,6 +1837,8 @@ terminology: x: 42.71813725490196 y: -21.674019607843135 z: 11.399509803921575 + alternateName: + - R_A1_ROI R_PSL: name: R_PSL lookupLabel: 205 @@ -1438,6 +1846,8 @@ terminology: x: 63.962610734757675 y: -35.718733715476816 z: 27.437858259510165 + alternateName: + - R_PSL_ROI R_SFL: name: R_SFL lookupLabel: 206 @@ -1445,6 +1855,8 @@ terminology: x: 8.827118214104516 y: 17.007483510908173 z: 65.40499746321663 + alternateName: + - R_SFL_ROI R_PCV: name: R_PCV lookupLabel: 207 @@ -1452,6 +1864,8 @@ terminology: x: 5.5034996956786415 y: -52.247261107729756 z: 51.21804625684723 + alternateName: + - R_PCV_ROI R_STV: name: R_STV lookupLabel: 208 @@ -1459,6 +1873,8 @@ terminology: x: 60.03563626433643 y: -44.02525942108137 z: 20.40592572364828 + alternateName: + - R_STV_ROI R_7Pm: name: R_7Pm lookupLabel: 209 @@ -1466,6 +1882,8 @@ terminology: x: 5.241646778042963 y: -68.45525059665871 z: 50.84427207637232 + alternateName: + - R_7Pm_ROI R_7m: name: R_7m lookupLabel: 210 @@ -1473,6 +1891,8 @@ terminology: x: 4.522998014559889 y: -62.51042356055592 z: 34.464758438120455 + alternateName: + - R_7m_ROI R_POS1: name: R_POS1 lookupLabel: 211 @@ -1480,6 +1900,8 @@ terminology: x: 13.983739837398375 y: -57.0650406504065 z: 17.40548780487805 + alternateName: + - R_POS1_ROI R_23d: name: R_23d lookupLabel: 212 @@ -1487,6 +1909,8 @@ terminology: x: 3.4703718048024825 y: -21.133423702556158 z: 39.42467079783114 + alternateName: + - R_23d_ROI R_v23ab: name: R_v23ab lookupLabel: 213 @@ -1494,6 +1918,8 @@ terminology: x: 4.364253393665152 y: -55.01470588235294 z: 18.838235294117652 + alternateName: + - R_v23ab_ROI R_d23ab: name: R_d23ab lookupLabel: 214 @@ -1501,6 +1927,8 @@ terminology: x: 3.4886990077177558 y: -40.71141124586549 z: 33.10832414553472 + alternateName: + - R_d23ab_ROI R_31pv: name: R_31pv lookupLabel: 215 @@ -1508,6 +1936,8 @@ terminology: x: 9.127336448598129 y: -42.98014018691589 z: 34.75700934579439 + alternateName: + - R_31pv_ROI R_5m: name: R_5m lookupLabel: 216 @@ -1515,6 +1945,8 @@ terminology: x: 5.431855840927923 y: -39.23632974316487 z: 65.87841756420877 + alternateName: + - R_5m_ROI R_5mv: name: R_5mv lookupLabel: 217 @@ -1522,6 +1954,8 @@ terminology: x: 12.077225130890056 y: -40.258507853403145 z: 55.00785340314137 + alternateName: + - R_5mv_ROI R_23c: name: R_23c lookupLabel: 218 @@ -1529,6 +1963,8 @@ terminology: x: 11.25159948816379 y: -33.034069097888676 z: 44.11532309660909 + alternateName: + - R_23c_ROI R_5L: name: R_5L lookupLabel: 219 @@ -1536,6 +1972,8 @@ terminology: x: 14.053824362606235 y: -47.55099150141643 z: 74.55099150141643 + alternateName: + - R_5L_ROI R_24dd: name: R_24dd lookupLabel: 220 @@ -1543,6 +1981,8 @@ terminology: x: 6.350089365504914 y: -16.25044682752457 z: 53.144548704200176 + alternateName: + - R_24dd_ROI R_24dv: name: R_24dv lookupLabel: 221 @@ -1550,6 +1990,8 @@ terminology: x: 9.12715321849501 y: -2.558703535811418 z: 46.757252946509524 + alternateName: + - R_24dv_ROI R_7AL: name: R_7AL lookupLabel: 222 @@ -1557,6 +1999,8 @@ terminology: x: 23.9706466250709 y: -51.699517867271695 z: 68.66832104367555 + alternateName: + - R_7AL_ROI R_SCEF: name: R_SCEF lookupLabel: 223 @@ -1564,6 +2008,8 @@ terminology: x: 6.105520127540856 y: 4.079812674372249 z: 61.31237544838581 + alternateName: + - R_SCEF_ROI R_6ma: name: R_6ma lookupLabel: 224 @@ -1571,6 +2017,8 @@ terminology: x: 21.02052176802924 y: 5.251661681621812 z: 67.20696244599534 + alternateName: + - R_6ma_ROI R_7Am: name: R_7Am lookupLabel: 225 @@ -1578,6 +2026,8 @@ terminology: x: 9.016784452296818 y: -60.45082449941107 z: 62.13221436984688 + alternateName: + - R_7Am_ROI R_7PL: name: R_7PL lookupLabel: 226 @@ -1585,6 +2035,8 @@ terminology: x: 12.421378091872796 y: -73.09746760895172 z: 56.92432273262662 + alternateName: + - R_7PL_ROI R_7PC: name: R_7PC lookupLabel: 227 @@ -1592,6 +2044,8 @@ terminology: x: 36.42088607594937 y: -47.30082470272343 z: 61.418200997314926 + alternateName: + - R_7PC_ROI R_LIPv: name: R_LIPv lookupLabel: 228 @@ -1599,6 +2053,8 @@ terminology: x: 28.34354226020892 y: -57.36918328584996 z: 53.83736942070276 + alternateName: + - R_LIPv_ROI R_VIP: name: R_VIP lookupLabel: 229 @@ -1606,6 +2062,8 @@ terminology: x: 21.826388888888886 y: -63.62586805555556 z: 63.31336805555554 + alternateName: + - R_VIP_ROI R_MIP: name: R_MIP lookupLabel: 230 @@ -1613,6 +2071,8 @@ terminology: x: 25.66491985203453 y: -68.12916152897657 z: 50.8733045622688 + alternateName: + - R_MIP_ROI R_1: name: R_1 lookupLabel: 231 @@ -1620,6 +2080,8 @@ terminology: x: 48.99934005279579 y: -21.15100791936645 z: 54.73632109431246 + alternateName: + - R_1_ROI R_2: name: R_2 lookupLabel: 232 @@ -1627,6 +2089,8 @@ terminology: x: 38.498777838131446 y: -30.237235198261814 z: 52.333107007061386 + alternateName: + - R_2_ROI R_3a: name: R_3a lookupLabel: 233 @@ -1634,6 +2098,8 @@ terminology: x: 32.625481386392806 y: -19.941912708600768 z: 46.98555840821567 + alternateName: + - R_3a_ROI R_6d: name: R_6d lookupLabel: 234 @@ -1641,6 +2107,8 @@ terminology: x: 38.00440414507773 y: -11.32046632124353 z: 64.74740932642487 + alternateName: + - R_6d_ROI R_6mp: name: R_6mp lookupLabel: 235 @@ -1648,6 +2116,8 @@ terminology: x: 17.389145216124334 y: -11.763113161728995 z: 69.37360369111218 + alternateName: + - R_6mp_ROI R_6v: name: R_6v lookupLabel: 236 @@ -1655,6 +2125,8 @@ terminology: x: 59.51385421867198 y: 6.688841737393915 z: 30.60971043434847 + alternateName: + - R_6v_ROI R_p24pr: name: R_p24pr lookupLabel: 237 @@ -1662,6 +2134,8 @@ terminology: x: 4.364678899082563 y: -2.1376146788990695 z: 40.56116207951071 + alternateName: + - R_p24pr_ROI R_33pr: name: R_33pr lookupLabel: 238 @@ -1669,6 +2143,8 @@ terminology: x: 3.3874829001368028 y: 14.953146374829004 z: 26.86080711354309 + alternateName: + - R_33pr_ROI R_a24pr: name: R_a24pr lookupLabel: 239 @@ -1676,6 +2152,8 @@ terminology: x: 4.366634799235186 y: 19.49091778202677 z: 32.13814531548758 + alternateName: + - R_a24pr_ROI R_p32pr: name: R_p32pr lookupLabel: 240 @@ -1683,6 +2161,8 @@ terminology: x: 9.031569965870304 y: 14.621160409556325 z: 40.19112627986348 + alternateName: + - R_p32pr_ROI R_a24: name: R_a24 lookupLabel: 241 @@ -1690,6 +2170,8 @@ terminology: x: -0.5 y: 33.25 z: -6.575000000000003 + alternateName: + - R_a24_ROI R_d32: name: R_d32 lookupLabel: 242 @@ -1697,6 +2179,8 @@ terminology: x: 7.21994219653179 y: 39.42861271676301 z: 26.991040462427748 + alternateName: + - R_d32_ROI R_8BM: name: R_8BM lookupLabel: 243 @@ -1704,6 +2188,8 @@ terminology: x: 4.865793079821856 y: 30.65184994861255 z: 47.43653648509763 + alternateName: + - R_8BM_ROI R_p32: name: R_p32 lookupLabel: 244 @@ -1711,6 +2197,8 @@ terminology: x: -0.5 y: 43.25 z: -12.75 + alternateName: + - R_p32_ROI R_10r: name: R_10r lookupLabel: 245 @@ -1718,6 +2206,8 @@ terminology: x: -0.5 y: 45.25 z: -11.75 + alternateName: + - R_10r_ROI R_47m: name: R_47m lookupLabel: 246 @@ -1725,6 +2215,8 @@ terminology: x: 33.735732814526585 y: 32.57166018158236 z: -15.882944228274965 + alternateName: + - R_47m_ROI R_8Av: name: R_8Av lookupLabel: 247 @@ -1732,6 +2224,8 @@ terminology: x: 39.82491364421415 y: 18.82016407599309 z: 49.09974093264249 + alternateName: + - R_8Av_ROI R_8Ad: name: R_8Ad lookupLabel: 248 @@ -1739,6 +2233,8 @@ terminology: x: 23.983657243816253 y: 30.605123674911653 z: 42.313604240282686 + alternateName: + - R_8Ad_ROI R_9m: name: R_9m lookupLabel: 249 @@ -1746,6 +2242,8 @@ terminology: x: 6.743400791904975 y: 55.090079190497136 z: 20.946876374835014 + alternateName: + - R_9m_ROI R_8BL: name: R_8BL lookupLabel: 250 @@ -1753,6 +2251,8 @@ terminology: x: 13.209679537693717 y: 41.907473075912804 z: 49.511754662463886 + alternateName: + - R_8BL_ROI R_9p: name: R_9p lookupLabel: 251 @@ -1760,6 +2260,8 @@ terminology: x: 20.632601797990475 y: 50.93588048651506 z: 34.19315177154944 + alternateName: + - R_9p_ROI R_10d: name: R_10d lookupLabel: 252 @@ -1767,6 +2269,8 @@ terminology: x: 9.5 y: 67.84716981132075 z: 5.073113207547166 + alternateName: + - R_10d_ROI R_8C: name: R_8C lookupLabel: 253 @@ -1774,6 +2278,8 @@ terminology: x: 39.56847133757961 y: 18.153093721565057 z: 36.71496815286625 + alternateName: + - R_8C_ROI R_44: name: R_44 lookupLabel: 254 @@ -1781,6 +2287,8 @@ terminology: x: 53.43095712861415 y: 18.97781655034896 z: 12.59097706879362 + alternateName: + - R_44_ROI R_45: name: R_45 lookupLabel: 255 @@ -1788,6 +2296,8 @@ terminology: x: 50.38198118753675 y: 26.57921810699588 z: 3.371399176954739 + alternateName: + - R_45_ROI R_47l: name: R_47l lookupLabel: 256 @@ -1795,6 +2305,8 @@ terminology: x: 45.23400000000001 y: 33.28200000000001 z: -13.70133333333333 + alternateName: + - R_47l_ROI R_a47r: name: R_a47r lookupLabel: 257 @@ -1802,6 +2314,8 @@ terminology: x: 39.27214285714285 y: 51.76821428571429 z: -8.549999999999997 + alternateName: + - R_a47r_ROI R_6r: name: R_6r lookupLabel: 258 @@ -1809,6 +2323,8 @@ terminology: x: 52.19514925373133 y: 10.025373134328362 z: 13.33097014925373 + alternateName: + - R_6r_ROI R_IFJa: name: R_IFJa lookupLabel: 259 @@ -1816,6 +2332,8 @@ terminology: x: 44.36234567901235 y: 16.601851851851848 z: 25.558641975308646 + alternateName: + - R_IFJa_ROI R_IFJp: name: R_IFJp lookupLabel: 260 @@ -1823,6 +2341,8 @@ terminology: x: 38.60614849187934 y: 7.4912993039443165 z: 27.174593967517396 + alternateName: + - R_IFJp_ROI R_IFSp: name: R_IFSp lookupLabel: 261 @@ -1830,6 +2350,8 @@ terminology: x: 47.722403776325336 y: 28.692992011619452 z: 18.92864923747277 + alternateName: + - R_IFSp_ROI R_IFSa: name: R_IFSa lookupLabel: 262 @@ -1837,6 +2359,8 @@ terminology: x: 49.99172335600906 y: 36.13299319727892 z: 3.710997732426307 + alternateName: + - R_IFSa_ROI R_p9-46v: name: R_p9-46v lookupLabel: 263 @@ -1844,6 +2368,8 @@ terminology: x: 47.47749099639856 y: 30.948979591836746 z: 27.212484993997606 + alternateName: + - R_p9-46v_ROI R_46: name: R_46 lookupLabel: 264 @@ -1851,6 +2377,8 @@ terminology: x: 36.77531259530343 y: 39.89897834705704 z: 30.743595608417195 + alternateName: + - R_46_ROI R_a9-46v: name: R_a9-46v lookupLabel: 265 @@ -1858,6 +2386,8 @@ terminology: x: 39.722477064220186 y: 52.66371778069026 z: 10.134884228920924 + alternateName: + - R_a9-46v_ROI R_9-46d: name: R_9-46d lookupLabel: 266 @@ -1865,6 +2395,8 @@ terminology: x: 29.25714077528417 y: 49.34180996793938 z: 23.474278635966186 + alternateName: + - R_9-46d_ROI R_9a: name: R_9a lookupLabel: 267 @@ -1872,6 +2404,8 @@ terminology: x: 19.27009345794393 y: 62.32710280373831 z: 19.861682242990653 + alternateName: + - R_9a_ROI R_10v: name: R_10v lookupLabel: 268 @@ -1879,6 +2413,8 @@ terminology: x: -0.5 y: 27.25 z: -24.375 + alternateName: + - R_10v_ROI R_a10p: name: R_a10p lookupLabel: 269 @@ -1886,6 +2422,8 @@ terminology: x: 25.09744027303755 y: 62.27457337883959 z: -8.503924914675771 + alternateName: + - R_a10p_ROI R_10pp: name: R_10pp lookupLabel: 270 @@ -1893,6 +2431,8 @@ terminology: x: 12.489285714285714 y: 63.23214285714286 z: -16.408163265306122 + alternateName: + - R_10pp_ROI R_11l: name: R_11l lookupLabel: 271 @@ -1900,6 +2440,8 @@ terminology: x: 25.70719844357977 y: 48.191309987029825 z: -16.244487678339816 + alternateName: + - R_11l_ROI R_13l: name: R_13l lookupLabel: 272 @@ -1907,6 +2449,8 @@ terminology: x: 20.14066339066339 y: 28.982186732186733 z: -20.260647010647013 + alternateName: + - R_13l_ROI R_OFC: name: R_OFC lookupLabel: 273 @@ -1914,6 +2458,8 @@ terminology: x: -0.5 y: 23.178571428571416 z: -23.964285714285715 + alternateName: + - R_OFC_ROI R_47s: name: R_47s lookupLabel: 274 @@ -1921,6 +2467,8 @@ terminology: x: 31.287923614846704 y: 22.431818181818187 z: -19.62224314147391 + alternateName: + - R_47s_ROI R_LIPd: name: R_LIPd lookupLabel: 275 @@ -1928,6 +2476,8 @@ terminology: x: 31.199820788530474 y: -54.465053763440864 z: 45.138888888888886 + alternateName: + - R_LIPd_ROI R_6a: name: R_6a lookupLabel: 276 @@ -1935,6 +2485,8 @@ terminology: x: 26.937934186471665 y: -2.1452468007312575 z: 53.461882998171845 + alternateName: + - R_6a_ROI R_i6-8: name: R_i6-8 lookupLabel: 277 @@ -1942,6 +2494,8 @@ terminology: x: 32.98572639909554 y: 8.112068965517238 z: 58.07108535895986 + alternateName: + - R_i6-8_ROI R_s6-8: name: R_s6-8 lookupLabel: 278 @@ -1949,6 +2503,8 @@ terminology: x: 20.472158438576344 y: 22.041044776119406 z: 59.11796785304247 + alternateName: + - R_s6-8_ROI R_43: name: R_43 lookupLabel: 279 @@ -1956,6 +2512,8 @@ terminology: x: 55.701399116347574 y: 0.7986008836524263 z: 9.749263622974965 + alternateName: + - R_43_ROI R_OP4: name: R_OP4 lookupLabel: 280 @@ -1963,6 +2521,8 @@ terminology: x: 56.67201559688061 y: -11.195110977804433 z: 14.169916016796634 + alternateName: + - R_OP4_ROI R_OP1: name: R_OP1 lookupLabel: 281 @@ -1970,6 +2530,8 @@ terminology: x: 41.9844013490725 y: -19.719645868465435 z: 19.186762225969645 + alternateName: + - R_OP1_ROI R_OP2-3: name: R_OP2-3 lookupLabel: 282 @@ -1977,6 +2539,8 @@ terminology: x: 38.684426229508205 y: -13.571721311475414 z: 18.45286885245902 + alternateName: + - R_OP2-3_ROI R_52: name: R_52 lookupLabel: 283 @@ -1984,6 +2548,8 @@ terminology: x: 38.23726114649682 y: -20.593949044585983 z: 2.6576433121019107 + alternateName: + - R_52_ROI R_RI: name: R_RI lookupLabel: 284 @@ -1991,6 +2557,8 @@ terminology: x: 41.18804034582132 y: -30.816282420749275 z: 19.757204610951007 + alternateName: + - R_RI_ROI R_PFcm: name: R_PFcm lookupLabel: 285 @@ -1998,6 +2566,8 @@ terminology: x: 47.02060270602706 y: -27.75615006150062 z: 22.838560885608857 + alternateName: + - R_PFcm_ROI R_PoI2: name: R_PoI2 lookupLabel: 286 @@ -2005,6 +2575,8 @@ terminology: x: 41.040063424947135 y: -1.3233615221987236 z: -0.3265327695560245 + alternateName: + - R_PoI2_ROI R_TA2: name: R_TA2 lookupLabel: 287 @@ -2012,6 +2584,8 @@ terminology: x: 50.64983164983164 y: 1.1111111111111143 z: -5.57744107744108 + alternateName: + - R_TA2_ROI R_FOP4: name: R_FOP4 lookupLabel: 288 @@ -2019,6 +2593,8 @@ terminology: x: 38.70143706640238 y: 15.140981169474713 z: 7.443756194251733 + alternateName: + - R_FOP4_ROI R_MI: name: R_MI lookupLabel: 289 @@ -2026,6 +2602,8 @@ terminology: x: 36.89003164556962 y: 12.321202531645582 z: 3.016613924050631 + alternateName: + - R_MI_ROI R_Pir: name: R_Pir lookupLabel: 290 @@ -2033,6 +2611,8 @@ terminology: x: 33.20903954802259 y: 8.545197740112997 z: -18.355932203389834 + alternateName: + - R_Pir_ROI R_AVI: name: R_AVI lookupLabel: 291 @@ -2040,6 +2620,8 @@ terminology: x: 32.67650103519668 y: 26.25 z: -3.3400621118012452 + alternateName: + - R_AVI_ROI R_AAIC: name: R_AAIC lookupLabel: 292 @@ -2047,6 +2629,8 @@ terminology: x: 35.071173104434905 y: 16.767167381974247 z: -10.488912732474965 + alternateName: + - R_AAIC_ROI R_FOP1: name: R_FOP1 lookupLabel: 293 @@ -2054,6 +2638,8 @@ terminology: x: 46.17549923195085 y: 4.638632872503848 z: 5.743855606758828 + alternateName: + - R_FOP1_ROI R_FOP3: name: R_FOP3 lookupLabel: 294 @@ -2061,6 +2647,8 @@ terminology: x: 34.70601173020529 y: 8.012463343108493 z: 12.093108504398828 + alternateName: + - R_FOP3_ROI R_FOP2: name: R_FOP2 lookupLabel: 295 @@ -2068,6 +2656,8 @@ terminology: x: 40.45631067961165 y: -1.9126213592232943 z: 15.550970873786412 + alternateName: + - R_FOP2_ROI R_PFt: name: R_PFt lookupLabel: 296 @@ -2075,6 +2665,8 @@ terminology: x: 56.22141896435778 y: -20.324310692669812 z: 37.27790854068594 + alternateName: + - R_PFt_ROI R_AIP: name: R_AIP lookupLabel: 297 @@ -2082,6 +2674,8 @@ terminology: x: 38.6782267792521 y: -38.670989143546436 z: 44.44601930036188 + alternateName: + - R_AIP_ROI R_EC: name: R_EC lookupLabel: 298 @@ -2089,6 +2683,8 @@ terminology: x: 21.96528525296017 y: -16.307588805166844 z: -29.791442411194836 + alternateName: + - R_EC_ROI R_PreS: name: R_PreS lookupLabel: 299 @@ -2096,6 +2692,8 @@ terminology: x: 16.533306581059392 y: -34.39205457463885 z: -10.778089887640448 + alternateName: + - R_PreS_ROI R_H: name: R_H lookupLabel: 300 @@ -2103,6 +2701,8 @@ terminology: x: 13.211538461538467 y: -39.13461538461539 z: -2.0192307692307736 + alternateName: + - R_H_ROI R_ProS: name: R_ProS lookupLabel: 301 @@ -2110,6 +2710,8 @@ terminology: x: 22.010387811634345 y: -50.286011080332415 z: 3.03393351800554 + alternateName: + - R_ProS_ROI R_PeEc: name: R_PeEc lookupLabel: 302 @@ -2117,6 +2719,8 @@ terminology: x: 30.155775638652358 y: -9.921047760088854 z: -34.3296001480933 + alternateName: + - R_PeEc_ROI R_STGa: name: R_STGa lookupLabel: 303 @@ -2124,6 +2728,8 @@ terminology: x: 50.162170639899614 y: 15.200439146800505 z: -19.031681304893347 + alternateName: + - R_STGa_ROI R_PBelt: name: R_PBelt lookupLabel: 304 @@ -2131,6 +2737,8 @@ terminology: x: 55.791558441558436 y: -18.91969696969697 z: 8.968181818181819 + alternateName: + - R_PBelt_ROI R_A5: name: R_A5 lookupLabel: 305 @@ -2138,6 +2746,8 @@ terminology: x: 62.39120290356033 y: -14.145782924300036 z: -1.887054960248875 + alternateName: + - R_A5_ROI R_PHA1: name: R_PHA1 lookupLabel: 306 @@ -2145,6 +2755,8 @@ terminology: x: 22.32861060329067 y: -35.80667276051189 z: -15.326782449725776 + alternateName: + - R_PHA1_ROI R_PHA3: name: R_PHA3 lookupLabel: 307 @@ -2152,6 +2764,8 @@ terminology: x: 33.473338485316845 y: -37.29250386398763 z: -14.900695517774345 + alternateName: + - R_PHA3_ROI R_STSda: name: R_STSda lookupLabel: 308 @@ -2159,6 +2773,8 @@ terminology: x: 53.12557959814529 y: -0.6531427099433245 z: -14.851751674394642 + alternateName: + - R_STSda_ROI R_STSdp: name: R_STSdp lookupLabel: 309 @@ -2166,6 +2782,8 @@ terminology: x: 49.2487113402062 y: -27.936211340206185 z: -1.1140463917525807 + alternateName: + - R_STSdp_ROI R_STSvp: name: R_STSvp lookupLabel: 310 @@ -2173,6 +2791,8 @@ terminology: x: 57.357777777777784 y: -29.70555555555555 z: -4.142777777777781 + alternateName: + - R_STSvp_ROI R_TGd: name: R_TGd lookupLabel: 311 @@ -2180,6 +2800,8 @@ terminology: x: 35.96915444348576 y: 14.269844693701458 z: -35.73274374460742 + alternateName: + - R_TGd_ROI R_TE1a: name: R_TE1a lookupLabel: 312 @@ -2187,6 +2809,8 @@ terminology: x: 58.87770772712577 y: -0.5747655997413403 z: -26.16820239249919 + alternateName: + - R_TE1a_ROI R_TE1p: name: R_TE1p lookupLabel: 313 @@ -2194,6 +2818,8 @@ terminology: x: 61.76427568453079 y: -42.81108120758249 z: -12.132284109524925 + alternateName: + - R_TE1p_ROI R_TE2a: name: R_TE2a lookupLabel: 314 @@ -2201,6 +2827,8 @@ terminology: x: 55.18058443058442 y: -18.107588357588355 z: -30.1529799029799 + alternateName: + - R_TE2a_ROI R_TF: name: R_TF lookupLabel: 315 @@ -2208,6 +2836,8 @@ terminology: x: 41.39750957854406 y: -20.072723253757744 z: -30.013925729442974 + alternateName: + - R_TF_ROI R_TE2p: name: R_TE2p lookupLabel: 316 @@ -2215,6 +2845,8 @@ terminology: x: 48.30426176059618 y: -37.408593386120174 z: -21.533185840707965 + alternateName: + - R_TE2p_ROI R_PHT: name: R_PHT lookupLabel: 317 @@ -2222,6 +2854,8 @@ terminology: x: 60.32077435470441 y: -52.89029975020816 z: -4.6230224812656076 + alternateName: + - R_PHT_ROI R_PH: name: R_PH lookupLabel: 318 @@ -2229,6 +2863,8 @@ terminology: x: 47.912915851272004 y: -62.63160469667319 z: -9.515166340508806 + alternateName: + - R_PH_ROI R_TPOJ1: name: R_TPOJ1 lookupLabel: 319 @@ -2236,6 +2872,8 @@ terminology: x: 54.49825174825176 y: -43.996153846153845 z: 12.318531468531475 + alternateName: + - R_TPOJ1_ROI R_TPOJ2: name: R_TPOJ2 lookupLabel: 320 @@ -2243,6 +2881,8 @@ terminology: x: 54.06372549019608 y: -55.99667931688805 z: 8.48561037318153 + alternateName: + - R_TPOJ2_ROI R_TPOJ3: name: R_TPOJ3 lookupLabel: 321 @@ -2250,6 +2890,8 @@ terminology: x: 46.51398210290827 y: -62.06096196868009 z: 18.236577181208048 + alternateName: + - R_TPOJ3_ROI R_DVT: name: R_DVT lookupLabel: 322 @@ -2257,6 +2899,8 @@ terminology: x: 20.227640959170444 y: -71.13431626701231 z: 36.50178224238496 + alternateName: + - R_DVT_ROI R_PGp: name: R_PGp lookupLabel: 323 @@ -2264,6 +2908,8 @@ terminology: x: 44.585319609967485 y: -77.68752257132539 z: 25.48167208378476 + alternateName: + - R_PGp_ROI R_IP2: name: R_IP2 lookupLabel: 324 @@ -2271,6 +2917,8 @@ terminology: x: 43.21243617797228 y: -41.783552151714076 z: 46.256929248723566 + alternateName: + - R_IP2_ROI R_IP1: name: R_IP1 lookupLabel: 325 @@ -2278,6 +2926,8 @@ terminology: x: 34.10836734693876 y: -67.14591836734694 z: 41.90020408163265 + alternateName: + - R_IP1_ROI R_IP0: name: R_IP0 lookupLabel: 326 @@ -2285,6 +2935,8 @@ terminology: x: 34.13036117381489 y: -74.70033860045146 z: 27.493792325056432 + alternateName: + - R_IP0_ROI R_PFop: name: R_PFop lookupLabel: 327 @@ -2292,6 +2944,8 @@ terminology: x: 61.990983606557364 y: -19.14754098360656 z: 23.404098360655738 + alternateName: + - R_PFop_ROI R_PF: name: R_PF lookupLabel: 328 @@ -2299,6 +2953,8 @@ terminology: x: 60.76220657276994 y: -28.570344287949922 z: 37.12527386541471 + alternateName: + - R_PF_ROI R_PFm: name: R_PFm lookupLabel: 329 @@ -2306,6 +2962,8 @@ terminology: x: 52.62481638648603 y: -48.011955279908605 z: 46.548596376693325 + alternateName: + - R_PFm_ROI R_PGi: name: R_PGi lookupLabel: 330 @@ -2313,6 +2971,8 @@ terminology: x: 51.173493975903625 y: -59.60451807228915 z: 28.7867469879518 + alternateName: + - R_PGi_ROI R_PGs: name: R_PGs lookupLabel: 331 @@ -2320,6 +2980,8 @@ terminology: x: 44.58025969138126 y: -68.62692886714339 z: 42.13991343620624 + alternateName: + - R_PGs_ROI R_V6A: name: R_V6A lookupLabel: 332 @@ -2327,6 +2989,8 @@ terminology: x: 24.236885245901632 y: -84.3860655737705 z: 43.51229508196721 + alternateName: + - R_V6A_ROI R_VMV1: name: R_VMV1 lookupLabel: 333 @@ -2334,6 +2998,8 @@ terminology: x: 18.165533980582524 y: -54.592718446601936 z: -6.3762135922330145 + alternateName: + - R_VMV1_ROI R_VMV3: name: R_VMV3 lookupLabel: 334 @@ -2341,6 +3007,8 @@ terminology: x: 27.495945945945948 y: -61.11756756756756 z: -9.42972972972973 + alternateName: + - R_VMV3_ROI R_PHA2: name: R_PHA2 lookupLabel: 335 @@ -2348,6 +3016,8 @@ terminology: x: 31.138127853881286 y: -35.28196347031964 z: -12.871004566210047 + alternateName: + - R_PHA2_ROI R_V4t: name: R_V4t lookupLabel: 336 @@ -2355,6 +3025,8 @@ terminology: x: 50.17153493699885 y: -74.18069873997709 z: -0.2362542955326461 + alternateName: + - R_V4t_ROI R_FST: name: R_FST lookupLabel: 337 @@ -2362,6 +3034,8 @@ terminology: x: 50.02332242225859 y: -63.07815057283142 z: 1.4210310965630129 + alternateName: + - R_FST_ROI R_V3CD: name: R_V3CD lookupLabel: 338 @@ -2369,6 +3043,8 @@ terminology: x: 37.86700844390833 y: -83.50030156815441 z: 12.1034378769602 + alternateName: + - R_V3CD_ROI R_LO3: name: R_LO3 lookupLabel: 339 @@ -2376,6 +3052,8 @@ terminology: x: 43.52718120805369 y: -74.29362416107382 z: 13.249328859060398 + alternateName: + - R_LO3_ROI R_VMV2: name: R_VMV2 lookupLabel: 340 @@ -2383,6 +3061,8 @@ terminology: x: 27.185257410296416 y: -54.02145085803433 z: -6.6275351014040496 + alternateName: + - R_VMV2_ROI R_31pd: name: R_31pd lookupLabel: 341 @@ -2390,6 +3070,8 @@ terminology: x: 11.04812606473594 y: -52.36328790459966 z: 35.753407155025556 + alternateName: + - R_31pd_ROI R_31a: name: R_31a lookupLabel: 342 @@ -2397,6 +3079,8 @@ terminology: x: 6.678571428571431 y: -41.39160401002506 z: 42.74624060150376 + alternateName: + - R_31a_ROI R_VVC: name: R_VVC lookupLabel: 343 @@ -2404,6 +3088,8 @@ terminology: x: 28.975396825396828 y: -48.27380952380952 z: -17.603439153439155 + alternateName: + - R_VVC_ROI R_25: name: R_25 lookupLabel: 344 @@ -2411,6 +3097,8 @@ terminology: x: -0.5 y: 23.184782608695656 z: -18.532608695652172 + alternateName: + - R_25_ROI R_s32: name: R_s32 lookupLabel: 345 @@ -2418,6 +3106,8 @@ terminology: x: -0.5 y: 37.89516129032259 z: -16.088709677419352 + alternateName: + - R_s32_ROI R_pOFC: name: R_pOFC lookupLabel: 346 @@ -2425,6 +3115,8 @@ terminology: x: 13.150634920634914 y: 15.451904761904757 z: -19.916666666666664 + alternateName: + - R_pOFC_ROI R_PoI1: name: R_PoI1 lookupLabel: 347 @@ -2432,6 +3124,8 @@ terminology: x: 39.27380952380952 y: -9.349999999999994 z: -4.627489177489181 + alternateName: + - R_PoI1_ROI R_Ig: name: R_Ig lookupLabel: 348 @@ -2439,6 +3133,8 @@ terminology: x: 36.55669144981414 y: -12.947026022304826 z: 14.114312267657994 + alternateName: + - R_Ig_ROI R_FOP5: name: R_FOP5 lookupLabel: 349 @@ -2446,6 +3142,8 @@ terminology: x: 36.99032042723633 y: 27.550400534045394 z: 4.831441922563414 + alternateName: + - R_FOP5_ROI R_p10p: name: R_p10p lookupLabel: 350 @@ -2453,6 +3151,8 @@ terminology: x: 24.291880341880344 y: 60.99643874643874 z: 3.7517094017094053 + alternateName: + - R_p10p_ROI R_p47r: name: R_p47r lookupLabel: 351 @@ -2460,6 +3160,8 @@ terminology: x: 46.39924346629985 y: 44.291265474552944 z: -4.291265474552958 + alternateName: + - R_p47r_ROI R_TGv: name: R_TGv lookupLabel: 352 @@ -2467,6 +3169,8 @@ terminology: x: 35.20703006377164 y: -1.2091557849984724 z: -45.193516550258124 + alternateName: + - R_TGv_ROI R_MBelt: name: R_MBelt lookupLabel: 353 @@ -2474,6 +3178,8 @@ terminology: x: 45.40606936416185 y: -16.026011560693647 z: 4.697976878612721 + alternateName: + - R_MBelt_ROI R_LBelt: name: R_LBelt lookupLabel: 354 @@ -2481,6 +3187,8 @@ terminology: x: 46.75763358778627 y: -25.133206106870233 z: 10.743893129770996 + alternateName: + - R_LBelt_ROI R_A4: name: R_A4 lookupLabel: 355 @@ -2488,6 +3196,8 @@ terminology: x: 64.40990504963315 y: -15.49104445403539 z: 6.570025895554593 + alternateName: + - R_A4_ROI R_STSva: name: R_STSva lookupLabel: 356 @@ -2495,6 +3205,8 @@ terminology: x: 54.14915966386553 y: -8.57352941176471 z: -16.90966386554622 + alternateName: + - R_STSva_ROI R_TE1m: name: R_TE1m lookupLabel: 357 @@ -2502,6 +3214,8 @@ terminology: x: 64.4446177847114 y: -22.457878315132604 z: -16.45748829953198 + alternateName: + - R_TE1m_ROI R_PI: name: R_PI lookupLabel: 358 @@ -2509,6 +3223,8 @@ terminology: x: 44.23837209302326 y: -3.3354993160054676 z: -12.723324213406293 + alternateName: + - R_PI_ROI R_a32pr: name: R_a32pr lookupLabel: 359 @@ -2516,6 +3232,8 @@ terminology: x: 9.49804905239688 y: 28.60785953177256 z: 30.501393534002233 + alternateName: + - R_a32pr_ROI R_p24: name: R_p24 lookupLabel: 360 @@ -2523,6 +3241,8 @@ terminology: x: 4.540288529204787 y: 37.96006333567911 z: 15.406579873328639 + alternateName: + - R_p24_ROI L_Cerebellum: name: L_Cerebellum lookupLabel: 361 @@ -2530,6 +3250,8 @@ terminology: x: -24.48406697634512 y: -62.91741405082212 z: -36.83932078532312 + alternateName: + - CEREBELLUM_LEFT L_Thalamus: name: L_Thalamus lookupLabel: 362 @@ -2537,6 +3259,8 @@ terminology: x: -11.496794431469525 y: -19.229690433667628 z: 6.6696318175573595 + alternateName: + - THALAMUS_LEFT L_Caudate: name: L_Caudate lookupLabel: 363 @@ -2544,6 +3268,8 @@ terminology: x: -12.935904089682381 y: 9.588800083039246 z: 9.577901183309109 + alternateName: + - CAUDATE_LEFT L_Putamen: name: L_Putamen lookupLabel: 364 @@ -2551,6 +3277,8 @@ terminology: x: -26.351774609434244 y: 0.004133171545589676 z: 0.17590626421961986 + alternateName: + - PUTAMEN_LEFT L_Pallidum: name: L_Pallidum lookupLabel: 365 @@ -2558,6 +3286,8 @@ terminology: x: -20.573129251700678 y: -5.126039304610742 z: -1.1611866969009839 + alternateName: + - PALLIDUM_LEFT L_Hippocampus: name: L_Hippocampus lookupLabel: 366 @@ -2565,6 +3295,8 @@ terminology: x: -25.404492905938 y: -22.463785251357507 z: -14.297994394815206 + alternateName: + - HIPPOCAMPUS_LEFT L_Amygdala: name: L_Amygdala lookupLabel: 367 @@ -2572,6 +3304,8 @@ terminology: x: -22.99617737003058 y: -5.069571865443436 z: -19.665392456676862 + alternateName: + - AMYGDALA_LEFT L_Accumbens: name: L_Accumbens lookupLabel: 368 @@ -2579,6 +3313,8 @@ terminology: x: -8.521477663230243 y: 9.993986254295521 z: -8.447594501718214 + alternateName: + - ACCUMBENS_LEFT L_VentralDC: name: L_VentralDC lookupLabel: 369 @@ -2586,6 +3322,8 @@ terminology: x: -10.531068871462665 y: -15.487811114899415 z: -10.567337197408797 + alternateName: + - DIENCEPHALON_VENTRAL_LEFT R_Cerebellum: name: R_Cerebellum lookupLabel: 370 @@ -2593,6 +3331,8 @@ terminology: x: -0.5 y: -55.72687861271676 z: -48.02456647398844 + alternateName: + - CEREBELLUM_RIGHT R_Thalamus: name: R_Thalamus lookupLabel: 371 @@ -2600,6 +3340,8 @@ terminology: x: 11.250937530839835 y: -17.52795322214547 z: 6.882241192144477 + alternateName: + - THALAMUS_RIGHT R_Caudate: name: R_Caudate lookupLabel: 372 @@ -2607,6 +3349,8 @@ terminology: x: 13.048647242455772 y: 11.009209157127998 z: 9.626170655567122 + alternateName: + - CAUDATE_RIGHT R_Putamen: name: R_Putamen lookupLabel: 373 @@ -2614,6 +3358,8 @@ terminology: x: 26.342504106316255 y: 2.011385695087341 z: -0.2747872181573854 + alternateName: + - PUTAMEN_RIGHT R_Pallidum: name: R_Pallidum lookupLabel: 374 @@ -2621,6 +3367,8 @@ terminology: x: 21.01383138878434 y: -3.7857546104629307 z: -1.0324614226571356 + alternateName: + - PALLIDUM_RIGHT R_Hippocampus: name: R_Hippocampus lookupLabel: 375 @@ -2628,6 +3376,8 @@ terminology: x: 26.09407680438882 y: -21.39443682496143 z: -14.08730498885651 + alternateName: + - HIPPOCAMPUS_RIGHT R_Amygdala: name: R_Amygdala lookupLabel: 376 @@ -2635,6 +3385,8 @@ terminology: x: 23.239999999999995 y: -3.7350000000000136 z: -19.836363636363636 + alternateName: + - AMYGDALA_RIGHT R_Accumbens: name: R_Accumbens lookupLabel: 377 @@ -2642,6 +3394,8 @@ terminology: x: 7.9292828685259025 y: 11.381474103585646 z: -7.499667994687911 + alternateName: + - ACCUMBENS_RIGHT R_VentralDC: name: R_VentralDC lookupLabel: 378 @@ -2649,6 +3403,8 @@ terminology: x: 10.552531234788248 y: -14.65524095408081 z: -10.15475417815999 + alternateName: + - DIENCEPHALON_VENTRAL_RIGHT Brain-Stem: name: Brain-Stem lookupLabel: 379 @@ -2656,3 +3412,5 @@ terminology: x: -6.083886808450501 y: -30.95130007772204 z: -33.07643255846817 + alternateName: + - BRAIN_STEM diff --git a/tvbo/database/atlases/tpl-MNI152NLin2009c_atlas-DesikanKilliany_desc-ranked_dseg.yaml b/tvbo/database/atlases/tpl-MNI152NLin2009c_atlas-DesikanKilliany_desc-ranked_dseg.yaml index 98e710bae..3924a22bb 100644 --- a/tvbo/database/atlases/tpl-MNI152NLin2009c_atlas-DesikanKilliany_desc-ranked_dseg.yaml +++ b/tvbo/database/atlases/tpl-MNI152NLin2009c_atlas-DesikanKilliany_desc-ranked_dseg.yaml @@ -10,6 +10,8 @@ terminology: x: -24.40642428142428 y: -61.91204150579151 z: -36.62557646932647 + alternateName: + - CEREBELLUM_LEFT left-thalamus: name: left-thalamus lookupLabel: 2 @@ -18,6 +20,8 @@ terminology: x: -11.500183217295714 y: -18.458226456577506 z: 7.141168926346651 + alternateName: + - THALAMUS_LEFT left-caudate: name: left-caudate lookupLabel: 3 @@ -26,6 +30,8 @@ terminology: x: -12.735150095805835 y: 10.40195869704067 z: 9.836491377474985 + alternateName: + - CAUDATE_LEFT left-putamen: name: left-putamen lookupLabel: 4 @@ -34,6 +40,8 @@ terminology: x: -25.96036489462095 y: 1.3513683548285655 z: 0.1748977665932614 + alternateName: + - PUTAMEN_LEFT left-pallidum: name: left-pallidum lookupLabel: 5 @@ -42,6 +50,8 @@ terminology: x: -20.477836213373408 y: -4.457926371149512 z: -0.817430503380919 + alternateName: + - PALLIDUM_LEFT brain-stem: name: brain-stem lookupLabel: 6 @@ -50,6 +60,8 @@ terminology: x: -6.0589560918871825 y: -30.443442861296887 z: -33.16363768537366 + alternateName: + - BRAIN_STEM left-hippocampus: name: left-hippocampus lookupLabel: 7 @@ -58,6 +70,8 @@ terminology: x: -25.205718041406513 y: -21.822543542556687 z: -13.643608281301354 + alternateName: + - HIPPOCAMPUS_LEFT left-amygdala: name: left-amygdala lookupLabel: 8 @@ -66,6 +80,8 @@ terminology: x: -22.85378973105135 y: -4.4596577017114925 z: -19.27041564792176 + alternateName: + - AMYGDALA_LEFT left-accumbens-area: name: left-accumbens-area lookupLabel: 9 @@ -74,6 +90,8 @@ terminology: x: -8.33931240657698 y: 11.461883408071742 z: -7.768310911808669 + alternateName: + - ACCUMBENS_LEFT left-ventraldc: name: left-ventraldc lookupLabel: 10 @@ -82,6 +100,8 @@ terminology: x: -10.237206308336013 y: -14.780978435790146 z: -10.105889925973614 + alternateName: + - DIENCEPHALON_VENTRAL_LEFT right-cerebellum-cortex: name: right-cerebellum-cortex lookupLabel: 11 @@ -90,6 +110,8 @@ terminology: x: 24.792715621526185 y: -61.53569607009743 z: -36.70357679984306 + alternateName: + - CEREBELLUM_RIGHT right-thalamus: name: right-thalamus lookupLabel: 12 @@ -98,6 +120,8 @@ terminology: x: 11.61273313153012 y: -16.875695732838594 z: 7.132701884581579 + alternateName: + - THALAMUS_RIGHT right-caudate: name: right-caudate lookupLabel: 13 @@ -106,6 +130,8 @@ terminology: x: 13.286608260325409 y: 11.799958281184814 z: 9.694201084689198 + alternateName: + - CAUDATE_RIGHT right-putamen: name: right-putamen lookupLabel: 14 @@ -114,6 +140,8 @@ terminology: x: 26.567430416730744 y: 3.172689527910194 z: -0.39351068737505557 + alternateName: + - PUTAMEN_RIGHT right-pallidum: name: right-pallidum lookupLabel: 15 @@ -122,6 +150,8 @@ terminology: x: 21.271406127258444 y: -2.800471327572666 z: -0.939905734485464 + alternateName: + - PALLIDUM_RIGHT right-hippocampus: name: right-hippocampus lookupLabel: 16 @@ -130,6 +160,8 @@ terminology: x: 26.533618477331046 y: -20.720273738237807 z: -13.792130025662956 + alternateName: + - HIPPOCAMPUS_RIGHT right-amygdala: name: right-amygdala lookupLabel: 17 @@ -138,6 +170,8 @@ terminology: x: 23.278780068728523 y: -3.0472508591065264 z: -19.627147766323027 + alternateName: + - AMYGDALA_RIGHT right-accumbens-area: name: right-accumbens-area lookupLabel: 18 @@ -146,6 +180,8 @@ terminology: x: 8.52184769038702 y: 12.62921348314606 z: -7.15106117353308 + alternateName: + - ACCUMBENS_RIGHT right-ventraldc: name: right-ventraldc lookupLabel: 19 @@ -154,6 +190,8 @@ terminology: x: 10.595841864860603 y: -14.210899354229014 z: -10.174988187116085 + alternateName: + - DIENCEPHALON_VENTRAL_RIGHT ctx-lh-bankssts: name: ctx-lh-bankssts lookupLabel: 20 @@ -162,6 +200,8 @@ terminology: x: -53.39756532066508 y: -45.79423990498812 z: 8.515142517814724 + alternateName: + - L_bankssts ctx-lh-caudalanteriorcingulate: name: ctx-lh-caudalanteriorcingulate lookupLabel: 21 @@ -170,6 +210,8 @@ terminology: x: -4.973120728929388 y: 21.2359908883827 z: 27.031890660592254 + alternateName: + - L_caudalanteriorcingulate ctx-lh-caudalmiddlefrontal: name: ctx-lh-caudalmiddlefrontal lookupLabel: 22 @@ -178,6 +220,8 @@ terminology: x: -36.74404027949034 y: 11.222975750102762 z: 49.34001233045623 + alternateName: + - L_caudalmiddlefrontal ctx-lh-cuneus: name: ctx-lh-cuneus lookupLabel: 23 @@ -186,6 +230,8 @@ terminology: x: -6.846679081315955 y: -78.28739913097455 z: 21.713842333954062 + alternateName: + - L_cuneus ctx-lh-entorhinal: name: ctx-lh-entorhinal lookupLabel: 24 @@ -194,6 +240,8 @@ terminology: x: -24.201298701298697 y: -4.779220779220779 z: -32.824675324675326 + alternateName: + - L_entorhinal ctx-lh-fusiform: name: ctx-lh-fusiform lookupLabel: 25 @@ -202,6 +250,8 @@ terminology: x: -34.905548705302095 y: -44.133497739416356 z: -20.642005754212903 + alternateName: + - L_fusiform ctx-lh-inferiorparietal: name: ctx-lh-inferiorparietal lookupLabel: 26 @@ -210,6 +260,8 @@ terminology: x: -40.60552268244576 y: -70.56233421750663 z: 33.03631911854724 + alternateName: + - L_inferiorparietal ctx-lh-inferiortemporal: name: ctx-lh-inferiortemporal lookupLabel: 27 @@ -218,6 +270,8 @@ terminology: x: -50.56490037085926 y: -31.539128795021682 z: -24.869193538248787 + alternateName: + - L_inferiortemporal ctx-lh-isthmuscingulate: name: ctx-lh-isthmuscingulate lookupLabel: 28 @@ -226,6 +280,8 @@ terminology: x: -6.529188558085224 y: -45.38412142440164 z: 19.773204903677765 + alternateName: + - L_isthmuscingulate ctx-lh-lateraloccipital: name: ctx-lh-lateraloccipital lookupLabel: 29 @@ -234,6 +290,8 @@ terminology: x: -30.96147730557965 y: -88.63045677941602 z: 1.6724486845909183 + alternateName: + - L_lateraloccipital ctx-lh-lateralorbitofrontal: name: ctx-lh-lateralorbitofrontal lookupLabel: 30 @@ -242,6 +300,8 @@ terminology: x: -24.359540971168443 y: 31.971452959028824 z: -18.02959028831563 + alternateName: + - L_lateralorbitofrontal ctx-lh-lingual: name: ctx-lh-lingual lookupLabel: 31 @@ -250,6 +310,8 @@ terminology: x: -14.154186134612956 y: -67.35004419749968 z: -4.748453087511052 + alternateName: + - L_lingual ctx-lh-medialorbitofrontal: name: ctx-lh-medialorbitofrontal lookupLabel: 32 @@ -258,6 +320,8 @@ terminology: x: -5.935648896068926 y: 34.539310716208945 z: -17.127355950457726 + alternateName: + - L_medialorbitofrontal ctx-lh-middletemporal: name: ctx-lh-middletemporal lookupLabel: 33 @@ -266,6 +330,8 @@ terminology: x: -57.95826158826365 y: -21.837385494868798 z: -14.932295612645497 + alternateName: + - L_middletemporal ctx-lh-parahippocampal: name: ctx-lh-parahippocampal lookupLabel: 34 @@ -274,6 +340,8 @@ terminology: x: -23.94569839712136 y: -30.401701014066077 z: -18.63591756624141 + alternateName: + - L_parahippocampal ctx-lh-paracentral: name: ctx-lh-paracentral lookupLabel: 35 @@ -282,6 +350,8 @@ terminology: x: -6.365271728839232 y: -28.35845483809885 z: 58.75932588524901 + alternateName: + - L_paracentral ctx-lh-parsopercularis: name: ctx-lh-parsopercularis lookupLabel: 36 @@ -290,6 +360,8 @@ terminology: x: -47.72817428060478 y: 15.508372622337845 z: 14.426597301251832 + alternateName: + - L_parsopercularis ctx-lh-parsorbitalis: name: ctx-lh-parsorbitalis lookupLabel: 37 @@ -298,6 +370,8 @@ terminology: x: -43.20521541950114 y: 41.39909297052154 z: -12.979875283446717 + alternateName: + - L_parsorbitalis ctx-lh-parstriangularis: name: ctx-lh-parstriangularis lookupLabel: 38 @@ -306,6 +380,8 @@ terminology: x: -47.245463049579044 y: 31.71487371375116 z: 3.1206735266604255 + alternateName: + - L_parstriangularis ctx-lh-pericalcarine: name: ctx-lh-pericalcarine lookupLabel: 39 @@ -314,6 +390,8 @@ terminology: x: -12.091287878787881 y: -80.11666666666667 z: 6.467045454545456 + alternateName: + - L_pericalcarine ctx-lh-postcentral: name: ctx-lh-postcentral lookupLabel: 40 @@ -322,6 +400,8 @@ terminology: x: -46.6283493218657 y: -22.266953357591802 z: 44.24892490903076 + alternateName: + - L_postcentral ctx-lh-posteriorcingulate: name: ctx-lh-posteriorcingulate lookupLabel: 41 @@ -330,6 +410,8 @@ terminology: x: -5.396387832699617 y: -18.092205323193923 z: 39.02614068441065 + alternateName: + - L_posteriorcingulate ctx-lh-precentral: name: ctx-lh-precentral lookupLabel: 42 @@ -338,6 +420,8 @@ terminology: x: -43.05403462529204 y: -6.9650751812136775 z: 42.54927215000299 + alternateName: + - L_precentral ctx-lh-precuneus: name: ctx-lh-precuneus lookupLabel: 43 @@ -346,6 +430,8 @@ terminology: x: -8.467257583861851 y: -59.011920226178646 z: 38.991289065484835 + alternateName: + - L_precuneus ctx-lh-rostralanteriorcingulate: name: ctx-lh-rostralanteriorcingulate lookupLabel: 44 @@ -354,6 +440,8 @@ terminology: x: -4.612650433809122 y: 36.28575426812202 z: -0.7903722362160579 + alternateName: + - L_rostralanteriorcingulate ctx-lh-rostralmiddlefrontal: name: ctx-lh-rostralmiddlefrontal lookupLabel: 45 @@ -362,6 +450,8 @@ terminology: x: -33.5027973031129 y: 46.39257877875005 z: 17.839477836752266 + alternateName: + - L_rostralmiddlefrontal ctx-lh-superiorfrontal: name: ctx-lh-superiorfrontal lookupLabel: 46 @@ -370,6 +460,8 @@ terminology: x: -11.28868552412645 y: 30.465201675368633 z: 43.95478799701647 + alternateName: + - L_superiorfrontal ctx-lh-superiorparietal: name: ctx-lh-superiorparietal lookupLabel: 47 @@ -378,6 +470,8 @@ terminology: x: -23.471579751254637 y: -64.13031856862317 z: 51.99874536329915 + alternateName: + - L_superiorparietal ctx-lh-superiortemporal: name: ctx-lh-superiortemporal lookupLabel: 48 @@ -386,6 +480,8 @@ terminology: x: -53.72980147099486 y: -11.545484709395566 z: -3.700215672178288 + alternateName: + - L_superiortemporal ctx-lh-supramarginal: name: ctx-lh-supramarginal lookupLabel: 49 @@ -394,6 +490,8 @@ terminology: x: -55.0221420142986 y: -39.35781217463733 z: 35.114735892274595 + alternateName: + - L_supramarginal ctx-lh-frontalpole: name: ctx-lh-frontalpole lookupLabel: 50 @@ -402,6 +500,8 @@ terminology: x: -7.600335852225015 y: 67.47607052896726 z: -10.203190596137702 + alternateName: + - L_frontalpole ctx-lh-temporalpole: name: ctx-lh-temporalpole lookupLabel: 51 @@ -410,6 +510,8 @@ terminology: x: -28.46723182262798 y: 13.661232474731008 z: -37.038800130420604 + alternateName: + - L_temporalpole ctx-lh-transversetemporal: name: ctx-lh-transversetemporal lookupLabel: 52 @@ -418,6 +520,8 @@ terminology: x: -44.806090739589806 y: -21.555003107520193 z: 9.389061528899944 + alternateName: + - L_transversetemporal ctx-lh-insula: name: ctx-lh-insula lookupLabel: 53 @@ -426,6 +530,8 @@ terminology: x: -36.0443006470881 y: 0.8967645594823352 z: -0.4175211548033815 + alternateName: + - L_insula ctx-rh-bankssts: name: ctx-rh-bankssts lookupLabel: 54 @@ -434,6 +540,8 @@ terminology: x: 54.35591814159292 y: -40.31692477876106 z: 9.907356194690266 + alternateName: + - R_bankssts ctx-rh-caudalanteriorcingulate: name: ctx-rh-caudalanteriorcingulate lookupLabel: 55 @@ -442,6 +550,8 @@ terminology: x: 5.119630812921542 y: 22.472843450479246 z: 27.414625488107916 + alternateName: + - R_caudalanteriorcingulate ctx-rh-caudalmiddlefrontal: name: ctx-rh-caudalmiddlefrontal lookupLabel: 56 @@ -450,6 +560,8 @@ terminology: x: 36.84884792626727 y: 14.019662058371722 z: 49.388940092165896 + alternateName: + - R_caudalmiddlefrontal ctx-rh-cuneus: name: ctx-rh-cuneus lookupLabel: 57 @@ -458,6 +570,8 @@ terminology: x: 8.293982544786402 y: -78.26917776757006 z: 22.761828203950387 + alternateName: + - R_cuneus ctx-rh-entorhinal: name: ctx-rh-entorhinal lookupLabel: 58 @@ -466,6 +580,8 @@ terminology: x: 23.822523881347408 y: -4.82352941176471 z: -33.72800402212167 + alternateName: + - R_entorhinal ctx-rh-fusiform: name: ctx-rh-fusiform lookupLabel: 59 @@ -474,6 +590,8 @@ terminology: x: 33.99211931192272 y: -37.66155410558427 z: -22.865604609778835 + alternateName: + - R_fusiform ctx-rh-inferiorparietal: name: ctx-rh-inferiorparietal lookupLabel: 60 @@ -482,6 +600,8 @@ terminology: x: 46.338160087341265 y: -63.07378038269263 z: 32.69166235706487 + alternateName: + - R_inferiorparietal ctx-rh-inferiortemporal: name: ctx-rh-inferiortemporal lookupLabel: 61 @@ -490,6 +610,8 @@ terminology: x: 50.51963177348489 y: -27.11786038077969 z: -27.183834298068206 + alternateName: + - R_inferiortemporal ctx-rh-isthmuscingulate: name: ctx-rh-isthmuscingulate lookupLabel: 62 @@ -498,6 +620,8 @@ terminology: x: 7.688529244747301 y: -43.68313458262351 z: 20.111300397501424 + alternateName: + - R_isthmuscingulate ctx-rh-lateraloccipital: name: ctx-rh-lateraloccipital lookupLabel: 63 @@ -506,6 +630,8 @@ terminology: x: 35.092215077301944 y: -83.91161581611712 z: 0.8458065398823322 + alternateName: + - R_lateraloccipital ctx-rh-lateralorbitofrontal: name: ctx-rh-lateralorbitofrontal lookupLabel: 64 @@ -514,6 +640,8 @@ terminology: x: 23.58775710088149 y: 32.155827619980414 z: -18.290401567091088 + alternateName: + - R_lateralorbitofrontal ctx-rh-lingual: name: ctx-rh-lingual lookupLabel: 65 @@ -522,6 +650,8 @@ terminology: x: 14.48061104582844 y: -65.48108108108109 z: -3.4635722679200995 + alternateName: + - R_lingual ctx-rh-medialorbitofrontal: name: ctx-rh-medialorbitofrontal lookupLabel: 66 @@ -530,6 +660,8 @@ terminology: x: -1.0 y: 27.0 z: -17.0 + alternateName: + - R_medialorbitofrontal ctx-rh-middletemporal: name: ctx-rh-middletemporal lookupLabel: 67 @@ -538,6 +670,8 @@ terminology: x: 57.996066433566426 y: -19.82498751248751 z: -15.695179820179817 + alternateName: + - R_middletemporal ctx-rh-parahippocampal: name: ctx-rh-parahippocampal lookupLabel: 68 @@ -546,6 +680,8 @@ terminology: x: 25.07764198418404 y: -28.98562185478073 z: -18.8842559309849 + alternateName: + - R_parahippocampal ctx-rh-paracentral: name: ctx-rh-paracentral lookupLabel: 69 @@ -554,6 +690,8 @@ terminology: x: 7.240244969378821 y: -26.09606299212598 z: 58.74033245844271 + alternateName: + - R_paracentral ctx-rh-parsopercularis: name: ctx-rh-parsopercularis lookupLabel: 70 @@ -562,6 +700,8 @@ terminology: x: 48.45660237388725 y: 16.0600890207715 z: 13.343842729970333 + alternateName: + - R_parsopercularis ctx-rh-parsorbitalis: name: ctx-rh-parsorbitalis lookupLabel: 71 @@ -570,6 +710,8 @@ terminology: x: 43.11352447147408 y: 42.51752099623516 z: -13.376773819866784 + alternateName: + - R_parsorbitalis ctx-rh-parstriangularis: name: ctx-rh-parstriangularis lookupLabel: 72 @@ -578,6 +720,8 @@ terminology: x: 49.07252506265664 y: 32.37045739348372 z: 4.812030075187977 + alternateName: + - R_parstriangularis ctx-rh-pericalcarine: name: ctx-rh-pericalcarine lookupLabel: 73 @@ -586,6 +730,8 @@ terminology: x: 13.270567375886529 y: -78.05602836879433 z: 8.123404255319144 + alternateName: + - R_pericalcarine ctx-rh-postcentral: name: ctx-rh-postcentral lookupLabel: 74 @@ -594,6 +740,8 @@ terminology: x: 47.432493177074974 y: -18.782469096163112 z: 43.82693851340504 + alternateName: + - R_postcentral ctx-rh-posteriorcingulate: name: ctx-rh-posteriorcingulate lookupLabel: 75 @@ -602,6 +750,8 @@ terminology: x: 5.84615384615384 y: -16.45428156748912 z: 39.15135807588638 + alternateName: + - R_posteriorcingulate ctx-rh-precentral: name: ctx-rh-precentral lookupLabel: 76 @@ -610,6 +760,8 @@ terminology: x: 44.28920433776045 y: -4.543986840502015 z: 42.76501766784452 + alternateName: + - R_precentral ctx-rh-precuneus: name: ctx-rh-precuneus lookupLabel: 77 @@ -618,6 +770,8 @@ terminology: x: 10.294996842326853 y: -57.70963441162024 z: 38.6811451827942 + alternateName: + - R_precuneus ctx-rh-rostralanteriorcingulate: name: ctx-rh-rostralanteriorcingulate lookupLabel: 78 @@ -626,6 +780,8 @@ terminology: x: 4.951359084406292 y: 37.200286123032896 z: 1.9409871244635184 + alternateName: + - R_rostralanteriorcingulate ctx-rh-rostralmiddlefrontal: name: ctx-rh-rostralmiddlefrontal lookupLabel: 79 @@ -634,6 +790,8 @@ terminology: x: 34.467899190581306 y: 47.87601177336276 z: 16.53233075791023 + alternateName: + - R_rostralmiddlefrontal ctx-rh-superiorfrontal: name: ctx-rh-superiorfrontal lookupLabel: 80 @@ -642,6 +800,8 @@ terminology: x: 11.909999999999997 y: 31.74030487804879 z: 43.47411585365853 + alternateName: + - R_superiorfrontal ctx-rh-superiorparietal: name: ctx-rh-superiorparietal lookupLabel: 81 @@ -650,6 +810,8 @@ terminology: x: 25.160497364198946 y: -63.0392505157002 z: 53.294407517763005 + alternateName: + - R_superiorparietal ctx-rh-superiortemporal: name: ctx-rh-superiortemporal lookupLabel: 82 @@ -658,6 +820,8 @@ terminology: x: 54.669730604694195 y: -6.946583420048555 z: -5.236963810845182 + alternateName: + - R_superiortemporal ctx-rh-supramarginal: name: ctx-rh-supramarginal lookupLabel: 83 @@ -666,6 +830,8 @@ terminology: x: 55.918280691299174 y: -30.966775923718714 z: 35.97683253873659 + alternateName: + - R_supramarginal ctx-rh-frontalpole: name: ctx-rh-frontalpole lookupLabel: 84 @@ -674,6 +840,8 @@ terminology: x: 8.367959034381855 y: 67.15727871250914 z: -13.155084125822967 + alternateName: + - R_frontalpole ctx-rh-temporalpole: name: ctx-rh-temporalpole lookupLabel: 85 @@ -682,6 +850,8 @@ terminology: x: 28.28962962962963 y: 15.050000000000011 z: -35.056666666666665 + alternateName: + - R_temporalpole ctx-rh-transversetemporal: name: ctx-rh-transversetemporal lookupLabel: 86 @@ -690,6 +860,8 @@ terminology: x: 45.68185516680228 y: -17.853539462978034 z: 8.748576078112293 + alternateName: + - R_transversetemporal ctx-rh-insula: name: ctx-rh-insula lookupLabel: 87 @@ -698,3 +870,5 @@ terminology: x: 34.85538959185615 y: 3.414898677575877 z: -2.5362953096755803 + alternateName: + - R_insula diff --git a/tvbo/data/tvbo_data/atlas/tpl-MNI152Nlin2009c_atlas-DesikanKilliany_desc-ranked_centers.txt b/tvbo/database/atlases/tpl-MNI152Nlin2009c_atlas-DesikanKilliany_desc-ranked_centers.txt similarity index 100% rename from tvbo/data/tvbo_data/atlas/tpl-MNI152Nlin2009c_atlas-DesikanKilliany_desc-ranked_centers.txt rename to tvbo/database/atlases/tpl-MNI152Nlin2009c_atlas-DesikanKilliany_desc-ranked_centers.txt diff --git a/tvbo/data/tvbo_data/atlas/tpl-MNI152Nlin2009c_atlas-Destrieux_desc-ranked_centers.txt b/tvbo/database/atlases/tpl-MNI152Nlin2009c_atlas-Destrieux_desc-ranked_centers.txt similarity index 100% rename from tvbo/data/tvbo_data/atlas/tpl-MNI152Nlin2009c_atlas-Destrieux_desc-ranked_centers.txt rename to tvbo/database/atlases/tpl-MNI152Nlin2009c_atlas-Destrieux_desc-ranked_centers.txt diff --git a/tvbo/database/coordinate_spaces/FSLMNI152.yaml b/tvbo/database/coordinate_spaces/FSLMNI152.yaml new file mode 100644 index 000000000..ffca6c507 --- /dev/null +++ b/tvbo/database/coordinate_spaces/FSLMNI152.yaml @@ -0,0 +1,13 @@ +name: FSLMNI152 +abbreviation: FSLMNI152 +alternateName: + - tpl-FSLMNI152 + - MNI152 + - FSL_MNI152_1mm +description: >- + FSL's MNI152 standard-space template (the `FSLMNI152_1mm` average distributed + with FSL). The reference space in which the Schaefer2018 cortical parcellations + are published. Distinct from the nonlinear 2009-series MNI152 variants. +nativeUnit: mm +anatomicalAxesOrientation: RAS +axesOrigin: "anterior commissure" diff --git a/tvbo/database/observation_models/bold_hrf_strided.yaml b/tvbo/database/observation_models/bold_hrf_strided.yaml new file mode 100644 index 000000000..a83a74d5f --- /dev/null +++ b/tvbo/database/observation_models/bold_hrf_strided.yaml @@ -0,0 +1,174 @@ +# BOLD (First Order Volterra) β€” strided-convolution variant +# +# The strided counterpart of the HRF+Volterra BOLD pipeline. It is numerically +# equivalent to the FFT-based path but computes the convolution ONLY at the output +# samples that survive TR subsampling, so it never materialises the full-length FFT. +# +# Exact numeric relationship (measured, float, kernel support 5000, TR stride 180): +# β€’ BYTE-IDENTICAL to a direct full 'valid' convolution followed by [s::s] +# subsampling β€” strided_convolve is that same arithmetic with the discarded +# outputs skipped, not a different algorithm. +# β€’ Equal to the FFT path (fftconvolve(..., 'valid')[s::s]) to ~1e-12 (float64) / +# ~1e-6 (float32). FFT and direct convolution are different algorithms, so they +# agree only to FFT roundoff β€” NEVER bit-for-bit, at any precision. +# β€’ ~70x fewer multiply-adds per call and NO FFT buffer (the FFT of the padded +# signal is otherwise the whole transient-memory peak of the tuning loop). +# +# Use BOLD_TVB (FFT) for a byte-exact TVB reference; use this for the batched +# per-subject cohort fit, where the FFT buffer is the memory blocker and the +# ~1e-6/~1e-12 difference is far below the stochastic tuning noise floor. Convention +# is mode='valid' + subsample [s::s], matching the FIC+EIB fit pipeline (NOT the +# mode='same' centred subsample of BOLD_TVB). When referenced by `iri`, the helper +# functions below merge into the experiment's function table (see +# populate_observation_from_iri). + +name: BOLD_HRF_strided +label: BOLD (First Order Volterra, strided convolution) +iri: tvbo:BOLD_HRF_strided +description: >- + BOLD fMRI observation model identical to BOLD_TVB's HRF+Volterra forward model, + but with the HRF convolution and TR subsampling fused into a single strided + convolution (strided_convolve): the convolution is evaluated only at the retained + [stride::stride] output samples, avoiding the full-length FFT. Byte-identical to a + direct full 'valid' convolution + subsample; equal to the FFT path to FFT roundoff + (~1e-12 float64 / ~1e-6 float32); ~70x cheaper with no FFT buffer. + +imaging_modality: BOLD + +references: + - Schirner2023 + +parameters: + TR: + value: 720.0 + unit: ms + description: Repetition time (sampling period) + +# Helper functions the pipeline calls by name. Emitted as module-level defs and +# merged into experiment.functions when this model is referenced by `iri`. +functions: + hrf_kernel: + description: >- + Hemodynamic response function kernel (balloon-model impulse response), + sampled on the integration grid to one kernel support (5000 samples). + time_range: + lo: 0 + hi: duration + n: 5000 + equation: + rhs: "(1/3)*exp(-0.5*(t/1000)/tau_s)*sin(sqrt(1/tau_f - 1/(4*tau_s**2))*(t/1000))/sqrt(1/tau_f - 1/(4*tau_s**2))" + description: "h(t) = (1/3)Β·exp(-t/(2Ο„_s))Β·sin(Ο‰t)/Ο‰, Ο‰ = sqrt(1/Ο„_f βˆ’ 1/(4Ο„_sΒ²))" + parameters: + tau_s: + value: 0.8 + description: "Signal decay time constant (seconds)" + tau_f: + value: 0.4 + description: "Feedback time constant (seconds)" + arguments: + duration: + value: 20000.0 + description: "HRF kernel duration in ms" + + temporal_average: + description: >- + Downsample by averaging over non-overlapping windows of `period_samples` + samples (centered indices, t0-independent) β€” reproduces tvboptim + TemporalAverage exactly. + source_code: "jax.vmap(lambda _i: jnp.mean(jax.lax.dynamic_slice(data, (_i,) + (0,) * (data.ndim - 1), (period_samples,) + data.shape[1:]), axis=0))((jnp.arange(data.shape[0]) + 1)[::period_samples])[: jnp.arange((period_samples - 2) // 2, data.shape[0], period_samples).shape[0]]" + arguments: + data: + description: "Input time series (time, nodes)" + period_samples: + value: 1 + description: "Samples per window = round(downsample_period / dt)" + + prepend_history: + description: >- + Fit the (downsampled) transient history to one kernel length and prepend + it, zero-padding at the front when shorter β€” matches HRFBold._process_history. + source_code: "jnp.concatenate([(jnp.vstack([jnp.zeros((kernel_samples - history.shape[0],) + history.shape[1:], history.dtype), history]) if history.shape[0] < kernel_samples else history[-kernel_samples:]), data], axis=0)" + arguments: + data: + description: "Downsampled input time series" + history: + description: "Downsampled transient history data" + kernel_samples: + value: 5000 + description: "Kernel support = ceil(kernel_duration / downsample_period)" + + strided_hrf: + description: >- + Fused HRF convolution + TR subsampling: the 'valid' convolution of the + prepended signal with the HRF kernel, evaluated ONLY at the [stride::stride] + output indices via a windowed matmul (strided_convolve array-op). Replaces + fftconvolve(..., 'valid') + subsample_bold data[stride::stride] with no FFT + buffer. Byte-identical to a direct full convolution + subsample. + equation: + rhs: "strided_convolve(data, kernel, stride)" + arguments: + data: + description: "Prepended neural signal (time, 1, node)" + kernel: + description: "HRF kernel" + stride: + value: 180 + description: >- + Output-sample stride = TR / integration_dt (720 ms / 4 ms = 180), + the same factor the FFT pipeline applies as subsample_bold(s=180). + Grid-specific like that step (it assumes the neural trace is on the + integration grid, period_samples=1); set it to TR/dt for another grid. + +pipeline: + # HRF kernel (precomputed once) + - function: hrf_kernel + + # Downsample neural activity (and transient history) to the BOLD grid + - output: downsampled_data + function: temporal_average + arguments: + data: + value: integration.result + period_samples: + value: 1 + - output: downsampled_history + function: temporal_average + arguments: + data: + value: integration.transient + period_samples: + value: 1 + + # Prepend transient history (zero-padded to one kernel length) + - function: prepend_history + arguments: + data: + value: downsampled_data + history: + value: downsampled_history + kernel_samples: + value: 5000 + + # Fused 'valid' HRF convolution + TR subsample β€” a single windowed matmul, no FFT. + - output: bold_convolve + function: strided_hrf + arguments: + data: + value: prepend_history + kernel: + value: hrf_kernel + + # Volterra transform: k_1 * V_0 * (bold - 1.0). Pointwise-linear, so applying it to + # the strided output is exact (it commutes with subsampling). + - name: volterra_transform + input: bold_convolve + output: Bold + equation: + rhs: "(X - 1.0) * k_1 * V_0" + parameters: + k_1: + value: 5.6 + description: "Intravascular signal contribution" + V_0: + value: 0.02 + description: "Resting blood volume fraction" diff --git a/tvbo/database/reducers/windowed_fc.yaml b/tvbo/database/reducers/windowed_fc.yaml new file mode 100644 index 000000000..8abce7530 --- /dev/null +++ b/tvbo/database/reducers/windowed_fc.yaml @@ -0,0 +1,39 @@ +# Declarative streaming-reducer recipe (metadata). The math is authored as symbolic +# assignment recurrences over the state vars, the arriving/leaving sample `v`, and the +# window `x`; tvbo lowers them per backend via the sympy printers and emits the reducer +# into the generated experiment (no backend ships a reducer). Sequential reassignment +# encodes the data flow β€” a later RHS sees the value assigned to a state var above it β€” +# so no `new_*` temporaries are needed. See tvbo/codegen/reducers.py (general resolver). +name: windowed_fc +description: >- + Windowed Pearson-correlation functional connectivity as a mean-centred streaming + co-moment: Welford `add` update, exact reverse-Welford `evict` downdate, two-pass + `resync`, and a zero-diagonal Pearson `emit`. Byte-identical to compute_fc, including + on a large DC baseline where a naive one-pass co-moment loses precision. + +# Which post-scan pipeline reducer this streams, and for which codegen backends. +replaces: [tvboptim.observations.observation.compute_fc] +backends: [tvboptim] +emit_kind: window # emit the reduced value every step (vs `stride` for dFC/FCD) + +state: [count, mean, comoment] + +add: # fold in one arriving sample `v` + - [delta, "v - mean"] + - [count, "count + 1"] + - [mean, "mean + delta / count"] + - [comoment, "comoment + outer(delta, v - mean)"] + +evict: # drop one leaving sample `v` (sliding window) + - [delta, "v - mean"] + - [count, "count - 1"] + - [mean, "mean - delta / count"] + - [comoment, "comoment - outer(v - mean, delta)"] + +resync: # rebuild the state exactly from the window `x` + - [mean, "global_mean(x)"] + - [xc, "x - mean"] + - [comoment, "matmul(transpose(xc), xc)"] + - [count, "shape(x, 0)"] + +emit: "zero_diagonal(comoment / outer(sqrt(diag(comoment)), sqrt(diag(comoment))))" diff --git a/tvbo/datamodel/__init__.py b/tvbo/datamodel/__init__.py index e00b49c06..d98fd7e02 100644 --- a/tvbo/datamodel/__init__.py +++ b/tvbo/datamodel/__init__.py @@ -119,3 +119,9 @@ def _unit_meta_getattribute(cls, item): sys.modules["tvbo.datamodel.tvbo_datamodel"] = tvbo_datamodel sys.modules["tvbo.datamodel.tvbopydantic"] = tvbopydantic + +# Attach user-facing helper methods (.plot(), alias-aware __init__) to the +# generated ``schema.Event`` class. Done here β€” where the schema is first +# imported β€” rather than at ``import tvbo`` so bare imports and the CLI do not +# pay the datamodel import cost. Runs last, after schema/pydantic are bound. +from tvbo.classes import event as _event_helpers # noqa: E402, F401 diff --git a/tvbo/export/formats.py b/tvbo/export/formats.py index 8f72395ae..c14449e77 100644 --- a/tvbo/export/formats.py +++ b/tvbo/export/formats.py @@ -90,9 +90,15 @@ def _render_jax(exp, **kw): def _render_tvboptim(exp, **kw): from tvbo.classes.experiment import templates, format_code template = templates.lookup.get_template("tvboptim/tvbo-tvboptim-experiment.py.mako") - # Resolve network-observation source pointers once, in Python, and hand - # the {obs_name: measure} mapping to the template (which only emits code). - kw.setdefault("network_obs_measures", exp.network_observation_measures) + # Resolve network- and dataset-sourced observation pointers once, in Python, + # and hand the {obs_name: measure} mapping to the template (which only emits + # code). Both bind at run_experiment time via _bind_network_observations. + measures = dict(exp.network_observation_measures) + measures.update(exp.dataset_observation_targets) + kw.setdefault("network_obs_measures", measures) + # Model-side gather (keyed by label, never positional) that aligns a simulated + # observable to a by_label empirical target's shared nodes in the loss. + kw.setdefault("dataset_reconcile_indices", exp.dataset_reconcile_indices()) return format_code(template.render(experiment=exp, **kw), use_black=False) diff --git a/tvbo/log.py b/tvbo/log.py new file mode 100644 index 000000000..d8d0d1096 --- /dev/null +++ b/tvbo/log.py @@ -0,0 +1,252 @@ +# Copyright Berlin Institute of Health / CharitΓ© University Medicine Berlin +# Department of Neurology and Experimental Neurology +# Brain Simulation Section + +"""Central logging configuration for TVBO. + +Every part of TVBO logs through the ``tvbo`` logger hierarchy: + +* in-package modules use ``logger = logging.getLogger(__name__)`` β€” their names + already sit under ``tvbo`` (e.g. ``tvbo.classes.experiment``); +* generated backend scripts (tvboptim, …) use ``logging.getLogger("tvbo.run")`` + so their progress output is controlled by the very same switch, regardless of + which backend produced them or whether they run in-process or standalone. + +Importing tvbo as a library stays silent: the package installs only a +:class:`~logging.NullHandler`. Entry points that are meant to surface progress β€” +``tvbo run`` and :meth:`SimulationExperiment.run` β€” call :func:`configure_logging` +(directly, or via :func:`ensure_configured`) to attach a stderr handler. + +One switch controls all of it, no matter the entry point: + +* the ``TVBO_LOG_LEVEL`` environment variable + (``DEBUG`` / ``INFO`` / ``WARNING`` / ``ERROR`` / ``CRITICAL`` / ``OFF``), or +* :func:`set_log_level` / :func:`silence` at runtime, or +* an explicit ``configure_logging(level=...)``. + +Example: + >>> import tvbo + >>> tvbo.set_log_level("WARNING") # quiet the progress banners everywhere + >>> tvbo.silence() # turn tvbo logging off entirely +""" +from __future__ import annotations + +import logging +import os +from contextlib import contextmanager +from typing import Iterator, Optional, Union + +__all__ = [ + "logger", + "configure_logging", + "ensure_configured", + "set_log_level", + "get_log_level", + "silence", + "log_level", + "LOGGER_NAME", + "ENV_VAR", +] + +#: Root of the tvbo logger hierarchy; every package and generated-code logger is +#: a child of this and inherits its level and handlers. +LOGGER_NAME = "tvbo" +#: Environment variable read as the central level switch when nothing is passed. +ENV_VAR = "TVBO_LOG_LEVEL" +#: Level used when neither an explicit argument nor the env var is set. +DEFAULT_LEVEL = logging.INFO +#: Default stderr handler format for tvbo-managed output. +DEFAULT_FORMAT = "%(levelname)s [%(name)s] %(message)s" + +# Effective "off": above CRITICAL, so no standard record is ever emitted. +_OFF = logging.CRITICAL + 1 +# Marks the single handler this module owns, so configuration stays idempotent. +_MANAGED = "_tvbo_managed_handler" + +LevelLike = Union[int, str, None] + +logger = logging.getLogger(LOGGER_NAME) +# Library default: silent unless an entry point or the embedding app configures a +# handler. This replaces the old package-wide ``logging.disable(CRITICAL)``, +# which muted every logger in the process (tvbo's own included). +logger.addHandler(logging.NullHandler()) + + +def _coerce_level(level: LevelLike) -> Optional[int]: + """Turn a user-supplied level into a numeric level (``None`` passes through). + + Accepts ints, standard level names, and the aliases ``OFF``/``NONE``/ + ``SILENT``/``QUIET`` for "no output". + """ + if level is None: + return None + if isinstance(level, bool): # bool is an int subclass β€” treat explicitly + return logging.DEBUG if level else _OFF + if isinstance(level, int): + return level + text = str(level).strip().upper() + if text in ("OFF", "NONE"): + return _OFF + value = logging.getLevelName(text) # name β†’ int for known levels + if isinstance(value, int): + return value + raise ValueError( + f"Unknown log level {level!r}; use an int or one of " + "DEBUG, INFO, WARNING, ERROR, CRITICAL, OFF." + ) + + +def _env_level() -> Optional[int]: + """Numeric level from ``TVBO_LOG_LEVEL``, or ``None`` if unset/invalid.""" + raw = os.environ.get(ENV_VAR) + if not raw or not raw.strip(): + return None + try: + return _coerce_level(raw) + except ValueError: + logging.getLogger(__name__).warning( + "Ignoring invalid %s=%r; expected DEBUG/INFO/WARNING/ERROR/CRITICAL/OFF.", + ENV_VAR, + raw, + ) + return None + + +def _resolve_level(level: LevelLike) -> int: + """Resolve a level with precedence: explicit arg β†’ env var β†’ default.""" + explicit = _coerce_level(level) + if explicit is not None: + return explicit + from_env = _env_level() + if from_env is not None: + return from_env + return DEFAULT_LEVEL + + +def _managed_handler(stream=None, fmt=None, datefmt=None) -> logging.Handler: + handler = logging.StreamHandler(stream) # stream=None β†’ stderr + handler.setFormatter(logging.Formatter(fmt or DEFAULT_FORMAT, datefmt)) + setattr(handler, _MANAGED, True) + return handler + + +def _existing_managed() -> Optional[logging.Handler]: + return next((h for h in logger.handlers if getattr(h, _MANAGED, False)), None) + + +def _has_real_handler(target: logging.Logger) -> bool: + return any(not isinstance(h, logging.NullHandler) for h in target.handlers) + + +def _install_stream_handler(stream=None, fmt=None, datefmt=None, force=False) -> None: + """Install (idempotently) the single tvbo-managed stream handler. Level-agnostic.""" + existing = _existing_managed() + if existing is not None and not force: + return + if existing is not None: + logger.removeHandler(existing) + logger.addHandler(_managed_handler(stream, fmt, datefmt)) + # We own emission: don't also bubble to the root logger (avoids duplicate + # lines when the embedding application has configured root logging too). + logger.propagate = False + + +def configure_logging( + level: LevelLike = None, + *, + stream=None, + fmt: Optional[str] = None, + datefmt: Optional[str] = None, + force: bool = False, +) -> logging.Logger: + """Attach a stderr handler to the ``tvbo`` logger and set its level. + + Idempotent: the tvbo logger keeps at most one handler owned by this module. + When *level* is ``None`` the level falls back to ``TVBO_LOG_LEVEL`` and then + to :data:`DEFAULT_LEVEL`. Because the tvbo logger then owns its own output, + its records stop propagating to the root logger (so an embedding application + that also configured root logging does not print every line twice). + + Args: + level: Desired level (int, name, or ``"OFF"``); ``None`` β†’ env β†’ default. + stream: Target stream for the handler; ``None`` uses stderr. + fmt: Handler format string; ``None`` uses :data:`DEFAULT_FORMAT`. + datefmt: Optional date format for the handler. + force: Replace an existing tvbo-managed handler (e.g. to change stream). + + Returns: + The central ``tvbo`` logger. + """ + logger.setLevel(_resolve_level(level)) + _install_stream_handler(stream, fmt, datefmt, force=force) + return logger + + +def ensure_configured(level: LevelLike = None) -> logging.Logger: + """Make tvbo logs visible for a run without clobbering an app's logging setup. + + Called from the run entry points (``tvbo run``, ``SimulationExperiment.run``) + so that logging behaves the same however a run is launched: + + * if the tvbo logger or the root logger already has a real handler (an app, + notebook, or a prior :func:`configure_logging` set things up), only the + level is applied and the existing handlers keep emitting; + * otherwise a default stderr handler is installed via :func:`configure_logging`. + + A level explicitly set earlier (``set_log_level`` / ``silence`` / a prior + ``configure_logging``) is preserved: with no explicit *level* this only + installs a default level the first time (while the logger is still at + ``NOTSET``), so the central switch stays put across repeated ``.run()`` calls. + + Args: + level: Level to apply; ``None`` keeps any level already set, else falls + back to ``TVBO_LOG_LEVEL`` β†’ :data:`DEFAULT_LEVEL` on first use. + + Returns: + The central ``tvbo`` logger. + """ + if level is not None: + logger.setLevel(_resolve_level(level)) + elif logger.level == logging.NOTSET: + logger.setLevel(_resolve_level(None)) + if _existing_managed() is not None: + return logger + if _has_real_handler(logger) or _has_real_handler(logging.getLogger()): + # Something already configured logging β€” let tvbo records flow to it. + return logger + _install_stream_handler() + return logger + + +def set_log_level(level: LevelLike) -> None: + """Set the central ``tvbo`` logger level β€” the global on/off/verbosity switch. + + Affects every tvbo module and every generated backend script in the process. + ``"OFF"`` (or :func:`silence`) turns tvbo logging off entirely. + """ + logger.setLevel(_resolve_level(level)) + + +def get_log_level() -> int: + """Return the effective numeric level of the central ``tvbo`` logger.""" + return logger.getEffectiveLevel() + + +def silence() -> None: + """Turn tvbo logging off (equivalent to ``TVBO_LOG_LEVEL=OFF``).""" + logger.setLevel(_OFF) + + +@contextmanager +def log_level(level: LevelLike) -> Iterator[logging.Logger]: + """Temporarily set the ``tvbo`` logger level within a ``with`` block. + + Useful to quiet a noisy section or to force verbosity in a test without + leaking the change to the rest of the process. + """ + previous = logger.level + logger.setLevel(_resolve_level(level)) + try: + yield logger + finally: + logger.setLevel(previous) diff --git a/tvbo/parse/expression.py b/tvbo/parse/expression.py index 26f996529..976eb7357 100644 --- a/tvbo/parse/expression.py +++ b/tvbo/parse/expression.py @@ -119,6 +119,22 @@ def eval(cls, *args): "transpose": Function("transpose"), # transpose(X) β†’ X.T "mode_dot": Function("mode_dot"), # mode_dot(X, M) β†’ XΒ·M contracted over the mode axis ({np,jnp}.dot) "mode_sum": Function("mode_sum"), # mode_sum(X) β†’ sum over the mode axis, keepdims ({np,jnp}.sum(X, axis=-1, keepdims=True)) + # Linear-algebra ops (e.g. streaming co-moment reducers, projections). + "outer": Function("outer"), # outer(a, b) β†’ rank-1 outer product a_i b_j + "diag": Function("diag"), # diag(M) β†’ the main diagonal of M as a vector + "zero_diagonal": Function("zero_diagonal"), # zero_diagonal(M) β†’ M with its main diagonal set to 0 + "matmul": Function("matmul"), # matmul(A, B) β†’ ordinary matrix product A @ B + "strided_convolve": Function("strided_convolve"), # strided_convolve(X, k, s) β†’ 'valid' conv of XβŠ›k evaluated only at the [s::s] output indices (fuses convolve+subsample; no full FFT) + # General array ops for per-timestep detectors / permutation-significance tests: a + # 2-D gather, a single-axis reduction, and Pearson correlation β€” expressible in any + # backend's array algebra so a wave / graph / significance observable is authored as + # declarative equations, not backend source_code. + "take": Function("take"), # take(x, idx) β†’ gather x by an int index array (result has idx.shape) + "sum_axis": Function("sum_axis"), # sum_axis(x, axis) β†’ reduce one axis ({np,jnp}.sum(x, axis=..)) + "pearson": Function("pearson"), # pearson(x, y) β†’ Pearson r of two FLAT/1-D operands (reduces all elements; the per-step node-collapsing corr β€” NOT a columnwise 2-D corr, and distinct from the loss-helper `correlation`) + "clip": Function("clip"), # clip(x, lo, hi) β†’ bound x to [lo, hi] ({np,jnp}.clip); e.g. clip(cos_sim, -1, 1) before acos + "any": Function("any"), # any(x) β†’ True if any element is truthy ({np,jnp}.any); e.g. any(p_div <= sig) + "all": Function("all"), # all(x) β†’ True if every element is truthy ({np,jnp}.all) } diff --git a/tvbo/skills/__init__.py b/tvbo/skills/__init__.py index 92745ca23..a786246a1 100644 --- a/tvbo/skills/__init__.py +++ b/tvbo/skills/__init__.py @@ -13,6 +13,7 @@ CANONICAL_PACKAGE_DIR, CANONICAL_REPO_DIR, Skill, + is_asset_noise, is_managed_file, load_canonical, render_agents_md, @@ -26,6 +27,7 @@ "CANONICAL_PACKAGE_DIR", "CANONICAL_REPO_DIR", "Skill", + "is_asset_noise", "is_managed_file", "load_canonical", "render_agents_md", diff --git a/tvbo/skills/_render.py b/tvbo/skills/_render.py index 8f3c1a3ad..6538ce2c3 100644 --- a/tvbo/skills/_render.py +++ b/tvbo/skills/_render.py @@ -33,16 +33,32 @@ ``tvbo skills install``) add a ``tvbo-`` prefix to the on-disk name and stamp ``managed-by: tvbo`` + ``tvbo-version: …`` into the frontmatter so we can safely overwrite our own files on upgrade without clobbering user edits. + +A skill directory may carry an ``assets/`` sibling of its ``SKILL.md`` (helper +scripts, templates, a skeleton). Only the directory-shaped ``claude-code`` +target can hold it: the renderer mirrors ``assets/`` next to the rendered +``SKILL.md`` and prunes it on uninstall. The flat targets (``cursor``, +``copilot``, ``prompt``, ``agents-md``) carry the body only. """ from __future__ import annotations +import fnmatch import re +import shutil from dataclasses import dataclass, field from pathlib import Path from typing import Iterable import yaml +ASSET_IGNORE = ("__pycache__", "*.py[cod]", ".DS_Store") +"""Byte-compiled / OS-noise names never carried into a rendered ``assets/`` mirror.""" + + +def is_asset_noise(rel: Path) -> bool: + """True if any component of a mirrored-asset relative path is :data:`ASSET_IGNORE`.""" + return any(fnmatch.fnmatch(part, pat) for part in rel.parts for pat in ASSET_IGNORE) + CANONICAL_PACKAGE_DIR = Path(__file__).parent / "canonical" """User-skill canonical root (ships in the wheel as package data).""" @@ -65,6 +81,8 @@ class Skill: requires_extras: list[str] = field(default_factory=list) body: str = "" source: Path | None = None + assets_dir: Path | None = None + """Sibling ``assets/`` directory of ``SKILL.md``, if present.""" @property def install_name(self) -> str: @@ -119,6 +137,7 @@ def _field(key: str, default=None): audience = _field("audience", "both") if audience not in {"maintainer", "user", "both"}: raise ValueError(f"{path}: audience must be maintainer|user|both, got {audience!r}") + assets = path.parent / "assets" return Skill( name=name, description=description, @@ -128,6 +147,7 @@ def _field(key: str, default=None): requires_extras=list(_field("requires_extras") or []), body=body.rstrip() + "\n", source=path, + assets_dir=assets if assets.is_dir() else None, ) @@ -156,6 +176,23 @@ def _wrap(fm: dict, body: str) -> str: return f"---\n{_dump_frontmatter(fm)}\n---\n\n{body.lstrip()}" +def _sync_assets(assets_dir: Path | None, dest_skill_dir: Path) -> None: + """Mirror a skill's ``assets/`` dir next to its rendered ``SKILL.md``. + + Idempotent: the destination ``assets/`` is rebuilt from source on every + render, so files removed upstream do not linger. A skill with no ``assets/`` + leaves the destination without one (and prunes a stale copy if present). + """ + dest_assets = dest_skill_dir / "assets" + if dest_assets.exists(): + shutil.rmtree(dest_assets) + if assets_dir is not None and assets_dir.is_dir(): + # Skip byte-compiled / OS noise so the mirror (and wheel) stay deterministic. + shutil.copytree( + assets_dir, dest_assets, ignore=shutil.ignore_patterns(*ASSET_IGNORE) + ) + + def render_claude_code( skill: Skill, dest_dir: Path, @@ -184,6 +221,7 @@ def render_claude_code( out = dest_dir / target_name / "SKILL.md" out.parent.mkdir(parents=True, exist_ok=True) out.write_text(_wrap(fm, skill.body), encoding="utf-8") + _sync_assets(skill.assets_dir, out.parent) return out diff --git a/tvbo/skills/canonical/overview/SKILL.md b/tvbo/skills/canonical/overview/SKILL.md index 14309da11..6d145b141 100644 --- a/tvbo/skills/canonical/overview/SKILL.md +++ b/tvbo/skills/canonical/overview/SKILL.md @@ -58,8 +58,7 @@ A discussion / Q&A layer for the community is on the roadmap. See the `platform` ## Installation ```bash -pip install tvbo # core -pip install tvbo[jax] # JAX backend +pip install tvbo # core β€” includes the JAX backend pip install tvbo[tvb] # The Virtual Brain backend pip install tvbo[pyrates] # PyRates backend pip install tvbo[julia] # juliacall + Julia backends diff --git a/tvbo/skills/canonical/replicating-studies/SKILL.md b/tvbo/skills/canonical/replicating-studies/SKILL.md new file mode 100644 index 000000000..bc92e8ecc --- /dev/null +++ b/tvbo/skills/canonical/replicating-studies/SKILL.md @@ -0,0 +1,367 @@ +--- +name: replicating-studies +description: >- + How to replicate a published study in TVBO β€” turn a paper into ONE declarative, + fully tvbo-native `SimulationStudy` (any kind: single-node bifurcation to whole-brain + network; forward simulation, parameter sweep, or fit to data) + simple plotting + an + honest, fully-computed report. Encodes the hard-won rules so the replication is fast and + trustworthy. Composes the atomic skills (writing-models, running-simulations). +metadata: + audience: user + applies_to: + - "**/*.yaml" + - "**/*.qmd" + - "**/*.py" + tags: [replication, workflow, reporting] + requires_extras: [] +--- + +# Replicating a study in TVBO + +You are reproducing a published paper as a **single declarative TVBO recipe** plus +minimal plotting, with a report whose every number is computed from the run β€” never +typed by hand. This skill owns the *replication-specific* layer; for the atomic +how-to it defers to **writing-models** (Dynamics YAML) and **running-simulations** +(sourcing / CLI / backends). + +**It covers any study expressible as a TVBO `SimulationStudy`** β€” locate yours on three +axes (do this in Phase 1.5; it decides which phases and backend features apply): + +- **Scale** β€” single node (bifurcation / phase portrait, *no network or coupling*) Β· + few-node motif Β· large network (abstract graph or brain connectome). +- **Mode** β€” forward simulation Β· parameter **sweep / bifurcation / continuation** Β· + **fit / inference** to data (an optimisation experiment, not just forward runs). +- **Data** β€” self-contained (all params from the paper's equations/tables, *no external + inputs*) Β· external inputs required (a network, empirical target, stimulus). + +The invariants (MUST-rules) hold for every kind; the examples below are illustrations, +not requirements. Work the *applicable* phases in order β€” a self-contained bifurcation +study skips the data phase, a fit adds an inference experiment, a single-node study has +no network. Each phase you do has a REQUIRED output. The scorecard in Phase 6 maps 1:1 +to the criteria you write in Phase 1, and Phase 7 verification is what stops you trusting +figures that silently integrate the wrong attractor. + +## The non-negotiables (MUST) + +1. **ONE declarative recipe.** All targeted experiments live in one `<Study>.yaml` + as metadata (anchors + `<<:` inheritance, `from_experiment` seeding). **No Python + drivers.** `tvbo run <Study>.yaml` runs everything in dependency order; add + `--experiment 2,3` to run a subset. +2. **Nothing hardcoded in the report.** Every reported value is computed inline from + a result container (`output/nc/exp*/…h5`) or the recipe metadata β€” counts, βŸ¨Ξ”Ο‰βŸ©, + decay times, bifurcation thresholds, scaling exponents, spectral peaks, fitted params, + correlations, whatever the paper reports. If you typed a number into prose, it is a + bug. (Papers are not ground truth; your own asserted numbers are not either.) +3. **A panel shows TVBO output or an honest placeholder β€” NEVER the paper's replotted + source data.** Replotting the source arrays is a dev check that plotting *works*; it is + never a deliverable panel (it passes off the paper's own numbers as your reproduction). + If a panel's TVBO data isn't ready, render a labelled placeholder holding its slot in the + paper's layout. This is the integrity line β€” do not cross it "just to fill the figure". +4. **Backend-independent metadata, backend chosen by fit.** The YAML states *intent*, + never one backend's mechanism. The execution backend is picked in Phase 1.5 from the + targets' feature needs, not defaulted. +5. **FAIR layout, spec separate from code** (copy `assets/skeleton/`): the recipe + `<Study>.yaml` sits at the **study root** β€” the spec is not hidden inside `code/`. + Its callables live in `code/recipe/`, reached declaratively via + `code_source: ./code/recipe` (a local path, or a git repo β€” see **running-simulations**), + so `tvbo run <Study>.yaml` finds them without a driver. `code/` also holds the prep + script, analysis callables, one reference integration, and `figures/plot.py`; + `original_study/` the paper + analysis; `input/` the data provenance; `report/` the + report source. +6. **Nothing large or upstream is vendored β€” gitignore it and document exact retrieval.** + Git tracks only what you author: the spec, `code/`, `input/DATA.md`, and the report + source (`report.qmd` + `references.bib` + the prose writeup). **Everything else is + gitignored:** `output/` and all generated artifacts (figures, `report.pdf`/logs, + KPI/targets tables β€” write them to `output/`, never commit them at the study root), + the paper's own material under `original_study/`, and raw third-party inputs under + `input/sourcedata/`. Planning/working docs go to a gitignored `_dev/`. A fresh clone + is small and reproducible; `DATA.md` says how to obtain every ignored input. +7. **Replication, stated honestly.** Frame it as *replication* (independent code + + independently-sourced data β†’ same conclusions), not bit-exact *reproduction*. Ship a + **scorecard** (met / partial / out-of-scope) with a **fidelity tier per target** + (mechanism-level vs decimal-level, Phase 1.5) and name the **accepted limitations** + (unavailable exact SC, unpublished-seed realization dependence) up front. +8. **One plotting script**, `code/figures/plot.py`, one `main()` whose sections mirror + the paper's figure *types* (time series / phase portraits / bifurcation diagrams / + spectra / sweeps / spatial maps), then compose A/B. Simple matplotlib next to the recipe. +9. **Verify against an independent reference** (Phase 7) before trusting any figure. + +--- + +## Phase 1 β€” Analyze the paper β†’ `targets.md` + `figures.md` + +Read the version of record (put it in `original_study/`, figures as `img/fig*.png`). +Produce two artifacts under `original_study/analysis/`: + +- **`targets.md`** β€” a numbered table of replication targets `T1..Tn`. Each row: + target Β· figure(s) Β· **key verbatim params** (copy them exactly β€” K, Ξ±, Ο„, seeds, + transient/window times, step sizes as *printed*) Β· a **pass/fail validation + criterion** Β· a feasibility/tier tag (`core` / `extended`). +- **`figures.md`** β€” per-figure panel map: panels, axes + ranges, colour convention, + line styles, any quirks to reproduce as-is (mislabelled axes, unit conventions). + +Watch for the trap that the *printed* equation is not the one the figures use (Taher's +Eq. 9 has a √N normalization typo; the figures use the plain std). Record the quantity +the *figures* actually show, with the discrepancy noted. + +## Phase 1.5 β€” Scope, then backend-fit + gaps β†’ `backend-fit.md` + +**Scope.** Pick which targets to replicate: **all** (default) or a **selected subset** +(`{T1,T2,T7}`). Only selected targets become experiments in Phase 3. If the scope is +contested, settle it with the user before continuing β€” do not guess. + +**Backend-fit + gaps** (`original_study/analysis/backend-fit.md`). For the selected +targets, build a feature matrix (delays? Lyapunov/Benettin? adiabatic sweep? noise? +multi-mode? time-gated events? sparse coupling?) and pick the execution backend that +supports them β€” **with rationale**. tvboptim (JAX) is common because delays, Lyapunov +and adiabatic `lax.scan` sweeps are tvboptim-gated today; plain forward sims and +operating points run on any backend. **Surface feature gaps now**: a need not yet +supported (e.g. the Lyapunov exponent of a *delayed* closed loop under `vmap`) BLOCKS +its target β€” flag it as a framework/schema enhancement before you build, and mark the +target `partial`/`out` in the eventual scorecard. This early gap-finding is what sets +honest expectations instead of surprising you mid-YAML. + +**Data obtainability + fidelity tier β€” decide BEFORE building (the biggest time-saver).** +Tag every target with a **fidelity tier**: *mechanism-level* (a sign / pattern / ordering +that reproduces on any reasonable input β€” the paper's central claim) vs *decimal-level* (a +specific number that needs the paper's exact input). Then confirm that exact input is +actually obtainable *now* β€” papers routinely deposit only raw login-walled data (no derived +matrix), link a code repo that 404s, or name the wrong author. If the exact input +(connectome, empirical FC, seeds) is not obtainable, choose a **documented substitute** and +downgrade its decimal-level targets to mechanism-level up front β€” do not start a hunt for a +file that may not exist. (Koller: the exact HCP-S900 Schaefer-1000 SC was unobtainable β†’ we +used the dTOR Schaefer-1000 SC, which reproduces the in-strengthβ†’wave *mechanism* but caps +the edge-level FC number; deciding this early would have saved a long fruitless hunt and set +honest Fig-8 expectations from the start.) + +## Phase 2 β€” Source the data β†’ `DATA.md` (tracked) + gitignored data dirs + +**Skip this phase if your study is self-contained** β€” a bifurcation / phase-portrait / +normal-form study whose every parameter comes from the paper's equations and tables needs no +external data; then `DATA.md` is one line ("no external inputs; all parameters from <paper> +Β§X / Table N"). Otherwise, for studies with a network, empirical target, or stimulus input: + +Write `input/DATA.md` (from `assets/DATA.md.tmpl`) as the **one tracked pointer** to every +input: exact upstream source (author, year, DOI, licence), the sheet/column β†’ paper-quantity +map, checksums, **exact download + regenerate steps**, and which quantities are synthesised +vs sourced. Name the true upstream source, never a derived intermediate. + +**Do not vendor sizable or upstream data into git β€” gitignore it and document how to fetch it.** +Place data by provenance: + +- the **paper's own published data** (its source-data workbook/arrays, and your extraction + of them into `.nc`/etc.) β†’ `original_study/`, with the rest of the paper's material + (gitignored β€” it is the paper's content, regenerable from the raw per `DATA.md`), *not* + `input/derivatives/`; +- **third-party raw inputs** you feed the model (connectomes, atlases) β†’ `input/sourcedata/` + (gitignored); +- only genuinely small, freely-redistributable open inputs may be carried in git. + +`code/`'s prep script reads the raw source and emits the tvbo-ready `Network` (+ small +CSV/npz for inspection) into a gitignored location; do NOT hand-edit derived artifacts. + +**(Network studies) pin the parcellation AND its order variant up front, then verify the +mapping.** An atlas often ships in several orderings of the *same* parcels (Schaefer-1000 `7Networks` vs +`17Networks` = identical parcels, different node order); using the wrong one silently +scrambles every brain map and correlation without erroring. Fix the paper's exact atlas + +order variant, align every array **by parcel label** (never by position β€” guards hemisphere +swaps), and **verify with a self-consistency correlation**: a quantity mapped against itself +under your alignment must give +1.000 (e.g. in-strength computed from the SC vs the paper's +published in-strength). A silent order bug is among the costliest β€” it yields plausible, +wrong figures. + +## Phase 3 β€” The recipe: one tvbo-native `<Study>.yaml` + +See **writing-models** for the Dynamics form and **running-simulations** for sourcing +(inline vs YAML vs `iri`) and the CLI. Replication-specific rules: + +- **Encode what the study IS; only `Dynamics` is mandatory.** A single-node study carries no + `network`/`coupling`; a multi-node study adds them (abstract graph or brain connectome). A + parameter sweep / bifurcation diagram is an `Exploration` over the swept parameter with a + fixed-point / eigenvalue / peak observation; a **fit to data is an inference / optimisation + experiment** (see **running-simulations**) whose target is the recovered parameter + + goodness-of-fit, not a trajectory. Match the paper's structure, not a template's shape. +- **Spec at the root, callables in `code/recipe/` via `code_source`.** The study declares + `code_source: ./code/recipe` (a local path) or a `{git, ref, subdir}` repo; tvbo puts that + dir on the import path so `callable: {module: <study>_analysis}` resolves with no driver and + no vendored package (falls back to a `code/` convention if unset). This keeps the spec at the + top level while its code lives under `code/`. +- One file; shared `&dynamics` / `¶ms` / `&network` anchors; per-experiment `<<:` + overrides. Order experiments so a `from_experiment` source precedes its dependents + (operating point before its control runs) β€” then bare `tvbo run <Study>.yaml` + resolves the seeds in one pass. +- Non-obvious params get a one-line comment tying them to the paper (equation/figure). +- Overriding a param replaces it wholesale (YAML merge is shallow) β€” restate `unit`/ + `description`, or don't override when the anchor default already matches. +- Encode the *intent* declaratively (gates via a Piecewise/`autonomous:false` RHS, + adiabatic branch via `Exploration.sweep_seeding: from_previous`, delayed self-terms + via the coupling graph) β€” not a backend mechanism. + +## Phase 4 β€” Analysis callables (only for non-closed-form pipelines) + +Study-specific reductions β€” order parameters, bifurcation / fixed-point detection, spectral +peaks, control masks, fit residuals β€” β†’ pure, backend-agnostic, independently-testable +functions in `code/<study>_analysis.py`, referenced from the recipe via +`callable: {name, module: <study>_analysis}`. Keep them NumPy; carry data as **labelled +xarrays**, never positional reshapes. When aligning a +paper's connectome/observable to your node order, match **by label**, never by position +(guards silent hemisphere/order swaps). Note the host/grid split: *declared* observations +run on the host (plain NumPy is fine); only what you put under `record:` runs inside the +jitted/vmapped grid and must be backend-traceable (a non-traceable recording raises). + +Two scale/ensemble traps: (1) a **trial ensemble needs per-cell reseeding** β€” add an +`execution.random_seed` sweep axis so each trial draws a fresh PRNG key; a codegen-constant +key makes every "trial" identical (a degenerate ensemble that silently reads as zero +variance). (2) **At grid scale, record a reduced/streaming observable, never raw +trajectories** β€” a full ΞΈ/voltage trace over a 15k-point grid is terabytes; a streaming +reduction (e.g. effective frequency accumulated online) keeps resident memory ~constant +(block-size, not trajectory-length), so the whole grid vmaps on one GPU with no sharding. + +## Phase 5 β€” Plotting: one `code/figures/plot.py` + +Copy `assets/plot.py.tmpl` (one `main()`, one section per paper figure *type* β€” time series / +phase portrait / bifurcation diagram / spectrum / sweep / spatial map β€” then compose) and +`assets/compose_ab.py` (pairs each reproduction with the paper original into +`ab_fig{N}.png`). Read the native result containers directly. Always draw the paper's +full multi-panel layout; a not-yet-run panel renders a labelled placeholder. + +**Render spatial data in the paper's coordinate/surface convention**, not a convenient +substitute β€” e.g. plot brain-region values at the paper's surface parcel centres (Koller uses +the fsaverage5-*inflated* COM), not the raw MNI centroid; the convention changes the figure's +look and can misalign, so derive the coordinates from the paper's surface and verify the +mapping **by label**. And **guard a multi-panel figure by data-requirement, not per figure**: +a group-level panel often reproduces from group data while its per-subject sibling stays +blocked on per-subject data β€” split the guard so the reproducible panels ship and only the +blocked ones are placeholders. + +Keep any extracted **paper source arrays label-keyed** (`xarray` with named coords), not +encoded into filenames β€” tvbo's declarative figure spec (`dev/figure-spec-design.md`) will +bind figure data by IRI + `output` + `sel`, so a flat per-panel `.nc` set is a fine stopgap, +but an elaborate filesystem-keyed tree is throwaway. Don't over-build it before the renderer. + +## Phase 6 β€” Report: `report/report.qmd` (every number computed) + +Copy `assets/report.qmd.tmpl`. It carries the three things that took us the longest: + +- a **metrics cell** that opens each result container and computes every quantity once + into a dict `M`, referenced in prose/captions via inline `` `{python} …` `` (works in + figure captions too). **No hand-typed numbers.** +- the **reproduction-vs-replication** section (NASEM framing) + a **scorecard** table + (criterion β†’ met / partial / out) mapping 1:1 to `targets.md`. +- model/coupling equations rendered from metadata via `EXP.dynamics.render("markdown")` + and `coupling.render("markdown")` β€” generated, not transcribed. Render the controlled + variant `relative to` the base (`dynamics.render(baseline=…)`) so only the delta shows. +- **per-figure status callouts, three colours, no emoji:** green = what reproduced, yellow + = what is *missing* (data/target not yet available), red = what was *attempted and failed + to match*. One or two sentences each. A placeholder panel (rule #3) gets a **yellow + "missing"** callout β€” never a green one, and never dressed up as a result. + +PDF-targeted `.qmd`: write math as LaTeX, never Unicode (xelatex drops it). Avoid a +closing `$` immediately followed by a digit (breaks pandoc math). Edit the finished prose +for AI-slop filler β€” hollow hedges, fake enthusiasm, recycled structure β€” before you call +it done. + +## Phase 7 β€” Verify against an independent reference + +Before trusting figures, validate the recipe's core dynamics against a **standalone +reference integration** of the paper's governing equation in `code/<study>_reference.py` +(plain NumPy, or another backend) β€” recipe output must match it (byte-exact, or within a +stated tolerance). Where feasible, also cross-check via `render_code('tvb')` vs +`render_code('tvboptim')`. This is what catches modelling bugs a PDF can't: e.g. +per-step vs per-stage coupling evaluation converging to a *different attractor*. + +**Attribute a residual gap to data vs implementation with a head-to-head.** When a metric +misses the paper's number, install the paper's *own* tooling and run it on your *exact* +inputs before blaming your code. (Koller: running his native `tvb-library` model on the same +substitute SC gave FC r=0.27 β€” the same as tvboptim's 0.32 β€” proving the shortfall was the +connectome, not the engine; without it we'd have chased an implementation bug that wasn't +there.) + +--- + +## Dynamical & numerical traps (these cost us the most time) + +- **The integrator, not the physics, can move the attractor.** An explicit scheme + (Heun/RK2) at too large a `dt` sustains lightly-damped fast librations at high + coupling: the *time-averaged* spread climbs and reads like desynchronization, but it is + numerical. Halve `dt` (or switch to RK4) and confirm the transition / operating point + are unaffected. A paper's quoted "Ξ”t" is often a Lyapunov / rescaling unit, **not** the + solver step β€” do not copy it into `step_size`. Phase 7's reference integration is how + you tell numerical drift from real dynamics. +- **Seeding a *delayed* system needs the delay HISTORY, not just a snapshot.** A + `from_experiment` seed carries the state but not the Ο„ seconds of history a delayed term + reads; feedback engaging against an unfilled buffer spikes or fails to converge. Fill it + with a Ο„-second **transient pre-roll** (`transient_time: Ο„`) that replays the operating + point; the recorded onset is then `gate.t_on βˆ’ transient_time` (derive it, never hardcode). +- **Big graphs: make the coupling sparse/vectorized before reaching for HPC.** For an + N-node grid the per-step dense NΓ—N coupling matmul dominates; `network.graph_representation: + sparse` (with a factored/angle-addition coupling) turned a multi-hour sweep into minutes + locally, numerically identical (~1e-16). Assess this first β€” often no cluster is needed. + For a big *parameter* grid, pair this with a streaming reduced observable (Phase 4) so vmap + memory stays bounded and the whole grid fits one GPU. +- **Metastable / FC metrics are duration-, trial-, and regime-sensitive β€” don't call a + ceiling early.** A single short run's FC/PLV/order-parameter is noise-dominated (one lucky + trial read 0.17; the 8-trial mean was 0.09). Match the paper's **full duration and trial + count**, and locate its **operating regime** (the near-critical (K, v) pocket a paper's 2-D + grid exists to find) before concluding "structure-limited". We twice declared a gap that + duration/trials/regime then closed. +- **Reconcile the coupling scale with the paper's weight normalization.** A global K that + looks orders of magnitude off is usually a normalization convention, not a bug: a coupling + `aΒ·gx/N` on *raw* SC (in-strength ~1e4) puts the operating point near K~1e-6, vs the paper's + K~0.03 on *normalized* SC. Match how the paper normalizes weights before sweeping K, or the + sweep hunts the wrong decade. + +## Pitfalls we hit (so you don't) + +- **A metric's *definition and the empirical modality it's compared against* are part of the + claim β€” read them from the METHODS, not the figure caption.** t_c (1/e vs exponential-fit), + βŸ¨Ξ”Ο‰βŸ© (std about the mean vs the median), λ₁ units; and *what* the sim is compared to + (Koller's Fig-8 "FC" is band-specific **MEG-PLV**, not fMRI β€” sim FC is PLV on the + off-diagonal). Pick a documented definition, state it, compute it. A magnitude that differs + may be a unit/rescaling convention rather than a physics gap β€” but **confirm that from the + methods**, don't assume it (we labelled it "likely" and it stayed unverified). + +- **Coupling evaluated once per step** silently integrates a different, multistable + attractor. Use `Integrator.coupling_evaluation: per_stage` for chaotic/multistable + systems and verify against the reference (Phase 7). +- **Hardcoded fidelity numbers** creep into captions ("t_c β‰ˆ 2.6 s") and read as + matches when they aren't. Compute them (Phase 6). A recomputed value that *differs* + from the paper is honest; a typed one that matches is not. +- **Realization dependence.** Exact solitary counts / magnitudes depend on unpublished + seeds β€” count median-relative, state the difference as an accepted limitation, don't + chase the integer. +- **Geometry / eigenmode decompositions: match the *invariant*, not the magnitudes.** + Reproduce the paper's exact operator (e.g. an `igl` cotangent-Laplacian at the paper's mesh + resolution β€” parcel-level, not a dense-surface substitute); the reproduced result is the + modal *structure* and where power concentrates (a field living in the lowest spatial-frequency + modes), while absolute scales (wavelengths) track the surface mesh β€” inflated meshes differ + ~1.3Γ— across sources. Report it mechanism-level with the scale caveat. +- **Large or derived array constants: declare their provenance, never inline them.** A mesh + operator, an empirical matrix, or any precomputed array a model/observation consumes is a + `Parameter` declared by *where it comes from*, not a literal: `source:` (WHERE) + `measure:` + (WHICH key) for an existing file, or `producer:` (a `FunctionCall` β€” HOW to compute it) for + one derived from the study's own inputs (arguments may reference `network.nodes.position` / + `network.mesh.*`). Sourced/produced values are resolved lazily and materialised to a + content-addressed companion β€” never baked into generated source (a 66 MB operator inlined is + a source file that will not compile). Reserve inline `value:` for genuine scalars/small + arrays. This keeps the spec the single source of truth (a pre-built file drifts from the mesh + it came from) and the emitted code self-contained. +- **Some targets are irreproducible from the paper's OWN source data.** A panel can be + internally inconsistent in the published workbook (Koller Fig 2e: the per-node spread + disagrees across the steady-state vs transient windows) β€” a source-data defect, not a + model gap. Identify these, scope them `out`, say why; don't chase them. +- **Redundant scripts.** One prep script (emits the tvbo Network directly), one plot + script. Don't split what one `main()` can do. +- **No dead vendored cruft β€” but a *live* dependency is not cruft.** Keep ONE pristine copy + of the paper's own code under `original_study/`; don't duplicate it into `code/`. If the + paper's algorithm is reused at runtime (e.g. a Helmholtz–Hodge flow-potential), *reference* + that one copy (put its dir on `sys.path`), don't re-vendor. **Before deleting vendored code + as "unused", confirm it against the actual RUN paths β€” run a representative experiment + END-TO-END, not just `from_file` load.** Loading a study does not import a + flow-potential/observation callable, so a load-only check will wrongly call a live + dependency dead (this cost us a broken flow-potential path). +- **Generated files never land in git at the study root.** KPI/targets tables, extracted + arrays, the report PDF/logs β†’ write them into `output/` (gitignored). A generated file + tracked at the root reads as a hand-curated deliverable and silently drifts stale. +- **Cross-references.** The report must stand alone β€” no "as in the sibling X study". +- **Framework gaps surface late** if you skip Phase 1.5. Find them before the YAML. diff --git a/tvbo/skills/canonical/replicating-studies/assets/DATA.md.tmpl b/tvbo/skills/canonical/replicating-studies/assets/DATA.md.tmpl new file mode 100644 index 000000000..a594c8005 --- /dev/null +++ b/tvbo/skills/canonical/replicating-studies/assets/DATA.md.tmpl @@ -0,0 +1,58 @@ +# Data provenance + +Replication of <Author> et al., *<Paper title>*, **<venue>** (<Year>) +([preprint <arXiv id / DOI>]). + +The **one tracked pointer** to every input β€” **none of the data itself is in git.** The +paper's own material (its source-data + your extraction of it) lives in `../original_study/`; +third-party raw inputs live in `sourcedata/`; both are git-ignored. State exactly where every +input comes from, name the **true upstream source** (never a derived intermediate), give the +exact fetch + regenerate steps, and mark which quantities are **sourced** vs **synthesised**. + +## Obtaining the data (nothing here is in git) + +1. **<paper source-data / dataset>** β€” download from `<url / DOI>` and save to + `../original_study/<file>` (verify `md5 = <hash>`, `<bytes>`). +2. **Regenerate** the tvbo-ready inputs from it: + ```bash + python code/prepare_<study>.py --all # -> <git-ignored dest, e.g. original_study/source_data/> + ``` +3. **<third-party connectomes / atlases>** (if any) β€” fetch into `sourcedata/` per the + table below. + +## <Dataset name> (paper's published data β€” in `../original_study/`, git-ignored) + +| item | value | +|------|-------| +| **Source** | <Author> (<Year>). *<Dataset title>.* <Publisher/repository>. | +| **DOI** | [<doi>](https://doi.org/<doi>) | +| **Download** | `<url>` | +| **Licence** | <e.g. ODbL / CC-BY-4.0> β€” attribute <Author> (<Year>). | +| **Archive** | `<file>.zip`, `<bytes>` bytes, `md5 = <hash>` | +| **Reference year** | <year the DATA describes, if different from the publication year β€” quote the documentation> | + +### Source β†’ paper-quantity map (verified: files opened, headers read) + +| Paper quantity | File / sheet | How to obtain | +|----------------|--------------|---------------| +| <adjacency A_ij> | <sheet> | <exact steps: which rows/cols, how collapsed> | +| <node coordinates> | <sheet> | <col names> | +| <per-node parameter> | <sheet> | <formula / aggregation> | + +### Synthesised (not sourced) + +<Any quantity generated rather than sourced β€” e.g. an artificial distribution β€” with its +exact generating parameters and seed, so it is reproducible.> + +## Open-data gaps (if any) + +<Any target that has no openly-available machine-readable data (e.g. a topology only in a +map image). State the gap honestly and the resolution options; scope that target as +`extended`/`out` in the scorecard.> + +## Processed artifacts (git-ignored, regenerable) + +`code/prepare_<study>.py` reads the raw source and emits the tvbo-ready `Network` plus small +human-readable `.npz`/`.csv` for inspection into a **git-ignored** location (regenerable from +the raw per the steps above). These are **derived intermediates, not the source** β€” do not +hand-edit them, and never commit them. diff --git a/tvbo/skills/canonical/replicating-studies/assets/compose_ab.py b/tvbo/skills/canonical/replicating-studies/assets/compose_ab.py new file mode 100644 index 000000000..923d26918 --- /dev/null +++ b/tvbo/skills/canonical/replicating-studies/assets/compose_ab.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python3 +"""Compose side-by-side A/B images: A = the original paper figure on a light-grey +panel; B = the TVBO reproduction on white. Writes ``output/figures/ab_fig{N}.png``. + +Reusable as-is across replications. Point ``_REPRO`` at each paper figure's +reproduction image (produced by ``plot.py``) and drop the paper originals into +``original_study/img/fig{N}.png``. Imported and called by ``plot.py``'s ``main()``. +""" +import matplotlib +matplotlib.use("Agg") +import matplotlib.pyplot as plt +from matplotlib.patches import Rectangle +from pathlib import Path + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parent.parent # <study>/ (code/figures/ -> <study>/) +FIGS = ROOT / "output" / "figures" # generated figures live under the gitignored output/ +FIGS.mkdir(parents=True, exist_ok=True) +ORIG = ROOT / "original_study" / "img" + +# paper figure number -> its reproduction PNG under output/figures/ (edit for your study). +_REPRO = { + 1: FIGS / "fig01_topology.png", + # 5: FIGS / "tvbo_fig5.png", + # 8: FIGS / "tvbo_fig8.png", +} + + +def compose_ab(repro=None): + repro = repro or _REPRO + for n, rp in repro.items(): + op = ORIG / f"fig{n}.png" + if not (op.exists() and rp.exists()): + print(f"skip fig{n} (missing {'orig' if not op.exists() else 'repro'})") + continue + orig, rep = plt.imread(op), plt.imread(rp) + ha, wa = orig.shape[:2]; hb, wb = rep.shape[:2] + H = 1000.0 + wa2, wb2 = wa * H / ha, wb * H / hb + fig, (a1, a2) = plt.subplots( + 1, 2, figsize=((wa2 + wb2) / 100.0 + 1.6, H / 100.0 + 0.9), + gridspec_kw={"width_ratios": [wa2, wb2], "wspace": 0.34}) + for ax, img, title in [(a1, orig, "A Original"), (a2, rep, "B TVBO reproduction")]: + ax.imshow(img) + ax.set_title(title, fontsize=13, fontweight="bold", pad=8) + ax.set_xticks([]); ax.set_yticks([]) + for sp in ax.spines.values(): + sp.set_visible(False) + fig.subplots_adjust(left=0.025, right=0.975, top=0.88, bottom=0.03, wspace=0.34) + fig.canvas.draw() + for ax, fc in [(a1, "#ececec"), (a2, "#ffffff")]: + bb = ax.get_position() + px, ptop, pbot = 0.014, 0.085, 0.02 + fig.add_artist(Rectangle( + (bb.x0 - px, bb.y0 - pbot), bb.width + 2 * px, bb.height + ptop + pbot, + transform=fig.transFigure, facecolor=fc, edgecolor="#9e9e9e", + linewidth=1.3, zorder=-1)) + fig.patch.set_facecolor("white") + fig.savefig(FIGS / f"ab_fig{n}.png", dpi=120, facecolor="white") + plt.close(fig) + print(f"ab_fig{n}.png") + + +if __name__ == "__main__": + compose_ab() diff --git a/tvbo/skills/canonical/replicating-studies/assets/plot.py.tmpl b/tvbo/skills/canonical/replicating-studies/assets/plot.py.tmpl new file mode 100644 index 000000000..6bc0e2255 --- /dev/null +++ b/tvbo/skills/canonical/replicating-studies/assets/plot.py.tmpl @@ -0,0 +1,60 @@ +#!/usr/bin/env python3 +"""All figures for the <Study> replication, in ONE script. + +Regenerate every figure from the processed data + run outputs, then compose the +A/B panels against the paper originals. Run: ``python code/figures/plot.py``. +Reproduction panels that need a not-yet-run experiment render as labelled +placeholders β€” always draw the paper's full multi-panel layout. + +Keep this the ONLY plotting script. Do not split into per-figure files. +""" +from __future__ import annotations +from pathlib import Path +import numpy as np +import matplotlib +matplotlib.use("Agg") +import matplotlib.pyplot as plt + +from compose_ab import compose_ab # A/B pairing (same dir) + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parent.parent +INPUT, OUT = ROOT / "input", ROOT / "output" +FIGS = OUT / "figures" # all generated figures live under the gitignored output/ +FIGS.mkdir(parents=True, exist_ok=True) + + +def _open(exp): + """Open a run's native result container (skip the *_network.h5 sidecar).""" + import xarray as xr + d = OUT / "nc" / exp + fs = [f for f in d.glob("*.h5") if "network" not in f.name] if d.exists() else [] + return xr.open_dataset(fs[0], engine="h5netcdf") if fs else None + + +# ============================================================================= +# Section 1 β€” topology / input-data figures (read the connectome, no dynamics) +# ============================================================================= +def plot_topology_figs(): + d = np.load(str(INPUT / "<study>_grid.npz"), allow_pickle=True) # or read the Network + # ... build fig01_topology.png etc. (subplot_mosaic recommended) ... + print("wrote topology figures") + + +# ============================================================================= +# Section 2..N β€” result figures (read output/nc/exp*/…h5) +# ============================================================================= +def plot_result_figs(): + # ds = _open("exp<id>"); ... build tvbo_fig{N}.png from ds.data_vars ... + print("wrote result figures") + + +def main(): + plot_topology_figs() + plot_result_figs() + compose_ab() # pairs each reproduction with its paper original + print("done") + + +if __name__ == "__main__": + main() diff --git a/tvbo/skills/canonical/replicating-studies/assets/report.qmd.tmpl b/tvbo/skills/canonical/replicating-studies/assets/report.qmd.tmpl new file mode 100644 index 000000000..954a5dae9 --- /dev/null +++ b/tvbo/skills/canonical/replicating-studies/assets/report.qmd.tmpl @@ -0,0 +1,149 @@ +--- +title: "TVBO replication of <Author> et al. (<Year>)" +subtitle: "*<Paper title>* (<venue>), replicated with a single declarative tvbo recipe" +format: + pdf: + toc: true + fig-width: 7 + geometry: margin=0.7in + colorlinks: true +callout-icon: false +jupyter: python3 +execute: + echo: false + warning: false +--- + +```{python} +#| label: setup +#| echo: false +import sys, numpy as np, xarray as xr, yaml, matplotlib.pyplot as plt +from pathlib import Path +sys.path.insert(0, str(Path("../code").resolve())) # builder + analysis callables +OUT = Path("../output"); INPUT = Path("../input") + +from tvbo.classes.study import SimulationStudy +STUDY = SimulationStudy.from_file("../<Study>.yaml") +EXP = STUDY.get_experiment(<base_exp_id>) # e.g. the uncontrolled/base variant +# CTRL = STUDY.get_experiment(<ctrl_exp_id>) # e.g. a controlled variant, if any + +# ---- Every reported number is computed here from the result container or metadata. ---- +# No value below this line may be typed into prose/captions. Reference M[...] via inline +# `{python} ...`. Papers are not ground truth; your own asserted numbers are not either. +def _open(exp): + d = OUT / "nc" / exp + fs = [f for f in d.glob("*.h5") if "network" not in f.name] if d.exists() else [] + return xr.open_dataset(fs[0], engine="h5netcdf") if fs else None + +def _sidecar(exp): + d = OUT / "nc" / exp + ys = [f for f in d.glob("*.yaml") if "network" not in f.name] if d.exists() else [] + return yaml.safe_load(open(ys[0])) if ys else {} + +def _mval(meta, *path): + o = meta + for k in path: + if not isinstance(o, dict) or k not in o: + return None + o = o[k] + return o.get("value") if isinstance(o, dict) else o + +def param(exp_id, name): + """A model parameter straight from the recipe metadata (never hand-typed).""" + p = STUDY.get_experiment(exp_id).dynamics.parameters + items = p.items() if hasattr(p, "items") else [(getattr(x, "name", None), x) for x in p] + return next((getattr(o, "value", None) for n, o in items if n == name), None) + +def fmt(x, d=1): + """Format a computed metric, or 'β€”' if its container is absent.""" + return "β€”" if x is None else (f"{x:.{d}f}" if d else f"{int(round(x))}") + +# --- Study-specific metric functions: read a container, return a number. Examples: --- +def grid_counts(): + """Topology counts from the processed connectome, so the exact-match claims compute.""" + p = INPUT / "<study>_grid.npz" + if not p.exists(): + return {} + d = np.load(str(p), allow_pickle=True) + return dict(n_nodes=int(np.asarray(d["A"]).shape[0])) # + n_lines, n_gen, ... as needed + +# def solitary_count(exp, thr=0.1): ... # deviation from the locked-bulk median +# def decay_time(exp): ... # e.g. time for the recorded obs to fall to 1/e +# def critical_nc(exp, thr): ... # smallest N_c driving the metric below thr + +# One dict, computed once. The prose/captions reference these via inline code. +M = dict( + K=param(<base_exp_id>, "K"), + **grid_counts(), + # n_sol=solitary_count("exp<id>"), tc=decay_time("exp<id>"), ... +) +``` + +# Overview + +<One paragraph: the paper's core result and that the whole study is a single +declarative recipe (`<Study>.yaml`); the only custom code is data preprocessing, +one plotting script, and analysis callables.> + +# Model and parameters + +The model is **generated from the recipe** (`EXP.dynamics.render("markdown")`) β€” the +equations and parameters shown are exactly what runs on the backend. + +```{python} +#| output: asis +#| echo: false +print(EXP.dynamics.render("markdown")) +# For a controlled/extended variant, render only the delta vs the base: +# print(CTRL.dynamics.render("markdown", baseline=EXP.dynamics)) +``` + +# Results (Figs …) + +![**Fig. N β€” <title>.** **A** original (<Author> et al. <Year>); **B** TVBO reproduction. +<caption>. Operating point $K =$ `{python} fmt(M['K'],0)` MW; the grid has +`{python} fmt(M['n_nodes'],0)` nodes. <Every number here is inline-computed from M.>](../output/figures/ab_figN.png){#fig-N width=100%} + +<!-- Per-figure status callout: three colours, no emoji (callout-icon:false above). + green (tip) = reproduced Β· yellow (warning) = MISSING (data/target not yet available) + Β· red (important) = attempted and failed to match. A placeholder panel gets yellow. --> +::: {.callout-tip title="Reproduced"} +<what this figure reproduces, with an inline-computed number, e.g. ρ = `{python} fmt(M['rho'],2)`>. +::: + +# Reproduction vs. replication + +This study is a **replication**, not a bit-exact reproduction. In the NASEM (2019) +terminology, *reproduction* re-runs the same code on the same data; *replication* +re-derives a paper's findings with **independent methods and independently sourced +data** β€” which is what this is (independent tvbo β†’ backend implementation on open data). +It reproduces the paper's *qualitative claims and structural invariants*; quantities +depending on unpublished realizations or rendering choices differ, as expected. + +# Replication scorecard + +Against the criteria in `original_study/analysis/targets.md`. **Status:** yes = +reproduced Β· partial = realization-dependent/incomplete Β· out = out of scope. **Tier** +(set in Phase 1.5): *mech* = mechanism-level (sign / pattern / ordering) Β· *dec* = +decimal-level (needs the paper's exact input). + +| Criterion | Tier | Status | Note | +|---|:---:|:---:|---| +| <T1 criterion, e.g. topology counts> | mech | **yes** | `{python} fmt(M['n_nodes'],0)` nodes … | +| <T2 criterion> | dec | **partial** | <needs the exact input; mechanism holds, number caps> | +| <extended targets> | dec | **out** | <deferred / data gap / framework gap> | + +**Bottom line:** <which tier is replicated; which is partial; what is out of scope>. + +## Accepted limitations + +- <e.g. exact counts depend on the paper's unpublished seed β€” counted median-relative; + the picture reproduces, the integer cannot match.> +- <out-of-scope tiers / open-data gaps / framework gaps (with a pointer to the todo).> + +# Running the study + +`tvbo run <Study>.yaml` runs every experiment in dependency order (each `from_experiment` +source before its dependents). Add `--experiment <ids>` for a subset. Each writes a +native `<stem>_result.h5` (+ a `.yaml` provenance sidecar). Figures + report: +`python code/figures/plot.py && quarto render report/report.qmd --to pdf`. diff --git a/tvbo/skills/canonical/replicating-studies/assets/skeleton/.gitignore.tmpl b/tvbo/skills/canonical/replicating-studies/assets/skeleton/.gitignore.tmpl new file mode 100644 index 000000000..4405402c8 --- /dev/null +++ b/tvbo/skills/canonical/replicating-studies/assets/skeleton/.gitignore.tmpl @@ -0,0 +1,18 @@ +# Run/build outputs β€” regenerated, not source. +output/ +results/ +logs/ +kit*/ +*.tar.gz +__pycache__/ +.ipynb_checkpoints/ + +# Data & upstream material β€” never vendored; obtain per input/DATA.md. +input/sourcedata/ # third-party raw inputs (connectomes, atlases, …) +original_study/* # the paper's own material + its published data (workbook, source_data, code) +!original_study/analysis/ # …but keep OUR analysis (targets.md, figures.md, backend-fit.md) + +# Generated report artifacts + working notes. +report/*.pdf +report/*.log +_dev/ diff --git a/tvbo/skills/canonical/replicating-studies/assets/skeleton/README.md.tmpl b/tvbo/skills/canonical/replicating-studies/assets/skeleton/README.md.tmpl new file mode 100644 index 000000000..825bbac77 --- /dev/null +++ b/tvbo/skills/canonical/replicating-studies/assets/skeleton/README.md.tmpl @@ -0,0 +1,29 @@ +# <Study> β€” <topic> (TVBO replication) + +**Replication** of <Author> et al., *<title>*, <venue> (<Year>). One declarative recipe +(`<Study>.yaml`) + minimal plotting; a *replication*, not a bit-exact reproduction (see +the report's scorecard). Backend chosen by fit β€” see `original_study/analysis/backend-fit.md`. + +## Layout (FAIR) +``` +<Study>/ + <Study>.yaml THE spec β€” one declarative recipe at the root (all/selected experiments) + README.md environment.yml / requirements.txt + code/ ALL code (the spec stays out of code/) + recipe/ callables the spec references, reached via `code_source: ./code/recipe` + prepare_<study>.py <study>_reference.py (verify) figures/plot.py + input/ + DATA.md TRACKED β€” provenance + exact download/regenerate steps + sourcedata/ third-party raw inputs (connectomes, …) β€” git-ignored + output/ EVERYTHING generated (git-ignored): run outputs, figures/, KPI tables, report.pdf + report/ report.qmd + references.bib + writeup (report.pdf / _dev/ git-ignored) + original_study/ paper + its published data β€” git-ignored, obtained per DATA.md + <paper.pdf> img/fig*.png analysis/ (targets, figures, backend-fit) source_data/ <pristine paper code> +``` +## Reproduce +```bash +python code/prepare_<study>.py # (only if the study has external inputs) raw source -> tvbo-ready Network +tvbo run <Study>.yaml # all experiments in dependency order (--experiment for a subset) +python code/figures/plot.py # all figures + A/B composites -> output/figures/ +quarto render report/report.qmd --to pdf # every number computed, no hardcoding +``` diff --git a/tvbo/skills/canonical/replicating-studies/assets/skeleton/original_study/analysis/backend-fit.md.tmpl b/tvbo/skills/canonical/replicating-studies/assets/skeleton/original_study/analysis/backend-fit.md.tmpl new file mode 100644 index 000000000..9284e64c3 --- /dev/null +++ b/tvbo/skills/canonical/replicating-studies/assets/skeleton/original_study/analysis/backend-fit.md.tmpl @@ -0,0 +1,31 @@ +# <Study> β€” backend-fit + framework gaps (Phase 1.5) + +**Scope selected:** all | {T1, T2, …} + +## Feature matrix (selected targets β†’ required capabilities) + +| Target | delays | Lyapunov | sweep/continuation | fit/inference | noise | multi-mode | gated events | sparse | +|--------|:------:|:--------:|:------------------:|:-------------:|:-----:|:----------:|:------------:|:------:| +| T2 | | | | | | | | | +| T3 | βœ“ | | | | | | βœ“ | | +| T5 | | βœ“ | βœ“ | | | | | | + +## Data obtainability + fidelity tier (Phase 1.5 β€” decide BEFORE building) + +| Target | Fidelity (mech/dec) | Exact input needed | Obtainable now? | Decision | +|--------|:-------------------:|--------------------|:---------------:|----------| +| T2 | dec | <connectome / empirical target / seeds> | <yes/no> | <exact \| documented substitute β†’ downgrade to mech> | +| T3 | mech | none (self-contained) | n/a | proceed | + +## Backend pick (with rationale) + +- **Execution backend:** <tvboptim | tvb | julia | …> β€” because <which selected targets + need delays / Lyapunov / adiabatic lax.scan sweeps, which are tvboptim-gated today; + plain forward sims and operating points run on any backend>. +- Metadata stays backend-independent (states intent, never a backend mechanism). + +## Framework / schema gaps (surfaced BEFORE writing the recipe) + +- <need not yet supported> β†’ <framework/schema enhancement>; **BLOCKS** T<n> β†’ + mark it `partial`/`out` in the scorecard. (e.g. Lyapunov of a *delayed* closed loop + under `vmap` needs a delay-correct MLE β€” a tvboptim enhancement.) diff --git a/tvbo/skills/canonical/replicating-studies/assets/skeleton/original_study/analysis/figures.md.tmpl b/tvbo/skills/canonical/replicating-studies/assets/skeleton/original_study/analysis/figures.md.tmpl new file mode 100644 index 000000000..9f5bc8039 --- /dev/null +++ b/tvbo/skills/canonical/replicating-studies/assets/skeleton/original_study/analysis/figures.md.tmpl @@ -0,0 +1,10 @@ +# <Study> β€” per-figure panel map (Phase 1) + +Colour convention: <e.g. green = generators, red = consumers; blue = frequency, orange = Lyapunov>. +Line styles: <e.g. solid = up-sweep, dashed = down-sweep>. + +| Fig | Panels | Axes + ranges | Notes to reproduce as-is | +|-----|--------|---------------|--------------------------| +| 1 | (a) map (b,c) histograms | lon/lat; MW | <quirks, e.g. axis labels swapped in the paper> | +| 5 | (a) Δω vs K (b) λ₁ (c–e) profiles (f–h) ΞΎ_i | K (MW); Hz; index | 8-panel; orange half needs Lyapunov | +| … | … | … | … | diff --git a/tvbo/skills/canonical/replicating-studies/assets/skeleton/original_study/analysis/targets.md.tmpl b/tvbo/skills/canonical/replicating-studies/assets/skeleton/original_study/analysis/targets.md.tmpl new file mode 100644 index 000000000..c19839136 --- /dev/null +++ b/tvbo/skills/canonical/replicating-studies/assets/skeleton/original_study/analysis/targets.md.tmpl @@ -0,0 +1,19 @@ +# <Study> β€” replication targets & validation criteria (Phase 1) + +Version of record: `original_study/<Study>.md`. Key params copied **verbatim**. + +**Scope** = core | extended (do we attempt it, Phase 1). **Fidelity** = mech | dec +(mechanism-level vs decimal-level, set Phase 1.5 β€” decides how exact a match to expect). + +| ID | Target | Fig(s) | Key params (verbatim) | Validation criterion (pass/fail) | Scope | Fidelity | +|----|--------|--------|-----------------------|----------------------------------|-------|----------| +| T1 | <count / topology> | 1 | N=… | counts exact | core | dec | +| T2 | <operating point / profile> | 5c–e | K=…, Ξ±=…, transient=… | <metric> within <tol> | core | dec | +| T3 | <bifurcation point / type> | 3 | sweep param, range … | onset within <tol>; type matches | core | mech | +| T4 | <control / perturbation> | 8 | Ο„=…, g=…, window=… | <metric> β†’ 0; persists after off | core | mech | +| T5 | <Lyapunov / λ₁ / spectrum> | 5b | Benettin, units … | sign structure + hysteresis | extended | mech | +| … | … | … | … | … | … | … | + +**Ground-truth note.** If the printed equation disagrees with what the figures show +(normalization typos, unit conventions), record the quantity the *figures* use, with the +discrepancy noted β€” that is what the recipe must reproduce. diff --git a/tvbo/skills/canonical/running-simulations/SKILL.md b/tvbo/skills/canonical/running-simulations/SKILL.md index f4ef74b15..9b6e2d2f2 100644 --- a/tvbo/skills/canonical/running-simulations/SKILL.md +++ b/tvbo/skills/canonical/running-simulations/SKILL.md @@ -1,29 +1,103 @@ --- name: running-simulations -description: How to run a SimulationExperiment in TVBO β€” choosing a backend, calling run/plot, and what each optional extra (jax, tvb, pyrates, julia) provides. +description: How to run a SimulationExperiment in TVBO β€” discovering curated components, reusing a curated experiment, choosing a backend, and calling run/plot. Read this before grepping the repo for models, networks, or how to run something. metadata: audience: user applies_to: - "**/*.py" - "**/*.ipynb" - tags: [simulation, backends, jax, tvb] - requires_extras: ["jax"] + tags: [simulation, backends, jax, tvb, discovery] + requires_extras: [] --- # Running Simulations -Once you have a `Dynamics` (see the `writing-models` skill), wrap it in a `SimulationExperiment` and run it. +Once you have a `Dynamics` (see the `writing-models` skill), wrap it in a +`SimulationExperiment` and run it. Three habits keep this cheap and correct β€” +**follow them before writing exploratory code or searching the repo**: -## The quick path +1. **Discover curated components** with the catalog API β€” don't grep the tree. +2. **Reuse a curated experiment** when one already matches β€” don't rebuild it. +3. **Build from `iri` pointers**, not from hand-copied parameter values. + +## 1. Discover what's available β€” don't grep the repo + +TVBO ships a large curated database (100+ models, connectomes, atlases, coupling +functions, and whole experiments). Query it directly instead of searching files: ```python -from tvbo import Dynamics, SimulationExperiment +from tvbo import Dynamics +Dynamics.list_db() # every model name (100+) +Dynamics.list_db(model_type="mean_field")# filter: mean_field | neural_mass | + # phase_oscillator | spiking | field | … +Dynamics.db_overview() # pandas DataFrame: name, type, description + +from tvbo.data.registry import list_entries +list_entries("Network") # curated connectomes (dTOR, Schaefer, HCP, …) +list_entries("BrainAtlas") # DesikanKilliany, Schaefer2018, Yeo17, hcpmmp1, … +list_entries("Coupling") # Linear, Sigmoidal, Difference, Kuramoto, … +list_entries("SimulationExperiment") # ready-to-run experiments +list_entries("SimulationStudy") # published studies (parameter sweeps, fits) +``` + +To inspect one entry without running it, use the CLI (no Python needed): + +```bash +tvbo info dynamics:JansenRit # parameters, state vars +tvbo info experiment:RWW_BOLD_FC_Optimization # tasks, network, backends +tvbo info study:Cabral2011 +``` + +`tvbo info` accepts a path, a CURIE (`dynamics:`, `network:`, `coupling:`, +`atlas:`, `experiment:`, `study:`), or a bare DB name. + +## 2. Fastest path: reuse a curated experiment -experiment = SimulationExperiment(dynamics=my_dynamics) -experiment.run(duration=1000).plot() +If an experiment already exists, loading it is one call β€” no reconstruction: + +```python +from tvbo import SimulationExperiment +exp = SimulationExperiment.from_db("RWW_BOLD_FC_Optimization") +result = exp.run("jax") +result.plot() +``` + +Or run it end-to-end from the shell: + +```bash +tvbo run experiment:RWW_BOLD_FC_Optimization --backend jax +``` + +## 3. Build a whole-brain experiment from curated parts + +When no curated experiment fits, assemble one from `iri` pointers. This recipe is +complete and runnable as-is β€” swap the names for any from step 1: + +```python +from tvbo import SimulationExperiment + +exp = SimulationExperiment( + dynamics={"name": "ReducedWongWangExcInh", "iri": "tvbo:ReducedWongWangExcInh"}, + coupling={"name": "Linear", "iri": "tvbo:Linear"}, + network={"iri": "network:example_3node_network"}, # or any list_entries("Network") name + integration={"method": "Heun", "duration": 500, "noise": None}, +) +result = exp.run("jax") # ExperimentResult +result.plot() # built-in plotting +result.data # xarray DataArray, dims (time, state_variable, node) ``` -`run()` returns a result container; `plot()` is built-in. For details see `tvbo/run/`, `tvbo/plot/`, `tvbo/analysis/`. +For a real connectome, point `network` at a curated relmat, e.g. +`{"iri": "network:tpl-FSLMNI152_cohort-HCPYA_rec-dTOR_atlas-Schaefer2018_seg-17Networks_scale-100_desc-SC_relmat"}`. + +### The single-node quick path + +For a bare `Dynamics` with no network (single node), the minimal form still holds: + +```python +from tvbo import Dynamics, SimulationExperiment +SimulationExperiment(dynamics=my_dynamics).run("jax").plot() +``` ## Declarative sourcing: inline vs YAML vs IRI @@ -37,55 +111,92 @@ TVBO is declarative about **where each component comes from**. A like `neuroml:` can resolve from other sources); remaining fields are backfilled from that source. -A bare name string is not a semantic pointer β€” it has no prefix, so the -resolver cannot tell which source to query. Use the `iri` form: +A bare name string is **not** a semantic pointer β€” it has no prefix, so the +resolver cannot tell which source to query. Use the `iri` form. `coupling` +additionally accepts a bare string as a `tvbo:`-prefixed shorthand, but prefer +the explicit `iri` form for clarity. -```python -exp = SimulationExperiment( - dynamics={"name": "ReducedWongWang", "iri": "tvbo:ReducedWongWangExcInh"}, - coupling={"name": "Linear", "iri": "tvbo:Linear"}, - network={ - "parcellation": {"atlas": {"name": "DesikanKilliany", - "iri": "tvbo:DesikanKilliany"}}, - "tractogram": {"name": "dTOR", "iri": "tvbo:dTOR"}, - }, - integration={"method": "Heun", "duration": 10_000, "noise": None}, -) -``` +## Choosing a backend: `run(format=…)` and `render_code(format=…)` -`coupling` additionally accepts a bare string as a `tvbo:`-prefixed shorthand, -but prefer the explicit `iri` form for clarity and to avoid coupling docs to -the default namespace. +The backend is selected by the **`format`** argument, not a constructor +`backend=` kwarg: -## Picking a backend +```python +result = exp.run("jax") # execute on JAX (recommended default for sims) +result = exp.run("tvb") # execute on The Virtual Brain +code = exp.render_code("jax") # render code WITHOUT executing (export) +``` -The default backend is JAX. Switch via `render_code('<backend>')` for export, or pass `backend=...` to `SimulationExperiment`. +`run()`'s default `format` is `tvboptim` (the optimisation backend); pass an +explicit `format` such as `"jax"` for a plain forward simulation. `duration` can +be passed to `run()` to override the integration length. -| Backend | Extras to install | Use when | -|---------|------------------|----------| -| `jax` | `pip install tvbo[jax]` (already in core) | Default; differentiable; fast on GPU/TPU | -| `tvb` | `pip install tvbo[tvb]` | You need TVB's curated set of neural-mass models | -| `pyrates` | `pip install tvbo[pyrates]` | Rate-coded brain network models + numerical continuation | +| Backend (`format`) | Extras to install | Use when | +|---|---|---| +| `jax` | in core | Default forward sim; differentiable; fast on GPU/TPU | +| `tvboptim` | `pip install tvbo[tvboptim]` | JAX-based optimisation / parameter fitting | +| `tvb` | `pip install tvbo[tvb]` | TVB's curated neural-mass models & monitors | +| `pyrates` | `pip install tvbo[pyrates]` | Rate-coded models + numerical continuation | | `julia` | `pip install tvbo[julia]` | DifferentialEquations.jl, ModelingToolkit, NetworkDynamics | +| `numpy` | in core | Reference / debugging | | `neuroml` | `pip install tvbo[neuroml]` | Multi-compartment models via NEURON/LEMS | -| `tvboptim` | `pip install tvbo[tvboptim]` | JAX-based optimisation / parameter fitting | -## Render-only (no execution) +Discover installed backends with `from tvbo.cli._backends import list_backends`. + +## Zero-Python: the `tvbo` CLI + +Everything above has a shell equivalent β€” often the cheapest way to run one thing: + +```bash +tvbo run experiment:JansenRit-bifurcation --backend jax # run a curated spec +tvbo run ./my_experiment.yaml # run a local YAML +tvbo info <SPEC> # inspect without running +tvbo export jax <SPEC> # render code, no execution +tvbo workflow snakemake <SPEC> -o ./kit # emit an HPC/pipeline kit +``` + +## Parameter sweeps, optimization & inference + +Sweeps and gradient-based fits are **declared on the experiment** as +`explorations`, not hand-written as optimizer loops β€” TVBO generates the code and +runs it on the `tvboptim` backend (a JAX autodiff engine): ```python -code = experiment.render_code('jax') -print(code) +exp = SimulationExperiment.from_db("RWW_BOLD_FC_Optimization") +result = exp.run("tvboptim") # fit G to empirical FC, gradient-based ``` -Useful for inspecting the generated code or running it outside TVBO. +Reuse a curated optimization experiment as your starting point instead of wiring +one from scratch β€” confirmed examples in the database: + +| Load with `from_db("…")` | What it does | +|---|---| +| `RWW_BOLD_FC_Optimization` | Fit global coupling to empirical BOLD FC | +| `JR_MEG_FrequencyGradient_Optimization` | Fit Jansen-Rit to a MEG frequency gradient | +| `EI_Tuning_FIC_EIB_Optimization` | Feedback-inhibition control / E-I balance tuning | +| `Hopf_Pareto_ParallelOpt` | Multi-objective (NSGA-II) Pareto optimization | +| `Stimulation_Bayesian_Inference` | Bayesian (MCMC) inference over a stimulation model | +| `TBPTT_JansenRit_FC_Optimization` | Truncated-BPTT fit of Jansen-Rit to FC | + +`tvbo info experiment:<name>` shows an experiment's tasks and explorations before +you run it. See `tvbo/classes/` for the `Exploration` metadata slots. ## Studies -A `SimulationStudy` aggregates multiple experiments (e.g. parameter sweeps). See `tvbo/classes/study.py`. +A `SimulationStudy` aggregates multiple experiments (e.g. parameter sweeps). Load +one with `SimulationStudy.from_db(name)` (see `list_entries("SimulationStudy")`), +or `tvbo run study:<name>`. See `tvbo/classes/study.py`. ## Pitfalls -- **Intel Mac**: TVBO pins `numba<0.60` and `llvmlite<0.44` on `darwin/x86_64`. JAX is pinned to `0.4.28` (last Intel-Mac release). If installation complains, check `pyproject.toml`'s platform conditionals. -- **TVB extra**: pulls `numba` transitively; the same Intel-Mac caps apply. -- **Julia extra**: requires a working Julia runtime. `juliacall` will download one on first import if absent. -- `--run-slow` is a *pytest* flag, not a TVBO option. It controls which tests run, not which simulations. +- **Backend selection is `format=`, not `backend=`.** There is no `backend=` + constructor argument on `SimulationExperiment`. +- **`run()` defaults to `tvboptim`.** For a plain forward simulation pass + `run("jax")` explicitly unless you installed the `tvboptim` extra. +- **Intel Mac**: TVBO pins `numba<0.60` / `llvmlite<0.44` on `darwin/x86_64`, and + JAX to `0.4.28` (last Intel-Mac release). Check `pyproject.toml`'s platform + conditionals if installation complains. +- **Julia extra**: requires a working Julia runtime; `juliacall` downloads one on + first import if absent. +- `--run-slow` is a *pytest* flag, not a TVBO option β€” it controls which tests + run, not which simulations. diff --git a/tvbo/skills/canonical/writing-models/SKILL.md b/tvbo/skills/canonical/writing-models/SKILL.md index 134fa0a02..4fe6a5f0a 100644 --- a/tvbo/skills/canonical/writing-models/SKILL.md +++ b/tvbo/skills/canonical/writing-models/SKILL.md @@ -15,6 +15,22 @@ metadata: A **Dynamics** is the smallest building block: a set of named parameters and state variables governed by ODE equations. It can be written as YAML or constructed directly in Python. +## First: is it already curated? (don't rewrite from a paper) + +TVBO ships 100+ curated models. Check before transcribing equations by hand β€” a +match is one `from_db` call and is already unit-checked: + +```python +from tvbo import Dynamics +Dynamics.list_db() # every curated model name +dyn = Dynamics.from_db("JansenRit") # load one +``` + +Only write a new `Dynamics` when the catalog has no match. See the +`running-simulations` skill for the rest of the discovery API (filtering by +`model_type`, `db_overview`, the `tvbo info` CLI) and for finding networks, +atlases, coupling, and whole curated experiments the same way. + ## YAML form ```yaml @@ -65,10 +81,7 @@ lorenz = Dynamics( ## Loading a curated model from a source TVBO components are declarative: a `Dynamics` is either specified inline (as -above), loaded from YAML, or **pointed at semantically via an `iri`**. The -IRI's prefix names the source β€” `tvbo:` for the built-in ontology, but the -same mechanism is intended to dispatch to other prefixes (e.g. `neuroml:`) -that resolve from other ontologies / data sources. +above), loaded from YAML, or **pointed at semantically via an `iri`**. ```python # Direct construction (Python API) @@ -78,9 +91,9 @@ dyn = Dynamics.from_db("ReducedWongWangExcInh") dynamics = {"name": "ReducedWongWang", "iri": "tvbo:ReducedWongWangExcInh"} ``` -A bare name string (`dynamics="ReducedWongWangExcInh"`) is **not** a semantic -pointer β€” there's no prefix, so the resolver cannot tell which source to -query. Always include the `iri`. +Always include the `iri` β€” a bare name string is **not** a semantic pointer. See +the `running-simulations` skill for how a prefix resolves to a source and for +the full sourcing rules (inline vs YAML vs `iri`). ## Conventions and pitfalls @@ -88,10 +101,10 @@ query. Always include the `iri`. - **`rhs` is a SymPy-parseable expression**. Names must match parameters and state variables. Greek letters as full words: `sigma`, not `Οƒ`. - **`label`** on a parameter is human-readable metadata (renders in the platform browser). Keep `name` machine-friendly. - Parameters carry **values**; state variables carry **equations**. Don't put a `value` on a state variable. -- **Don't hand-edit `tvbo/datamodel/**`** β€” that's generated from `schema/*.yaml`. Use the `Dynamics` class. +- **Define models through the `Dynamics` class or YAML** β€” never by editing the generated datamodel under `tvbo/datamodel/`. - **Trust the slots. Never assign a raw `{}` / `[]` to a LinkML slot β€” a `JsonObj` in your data is the symptom of mis-configured YAML / a Python object leaking into the schema.** The active datamodel (`tvbo/datamodel/schema.py`) is the jsonasobj2 / `YAMLRoot` dataclass form. Inlined dicts/lists are coerced into typed classes **only in `__post_init__` (i.e. at construction)**. Mutating a slot afterwards does **not** re-run that coercion: - **Multivalued slots** (dict- or list-backed: `parameters`, `dynamics`, `coupling`, `nodes`, `edges`, `transforms`, …) β†’ **mutate the existing container in place**: `.update(...)` / `container["X"] = ...` for dict slots, `.append(...)` for list slots. To get a *typed* entry, insert a constructed class: `net.dynamics["X"] = Dynamics(...)`. - - ❌ `net.dynamics = {...}` β€” a raw dict goes through jsonasobj2's `JsonObj.__setattr__`, which wraps it in a bare `JsonObj` (it later breaks `.items()` / `.values()` on round-trip). + - ❌ `net.dynamics = {...}` β€” a raw dict goes through jsonasobj2's `JsonObj.__setattr__`, which wraps it in a bare `JsonObj`. **Silent symptom:** the slot then reads back **empty with no error** β€” `.items()`/`.keys()` yield nothing, a resolver returns `[]`, `for k, v in slot` doesn't run. Empty-and-silent means you assigned instead of `.update()`-ing (or should have used the constructor). - ❌ `net.nodes = [{...}]` β€” a raw list isn't wrapped in `JsonObj`, but its entries stay **uncoerced plain dicts**, never `Node` instances. - ⚠️ `.update({...})` / `["X"] = {...}` avoids the `JsonObj`, but a raw dict still isn't normalized β€” prefer inserting a constructed class instance. - **Single-valued slots** β†’ plain `=` is correct. Assign a scalar directly (`net.number_of_nodes = 76`); for a nested-object slot assign a **constructed LinkML class instance** (`net.coordinate_space = CommonCoordinateSpace(...)`), never a raw `{}` (which becomes a bare `JsonObj`). diff --git a/tvbo/templates/__init__.py b/tvbo/templates/__init__.py index 7c1ff3238..a2137f12f 100644 --- a/tvbo/templates/__init__.py +++ b/tvbo/templates/__init__.py @@ -34,6 +34,8 @@ join(root, "networkdynamics"), join(root, "modelingtoolkit"), join(root, "neuroml"), + join(root, "bsplot"), + join(root, "workflow", "snakemake"), ], module_directory=join(root, "modules"), ) diff --git a/tvbo/templates/autodiff/tvbo-jax-sim.py.mako b/tvbo/templates/autodiff/tvbo-jax-sim.py.mako index 218a4ecd2..c45a6f486 100644 --- a/tvbo/templates/autodiff/tvbo-jax-sim.py.mako +++ b/tvbo/templates/autodiff/tvbo-jax-sim.py.mako @@ -88,12 +88,16 @@ ## print('simulation delayed:', is_delayed) %> +import logging + import jax from tvbo.data.types import TimeSeries from tvbo.utils import Bunch ## Usefull shorthands import jax.numpy as jnp +logger = logging.getLogger("tvbo.run") + <%include file="/tvbo-jax-coupling.py.mako" /> <%include file="/tvbo-jax-dfuns.py.mako" /> <%include file="/tvbo-jax-integrate.py.mako" /> @@ -386,6 +390,10 @@ def run_experiment(state): if __name__ == "__main__": import argparse from pathlib import Path as _Path + from tvbo.log import configure_logging + + # Standalone run: progress on stderr, controlled by TVBO_LOG_LEVEL (default INFO). + configure_logging() _parser = argparse.ArgumentParser(description="Run JAX-generated TVBO simulation") _parser.add_argument("--spec", type=_Path, default=None, @@ -405,7 +413,7 @@ if __name__ == "__main__": _experiment = SimulationExperiment.from_yaml(str(_spec)) _state = _experiment.collect_state() _result = kernel(_state) - print(f"Done: {type(_result).__name__}, shape={getattr(_result, 'shape', None)}") + logger.info("Done: %s, shape=%s", type(_result).__name__, getattr(_result, "shape", None)) if _args.output is not None: _args.output.mkdir(parents=True, exist_ok=True) @@ -414,4 +422,4 @@ if __name__ == "__main__": else: import numpy as _np _np.savez(_args.output / "result.npz", data=getattr(_result, "data", _result)) - print(f"Wrote results to {_args.output}") + logger.info("Wrote results to %s", _args.output) diff --git a/tvbo/templates/bsplot/tvbo-bsplot-figure.py.mako b/tvbo/templates/bsplot/tvbo-bsplot-figure.py.mako new file mode 100644 index 000000000..19d275817 --- /dev/null +++ b/tvbo/templates/bsplot/tvbo-bsplot-figure.py.mako @@ -0,0 +1,165 @@ +#!/usr/bin/env python3 +"""${name} β€” generated by tvbo bsplot figure codegen. + +Self-contained: opens the result containers, draws each panel, saves the figure. +Edit freely β€” it is a normal Python file. +""" +from __future__ import annotations + +import functools + +import numpy as np +import xarray as xr +import matplotlib +matplotlib.use("Agg") +import matplotlib.pyplot as plt +import bsplot +from bsplot import panels as _bpanels +from tvbo.adapters.bsplot import TRANSFORMS as _TF, CUSTOM_PANELS as _CP, registered as _registered +% for m in code_modules: +import ${m} # noqa: F401 β€” registers this study's custom panels/transforms into _CP / _TF +% endfor + + +@functools.lru_cache(maxsize=None) +def _open(path): + """Open a run's result container once per distinct path (xarray).""" + return xr.open_dataset(path, engine="h5netcdf") + + +def _placeholder(ax, label): + """Honest labelled placeholder when a panel's data is missing/degenerate.""" + ax.text(0.5, 0.5, label, ha="center", va="center", transform=ax.transAxes, wrap=True) + ax.set_xticks([]); ax.set_yticks([]) + + +def _coord(da, name, axis): + """Coordinate values along a named dim, or an integer index if it has no coord.""" + if name and name in da.coords: + return np.asarray(da.coords[name].values) + return np.arange(da.shape[axis]) + + +def _apply_axopts(ax, o): + """Apply a grammar panel's resolved axis directives (labels, limits, ticks, legend).""" + if o.get("axhline") is not None: + ax.axhline(o["axhline"], color="0.6", lw=0.7, ls=":", zorder=0) + if o.get("xlabel") is not None: + ax.set_xlabel(o["xlabel"]) + if o.get("ylabel") is not None: + ax.set_ylabel(o["ylabel"]) + if o.get("title"): + ax.set_title(o["title"]) + if o.get("xlim"): + ax.set_xlim(*o["xlim"]) + if o.get("ylim"): + ax.set_ylim(*o["ylim"]) + if o.get("xticks") is not None: + ax.set_xticks(o["xticks"]) + if o.get("yticks") is not None: + ax.set_yticks(o["yticks"]) + if o.get("hide_xticklabels"): + ax.set_xticklabels([]) + if o.get("hide_yticklabels"): + ax.set_yticklabels([]) + if o.get("legend"): + ax.legend(loc=o["legend"] if isinstance(o["legend"], str) else "best", + frameon=False) + + +% for p in panels: +def _panel_${p['key']}(fig, ax): + """Panel ${p['key']} β€” ${p['kind']}.""" +% if p['kind'] == 'image': + ax.imshow(plt.imread(${repr(p['path'])}), origin="upper") + ax.axis("off") +% elif p['kind'] == 'custom': + _registered(_CP, ${repr(p['render'])}, "custom panel")(fig, ax, ${repr(p['ctx'])}) +% else: +% for L in p['layers']: + _ds = _open(${repr(L['container'])}) + _da = _ds[${repr(L['output'])}] +% if L['transform']: + _da = _registered(_TF, ${repr(L['transform'])}, "transform")(_da) +% endif +% if L['sel'] is not None: + _da = _da.sel(${repr(L['sel'])}, method=${repr(L['sel_method'])}) +% endif +% if L['mark'] == 'heatmap': + _C = np.asarray(_da.values) + _x = _coord(_da, ${repr(L['x'])}, 0) + _y = _coord(_da, ${repr(L['y'])}, 1) + if _C.shape == (len(_x), len(_y)): + _C = _C.T # orient to (y, x) for pcolormesh + _im = ax.pcolormesh(_x, _y, _C, shading="auto") + fig.colorbar(_im, ax=ax) +% elif L['mark'] == 'scatter': + _x = _coord(_da, ${repr(L['x'])}, 0) + ax.scatter(_x, np.asarray(_da.values).squeeze(), **${repr(L['style'])}) +% else: + _x = _coord(_da, ${repr(L['x'])}, 0) + ax.plot(_x, np.asarray(_da.values).squeeze(), **${repr(L['style'])}) +% endif +% endfor + _apply_axopts(ax, ${repr(p['axopts'])}) +% endif +% if p['title']: + ax.set_title(${repr(p['title'])}) +% endif +% for a in p['annotations']: + ax.text(${a['x']}, ${a['y']}, ${repr(a['text'])}, transform=ax.transAxes, ha="center", va="center") +% endfor + + +% endfor +def main(): +% for s in style: +% if s['path']: + plt.style.use(${repr(s['value'])}) # study .mplstyle (matplotlib-native) +% else: + bsplot.style.use(${repr(s['value'])}) +% endif +% endfor +% if font_size: + plt.rcParams.update({_k: ${font_size} for _k in ( # one real point size for every panel + "font.size", "axes.labelsize", "axes.titlesize", + "xtick.labelsize", "ytick.labelsize", "legend.fontsize")}) +% endif +% if spine_rcparams: + plt.rcParams.update(${repr(spine_rcparams)}) +% endif + fig, axd = bsplot.figure.subplots(**${repr(subplots_kwargs)}) + +% for p in panels: +% if p['placeholder']: + try: + _panel_${p['key']}(fig, axd[${repr(p['key'])}]) + except (FileNotFoundError, OSError, KeyError, ValueError, IndexError): + _placeholder(axd[${repr(p['key'])}], ${repr(p['placeholder'])}) +% else: + _panel_${p['key']}(fig, axd[${repr(p['key'])}]) +% endif +% endfor + +% if auto_format: + bsplot.style.format_fig(fig, add_panel_numbers=False) # normalise ticks/labels; panel letters below +% endif +% for p in panels: +% if p['kind'] == 'image': + _iax = axd[${repr(p['key'])}] # keep image top-down (format_fig normalises the y-axis) + if _iax.get_ylim()[0] < _iax.get_ylim()[1]: + _iax.invert_yaxis() +% endif +% endfor +% if panel_numbers: +% for p in panels: + _bpanels.add_panel_number(axd[${repr(p['key'])}], ${repr(p['letter'])}, **${repr(p['number_kwargs'])}) +% endfor +% endif + fig.savefig(${repr(outfile)}, **${repr(savefig_kwargs)}) + print("wrote", ${repr(outfile)}) + return fig + + +if __name__ == "__main__": + main() diff --git a/tvbo/templates/julia/tvbo-julia-BifurcationKit.jl.mako b/tvbo/templates/julia/tvbo-julia-BifurcationKit.jl.mako index 264a66ed4..8aeaf41d3 100644 --- a/tvbo/templates/julia/tvbo-julia-BifurcationKit.jl.mako +++ b/tvbo/templates/julia/tvbo-julia-BifurcationKit.jl.mako @@ -7,7 +7,15 @@ from tvbo.adapters.julia_model import build_model_context ## All variables are pre-computed by BifurcationKitAdapter._prepare_context() ## Template only places values β€” no processing. svs = list(model.state_variables.values()) -mc = build_model_context(model) +mc = build_model_context(model, network, constraints=constraints) +n_nodes = mc.get("n_nodes", 1) +# Single-node: record each state var directly. Network: a loop-based record +# (below) computes derived observables (e.g. H_e) per node and reduces to max/mean. +_rec = ", ".join(f"{sv.name} = x[{i+1}]" for i, sv in enumerate(svs)) +# BifurcationKit calls record_from_solution(x, p) with p = the SCALAR value of the +# continuation parameter. The fixed parameters come from the closure `p` NamedTuple; +# exclude the continuation parameter from that destructure (the record arg supplies it). +_destr_no_ics = ", ".join(n for n in (nm.strip() for nm in mc["destructure"].split(",")) if n and n != ICS) %> ## <%include file="/tvbo-julia-model.jl.mako" args="mc=mc" /> @@ -15,10 +23,10 @@ mc = build_model_context(model) # Override continuation parameter to start within [p_min, p_max] p = merge(p, (${ICS} = ${float(p_start)},)) -# Initial conditions from model defaults +# Initial conditions from model defaults (network: n_nodes blocks per state var) x0 = [ - % for sv in svs: - ${sv.initial_value if sv.initial_value is not None else 0.1}, # Initial value for ${sv.name} + % for v in mc['u0']: + ${v if v is not None else 0.1}, % endfor ] @@ -54,8 +62,44 @@ x0_eq = _find_steady_state(${model.name}!, x0, p) ################################################################################ -# Record named state variables for each continuation step -record_from_sol = (x, p; k...) -> (${', '.join(f'{sv.name} = x[{i+1}]' for i, sv in enumerate(svs))},) +# Record observables for each continuation step +% if network: +## Network: recompute derived observables per node (reusing the model's equation +## emission) and reduce across nodes to max & mean β€” e.g. max firing rate r_E vs G. +record_from_sol = (${mc['arg_x']}, ${ICS}; k...) -> begin + (; ${_destr_no_ics}) = p + N = ${n_nodes} +% for name, rhs in mc['derived_params']: + ${name} = ${rhs} +% endfor +% for line in mc['coupling_pre']: + ${line} +% endfor +% for name in mc['record_obs']: + _${name}_max = -Inf; _${name}_sum = 0.0 +% endfor + @inbounds for i in 1:N +% for line in mc['unpack']: + ${line} +% endfor +% for line in mc.get('pernode_gather', []): + ${line} +% endfor +% for line in mc['coupling_body']: + ${line} +% endfor +% for name, rhs in mc['derived_vars']: + ${name} = ${rhs} +% endfor +% for name in mc['record_obs']: + _${name}_max = max(_${name}_max, ${name}); _${name}_sum += ${name} +% endfor + end + (${', '.join(f'{name}_max = _{name}_max, {name}_mean = _{name}_sum / N' for name in mc['record_obs'])},) +end +% else: +record_from_sol = (x, p; k...) -> (${_rec},) +% endif # Bifurcation Problem prob = BifurcationProblem(${model.name}_vf!, x0_eq, p, (@optic _.${ICS}); diff --git a/tvbo/templates/julia/tvbo-julia-model.jl.mako b/tvbo/templates/julia/tvbo-julia-model.jl.mako index 1e5dd7d85..1d9db9430 100644 --- a/tvbo/templates/julia/tvbo-julia-model.jl.mako +++ b/tvbo/templates/julia/tvbo-julia-model.jl.mako @@ -8,7 +8,57 @@ using SpecialFunctions % if mc['needs_nanmath']: import NaNMath % endif +% if mc.get('network_mode'): +## ── Network-coupled RHS: n_nodes blocks per state var; long-range coupling is a +## ── WΒ·s matvec (once/step); per-node scalar RHS runs in a loop (reuses the +## ── single-node equation emission verbatim β€” no vectorised broadcasting). ── +const W_NET = ${mc['w_const']} +function ${mc['func_name']}!(dx, ${mc['arg_x']}, p, t = 0) + + (;${mc['destructure']}) = p + N = ${mc['n_nodes']} + + ## Model function definitions (e.g. Sigm) +% for fname, fargs, fbody in mc['functions']: + ${fname}(${", ".join(fargs)}) = ${fbody} +% endfor + + ## Derived parameters (node-independent β€” computed once) +% for name, rhs in mc['derived_params']: + ${name} = ${rhs} +% endfor + + ## Long-range coupling matvecs (c = WΒ·s, evaluated once per step) +% for line in mc['coupling_pre']: + ${line} +% endfor + + @inbounds for i in 1:N + ## Per-node state +% for line in mc['unpack']: + ${line} +% endfor + ## Per-node heterogeneous parameters (e.g. FIC-tuned J_i) +% for line in mc.get('pernode_gather', []): + ${line} +% endfor + ## Per-node coupling (gather / local) +% for line in mc['coupling_body']: + ${line} +% endfor + ## Derived variables +% for name, rhs in mc['derived_vars']: + ${name} = ${rhs} +% endfor + ## State variable derivatives +% for lhs, rhs in mc['dfun']: + ${lhs} ${rhs} +% endfor + end + dx +end +% else: function ${mc['func_name']}!(dx, ${mc['arg_x']}, p, t = 0) (;${mc['destructure']}) = p @@ -38,6 +88,7 @@ function ${mc['func_name']}!(dx, ${mc['arg_x']}, p, t = 0) % endfor dx end +% endif # Parameter values p = (${mc['param_values']}) diff --git a/tvbo/templates/report/tvbo-report-coupling.md.mako b/tvbo/templates/report/tvbo-report-coupling.md.mako index 38a1ad484..8c58e827c 100644 --- a/tvbo/templates/report/tvbo-report-coupling.md.mako +++ b/tvbo/templates/report/tvbo-report-coupling.md.mako @@ -26,6 +26,16 @@ cpl = coupling cpl_label = getattr(cpl, "label", None) or getattr(cpl, "name", "Coupling") cpl_desc = getattr(cpl, "description", "") or "" +def _md_escape(s): + """Escape markdown emphasis characters so a free-text label renders + literally inside the surrounding ``**...**`` β€” an odd number of + underscores or asterisks in the label would otherwise break the bold + span (e.g. ``sum_j (A+I)_ij (theta_j(t-tau_ij) - theta_i)``).""" + s = str(s) + for ch in ("\\", "`", "*", "_"): + s = s.replace(ch, "\\" + ch) + return s + incoming = list(getattr(cpl, "incoming_states", None) or []) local = list(getattr(cpl, "local_states", None) or []) @@ -64,12 +74,16 @@ for attr, label in ( if value: coupling_meta.append(f"{label}: {value}") -# Full equation (indexed-symbolic form preserves sign ordering). +# Full equation (indexed-symbolic form preserves sign ordering). A delayed coupling +# must show its delay -- theta_j(t - tau_ij) -- otherwise it reads identically to its +# instantaneous twin, so pass the coupling's own `delayed` flag through. full_latex = "" try: - sym = cpl.symbolic() + sym = cpl.symbolic(delays=bool(getattr(cpl, "delayed", False))) if sym is not None: - full_latex = latex(sym, mul_symbol="dot") + # order="none" keeps the constructed term order (e.g. theta_j - theta_i) instead + # of sympy's canonical reordering to -theta_i + theta_j. + full_latex = latex(sym, mul_symbol="dot", order="none") except Exception: try: eq = cpl.equation @@ -77,8 +91,18 @@ except Exception: full_latex = latex(eq, mul_symbol="dot") except Exception: full_latex = "" + +# Factored / vectorized couplings: define gx_k = Sum_j w_ij (c_pre)_k so the post's +# gx_0, gx_1, ... are mathematically precise, not bare symbols. +try: + gx_defs = cpl.summed_inputs(delays=bool(getattr(cpl, "delayed", False))) +except Exception: + gx_defs = [] +gx_line = ", ".join( + f"${latex(g)} = {latex(s, mul_symbol='dot', order='none')}$" for g, s in gx_defs +) %>\ -**Coupling: ${cpl_label}** +**Coupling: ${_md_escape(cpl_label)}** % if cpl_desc: ${cpl_desc.strip()} @@ -99,6 +123,10 @@ ${'; '.join(coupling_meta)}. % if post_rhs: **Post-synaptic:** $c_{\text{post}} = ${_safe_latex(post_rhs)}$ +% endif +% if gx_line: +with ${gx_line} β€” the pre-synaptic components summed over the graph, which the post-synaptic term recombines. + % endif <% meta_lines = [] diff --git a/tvbo/templates/report/tvbo-report-experiment.md.mako b/tvbo/templates/report/tvbo-report-experiment.md.mako index dee8a5565..6fba7a508 100644 --- a/tvbo/templates/report/tvbo-report-experiment.md.mako +++ b/tvbo/templates/report/tvbo-report-experiment.md.mako @@ -453,7 +453,7 @@ def _matrix_summary(matrix): dtype = _p(matrix, 'dtype', None) if dtype: parts.append(f"dtype={dtype}") - location = _p(matrix, 'dataLocation', None) or _p(matrix, 'dataset_path', None) + location = _p(matrix, 'dataLocation', None) if location: parts.append(f"data={location}") return ', '.join(parts) diff --git a/tvbo/templates/report/tvbo-report-model.md.mako b/tvbo/templates/report/tvbo-report-model.md.mako index abc5ca814..bc212ba5c 100644 --- a/tvbo/templates/report/tvbo-report-model.md.mako +++ b/tvbo/templates/report/tvbo-report-model.md.mako @@ -65,9 +65,17 @@ if 'experiment' in context.keys(): else: model = context.get('dynamics', context.get('model')) -state_equations = [eq for k, eq in model.get_equations().items() if k in model.state_variables] +# Optional baseline diff: when a `baseline` model is passed, render only what this +# model adds or changes relative to it. report.model_delta does the comparison in +# Python; the template just filters its collections by the returned name sets. +_baseline = context.get('baseline', None) +_delta = report.model_delta(model, _baseline) if _baseline is not None else None -derived_variables = [eq for k, eq in model.get_equations().items() if k in model.derived_variables] +state_equations = [eq for k, eq in model.get_equations().items() + if k in model.state_variables and (_delta is None or k in _delta.eq_svars)] + +derived_variables = [eq for k, eq in model.get_equations().items() + if k in model.derived_variables and (_delta is None or k in _delta.dvars)] derived_parameters = [ Eq(symbols(p.name), sympify(p.equation.rhs, strict=False)) @@ -86,8 +94,11 @@ functions = [ ] outputs = list(model.output or []) +# coupling_inputs is the supported surface; coupling_terms duplicated the same names +# (each input IS a term) and is no longer rendered. coupling_inputs = getattr(model, 'coupling_inputs', {}) or {} -coupling_terms = getattr(model, 'coupling_terms', {}) or {} +if _delta is not None: + coupling_inputs = {n: o for n, o in report.name_items(coupling_inputs) if n in _delta.coupling_inputs} model_summary = [] if getattr(model, 'model_type', None): model_summary.append(f"type: {model.model_type}") @@ -136,6 +147,10 @@ ${model.description} % endif ${'; '.join(model_summary)}. +% if _delta is not None: +Shown **relative to the base model** (${_delta.base_label}) β€” only new or changed state variables, parameters, derived variables and couplings are listed; everything else is inherited unchanged. + +% endif % if state_equations: **State Equations** @@ -154,32 +169,36 @@ with ${'\n'.join([f"$$\n{latex_equation(eq, mul_symbol='*')}\n$$" for eq in functions])} % endif -% if model.state_variables: +<% +_svars_show = model.state_variables if _delta is None else {n: s for n, s in report.name_items(model.state_variables) if n in _delta.new_svars} +%>\ +% if _svars_show: **State Variables** -${report.state_variable_table(model.state_variables)} +${report.state_variable_table(_svars_show)} % endif -% if model.parameters: +<% +_params_show = model.parameters if _delta is None else {n: p for n, p in report.name_items(model.parameters) if n in _delta.params} +%>\ +% if _params_show: **Parameters** -${report.parameter_table(model.parameters)} +${report.parameter_table(_params_show)} % endif % if coupling_inputs: +<% +# One md_table (empty columns dropped; a scalar-only input list collapses to plain +# text) instead of a hand-rolled table β€” a trivial dimension=1 carries no information. +ci_rows = [[nm, report.slot(o, "source", ""), + ("" if report.slot(o, "dimension", "") in (1, "1", None, "") else report.slot(o, "dimension", "")), + ", ".join(report.slot(o, "keys", []) or []), report.slot(o, "description", "") or ""] + for nm, o in coupling_inputs.items()] +%>\ **Coupling Inputs** -| Input | Source | Dimension | Keys | Description | -|:------|:-------|----------:|:-----|:------------| -% for input_name, input_obj in coupling_inputs.items(): -| ${input_name} | ${_slot(input_obj, 'source', 'β€”') or 'β€”'} | ${_slot(input_obj, 'dimension', 1)} | ${', '.join(_slot(input_obj, 'keys', []) or []) or 'β€”'} | ${_slot(input_obj, 'description', '') or ''} | -% endfor - -% endif -% if coupling_terms: -**Coupling Terms** - -${report.param_table(coupling_terms, name_header='Term')} +${report.md_table(["Input", "Source", "Dimension", "Keys", "Description"], ci_rows, aligns=["l", "l", "r", "l", "l"])} % endif % if derived_parameters: diff --git a/tvbo/templates/tvboptim/_linear_response.py.mako b/tvbo/templates/tvboptim/_linear_response.py.mako new file mode 100644 index 000000000..d88dd0208 --- /dev/null +++ b/tvbo/templates/tvboptim/_linear_response.py.mako @@ -0,0 +1,285 @@ +## Linear-response codegen partials (JAX/tvboptim backend). +## +## Resolution β€” the symbolic per-node RHS / Jacobians and the state/coupling/parameter +## layout β€” comes from tvbo.analysis.linear_response.linear_response_context (Python). +## These <%def>s emit only the code STRUCTURE, rendering each symbolic entry via +## render_expression, so the same metadata prints to any backend (a Julia partial would +## emit Julia). No Python string-emit. `ctx` is the linear_response_context dict. +## +## Per-node unpack: state from `s`, coupling from `c`, parameters from the bunch `p_` +## (heterogeneous per-node params gathered by the traced node index `_i`). +<%def name="lr_node_unpack(ctx)">\ +% for i, v in enumerate(ctx['svs']): + ${v} = s[${i}] +% endfor +% for i, cpl in enumerate(ctx['net_cpls']): + ${cpl} = c[${i}] +% endfor +% for p in ctx['pnames']: +% if p in ctx['pernode']: + ${p} = jnp.asarray(getattr(p_, '${p}'))[_i] +% else: + ${p} = getattr(p_, '${p}') +% endif +% endfor +</%def>\ +## +## Deterministic network vector field dy/dt = f(y): per-node RHS vmapped over nodes, +## long-range coupling = connectome matvec. Settling it gives the operating point. +<%def name="lr_vf(ctx, name='_lr_vf')">\ +<% + from tvbo.codegen import render_expression + _jc = lambda e: render_expression(e, format='jax', parameters=ctx['syms']) +%>\ +def ${name}_node(s, c, p_, _i): +${self.lr_node_unpack(ctx)}\ + return jnp.array([${', '.join(_jc(e) for e in ctx['rhs'])}]) + +def ${name}(x, weights, p): + _W = jnp.asarray(weights); _X = jnp.asarray(x); _N = _W.shape[0] +% if ctx['n_cpl']: + _C = jnp.stack([_W @ _X[${ctx['src_k']}] for _ in range(${ctx['n_cpl']})]) +% else: + _C = jnp.zeros((0, _N)) +% endif + _F = jax.vmap(lambda i: ${name}_node(_X[:, i], _C[:, i], p, i))(jnp.arange(_N)) + return _F.T +</%def>\ +## +## Network Jacobian A at an operating point x: per-node local block βˆ‚f/βˆ‚state (Jloc) +## on the block-diagonal + coupling block βˆ‚f/βˆ‚coupling (Jcpl) scattered by the connectome. +<%def name="lr_jacobian(ctx, name='_lr_jacobian')">\ +<% + from tvbo.codegen import render_expression + _jc = lambda e: render_expression(e, format='jax', parameters=ctx['syms']) + n_sv, n_cpl, src_k = ctx['n_sv'], ctx['n_cpl'], ctx['src_k'] + _mat = lambda M, ncol: '[' + ', '.join('[' + ', '.join(_jc(M[k, l]) for l in range(ncol)) + ']' for k in range(n_sv)) + ']' +%>\ +def ${name}_jloc(s, c, p_, _i): +${self.lr_node_unpack(ctx)}\ + return jnp.array(${_mat(ctx['Jloc'], n_sv)}) +% if n_cpl: + +def ${name}_jcpl(s, c, p_, _i): +${self.lr_node_unpack(ctx)}\ + return jnp.array(${_mat(ctx['Jcpl'], n_cpl)}) +% endif + +def ${name}(x, weights, p): + _W = jnp.asarray(weights); _X = jnp.asarray(x); _N = _W.shape[0] +% if n_cpl: + _C = jnp.stack([_W @ _X[${src_k}] for _ in range(${n_cpl})]) +% else: + _C = jnp.zeros((0, _N)) +% endif + _Jl = jax.vmap(lambda i: ${name}_jloc(_X[:, i], _C[:, i], p, i))(jnp.arange(_N)) +% if n_cpl: + _Jc = jax.vmap(lambda i: ${name}_jcpl(_X[:, i], _C[:, i], p, i))(jnp.arange(_N)) +% endif + _A = jnp.zeros((${n_sv} * _N, ${n_sv} * _N)) +% for k in range(n_sv): +% for l in range(n_sv): + _A = _A.at[${k}*_N:${k+1}*_N, ${l}*_N:${l+1}*_N].add(jnp.diag(_Jl[:, ${k}, ${l}])) +% endfor +% for cix in range(n_cpl): + _A = _A.at[${k}*_N:${k+1}*_N, ${src_k}*_N:${src_k+1}*_N].add(_Jc[:, ${k}, ${cix}][:, None] * _W) +% endfor +% endfor + return _A +</%def>\ +## +## Operating point: settle the noise-free vector field to the deterministic fixed point and +## linearise (Jacobian A). Emitted ONCE β€” the covariance/psd/fisher observables below are all +## linear-algebra solves on this shared A, so the FP settle and eig assembly run a single time. +## Binds _lr_fp (fixed point) and _lr_A (Jacobian) using _lr_weights/_lr_params/_lr_x0 (set by +## the caller). Reuses the module-level ${vf}/${jac}. The Jacobian carries the model's native +## rate units (per-ms by convention); rescaling it to per-second HERE (once) makes every +## downstream quantity β€” stationary covariance, power spectrum (Hz), Fisher information β€” +## physical, rather than each observable re-deriving the unit conversion. `time_scale` is +## seconds per model time unit (from integration.unit), so this is metadata-driven, not hardcoded. +<%def name="lr_operating_point(ctx, dt=0.1, n_settle=200000, n_newton=8, vf='_lr_vf', jac='_lr_jacobian', time_scale=1.0e-3)">\ +def _lr_settle(_x, _): + return _x + ${dt} * ${vf}(_x, _lr_weights, _lr_params), None +_lr_fp = jax.lax.scan(_lr_settle, _lr_x0, None, length=${n_settle})[0] +# Newton-polish the settled point to the EXACT fixed point (residual -> machine precision), +# reusing the symbolic Jacobian. The settle reaches the right basin; Newton removes the O(dt) +# residual so the operating point matches a Newton/fsolve solve β€” critical near bifurcations +# and under stimulus, where the covariance/Fisher are sensitive to sub-percent FP error. +def _lr_newton(_x, _): + _f = ${vf}(_x, _lr_weights, _lr_params) + _J = ${jac}(_x, _lr_weights, _lr_params) + return _x - jnp.linalg.solve(_J, _f.reshape(-1)).reshape(_x.shape), None +_lr_fp = jax.lax.scan(_lr_newton, _lr_fp, None, length=${n_newton})[0] +_lr_A = ${jac}(_lr_fp, _lr_weights, _lr_params) / ${time_scale} # per-(model time unit) -> per-second +</%def>\ +## +## A derived-variable expression (e.g. the FIC constraint variable I_E) as a per-node function of +## (state, network coupling, params) β€” same structure/symbols as the vector field, but returning +## the scalar quantity per node. Used to form the constraint residual of a constraint-defined +## operating point. `expr` is the unfolded sympy expression from linear_response.constraint_expr. +<%def name="lr_constraint_fn(ctx, name, expr)">\ +<% + from tvbo.codegen import render_expression + _jc = lambda e: render_expression(e, format='jax', parameters=ctx['syms']) +%>\ +def ${name}_node(s, c, p_, _i): +${self.lr_node_unpack(ctx)}\ + return ${_jc(expr)} + +def ${name}(x, weights, p): + _W = jnp.asarray(weights); _X = jnp.asarray(x); _N = _W.shape[0] +% if ctx['n_cpl']: + _C = jnp.stack([_W @ _X[${ctx['src_k']}] for _ in range(${ctx['n_cpl']})]) +% else: + _C = jnp.zeros((0, _N)) +% endif + return jax.vmap(lambda i: ${name}_node(_X[:, i], _C[:, i], p, i))(jnp.arange(_N)) +</%def>\ +## +## Constraint-defined operating point (Deco FIC β€” the paper's fsolve on the steady-state, NOT a +## stochastic tuning loop). Solve the EXTENDED system for (state, free_param) simultaneously: +## f(state; theta) = 0 (n_svΒ·N deterministic fixed-point equations) +## constraint(state; theta) - target = 0 (N equations, e.g. I_E = target) +## by Newton with an autodiff Jacobian (exact, backend-agnostic) β€” reusing ${vf}/${jac}/${constraint_fn}. +## Warm-start the state from a noise-off settle at the default free-param value. Binds _lr_fp (state) +## and rebinds _lr_params with the solved free_param, so the covariance/psd/fisher below linearise at +## the tuned operating point with NO change. Vmaps across a parameter sweep (each cell solves in ms). +<%def name="lr_constrained_operating_point(ctx, free_param, constraint_fn, target, dt=0.1, n_settle=200000, n_newton=15, vf='_lr_vf', jac='_lr_jacobian', time_scale=1.0e-3)">\ +<% n_sv = ctx['n_sv'] %>\ +def _lr_csettle(_x, _): + return _x + ${dt} * ${vf}(_x, _lr_weights, _lr_params), None +_lr_s0 = jax.lax.scan(_lr_csettle, _lr_x0, None, length=${n_settle})[0] +_lr_N = _lr_weights.shape[0] +_lr_theta0 = jnp.broadcast_to(jnp.asarray(getattr(_lr_params, '${free_param}')), (_lr_N,)) +def _lr_cresidual(_z): + _st = _z[:${n_sv} * _lr_N].reshape(${n_sv}, _lr_N) + _th = _z[${n_sv} * _lr_N:] + _p = Bunch({**_lr_params, '${free_param}': _th}) + _f = ${vf}(_st, _lr_weights, _p).reshape(-1) # f(state; theta) = 0 + _g = ${constraint_fn}(_st, _lr_weights, _p) - ${target} # constraint(state; theta) = 0 + return jnp.concatenate([_f, _g]) +_lr_z0 = jnp.concatenate([_lr_s0.reshape(-1), _lr_theta0]) +def _lr_cnewton(_z, _): + return _z - jnp.linalg.solve(jax.jacobian(_lr_cresidual)(_z), _lr_cresidual(_z)), None +_lr_z = jax.lax.scan(_lr_cnewton, _lr_z0, None, length=${n_newton})[0] +_lr_fp = _lr_z[:${n_sv} * _lr_N].reshape(${n_sv}, _lr_N) +_lr_params = Bunch({**_lr_params, '${free_param}': _lr_z[${n_sv} * _lr_N:]}) # solved free parameter +_lr_A = ${jac}(_lr_fp, _lr_weights, _lr_params) / ${time_scale} +</%def>\ +## +## Continuous Lyapunov Ξ£ solve on the shared A (Deco 2014 Fig 5, Eq 24): A Ξ£ + Ξ£ Aα΅€ + Q = 0, +## Q = σ² I, by eigendecomposition Ξ£ = V M Vα΄΄, M = -(V⁻¹QV⁻ᴴ)/(Ξ»α΅’+Ξ»Μ„β±Ό) β€” backend-independent +## (jnp.linalg.eig/inv), no scipy. Returns the excitatory-block covariance P[:N,:N]. A stationary +## covariance exists only when A is Hurwitz (all eigenvalues in the left half-plane); past a +## bifurcation the operating point is unstable, so the result is masked to NaN (jittable guard, +## survives vmap over a grid) rather than returning a meaningless non-PSD matrix. +<%def name="lr_covariance(ctx, name, sigma, return_='covariance')">\ +def ${name}(A): + _n = A.shape[0]; _N = _n // ${ctx['n_sv']} + _Q = (${sigma} ** 2) * jnp.eye(_n) + _lam, _V = jnp.linalg.eig(A) + _Vi = jnp.linalg.inv(_V) + _M = -(_Vi @ _Q.astype(_V.dtype) @ _Vi.conj().T) / (_lam[:, None] + jnp.conj(_lam)[None, :]) + _P = (_V @ _M @ _V.conj().T).real[:_N, :_N] + _P = jnp.where(jnp.max(_lam.real) < 0.0, _P, jnp.nan) # no stationary covariance if A not Hurwitz +% if return_ == 'correlation': + _d = jnp.sqrt(jnp.diag(_P)) # Pearson correlation of the excitatory gating (Deco 'Q') + return _P / jnp.outer(_d, _d) +% else: + return _P +% endif +</%def>\ +## +## Analytic power spectrum on the shared A (Deco 2014 Fig 5, Eq 28): per excitatory node, +## Ξ¦_k(Ο‰) = σ² Ξ£_l |(iΟ‰I βˆ’ A)⁻¹_{kl}|Β², over a log-frequency grid (Hz). Returns [n_freq, N]. +## A is already per-second (rescaled at the operating point), so Ο‰ = 2Ο€f with f in Hz is consistent. +<%def name="lr_psd(ctx, name, sigma, f_lo=0.1, f_hi=50.0, n_freq=128)">\ +def ${name}(A): + _n = A.shape[0]; _N = _n // ${ctx['n_sv']} + _freqs = jnp.geomspace(${f_lo}, ${f_hi}, ${n_freq}) + _A = A.astype(jnp.complex128) + _I = jnp.eye(_n, dtype=jnp.complex128) + def _phi(_f): + _M = jnp.linalg.inv(1j * (2.0 * jnp.pi * _f) * _I - _A) + return (${sigma} ** 2) * jnp.sum(jnp.abs(_M[:_N]) ** 2, axis=1) + _psd = jax.vmap(_phi)(_freqs) + # The linear-response spectrum is defined only at a stable operating point; mask past a + # bifurcation (A not Hurwitz), consistent with the covariance guard above. + return jnp.where(jnp.max(jnp.linalg.eigvals(A).real) < 0.0, _psd, jnp.nan) +</%def>\ +## +## Fisher information vs stimulus intensity (Deco 2014 Fig 6f, Eqs 33-34). Sweeps the stimulus +## amplitude Ξ”I on `nodes` (the event's target regions), RE-SETTLING the operating point at each +## intensity β€” the one piece the shared covariance/psd do not need, since the stimulus shifts the +## fixed point. Then FI(Ξ”I) = ΞΌ'α΅€P⁻¹μ' + Β½Tr[(P'P⁻¹)Β²] with ΞΌ = the excitatory-mean FP block and +## P = the excitatory stationary covariance, by finite differences over Ξ”I. ${vf}/${jac} are the +## Fisher-specific vector field / Jacobian (the stimulated variable is heterogeneous per-node). +<%def name="lr_fisher(ctx, name, stim_var, nodes, sigma, dI_lo, dI_hi, dI_step, vf, jac, time_scale=1.0e-3, dt=0.1, n_settle=200000, n_newton=8)">\ +def ${name}(): + _N = _lr_weights.shape[0] + _dIs = jnp.arange(${dI_lo}, ${dI_hi} + 0.5 * ${dI_step}, ${dI_step}) + _mask = jnp.zeros(_N).at[jnp.asarray(${nodes})].set(1.0) # stimulus target nodes + _base = jnp.broadcast_to(jnp.asarray(getattr(_lr_params, '${stim_var}')), (_N,)) + def _moments(_dI): + _p = Bunch({**_lr_params, '${stim_var}': _base + _dI * _mask}) # stimulus as per-node input + def _settle(_x, _): + return _x + ${dt} * ${vf}(_x, _lr_weights, _p), None + _fp = jax.lax.scan(_settle, _lr_x0, None, length=${n_settle})[0] + def _newton(_x, _): # polish to the exact stimulated FP + _f = ${vf}(_x, _lr_weights, _p) + _J = ${jac}(_x, _lr_weights, _p) + return _x - jnp.linalg.solve(_J, _f.reshape(-1)).reshape(_x.shape), None + _fp = jax.lax.scan(_newton, _fp, None, length=${n_newton})[0] + _A = ${jac}(_fp, _lr_weights, _p) / ${time_scale} # per-second Jacobian at Ξ”I + _lam, _V = jnp.linalg.eig(_A); _Vi = jnp.linalg.inv(_V) + _Qn = (${sigma} ** 2) * jnp.eye(_A.shape[0]) + _M = -(_Vi @ _Qn.astype(_V.dtype) @ _Vi.conj().T) / (_lam[:, None] + jnp.conj(_lam)[None, :]) + _P = (_V @ _M @ _V.conj().T).real[:_N, :_N] # excitatory covariance + return _fp[0], _P # ΞΌ = S_e block, P + _mus, _Ps = jax.lax.map(_moments, _dIs) # each Ξ”I re-settles (sequential) + _step = _dIs[1] - _dIs[0] + def _fi(_k): + _dmu = (_mus[_k + 1] - _mus[_k]) / _step + _dP = (_Ps[_k + 1] - _Ps[_k]) / _step + _Pinv = jnp.linalg.pinv(_Ps[_k]) + return _dmu @ _Pinv @ _dmu + 0.5 * jnp.trace((_dP @ _Pinv) @ (_dP @ _Pinv)) + return jax.vmap(_fi)(jnp.arange(_dIs.shape[0] - 1)) +</%def>\ +## +## Orchestrator: emit the WHOLE linear-response analysis block from a resolved spec. This keeps the +## code structure AND its orchestration (which partials, in what order, the operating-point choice, +## the per-observable loop) in the template β€” Python only RESOLVES the spec (symbols, params, +## stimulus, constraint) via linear_response._lr_analysis_spec. `spec` fields: ctx, op_constraint, +## constraint_expr, time_scale, obs (list of per-observable dicts). Emitted once; every covariance/ +## psd/fisher observable shares the single operating point (_lr_A / _lr_params). +<%def name="lr_analysis_block(spec)">\ +<% ctx = spec['ctx'] %>\ +_lr_weights = jnp.asarray(network.graph.weights) +_lr_params = state.dynamics +_lr_x0 = jnp.broadcast_to(jnp.reshape(jnp.asarray(state.initial_state.dynamics), (${ctx['n_sv']}, -1)), (${ctx['n_sv']}, _lr_weights.shape[0])) +${self.lr_vf(ctx)}\ +${self.lr_jacobian(ctx)}\ +% if spec['op_constraint']: +## Deco FIC: the paper's fsolve on the steady state β€” solve [state, free_param] under the constraint, +## deterministically, instead of the stochastic tuning loop. Rebinds _lr_params with the solved param. +${self.lr_constraint_fn(ctx, '_lr_constraint', spec['constraint_expr'])}\ +${self.lr_constrained_operating_point(ctx, spec['op_constraint']['free_parameter'], '_lr_constraint', spec['op_constraint']['target'], time_scale=spec['time_scale'])}\ +% else: +${self.lr_operating_point(ctx, time_scale=spec['time_scale'])}\ +% endif +% for o in spec['obs']: +% if o['type'] == 'covariance': +${self.lr_covariance(ctx, '_cov_' + o['name'], o['sigma'], o['return'])}\ +obs.${o['name']} = _cov_${o['name']}(_lr_A) # excitatory-block stationary ${o['return']} (Lyapunov, Eq 24) +% elif o['type'] == 'psd': +${self.lr_psd(ctx, '_psd_' + o['name'], o['sigma'], o['f_lo'], o['f_hi'], o['n_freq'])}\ +obs.${o['name']} = _psd_${o['name']}(_lr_A) # analytic power spectrum per excitatory node (Eq 28) +% elif o['type'] == 'fisher': +## Fisher needs the stimulated variable per-node -> its own vector field / Jacobian from fisher_ctx. +${self.lr_vf(o['fisher_ctx'], name='_fvf_' + o['name'])}\ +${self.lr_jacobian(o['fisher_ctx'], name='_fjac_' + o['name'])}\ +${self.lr_fisher(ctx, '_fisher_' + o['name'], o['stim_var'], o['nodes'], o['sigma'], o['dI_lo'], o['dI_hi'], o['dI_step'], '_fvf_' + o['name'], '_fjac_' + o['name'], time_scale=spec['time_scale'])}\ +obs.${o['name']} = _fisher_${o['name']}() # Fisher information over the Ξ”I sweep (Eqs 33-34) +% endif +% endfor +</%def>\ diff --git a/tvbo/templates/tvboptim/callbacks.py b/tvbo/templates/tvboptim/callbacks.py new file mode 100644 index 000000000..0076fe2c9 --- /dev/null +++ b/tvbo/templates/tvboptim/callbacks.py @@ -0,0 +1,87 @@ +# Copyright Berlin Institute of Health / CharitΓ© University Medicine Berlin +# Department of Neurology and Experimental Neurology +# Brain Simulation Section + +"""Runtime callbacks for generated tvboptim scripts. + +Imported by the generated experiment/optimization scripts (which always run with +tvboptim available), so this module may depend on tvboptim. It routes optimizer +progress through the central ``tvbo.run`` logger (see :mod:`tvbo.log`), so one +switch β€” ``TVBO_LOG_LEVEL`` / ``tvbo.set_log_level`` / the CLI ``--quiet`` β€” +governs it exactly as it governs the rest of a run. +""" +from __future__ import annotations + +import logging +from typing import Optional + +from tvboptim.optim.callbacks import AbstractCallback + +logger = logging.getLogger("tvbo.run") + + +class LoggingProgressCallback(AbstractCallback): + """Log optimization progress at INFO every ``every`` steps. + + A logging-native, drop-in replacement for tvboptim's print-based + :class:`~tvboptim.optim.callbacks.DefaultPrintCallback`. When *total* is + given the line reads ``step i/total``. Never signals a stop. + + Args: + every: Emit one line every ``every`` steps (tvboptim gates the call). + total: Total step count, shown as ``i/total`` when known. + """ + + def __init__(self, every: int = 1, total: Optional[int] = None) -> None: + super().__init__(every) + self.total = total + + def do(self, i, diff_state, static_state, fitting_data, aux_data, loss_value, grads): + if logger.isEnabledFor(logging.INFO): + where = f"{i}/{self.total}" if self.total else str(i) + logger.info(" step %s: loss=%.6g", where, float(loss_value)) + return False, diff_state, static_state + + +def progress_ticker(total: int, *, every: Optional[int] = None, label: str = "batch"): + """Wrap a scanned/vmapped per-item function so it streams ``label i/total`` progress. + + The exploration / sweep grid runs as one JIT-compiled ``jax.lax.map``, so it prints + ``STEP 2 > <exploration>`` and then nothing until it returns β€” the cluster "empty log" + problem. This fires a JAX-native ``jax.debug.callback`` (no JIT break, vmap-safe) once + per ``lax.map`` batch β€” a no-arg callback has no batched input to vectorise, so it runs + once per scan step β€” ticking a host-side counter and logging through the central + ``tvbo.run`` logger. The ``jax_tqdm`` pattern, reduced to the logging we already route. + + Args: + total: Number of batches (``ceil(n_cells / n_vmap)``) for the ``i/total`` line. + every: Log cadence in batches; defaults to ~25 evenly-spaced updates. + label: Noun for the line, e.g. ``"grid batch"``. + + Returns: + ``wrap(fn) -> fn`` β€” the identity when INFO is disabled, so there is zero runtime + overhead under ``--quiet`` or a coarse ``TVBO_LOG_LEVEL``. + """ + import jax + from itertools import count + + total = max(1, int(total)) + every = every or max(1, total // 25) + ticks = count(1) + + def _tick(*_): + i = next(ticks) + if i == total or i % every == 0: + logger.info(" %s %d/%d (%d%%)", label, i, total, 100 * i // total) + + def wrap(fn): + if not logger.isEnabledFor(logging.INFO): + return fn + + def wrapped(*args, **kwargs): + jax.debug.callback(_tick, ordered=False) + return fn(*args, **kwargs) + + return wrapped + + return wrap diff --git a/tvbo/templates/tvboptim/tvbo-tvboptim-algorithm.py.mako b/tvbo/templates/tvboptim/tvbo-tvboptim-algorithm.py.mako index 1e5b70e56..03ad489e9 100644 --- a/tvbo/templates/tvboptim/tvbo-tvboptim-algorithm.py.mako +++ b/tvbo/templates/tvboptim/tvbo-tvboptim-algorithm.py.mako @@ -2,11 +2,15 @@ <%doc>TVB-Optim Algorithm Template. Context: experiment (SimulationExperiment).</%doc> <% from tvbo.codegen import render_expression +from tvbo.codegen.streaming_reducers import lookup_streaming_reducer from tvbo.templates.tvboptim.utils import ( safe_name, as_list, get_attr, is_network_observation, is_external_observation, get_include_info, get_all_observations_from_algo, get_all_hyperparams ) +# Backend key this template targets β€” used for streaming-reducer registry lookups. +_STREAMING_BACKEND = 'tvboptim' + # Define jaxcode locally _exp_functions = experiment.functions or {} if hasattr(_exp_functions, 'items'): @@ -250,6 +254,53 @@ if network and network.coupling: source_observations_needed.add(src_name) use_sliding_window = has_window_size and len(source_observations_needed) > 0 + + # ── Streaming-reducer resolution (backend-independent, registry-gated) ────── + # For each derived observation computed over a sliding-window source, look up + # whether its FIRST pipeline reducer (e.g. compute_fc) has a registered + # streaming form for this backend. When it does, the loop below replaces the + # O(window*N^2)/step recompute over the ring buffer with an O(N^2)/step + # incremental (init/add/evict/emit/finalize) reducer; when it does not (or + # streaming is disabled), the recompute path is kept unchanged. Transparent to + # the recipe: nothing here reads schema fields the recompute path does not. + def _pipeline_reducer_ref(dobs_def): + """(module, name, skip_t, s_var) of a derived obs's FIRST pipeline step, else None.""" + pipeline = getattr(dobs_def, 'pipeline', None) + if not pipeline: + return None + step = pipeline[0] + call = getattr(step, 'callable', None) + if not call or not getattr(call, 'name', None) or not getattr(call, 'module', None): + return None + skip_t, s_var = 0, 0 + for aname, arg in (getattr(step, 'arguments', None) or {}).items(): + val = getattr(arg, 'value', None) + if val is None: + continue + if str(aname) == 'skip_t': + skip_t = int(val) + elif str(aname) == 's_var': + s_var = int(val) + return (str(call.module), str(call.name), skip_t, s_var) + + streaming_map = {} # derived_obs_name -> {src_obs, spec, skip_t, s_var} + if use_sliding_window: + for _dobs_name, _src_list in dependent_observations.items(): + _dobs_def = derived_observations_dict.get(_dobs_name) + if not _dobs_def or not _src_list: + continue + _ref = _pipeline_reducer_ref(_dobs_def) + if not _ref: + continue + _mod, _name, _skip_t, _s_var = _ref + _spec = lookup_streaming_reducer(_STREAMING_BACKEND, _mod, _name) + # Only step-wise ('window') reducers are wired here; 'stride' (FCD) + # specs keep the recompute fallback until the stride branch lands. + if _spec is not None and _spec.emit_kind == 'window' and _src_list[0] in source_observations_needed: + streaming_map[_dobs_name] = dict( + src_obs=_src_list[0], spec=_spec, + skip_t=_skip_t, s_var=_s_var, + ) %> def run_${algo_name}( state: Any, @@ -275,6 +326,9 @@ def run_${algo_name}( verbose: bool = True, print_every: int = None, save_every: int = None, +% if use_sliding_window: + resync_every: int = None, # streaming-reducer float-drift re-sync period (default = window_size; 0 disables) +% endif ) -> Bunch: import copy import equinox as eqx @@ -426,7 +480,7 @@ def run_${algo_name}( _${src_obs}_buffer = _passed_buffer[-int(window_size):].reshape((int(window_size), 1, n_nodes)) _buffer_idx = int(window_size) if verbose: - print(f" Using passed ${src_obs} buffer ({_passed_len} samples, using last {int(window_size)})") + logger.info(f" Using passed ${src_obs} buffer ({_passed_len} samples, using last {int(window_size)})") else: _${src_obs}_buffer = jnp.zeros((int(window_size), 1, n_nodes)) if _passed_buffer.ndim == 2: @@ -439,7 +493,7 @@ def run_${algo_name}( _${src_obs}_buffer = _${src_obs}_buffer.at[int(window_size) - _passed_len + _pi, 0, :].set(_passed_buffer[_pi]) _buffer_idx = _passed_len if verbose: - print(f" Passed ${src_obs} buffer too small ({_passed_len} < {int(window_size)}), running warmup for remaining {int(window_size) - _passed_len} samples...") + logger.info(f" Passed ${src_obs} buffer too small ({_passed_len} < {int(window_size)}), running warmup for remaining {int(window_size) - _passed_len} samples...") for _warmup_i in range(int(window_size) - _passed_len): key, subkey = jax.random.split(key) _warmup_result = model_fn(state) @@ -469,14 +523,14 @@ def run_${algo_name}( _${src_obs}_monitor = eqx.tree_at(history_accessor, _${src_obs}_monitor, _new_history) _buffer_idx = int(window_size) if verbose: - print(f" Warmup complete. Buffer filled with {_buffer_idx} samples.") + logger.info(f" Warmup complete. Buffer filled with {_buffer_idx} samples.") else: # No buffer passed - run warmup phase _${src_obs}_buffer = jnp.zeros((int(window_size), 1, n_nodes)) _buffer_idx = 0 if verbose: - print(f" Warmup: filling ${src_obs} buffer with {int(window_size)} samples...") + logger.info(f" Warmup: filling ${src_obs} buffer with {int(window_size)} samples...") for _warmup_i in range(int(window_size)): key, subkey = jax.random.split(key) @@ -508,12 +562,67 @@ def run_${algo_name}( _buffer_idx = int(window_size) if verbose: - print(f" Warmup complete. Buffer filled with {_buffer_idx} samples.") + logger.info(f" Warmup complete. Buffer filled with {_buffer_idx} samples.") +% endfor +% endif + +% if streaming_map: +<% + from tvbo.codegen.reducers import resolve_streaming_reducer + # All wired ('window') reducers share one recipe here; lower its declarative spec + # (streaming_reducers.py) to this backend's source. The scaffolding below is generic + # β€” it emits the resolved state / assignments for ANY reducer spec, no use case baked in. + _r = resolve_streaming_reducer(next(iter(streaming_map.values()))['spec'], 'jax') + _acc = ', '.join(_r['state']) +%> + # Streaming windowed reducer, emitted from a declarative recurrence spec and lowered + # to this backend by the sympy printers β€” tvbo needs no backend reducer. The + # scaffolding (buffer slicing, sample selection, protocol object) is backend-shaped; + # the accumulator math is the resolved spec: `resync` rebuilds the state from the + # window, `add`/`evict` fold in / drop one sample, `emit` reads out the reduced value. + from types import SimpleNamespace as _StreamReducer + def _make_windowed_reducer(s_var=0, skip_t=0): + def _samp(x): + return x if x.ndim == 1 else x[s_var, :] + def add(acc, x_new): + ${_acc} = acc + v = _samp(x_new) +% for _lhs, _rhs in _r['add']: + ${_lhs} = ${_rhs} +% endfor + return (${_acc}) + def evict(acc, x_old): + ${_acc} = acc + v = _samp(x_old) +% for _lhs, _rhs in _r['evict']: + ${_lhs} = ${_rhs} % endfor + return (${_acc}) + def emit(acc): + ${_acc} = acc + return ${_r['emit']} + def resync(buffer): + b = buffer[skip_t:] + x = b[:, s_var, :] if b.ndim == 3 else b +% for _lhs, _rhs in _r['resync']: + ${_lhs} = ${_rhs} +% endfor + return (${_acc}) + return _StreamReducer(add=add, evict=evict, emit=emit, resync=resync) % endif +% for dobs_name, sinfo in streaming_map.items(): + # Streaming reducer for '${dobs_name}' over the '${sinfo['src_obs']}' window: + # replaces the O(window*N^2)/step recompute with an O(N^2)/step incremental + # accumulator. The accumulator is (re)built EXACTLY from the ring buffer here + # (post-warmup / post-passed-buffer) and re-synced every _${dobs_name}_resync_every + # steps to reset float drift. + _${dobs_name}_reducer = _make_windowed_reducer(s_var=${sinfo['s_var']}, skip_t=${sinfo['skip_t']}) + _${dobs_name}_resync_every = int(window_size) if resync_every is None else int(resync_every) + _${dobs_name}_acc = _${dobs_name}_reducer.resync(_${sinfo['src_obs']}_buffer) +% endfor if verbose: - print(f"Running ${algo_name} algorithm for {n_iterations} iterations...") + logger.info(f"Running ${algo_name} algorithm for {n_iterations} iterations...") for i in range(n_iterations): key, subkey = jax.random.split(key) @@ -554,6 +663,14 @@ def run_${algo_name}( %> _${src_obs}_sample = _${src_obs}_monitor(result) _${src_obs}_sample_data = _${src_obs}_sample.data if hasattr(_${src_obs}_sample, 'data') else _${src_obs}_sample +<% + _stream_for_src = [(d, si) for d, si in streaming_map.items() if si['src_obs'] == src_obs] +%> +% for dobs_name, sinfo in _stream_for_src: + # Sample leaving the effective window (ring index skip_t, read PRE-roll so + # it is the sample that falls out as the window slides forward). + _${dobs_name}_evict = _${src_obs}_buffer[${sinfo['skip_t']}, ${sinfo['s_var']}, :] +% endfor _${src_obs}_buffer = jnp.roll(_${src_obs}_buffer, -1, axis=0) if _${src_obs}_sample_data.ndim == 2: _${src_obs}_buffer = _${src_obs}_buffer.at[-1, 0, :].set(_${src_obs}_sample_data[0, :]) @@ -561,6 +678,13 @@ def run_${algo_name}( _${src_obs}_buffer = _${src_obs}_buffer.at[-1, :, :].set(_${src_obs}_sample_data[0, :, :]) else: _${src_obs}_buffer = _${src_obs}_buffer.at[-1, 0, :].set(_${src_obs}_sample_data) +% for dobs_name, sinfo in _stream_for_src: + # Incremental update: drop the leaving sample, fold in the arriving one + # (read from the buffer's newest slot β€” the canonical storage). The + # accumulator now holds EXACTLY _${src_obs}_buffer[skip_t:] (the window). + _${dobs_name}_acc = _${dobs_name}_reducer.evict(_${dobs_name}_acc, _${dobs_name}_evict) + _${dobs_name}_acc = _${dobs_name}_reducer.add(_${dobs_name}_acc, _${src_obs}_buffer[-1, ${sinfo['s_var']}, :]) +% endfor # Maintain the monitor's own rolling history only if it carries one. # Stateless monitors (e.g. a BOLD monitor) have no _history buffer. if hasattr(_${src_obs}_monitor, '_history') and _${src_obs}_monitor._history is not None: @@ -569,6 +693,13 @@ def run_${algo_name}( _${src_obs}_monitor = eqx.tree_at(history_accessor, _${src_obs}_monitor, _new_history) % endfor _buffer_idx = min(_buffer_idx + 1, int(window_size)) +% for dobs_name, sinfo in streaming_map.items(): + # Periodic exact re-sync: rebuild the accumulator from the ring buffer to + # reset the float drift the running sums accumulate (add/evict are not + # exactly reversible in floating point). resync_every<=0 disables it. + if _${dobs_name}_resync_every > 0 and (i + 1) % _${dobs_name}_resync_every == 0: + _${dobs_name}_acc = _${dobs_name}_reducer.resync(_${sinfo['src_obs']}_buffer) +% endfor % for obs in simulated_observations: <% @@ -642,7 +773,12 @@ def run_${algo_name}( # Build argument string (buffer is first positional, then keyword args from pipeline) direct_call_kwargs = ", ".join(direct_call_args) if direct_call_args else "" %> -% if src_obs_for_this: +% if obs in streaming_map: + # ${obs}: streaming windowed reducer over _${streaming_map[obs]['src_obs']}_buffer. + # emit() == ${direct_call}(buffer${', ' + direct_call_kwargs if direct_call_kwargs else ''}) up to float rounding + # (re-synced every _${obs}_resync_every steps) at O(N^2)/step instead of O(window*N^2)/step. + ${obs} = _${obs}_reducer.emit(_${obs}_acc) +% elif src_obs_for_this: # ${obs} depends on ${src_obs_for_this} - compute directly from accumulated buffer # Call: ${direct_call}(buffer${', ' + direct_call_kwargs if direct_call_kwargs else ''}) ${obs} = ${direct_call}(_${src_obs_for_this}_buffer${', ' + direct_call_kwargs if direct_call_kwargs else ''}) @@ -717,8 +853,16 @@ def run_${algo_name}( _new_history = _new_history.at[-result.data.shape[0]:, :, :].set(result.data[:, 0:1, :]) _${obs}_monitor = eqx.tree_at(history_accessor, _${obs}_monitor, _new_history) % else: - # ${obs} requires observation pipeline (not simple aggregation) - pass +<% + _why = ("is not declared in the experiment's observations" if obs_def is None + else "is declared but is neither a mean-aggregation of a recorded variable nor a pipeline") + raise ValueError( + f"Algorithm observation '{obs}' {_why}. Algorithm observations must resolve to either " + f"`source: [<recorded variable>], aggregation: mean` or a `pipeline:` in the experiment's " + f"`observations:` block; otherwise the tuning loop references an undefined value. " + f"Recorded variables available: {var_names}." + ) +%>\ % endif % endfor % endif @@ -809,7 +953,6 @@ def run_${algo_name}( % endif % endfor - if verbose and (i + 1) % print_every == 0: <% # Build progress output - show functions (if any) + all simulated observations progress_items = [] @@ -831,8 +974,12 @@ def run_${algo_name}( progress_str = ", ".join(progress_parts) %> % if progress_items: - print(f" {i+1}/{n_iterations}: ${progress_str}") + # Gate on isEnabledFor so the progress f-string is only built when shown. + if verbose and logger.isEnabledFor(logging.INFO) and (i + 1) % print_every == 0: + logger.info(f" {i+1}/{n_iterations}: ${progress_str}") % else: + # Configuration guard β€” must fire regardless of the log level. + if verbose and (i + 1) % print_every == 0: raise ValueError("Algorithm must have functions or simulated_observations for progress display") % endif @@ -856,7 +1003,18 @@ def run_${algo_name}( # Compute ALL observations from post-tuning simulation (in dependency order) # This uses the experiment-level compute_all_observations function # Pass history as result_transient for BOLD pipeline continuity +% if external_inputs: + # Score against THIS call's targets, not the module-level constants: + # the in-loop path already reads the `${', '.join(external_inputs)}` + # argument(s), so post-tuning must use the same values or a per-subject + # run would be scored against the process-wide default target. + post_tuning_observations = compute_all_observations( + post_tuning, state, history, + network_obs={${', '.join("'%s': %s" % (n, n) for n in external_inputs)}}, + ) +% else: post_tuning_observations = compute_all_observations(post_tuning, state, history) +% endif else: post_tuning = None post_tuning_observations = None @@ -891,7 +1049,7 @@ def run_${algo_name}( % endfor if verbose: - print(f"${algo_name} complete!") + logger.info(f"${algo_name} complete!") # Build hyperparameters Bunch for AlgorithmResult _hyperparams = Bunch( diff --git a/tvbo/templates/tvboptim/tvbo-tvboptim-algorithm.py.mako.bak b/tvbo/templates/tvboptim/tvbo-tvboptim-algorithm.py.mako.bak deleted file mode 100644 index 4ad689f5e..000000000 --- a/tvbo/templates/tvboptim/tvbo-tvboptim-algorithm.py.mako.bak +++ /dev/null @@ -1,443 +0,0 @@ -# -*- coding: utf-8 -*- -<%doc> -TVB-Optim Algorithm Template -============================ - -Generates iterative parameter tuning algorithms from Algorithm definitions. - -IMPORTANT: This template has NO hardcoded defaults. ALL values must be -explicitly specified in the experiment YAML metadata. Missing required -values will cause template rendering to fail with clear error messages. - -Context: experiment (SimulationExperiment instance) -</%doc> -<% -from tvbo.codegen import render_expression - -# Define jaxcode locally (same as parent template) -_exp_functions = getattr(experiment, 'functions', None) or {} -if hasattr(_exp_functions, 'items'): - _user_functions = {str(fname): str(fname) for fname in _exp_functions.keys()} -elif hasattr(_exp_functions, '__iter__'): - _user_functions = {str(getattr(f, 'name', f)): str(getattr(f, 'name', f)) for f in _exp_functions} -else: - _user_functions = {} - -jaxcode = lambda expr, params=None: render_expression(expr, format='jax', user_functions=_user_functions, parameters=params) - -# ============================================================================= -# Extract Algorithms from experiment -# ============================================================================= -algorithms_raw = getattr(experiment, 'algorithms', None) or [] -if isinstance(algorithms_raw, dict): - algorithms_list = list(algorithms_raw.values()) -elif isinstance(algorithms_raw, list): - algorithms_list = algorithms_raw -else: - algorithms_list = [algorithms_raw] if algorithms_raw else [] - -has_algorithms = len(algorithms_list) > 0 - -def safe_name(name): - """Convert name to valid Python identifier.""" - return str(name).replace(' ', '_').replace('-', '_').lower() - -def get_observable_name(obs): - """Extract observable name from various formats.""" - if hasattr(obs, 'name'): - return str(obs.name) - return str(obs) - -def require_attr(obj, attr, context=""): - """Get required attribute or raise clear error.""" - val = getattr(obj, attr, None) - if val is None: - raise ValueError(f"Missing required attribute '{attr}' in {context or type(obj).__name__}. " - f"All algorithm parameters must be explicitly defined in YAML.") - return val - -# Build algorithm metadata with strict validation -algorithm_metadata = [] -for algo in algorithms_list: - algo_name = safe_name(require_attr(algo, 'name', 'algorithm')) - algo_type = str(getattr(algo, 'type', 'custom')).lower() - - # Required: n_iterations - n_iterations = require_attr(algo, 'n_iterations', f"algorithm '{algo_name}'") - - # Dependencies (optional, defaults to empty list - this is structural, not a value) - depends_on = getattr(algo, 'depends_on', None) or [] - if isinstance(depends_on, str): - depends_on = [depends_on] - - # Update rules (required for iterative algorithms) - update_rules_raw = getattr(algo, 'update_rules', None) or [] - if hasattr(update_rules_raw, 'values'): - update_rules = list(update_rules_raw.values()) - else: - update_rules = list(update_rules_raw) - - # Hyperparameters - hyperparams_raw = getattr(algo, 'hyperparameters', None) or [] - if hasattr(hyperparams_raw, 'values'): - hyperparams = list(hyperparams_raw.values()) - else: - hyperparams = list(hyperparams_raw) - - # Observables - observables_raw = getattr(algo, 'observables', None) or [] - if hasattr(observables_raw, 'values'): - observables = list(observables_raw.values()) - elif hasattr(observables_raw, '__iter__') and not isinstance(observables_raw, str): - observables = list(observables_raw) - else: - observables = [observables_raw] if observables_raw else [] - obs_names = [get_observable_name(o) for o in observables] - - # External inputs (passed via kwargs at runtime) - inputs_raw = getattr(algo, 'inputs', None) or [] - if hasattr(inputs_raw, 'values'): - inputs = list(inputs_raw.values()) - else: - inputs = list(inputs_raw) - - # Observation reference (algorithm uses existing observation from observations section) - observation_ref = getattr(algo, 'observation', None) - - algorithm_metadata.append({ - 'name': algo_name, - 'type': algo_type, - 'algo': algo, - 'depends_on': depends_on, - 'update_rules': update_rules, - 'hyperparams': hyperparams, - 'observables': obs_names, - 'inputs': inputs, - 'observation': observation_ref, - 'n_iterations': int(n_iterations), - 'simulation_period': getattr(algo, 'simulation_period', None), - 'description': getattr(algo, 'description', None), - }) - -# Extract state variable names from model (structural, not a default value) -model = experiment.dynamics -if hasattr(model, 'state_variables') and model.state_variables: - state_var_names = list(model.state_variables.keys()) -else: - raise ValueError("Model must define state_variables for algorithm generation") - -%> -% if has_algorithms: -# ============================================================================= -# ITERATIVE ALGORITHMS -# ============================================================================= - -% for algo_meta in algorithm_metadata: -<% - algo = algo_meta['algo'] - algo_name = algo_meta['name'] - algo_type = algo_meta['type'] - n_iterations = algo_meta['n_iterations'] - simulation_period = algo_meta['simulation_period'] - update_rules = algo_meta['update_rules'] - observables = algo_meta['observables'] - depends_on = algo_meta['depends_on'] - needs_fc = algo_meta['needs_fc'] - description = algo_meta['description'] - - # Build hyperparameter dict with strict validation - all must have explicit values - hyperparam_dict = {} - for hp in algo_meta['hyperparams']: - hp_name = require_attr(hp, 'name', 'hyperparameter') - hp_val = require_attr(hp, 'value', f"hyperparameter '{hp_name}'") - hyperparam_dict[hp_name] = hp_val - - # For FC algorithms, window_size must be in hyperparameters - if needs_fc and 'window_size' not in hyperparam_dict: - raise ValueError(f"Algorithm '{algo_name}' requires 'window_size' hyperparameter for FC computation") -%> -# ----------------------------------------------------------------------------- -# Algorithm: ${algo_name} (${algo_type}) -# ----------------------------------------------------------------------------- - -% for rule in update_rules: -<% - rule_name = safe_name(require_attr(rule, 'name', 'update_rule')) - target_param = require_attr(rule, 'target_parameter', f"update_rule '{rule_name}'") - target_name = str(getattr(target_param, 'name', target_param)) - - rule_eq = require_attr(rule, 'equation', f"update_rule '{rule_name}'") - rule_rhs = require_attr(rule_eq, 'rhs', f"equation in update_rule '{rule_name}'") - - rule_params = getattr(rule_eq, 'parameters', None) or {} - if hasattr(rule_params, 'items'): - rule_params_dict = {} - for k, v in rule_params.items(): - val = getattr(v, 'value', None) - if val is None: - raise ValueError(f"Parameter '{k}' in update_rule '{rule_name}' must have explicit value") - rule_params_dict[k] = val - else: - rule_params_dict = {} - - # Bounds for clipping (optional) - bounds = getattr(rule, 'bounds', None) - if bounds: - lo_bound = require_attr(bounds, 'lo', f"bounds in update_rule '{rule_name}'") - hi_bound = require_attr(bounds, 'hi', f"bounds in update_rule '{rule_name}'") - else: - lo_bound = None - hi_bound = None - has_bounds = bounds is not None - - # Build list of all known symbols for parsing - all_known_symbols = [target_name] + list(observables) + list(rule_params_dict.keys()) -%> -def update_${algo_name}_${rule_name}( - ${target_name}: jnp.ndarray, -% for obs in observables: - ${obs}: jnp.ndarray, -% endfor -% for pname, pval in rule_params_dict.items(): - ${pname}: float, -% endfor -) -> jnp.ndarray: - """Update rule: ${rule_name} for ${target_name}.""" - updated = ${jaxcode(rule_rhs, all_known_symbols)} -% if has_bounds: - updated = jnp.clip(updated, ${lo_bound}, ${hi_bound}) -% endif - return updated - -% endfor - -<% - # Separate FC-related hyperparams (passed differently) from regular ones - fc_reserved = ['window_size'] if needs_fc else [] - regular_hyperparams = {k: v for k, v in hyperparam_dict.items() if k not in fc_reserved} - window_size = hyperparam_dict.get('window_size') if needs_fc else None -%> -def run_${algo_name}( - state: Any, - model_fn: Callable, - key: jax.random.PRNGKey, - n_iterations: int, -% for pname, pval in regular_hyperparams.items(): - ${pname}: float, -% endfor -% if needs_fc: - fc_target: jnp.ndarray, - window_size: int, - bold_monitor: Any, -% endif - verbose: bool = True, - print_every: int = None, -) -> Bunch: - """ - Run ${algo_name} algorithm for n_iterations. -% if description: - - ${description} -% endif - - Args: - state: Simulation state (Bunch with dynamics, coupling, etc.) - model_fn: Compiled model function from run_simulation - key: Random key for noise generation (REQUIRED) - n_iterations: Number of algorithm iterations -% for pname in regular_hyperparams.keys(): - ${pname}: Algorithm hyperparameter (from YAML) -% endfor -% if needs_fc: - fc_target: Target functional connectivity matrix (REQUIRED) - window_size: BOLD window size for FC computation (from YAML) - bold_monitor: BOLD monitor instance (REQUIRED) -% endif - verbose: Print progress messages - print_every: Print frequency (defaults to n_iterations // 10) - - Returns: - Bunch with: state, history, pre_tuning, post_tuning - """ - import copy - import equinox as eqx - - if print_every is None: - print_every = max(1, n_iterations // 10) - - # Deep copy state to avoid modifying original - state = copy.deepcopy(state) - - # History tracking - history = Bunch( -% for obs in observables: - ${obs}=[], -% endfor -% for rule in update_rules: -<% - target_param = require_attr(rule, 'target_parameter', 'update_rule') - target_name = str(getattr(target_param, 'name', target_param)) -%> - ${target_name}=[], -% endfor - ) - - # Run pre-tuning simulation for comparison - pre_tuning = model_fn(state) - -% if needs_fc: - # Initialize BOLD signal sliding window for FC computation - bold_monitor = copy.deepcopy(bold_monitor) - n_nodes = pre_tuning.data.shape[-1] - bold_window = jnp.zeros((window_size, 1, n_nodes)) - history_accessor = lambda tree: tree.history -% endif - - if verbose: - print(f"Running ${algo_name} algorithm for {n_iterations} iterations...") - - for i in range(n_iterations): - # Split key for this iteration - key, subkey = jax.random.split(key) - - # Run simulation for one period - result = model_fn(state) - - # Update state for next iteration - state.initial_state.dynamics = result.data[-1] - if hasattr(state, '_internal') and hasattr(state._internal, 'noise_samples'): - state._internal.noise_samples = jax.random.normal( - key=subkey, shape=state._internal.noise_samples.shape - ) - -% if needs_fc: - # Compute BOLD signal and update sliding window - bold_result = bold_monitor(result) - bold_window = jnp.roll(bold_window, -1, axis=0) - bold_window = bold_window.at[-1, 0, :].set(bold_result.ys[0, 0, :]) - - # Update BOLD monitor history for hemodynamic continuity - new_history = jnp.roll(bold_monitor.history, -result.data.shape[0], axis=0) - new_history = new_history.at[-result.data.shape[0]:, :, :].set(result.data[:, 0:1, :]) - bold_monitor = eqx.tree_at(history_accessor, bold_monitor, new_history) - - # Compute FC from BOLD window - fc_pred = compute_fc(bold_window) - rmse_fc = jnp.sqrt(jnp.mean((fc_pred - fc_target)**2, axis=1, keepdims=True)) -% endif - - # Compute observables from result -% for obs in observables: -% if obs == 'mean_S_e': - mean_S_e = jnp.mean(result.data[:, 0], axis=0) # Mean over time, per node -% elif obs == 'mean_S_i': - mean_S_i = jnp.mean(result.data[:, 1], axis=0) # Mean over time, per node -% elif obs in ['fc_pred', 'fc_target', 'rmse_fc']: - # ${obs} computed above from BOLD window or passed as argument - pass -% else: - ${obs} = compute_${obs}(result) -% endif -% endfor - - # Apply update rules -% for rule in update_rules: -<% - rule_name = safe_name(require_attr(rule, 'name', 'update_rule')) - target_param = require_attr(rule, 'target_parameter', 'update_rule') - target_name = str(getattr(target_param, 'name', target_param)) - rule_eq = require_attr(rule, 'equation', 'update_rule') - rule_params = getattr(rule_eq, 'parameters', None) or {} - if hasattr(rule_params, 'items'): - rule_params_dict = {k: require_attr(v, 'value', f"parameter '{k}'") for k, v in rule_params.items()} - else: - rule_params_dict = {} - - # Determine where to update the parameter (dynamics or coupling) - is_coupling_param = target_name.startswith('w') or 'coupling' in target_name.lower() -%> - # Update ${target_name} - new_${target_name} = update_${algo_name}_${rule_name}( -% if is_coupling_param: - state.coupling.coupling.${target_name}, -% else: - state.dynamics.${target_name}, -% endif -% for obs in observables: - ${obs}, -% endfor -% for pname, pval in rule_params_dict.items(): - ${pname}=${pval}, -% endfor - ) -% if is_coupling_param: - state.coupling.coupling.${target_name} = new_${target_name} -% else: - state.dynamics.${target_name} = new_${target_name} -% endif -% endfor - - # Record history (defer float conversion to end to avoid sync) -% for obs in observables: -% if obs == 'fc_pred': - history.fc_pred.append(fc_corr(fc_pred, fc_target)) # Convert at end -% elif obs == 'rmse_fc': - history.rmse_fc.append(jnp.mean(rmse_fc)) # Convert at end -% elif obs == 'fc_target': - pass # fc_target is constant, no need to track -% else: - history.${obs}.append(jnp.mean(${obs})) # Convert at end -% endif -% endfor -% for rule in update_rules: -<% - target_param = require_attr(rule, 'target_parameter', 'update_rule') - target_name = str(getattr(target_param, 'name', target_param)) - is_coupling_param = target_name.startswith('w') or 'coupling' in target_name.lower() -%> -% if is_coupling_param: - history.${target_name}.append(state.coupling.coupling.${target_name}) # JAX array, convert at end -% else: - history.${target_name}.append(state.dynamics.${target_name}) # JAX array, convert at end -% endif -% endfor - - if verbose and (i + 1) % print_every == 0: -% if needs_fc: - _fc_corr = fc_corr(fc_pred, fc_target) - print(f" {i+1}/{n_iterations}: FC corr={_fc_corr:.4f}, RMSE={float(jnp.mean(rmse_fc)):.4f}") -% elif observables: - print(f" {i+1}/{n_iterations}: ${observables[0]}={history.${observables[0]}[-1]:.4f}") -% else: - print(f" {i+1}/{n_iterations}: done") -% endif - - # Run post-tuning simulation - post_tuning = model_fn(state) - - # Convert history lists to arrays (block_until_ready here, not in loop) - for k in list(history.keys()): - v = history[k] - if len(v) > 0: - first = v[0] - if isinstance(first, (int, float)): - history[k] = jnp.array(v) - elif hasattr(first, 'shape'): - if first.shape == (): # Scalar JAX array - history[k] = jnp.array([float(x) for x in v]) - else: - # JAX arrays - stack them - history[k] = jnp.stack(v, axis=0) - - if verbose: - print(f"${algo_name} complete!") - - return Bunch( - state=state, - history=history, - pre_tuning=pre_tuning, - post_tuning=post_tuning, - ) - -% endfor -% endif diff --git a/tvbo/templates/tvboptim/tvbo-tvboptim-experiment.py.mako b/tvbo/templates/tvboptim/tvbo-tvboptim-experiment.py.mako index 1111a2315..c4d9cf071 100644 --- a/tvbo/templates/tvboptim/tvbo-tvboptim-experiment.py.mako +++ b/tvbo/templates/tvboptim/tvbo-tvboptim-experiment.py.mako @@ -3,6 +3,8 @@ <%namespace name="fn" file="/base/function-def.mako"/> <%namespace name="const" file="/base/constants.mako"/> <%namespace name="search" file="tvbo-tvboptim-search.py.mako"/> +<%namespace name="sweep" file="tvbo-tvboptim-sweep.py.mako"/> +<%namespace name="lyap" file="tvbo-tvboptim-lyapunov.py.mako"/>\ <% from tvbo.codegen import render_expression from tvbo.templates.tvboptim.utils import ( @@ -10,9 +12,11 @@ from tvbo.templates.tvboptim.utils import ( get_observation_refs, parse_loss_function, parse_free_param, get_domain_bounds, parse_exploration, get_param_info, get_node_param_overrides, normalize_coupling_aliases, resolve_coupling_input_map, - get_node_state_overrides, render_jax_default, get_mode_layout + get_node_state_overrides, render_jax_default, get_mode_layout, + get_all_observations_from_algo, network_axis_leaf, ) import numpy as np +import re # Must have experiment assert 'experiment' in context.keys(), "experiment required for experiment template" @@ -112,6 +116,19 @@ has_delay = any(c.delayed for c in all_couplings.values() if c) # uses the stock DenseDelayGraph that derives max_delay from the delays. interpolate_delays = any(bool(getattr(c, 'interpolate_delays', False)) for c in all_couplings.values() if c) +# Sparse coupling opt-in (Network.graph_representation: sparse): sparsify the weight matrix to +# BCOO so the `pre @ weights` reduction runs as an edge-sum (O(nnz)) instead of a dense NxN +# matmul. Requires EVERY coupling to be instantaneous AND vectorized (source-only `pre`, same +# rule as resolve_coupling_spec): a per-edge `pre` (e.g. sin(x_j - x_i)) or a delayed one would +# hit jsparse.sparsify on a nonlinear term and crash, so such networks fall back to dense. +_is_vectorized_coupling = lambda c: bool(getattr(c, 'vectorized', False)) or ( + bool(getattr(c, 'local_states', None)) and not getattr(c, 'incoming_states', None)) +use_sparse = ( + str(getattr(network, 'graph_representation', 'auto') or 'auto') == 'sparse' + and not has_delay + and all(_is_vectorized_coupling(c) for c in all_couplings.values() if c) +) + # Collect all coupling parameters (for optimization) all_coupling_params = {} # (coupling_key, param_name) -> param_obj all_coupling_param_shapes = {} # (coupling_key, param_name) -> shape_str @@ -130,11 +147,21 @@ method = (integration.method or 'euler').lower() solver_class = SOLVER_MAP.get(method) assert solver_class, f"Unknown solver method: {method}. Valid: {list(SOLVER_MAP.keys())}" dt = float(integration.step_size) +# Seconds per model time unit (ms -> 0.001). The Jacobian A inherits the model's native +# rate units (per-ms by tvbo convention); analytic-frequency diagnostics (PSD in Hz) +# convert A to per-second with this factor so the physical frequency axis is consistent. +from tvbo.utils.units import unit_to_si_factor +time_si_factor = unit_to_si_factor(getattr(integration, 'unit', None) or 'ms') # Differentiation strategy -> native-solver kwargs, resolved in the tvboptim Python # layer (shared with the solver template) rather than duplicated across mako blocks. -from tvbo.templates.tvboptim.utils import resolve_solver_kwargs, resolve_optimizer_mode, render_analysis_observations, render_recorded_observable, render_inference, render_adiabatic_signal, render_adiabatic_scan_body +from tvbo.templates.tvboptim.utils import resolve_solver_kwargs, resolve_optimizer_mode, render_analysis_observations, render_recorded_observable, render_inference, render_adiabatic_signal, resolve_reduction, edge_label, edge_const, node_label, node_const solver_kwargs_str = resolve_solver_kwargs(integration, dt) +# Warm-start/adiabatic scans run a plain forward solver but must honour the +# coupling_evaluation choice (recompute_coupling_per_stage); gradient kwargs +# (grad_horizon/block_size) don't apply to a forward scan, so pass only this. +_ce = getattr(integration, 'coupling_evaluation', None) if integration else None +warmstart_solver_kwargs = 'recompute_coupling_per_stage=True' if str(_ce) == 'per_stage' else '' opt_mode = resolve_optimizer_mode(integration) # Noise configuration from state_variables or integration. @@ -234,6 +261,40 @@ _default_init = [ ] node_state_overrides = get_node_state_overrides(network, n_nodes, state_names, _default_init) +# initial_state.method == from_working_point: a warm-start ramp (reusing ExplorationAxis: +# parameter + Range domain) that reaches a working point (operating branch) and seeds this +# run's IC from the settled endpoint. None unless declared. Per-step settle = the +# experiment's transient (else its main duration) β€” no separate settle concept. +from_working_point = None +_ini = getattr(experiment, 'initial_state', None) +if _ini is not None and str(getattr(_ini, 'method', '') or '') == 'from_working_point': + _rax = _ini.ramp + assert _rax is not None and getattr(_rax, 'parameter', None), \ + "initial_state.method=from_working_point requires ramp.parameter + ramp.domain" + _rdom = _rax.domain + _rlo = float(getattr(_rdom, 'lo', 0.0) or 0.0) + _rhi = float(_rdom.hi) + _rn = getattr(_rdom, 'n', None) + _rnpts = int(_rn) if _rn else int(round((_rhi - _rlo) / float(_rdom.step))) + 1 + _rtr = float(getattr(integration, 'transient_time', 0.0) or 0.0) + from_working_point = { + 'path': 'dynamics.%s' % str(_rax.parameter).rsplit('.', 1)[-1], + 'lo': _rlo, 'hi': _rhi, 'n': _rnpts, + 'settle': _rtr if _rtr > 0 else float(integration.duration), + } + +# initial_state.method == from_experiment with source_point == 'branch': the source run's +# WHOLE recorded branch is a per-cell seed. An independent exploration then restarts an +# analysis (Lyapunov, ...) at every branch point in parallel β€” shardable across HPC array +# tasks, unlike the sequential scan that produced the branch. The per-cell (parameter value, +# settled state) pairs arrive at runtime as branch_seed (Experiment._resolve_from_experiment_ +# branch) β†’ the _BRANCH_SEED module global. None unless declared. +from_experiment_branch = ( + _ini is not None + and str(getattr(_ini, 'method', '') or '') == 'from_experiment' + and str(getattr(_ini, 'source_point', '') or 'endpoint') == 'branch' +) + # Detect parameters with distribution.axis == 'time' β€” these are stochastic # time-varying inputs pre-generated as arrays and indexed per integration step. # Not regular params: excluded from DEFAULT_PARAMS, trajectories injected after prepare(). @@ -489,6 +550,26 @@ _all_observations = dict(experiment.observations) if experiment.observations els # Lyapunov, ...) β€” handled by a dedicated path, not the raw/derived pipelines. analysis_observations_dict = {n: o for n, o in _all_observations.items() if getattr(o, 'analysis', None) is not None} analysis_observation_names = set(analysis_observations_dict.keys()) +has_lyapunov = any(str(getattr(o.analysis, 'type', '') or '') == 'lyapunov' for o in analysis_observations_dict.values()) + +def _lyap_meta(_rn, _ctx): + """Resolve a recorded Lyapunov analysis observation to backend-agnostic metadata. + + Shared by the two per-cell restart paths β€” the warm-start scan's post-scan pass and + the from_experiment:branch restart β€” so both read segment_time / n_steps / n_exponents + identically. ``_ctx`` names the caller for the error message. + """ + _an = analysis_observations_dict[_rn].analysis + _atype = str(getattr(_an, 'type', '') or '') + assert _atype == 'lyapunov', ( + f"{_ctx} records analysis observation '{_rn}' of type '{_atype}'; only 'lyapunov' " + "is restartable per branch point (it is seeded from each point's settled state).") + _ap = {str(k): (v.value if hasattr(v, 'value') else v) + for k, v in (getattr(_an, 'parameters', None) or {}).items()} + return {'name': _rn, 'type': _atype, + 'segment_time': float(_ap.get('segment_time', 1.0)), + 'n_steps': int(_ap.get('n_steps', _ap.get('n', 10))), + 'n_exponents': int(_ap.get('n_exponents', _ap.get('k', 1)))} observations = {n: o for n, o in _all_observations.items() if not _is_derived(o, experiment) and n not in analysis_observation_names} derived_observations_dict = {n: o for n, o in _all_observations.items() if _is_derived(o, experiment) and n not in analysis_observation_names} derived_observation_names = set(derived_observations_dict.keys()) @@ -543,7 +624,9 @@ for expl in exploration_list: 'label': expl.label or '', # mode has schema ifabsent: string(product) 'mode': expl.mode or 'product', - # n_parallel has schema ifabsent: integer(1) + # n_parallel is the backend-agnostic batch size: how many sweep cells the + # backend processes as one vectorised chunk. The template translates this to + # tvboptim internals (n_vmap, n_pmap) without exposing those names. 'n_parallel': int(expl.n_parallel) if expl.n_parallel is not None else 1, # n_trials has schema ifabsent: integer(1) 'n_trials': int(expl.n_trials) if expl.n_trials is not None else 1, @@ -570,8 +653,19 @@ for expl in exploration_list: domain = axis.domain explored_values = axis.explored_values _el_domains = getattr(axis, 'element_domains', None) or [] - _has_el_ev = any(getattr(ed, 'explored_values', None) for ed in _el_domains) - assert domain or explored_values or _has_el_ev, f"exploration axis requires domain, explored_values, or element_domains with explored_values for {axis.parameter}" + _builder = getattr(axis, 'builder', None) + # ExplorationAxis.reduce: collapse this axis by a statistic in the result + # container instead of keeping it as a grid dim (e.g. an execution.random_seed + # trial ensemble β†’ a mean/sem observation). Carried through into the axis + # metadata so ExplorationResult knows which named dim to reduce, and how. + _reduce = getattr(axis, 'reduce', None) + _reduce_stat = (str(getattr(_reduce, 'statistic', None) or 'mean') + if _reduce is not None else None) + # element_domains satisfy the axis whether they carry explored_values OR + # lo/hi/n bounds β€” the hetero auto-expansion below reads either per element. + assert domain or explored_values or _el_domains or _builder is not None or from_experiment_branch, \ + (f"exploration axis requires domain, explored_values, element_domains, or builder for " + f"{axis.parameter} (or initial_state source_point='branch', which supplies the axis values)") pname = str(axis.parameter) # Dotted reference (== the Exploration.space key); the ExplorationResult axis # label uses this so grid coords are named consistently across backends, while @@ -581,14 +675,113 @@ for expl in exploration_list: # If prefix matches a coupling key β†’ coupling param, else dynamics param source_key = None is_coupling_param = False - if '.' in pname: + is_network_param = False + graph_leaf = None + if pname.startswith('network.'): + # `network` is the reserved singleton-network scope (one Network per + # experiment): `network.conduction_speed`, `network.edges.<label>`. + # Split on the FIRST dot so the remainder stays a full attribute path + # β€” rsplit would turn `network.edges.weight` into prefix + # 'network.edges', which no longer matches the scope and would fall + # through to the dynamics branch as a silent wrong-scope write. + # network_axis_leaf() resolves the path to the graph leaf the axis + # sweeps (and raises on an unsweepable attribute). + is_network_param = True + graph_leaf = network_axis_leaf(pname) + # The grid path is the resolved leaf, so `pname` only names the axis' + # `n_<name>` override kwarg; sanitize the attribute path into an + # identifier (`edges.weight` -> `edges_weight`, leaving the existing + # `conduction_speed` untouched). `_axis_label` keeps the declared + # dotted path, so grid coords stay named as written in the recipe. + pname = re.sub(r'\W', '_', pname[len('network.'):]) + elif '.' in pname: prefix, pname = pname.rsplit('.', 1) - is_coupling_param = prefix in all_couplings + is_coupling_param = (prefix in all_couplings) source_key = _to_ci_key(prefix) if is_coupling_param else prefix + # from_experiment:branch axis β€” the swept-parameter VALUES come from the source run's + # recorded branch (loaded at runtime as _BRANCH_SEED), not from a domain here. This axis + # carries only its identity (parameter path); the branch-analysis body binds each cell's + # value + settled state. Keeps the recipe's single source of truth for the branch: the + # source exploration, so the analysis restarts on exactly the points that were computed. + if from_experiment_branch and not (domain or explored_values or _el_domains or _builder is not None): + exp_info['axes'].append({ + 'name': pname, + 'label': _axis_label, + 'is_coupling': is_coupling_param, + 'coupling_key': source_key if is_coupling_param else None, + 'dynamics_key': source_key if (not is_coupling_param and source_key) else None, + 'element_idx': None, + 'is_branch': True, + 'reduce': _reduce_stat, + }) + continue + # Builder axis: values materialized at runtime by a callable (ExplorationAxis.builder) β€” + # e.g. per-count control-gain vectors chosen from a runtime solitary-node ordering. The + # callable returns the stacked sweep values (leading axis = points); each value may be a + # whole vector. Routed through the normal grid path as a DataAxis (Space gathers array- + # valued axes per cell), so it inherits sharding / batching / as_grid with no special + # path. Bypasses the hetero auto-expansion below: the builder supplies whole per-node + # vectors, not per-element scalars. Arguments resolve to a literal or a base-sim + # observation (`observations.<name>` -> `_bov('<name>')`, wired in the exploration fn). + if _builder is not None: + _bc = getattr(_builder, 'callable', None) + assert _bc is not None and getattr(_bc, 'module', None) and getattr(_bc, 'name', None), \ + f"builder for exploration axis '{axis.parameter}' requires callable: {{name, module}}" + import json as _json + _arg_strs = [] + for _an, _arg in (_builder.arguments.items() if getattr(_builder, 'arguments', None) else []): + _av = _arg.value if hasattr(_arg, 'value') else _arg + if isinstance(_av, str) and 'observations.' in _av: + _arg_strs.append("%s=_bov(%r)" % (str(_an), _av.split('observations.', 1)[1])) + else: + try: + _lit = repr(_json.loads(_json.dumps(_av))) # coerce JsonObj -> plain literal + except Exception: + _lit = repr(_av) + _arg_strs.append("%s=%s" % (str(_an), _lit)) + exp_info['axes'].append({ + 'name': pname, + 'label': _axis_label, + 'is_coupling': is_coupling_param, + 'is_network': is_network_param, + 'graph_leaf': graph_leaf, + 'coupling_key': source_key if is_coupling_param else None, + 'dynamics_key': source_key if not is_coupling_param and source_key else None, + 'element_idx': None, + 'builder_expr': "%s.%s(%s)" % (_bc.module, _bc.name, ", ".join(_arg_strs)), + 'reduce': _reduce_stat, + }) + continue + # `execution.random_seed` β†’ a per-cell NOISE-SEED axis. Each grid cell reseeds + # the stochastic solver's PRNG key (config.noise.key, a runtime leaf), so a + # random-seed sweep becomes a real per-trial noise ensemble rather than a no-op + # parameter. Values are integer seeds; the wrapper below turns each into a key. + if source_key == 'execution' and pname == 'random_seed': + if explored_values: + _seed_vals = [int(v) for v in explored_values] + else: + _slo = int(domain.lo) if (domain and domain.lo is not None) else 0 + _seed_vals = [_slo + _i for _i in range(_resolve_n(domain))] + exp_info['axes'].append({ + 'name': 'random_seed', + 'label': _axis_label, + 'is_seed': True, + 'is_coupling': False, + 'coupling_key': None, + 'element_idx': None, + 'values': _seed_vals, + 'n': len(_seed_vals), + 'reduce': _reduce_stat, + }) + continue # Auto-expand heterogeneous parameters: if pname matches a dynamics param # with shape containing 'n_nodes', expand to n_nodes element axes automatically. # e.g., K with shape "(n_nodes,)" β†’ K_el0, K_el1, ... K_el(n_nodes-1) - is_hetero_param = (not is_coupling_param and pname in dyn_param_shapes + # A `network.`-scoped axis is never a dynamics parameter, so it must not be + # expanded here even when a Dynamics happens to declare a same-named + # per-node parameter β€” the axis sweeps the graph leaf, not the model. + is_hetero_param = (not is_coupling_param and not is_network_param + and pname in dyn_param_shapes and 'n_nodes' in dyn_param_shapes[pname]) if is_hetero_param: _n = n_nodes @@ -607,6 +800,7 @@ for expl in exploration_list: 'coupling_key': None, 'dynamics_key': source_key if source_key else None, 'element_idx': _ei, + 'reduce': _reduce_stat, } # Per-element explored_values from element_domains override shared ones _dom_ei = _el_dom_map.get(_ei, None) @@ -638,9 +832,12 @@ for expl in exploration_list: 'values': vals, 'n': len(vals), 'is_coupling': is_coupling_param, + 'is_network': is_network_param, + 'graph_leaf': graph_leaf, 'coupling_key': source_key if is_coupling_param else None, 'dynamics_key': source_key if not is_coupling_param and source_key else None, 'element_idx': None, + 'reduce': _reduce_stat, }) else: assert domain.lo is not None, f"domain.lo required for {axis.parameter}" @@ -658,9 +855,12 @@ for expl in exploration_list: 'values': _vals, 'n': n, 'is_coupling': is_coupling_param, + 'is_network': is_network_param, + 'graph_leaf': graph_leaf, 'coupling_key': source_key if is_coupling_param else None, 'dynamics_key': source_key if not is_coupling_param and source_key else None, 'element_idx': None, + 'reduce': _reduce_stat, }) else: exp_info['axes'].append({ @@ -670,9 +870,12 @@ for expl in exploration_list: 'hi': float(domain.hi), 'n': n, 'is_coupling': is_coupling_param, + 'is_network': is_network_param, + 'graph_leaf': graph_leaf, 'coupling_key': source_key if is_coupling_param else None, - 'dynamics_key': source_key if not is_coupling_param and source_key else None, + 'dynamics_key': source_key if (not is_coupling_param and not is_network_param and source_key) else None, 'element_idx': None, + 'reduce': _reduce_stat, }) observable = expl.observable if observable: @@ -719,15 +922,43 @@ for expl in exploration_list: _hp[str(_h.name)] = float(_h.value) if getattr(_h, 'value', None) is not None else 0.0 _nit = getattr(_alg, 'n_iterations', None) assert _nit is not None, f"algorithm '{_alg_name}' missing n_iterations" + # External inputs the run-func requires (same classification as the flat path, + # ~2919-2934) so the exploration call site can forward them: + # input_names - observations with a data_source (file) + # network_obs_inputs - network.observations.* / dataset.subject.*, bound as + # module-level network-observation globals + _alg_inp, _alg_netobs = [], [] + for _on in get_all_observations_from_algo(_alg, _exp_algos): + _od = observations_dict.get(_on) + if _od is None: + continue + if getattr(_od, 'data_source', None) is not None: + _alg_inp.append(_on) + continue + _s = getattr(_od, 'source', None) + if isinstance(_s, (list, tuple)): + _s = _s[0] if _s else None + if _s is not None and hasattr(_s, 'name'): + _s = _s.name + if _s and (str(_s).startswith('network.observations.') + or str(_s).startswith('dataset.subject')): + _alg_netobs.append(_on) exp_info['algorithms'].append({ 'name': safe_name(_alg_name), 'n_iterations': int(_nit), 'hyperparams': _hp, + 'input_names': _alg_inp, + 'network_obs_inputs': _alg_netobs, }) # Search strategy: 'grid' (default, exhaustive) or 'nsga2' (pymoo multi-objective). exp_info['strategy'] = str(getattr(expl, 'strategy', None) or 'grid') exp_info['objectives'] = [str(o) for o in (getattr(expl, 'objectives', None) or [])] + # Warm-start controls (orthogonal to the search strategy): from_previous seeds each point + # from the preceding point's settled state β€” a quasi-static branch-following sweep rendered + # onto the tvboptim adiabatic_scan primitive; sweep_direction sets the traversal order. + exp_info['sweep_seeding'] = str(getattr(expl, 'sweep_seeding', None) or 'independent') + exp_info['sweep_direction'] = str(getattr(expl, 'sweep_direction', None) or 'up') if exp_info['strategy'] == 'nsga2': assert exp_info['objectives'], f"nsga2 exploration '{exp_info['name']}' requires objectives" # Resolve each decision axis to a tvboptim state path (+ optional log10 decode). @@ -762,6 +993,9 @@ for expl in exploration_list: else: _ga[_gpn] = float(_gpv) exp_info['ga'] = _ga + # Parallelism for the per-generation candidate evaluation (pmap devices), + # baked as a literal like the refine stage's n_workers. + exp_info['n_workers'] = n_workers if 'n_workers' in dir() else 1 elif exp_info['strategy'] == 'adiabatic_scan': # Adiabatic bifurcation scan: one swept axis (from `space`) plus an observed-signal # expression and envelope settings carried on Exploration.parameters (Parameter.value @@ -779,6 +1013,70 @@ for expl in exploration_list: 'skip': float(_ap.get('transient_time', 1000.0)), 'bothways': bool(int(float(_ap.get('bothways', 1)))), } + # adiabatic_scan is a preset over the orthogonal warm-start controls: a from_previous + # sweep whose traversal is bidirectional when bothways is set and whose observable is the + # signal envelope. Normalise onto sweep_seeding/sweep_direction so the shared warm-start + # partial (sweep.warmstart_sweep_body) drives it β€” one renderer, one runtime primitive. + exp_info['sweep_seeding'] = 'from_previous' + exp_info['sweep_direction'] = 'bidirectional' if exp_info['adiabatic']['bothways'] else 'up' + # General record-based warm-start (sweep_seeding=from_previous, no envelope preset): each + # recorded observation must be a single-source, single-step trajectory reduction β€” it + # becomes an adiabatic_scan statistic over the settled rollout of its source state variable. + # The reduction callables are backend-agnostic, so they run under adiabatic_scan's jit; the + # per-point rollout / transient come from the experiment integration. + if exp_info['sweep_seeding'] == 'from_previous' and 'adiabatic' not in exp_info: + assert len(exp_info['axes']) == 1, \ + f"warm-start '{exp_info['name']}' requires exactly one swept axis" + assert exp_info['record'], \ + f"warm-start '{exp_info['name']}' (sweep_seeding=from_previous) requires record: [...]" + _ws_records = [] + _ws_analysis = [] + for _rn in exp_info['record']: + _obs = _all_observations.get(_rn) + assert _obs is not None, \ + f"warm-start '{exp_info['name']}' records unknown observation '{_rn}'" + # Analysis observations (Lyapunov, ...) ride the warm-start scan as a post-scan + # pass: each swept value's carried settled state seeds the analysis solve, so + # lambda_1 / xi_i are measured on the continued branch (unreachable from a cold + # start). Resolved here to backend-agnostic metadata; the sweep partial lays out + # the per-value map. + if _rn in analysis_observation_names: + _ws_analysis.append(_lyap_meta(_rn, f"warm-start '{exp_info['name']}'")) + continue + _src = [str(s) for s in (getattr(_obs, 'source', None) or [])] + _pipe = list(getattr(_obs, 'pipeline', None) or []) + _cal = getattr(_pipe[0], 'callable', None) if _pipe else None + assert len(_src) == 1 and len(_pipe) == 1 and _cal is not None and getattr(_cal, 'module', None), \ + (f"warm-start record '{_rn}' must be a single-source, single-callable trajectory " + "reduction with a module, or an analysis observation (analysis rides the scan as a " + "post-scan pass; multi-source pipeline observations are not supported on the scan)") + _ws_records.append({'name': _rn, 'call': "%s.%s" % (_cal.module, _cal.name), + 'var_idx': var_names.index(_src[0])}) + exp_info['warmstart_records'] = _ws_records + exp_info['warmstart_analysis'] = _ws_analysis + exp_info['warmstart_segment'] = float(getattr(experiment.integration, 'duration', 1000.0)) + exp_info['warmstart_skip'] = float(getattr(experiment.integration, 'transient_time', 0.0) or 0.0) + # from_experiment:branch restart β€” an independent exploration over the source run's recorded + # branch: each cell restarts a per-point analysis (Lyapunov) from that point's swept value + + # settled state. Independent per cell, so it shards across HPC array tasks (unlike the + # sequential scan that produced the branch). Reuses the warm-start Lyapunov post-scan pass, + # just sourcing (value, seed) from the loaded branch instead of an in-process scan. + if from_experiment_branch: + exp_info['branch_seed'] = True + assert len(exp_info['axes']) == 1 and exp_info['axes'][0].get('is_branch'), \ + (f"branch exploration '{exp_info['name']}' requires exactly one axis whose values are " + "supplied by the from_experiment branch (declare `space: [{parameter: <the source's " + "swept parameter>}]` with no domain)") + assert exp_info['record'], \ + f"branch exploration '{exp_info['name']}' requires record: [...] (the analysis to restart)" + _b_analysis = [] + for _rn in exp_info['record']: + assert _rn in analysis_observation_names, \ + (f"branch exploration '{exp_info['name']}' records '{_rn}'; only analysis observations " + "(e.g. lyapunov) can be restarted per branch point. Trajectory-reduction observations " + "belong on the source scan that produced the branch.") + _b_analysis.append(_lyap_meta(_rn, f"branch exploration '{exp_info['name']}'")) + exp_info['warmstart_analysis'] = _b_analysis explorations.append(exp_info) # Optimizations that depend on an Exploration front β†’ per-seed parallel refinement. @@ -838,7 +1136,7 @@ for _opt in optim_list: # a refine optimization (depends_on an Exploration front) replaces the standard # single-state stage loop with a per-seed parallel sweep over the Pareto front. has_nsga2 = any(e.get('strategy') == 'nsga2' for e in explorations) -has_adiabatic = any(e.get('strategy') == 'adiabatic_scan' for e in explorations) +has_warmstart = any(e.get('sweep_seeding') == 'from_previous' for e in explorations) has_refine = len(refine_infos) > 0 refine_info = list(refine_infos.values())[0] if refine_infos else None @@ -883,6 +1181,13 @@ first_coupling_name = list(all_couplings.keys())[0] if all_couplings else 'None' """${dynamics_class} tvboptim Experiment.""" import os import copy +import functools # render_expression emits functools.reduce for Min/Max over lists +import logging + +# Progress is logged, not printed: this generated script shares the ``tvbo`` +# logger hierarchy, so ``TVBO_LOG_LEVEL`` / ``tvbo.set_log_level`` control it the +# same way in-process and standalone (see the ``__main__`` block below). +logger = logging.getLogger("tvbo.run") import jax % if enable_x64: @@ -903,7 +1208,7 @@ from tvboptim.experimental.network_dynamics.coupling.base import InstantaneousCo from tvboptim.experimental.network_dynamics.external_input.base import AbstractExternalInput % endif % if has_delay: -from tvboptim.experimental.network_dynamics.graph import DenseDelayGraph, SparseDelayGraph +from tvboptim.experimental.network_dynamics.graph import DenseDelayGraph, DenseLengthGraph, SparseDelayGraph % else: from tvboptim.experimental.network_dynamics.graph import DenseGraph, SparseGraph % endif @@ -916,11 +1221,13 @@ from tvboptim.experimental.network_dynamics.noise import AdditiveNoise import optax from tvboptim.types import Parameter, BoundedParameter from tvboptim.optim.optax import OptaxOptimizer -from tvboptim.optim.callbacks import MultiCallback, DefaultPrintCallback, SavingLossCallback, SavingParametersCallback +from tvboptim.optim.callbacks import MultiCallback, SavingLossCallback, SavingParametersCallback +from tvbo.templates.tvboptim.callbacks import LoggingProgressCallback % endif % if has_explorations: from tvboptim.types import Space, GridAxis, DataAxis from tvboptim.execution import ParallelExecution, SequentialExecution +from tvbo.templates.tvboptim.callbacks import progress_ticker # grid-batch / lyapunov sweep progress % endif % if has_nsga2: # Multi-objective search (Exploration.strategy == 'nsga2') + Pareto-seeded refinement. @@ -930,11 +1237,12 @@ from pymoo.algorithms.moo.nsga2 import NSGA2 as _NSGA2 from pymoo.optimize import minimize as _pymoo_minimize from pymoo.indicators.hv import HV as _HV % endif -% if has_adiabatic: -# Adiabatic bifurcation scan (Exploration.strategy == 'adiabatic_scan'). +% if has_warmstart or from_working_point: +# Warm-started (from_previous) parameter sweep β€” shared runtime primitive. Also used by +# initial_state.from_working_point to ramp to a working point and seed the run's IC. from tvboptim.experimental.network_dynamics.analysis import adiabatic_scan as _adiabatic_scan % endif -% for mod in derived_obs_modules: +% for mod in sorted(derived_obs_modules): import ${mod} % endfor @@ -1017,8 +1325,14 @@ def _freeze_step_time(solver): % endif -def get_solver(): - base_solver = ${solver_class}(${solver_kwargs_str}) +def get_solver(block_size=None): + """Configured solver. ``block_size`` (native solvers only) sets the nested-block-scan + granularity so a streaming reduction (``prepare(reduce=...)``) folds the observable + in-carry instead of materializing the trajectory; ``None`` keeps the single scan.""" + _solver_kwargs = dict(${solver_kwargs_str}) + if block_size is not None: + _solver_kwargs['block_size'] = block_size + base_solver = ${solver_class}(**_solver_kwargs) % if has_state_bounds: solver = BoundedSolver( base_solver, @@ -1081,13 +1395,17 @@ def create_network( if delays is None: delays = jnp.zeros_like(weights) % if interpolate_delays: - # Differentiable delays (opt-in): max_delay (static history-buffer length) is - # decoupled from `delays` so the delays may be JAX tracers (gradient-optimised - # conduction speed v); None derives it as usual. Needs differentiable-delays tvboptim. - graph = DenseDelayGraph(weights, delays, region_labels=region_labels, max_delay=max_delay) + # Differentiable delays (opt-in): max_delay_bound sizes the (static) history + # buffer independently of `delays`, so the delays may be JAX tracers (e.g. a + # gradient-optimised conduction speed v); None derives the bound from max(delays). + graph = DenseDelayGraph(weights, delays, region_labels=region_labels, max_delay_bound=max_delay) % else: graph = DenseDelayGraph(weights, delays, region_labels=region_labels) % endif + % elif use_sparse: + # Sparse coupling: the weight matrix is sparsified to BCOO so the vectorized + # `pre @ weights` reduction is an O(nnz) edge-sum, not a dense NxN matmul. + graph = SparseGraph(weights, region_labels=region_labels) % else: graph = DenseGraph(weights, region_labels=region_labels) % endif @@ -1199,7 +1517,7 @@ def _sample_initial_conditions(state, key=None): # values are materialized at run_experiment() time from the network (or a # `network_observations` override). _NETWORK_OBS_MEASURES = {${', '.join("'%s': '%s'" % (k, v) for k, v in network_obs_measures.items())}} -% for _on in network_observation_names: +% for _on in sorted(network_observation_names): ${_on} = None # network observation <- ${network_obs_measures[_on]} % endfor @@ -1208,7 +1526,7 @@ def _bind_network_observations(network_observations=None): dict (keyed by observation name). Mirrors how `weights`/`distances` flow into the experiment; raises a clear error if a declared one is missing.""" network_observations = network_observations or {} -% for _on in network_observation_names: +% for _on in sorted(network_observation_names): global ${_on} if '${_on}' in network_observations and network_observations['${_on}'] is not None: ${_on} = jnp.asarray(network_observations['${_on}']) @@ -1222,6 +1540,109 @@ def _bind_network_observations(network_observations=None): % endfor % endif +<% _ds_recon_idx = context.get('dataset_reconcile_indices') or {} %> +% if _ds_recon_idx: +# ── Node reconciliation (keyed by label, never positional) ─────────────────── +# Positions of the labels shared between the model network and each by_label +# empirical target. The loss gathers the simulated observable onto these nodes so +# it aligns, label for label, with the reconciled target. +_DATASET_RECON_IDX = { +% for _tname, _idx in _ds_recon_idx.items(): + '${_tname}': jnp.array(${_idx}), +% endfor +} + +def _gather2d(matrix, idx): + """Select the shared nodes on both axes of a (node, node) matrix by index.""" + return matrix[jnp.ix_(idx, idx)] +% endif +# ── Initial-condition construction (shared across every IC site) ───────────── +# The transient, the main run, and each exploration base build their IC the same +# way β€” sampled defaults, then per-node declared overrides, then an optional +# externally supplied operating point β€” so a sweep's points start from the same +# declared state as the main run rather than a cold sample. Every per-variable +# override is applied BY NAME through _STATE_INDEX (never by positional order). +_STATE_INDEX = {${', '.join("'%s': %d" % (n, i) for i, n in enumerate(state_names))}} + +def _set_rows(state, name_to_vals): + """Set per-node values of named state variables in initial_state.dynamics + ([n_states, n_nodes]), placing each by its canonical row index _STATE_INDEX[name].""" + for _name, _vals in name_to_vals.items(): + state.initial_state.dynamics = state.initial_state.dynamics.at[_STATE_INDEX[_name]].set(jnp.asarray(_vals)) + return state + +# Per-node initial state declared via node ``state:`` YAML entries, keyed by name. +% if node_state_overrides: +_NODE_STATE_OVERRIDES = { +% for sv_name, sv_vals in node_state_overrides.items(): + '${sv_name}': jnp.array([${', '.join(str(v) for v in sv_vals)}]), +% endfor +} +% else: +_NODE_STATE_OVERRIDES = {} +% endif + +def _apply_node_overrides(state): + return _set_rows(state, _NODE_STATE_OVERRIDES) + +# Runtime IC seed (InitialState.from_experiment): the settled operating point another +# experiment already reached, keyed by state-variable name -> (n_nodes,), handed in as +# run_experiment(seed_dynamics=...). None (the default) is a no-op. +_SEED_DYNAMICS = None + +def _apply_seed_dynamics(state): + return state if _SEED_DYNAMICS is None else _set_rows(state, _SEED_DYNAMICS) + +# Runtime BRANCH seed (InitialState.from_experiment, source_point='branch'): the source run's +# whole recorded branch β€” {axis_name, axis_values (n_cells,), seeds {sv: (n_cells, n_nodes)}, +# n_cells} β€” handed in as run_experiment(branch_seed=...). A branch-restart exploration reads +# it to build per-cell (swept value, settled state) pairs. None (the default) is a no-op. +_BRANCH_SEED = None + +# Runtime PARAMETER seed (from_experiment Parameter.measure): model-parameter values +# loaded from the source run's operating point β€” a recorded observation (e.g. a control +# mask g) or a tuned free parameter (estimate__<param>, e.g. wLRE/wFFI). Keyed by +# parameter name; per-node vectors AND per-edge matrices. Handed in as +# run_experiment(seed_params=...). +_SEED_PARAMS = None +<% + _seed_coupling_home = {} + for _ck, _cobj in (all_couplings or {}).items(): + _cparams = getattr(_cobj, "parameters", None) or {} + _pnames = list(_cparams.keys()) if hasattr(_cparams, "keys") \ + else [getattr(_p, "name", None) for _p in _cparams] + for _pn in _pnames: + if _pn: + _seed_coupling_home[_pn] = _ck +%>\ +% if _seed_coupling_home: + +# Coupling home for each seedable coupling parameter (dynamics params route to dynamics). +_SEED_PARAM_COUPLING = { +% for _pn, _ck in _seed_coupling_home.items(): + ${repr(_pn)}: ${repr(_ck)}, +% endfor +} + +def _apply_seed_params(state): + if _SEED_PARAMS is not None: + for _name, _vals in _SEED_PARAMS.items(): + _v = jnp.asarray(_vals) + _ck = _SEED_PARAM_COUPLING.get(_name) + if _ck is not None: + setattr(state.coupling[_ck], _name, _v) # per-edge coupling param (e.g. wLRE) + else: + state.dynamics[_name] = _v # per-node dynamics param (e.g. g) + return state +% else: + +def _apply_seed_params(state): + if _SEED_PARAMS is not None: + for _name, _vals in _SEED_PARAMS.items(): + state.dynamics[_name] = jnp.asarray(_vals) + return state +% endif + def run_simulation( network: Network, t1: float = ${t1_default}, @@ -1233,6 +1654,16 @@ def run_simulation( ) -> Bunch: solver = get_solver() result_transient = None + % if has_noise: + # config.noise.key is a live runtime PRNG leaf (tvboptim reads it per solve), so honour + # a runtime random_seed β€” run(random_seed=N) or a trial ensemble β€” instead of the + # codegen-baked key. Unset β†’ the experiment's execution.random_seed (${random_seed}), + # i.e. byte-identical to the previously baked jax.random.key(${random_seed}). + # jnp.asarray (not int()) so an array- or tracer-valued seed β€” a trial ensemble + # binding one seed per cell β€” coerces instead of raising. + _rs = kwargs.get('random_seed') + _noise_key = jax.random.key(jnp.asarray(${random_seed} if _rs is None else _rs, dtype=jnp.uint32)) + % endif % if has_transient: # Run transient simulation to settle network dynamics @@ -1242,15 +1673,15 @@ def run_simulation( # Sample initial conditions from state variable distributions state_init = _sample_initial_conditions(state_init) % endif - % if node_state_overrides: - # Per-node initial state overrides for transient - % for sv_name, sv_vals in node_state_overrides.items(): - state_init.initial_state.dynamics = state_init.initial_state.dynamics.at[${state_names.index(sv_name)}].set(jnp.array([${', '.join(str(v) for v in sv_vals)}])) - % endfor - % endif + # Per-node declared overrides, then an optional from_experiment seed + state_init = _apply_seed_params(_apply_seed_dynamics(_apply_node_overrides(state_init))) % if stochastic_param_info: _inject_stochastic_trajectories(state_init, t_transient, dt, key=jax.random.key(${list(stochastic_param_info.values())[0]['seed']})) % endif + % if has_noise: + if getattr(state_init, 'noise', None) is not None: + state_init.noise.key = _noise_key + % endif result_transient = model_fn_init(state_init) # tvboptim >= 0.2.7: NativeSolution carries variable_names; update_history # slices state columns by name, so we can hand the solution over directly. @@ -1265,13 +1696,26 @@ def run_simulation( # Sample initial conditions from state variable distributions state = _sample_initial_conditions(state) % endif - % if node_state_overrides: # Per-node initial state overrides (from node ``state:`` YAML entries) - # initial_state.dynamics is [n_states, n_nodes] β€” set per-state row - % for sv_name, sv_vals in node_state_overrides.items(): - state.initial_state.dynamics = state.initial_state.dynamics.at[${state_names.index(sv_name)}].set(jnp.array([${', '.join(str(v) for v in sv_vals)}])) - % endfor + state = _apply_node_overrides(state) + % if from_working_point: + # initial_state.from_working_point: reach the operating branch by ramping the parameter + # quasi-statically 0β†’target (warm-start, from_previous), then seed this run's IC from the + # settled endpoint β€” not the cold IC above. Reuses the adiabatic_scan warm-start primitive. + _wp_scan = _adiabatic_scan( + network, solver, + accessor=lambda _c: _c.${from_working_point['path']}, + low=${from_working_point['lo']}, high=${from_working_point['hi']}, n=${from_working_point['n']}, + t=${from_working_point['settle']}, skip=0, dt=dt, bothways=False, + observe=lambda _r: _r.ys, + statistics={'_endpoint': (lambda _a: _a[-1])}, + ) + state.initial_state.dynamics = jnp.asarray(_wp_scan.stats['_endpoint'])[-1] % endif + # from_experiment: a supplied operating point is the final word on the main IC + # (when there is no transient; with one, the transient's settled state below wins) + state = _apply_seed_dynamics(state) + state = _apply_seed_params(state) % if stochastic_param_info: _inject_stochastic_trajectories(state, t1, dt, key=jax.random.key(${list(stochastic_param_info.values())[0]['seed']})) % endif @@ -1288,6 +1732,10 @@ def run_simulation( result = None observations = None if run_main: + % if has_noise: + if getattr(state, 'noise', None) is not None: + state.noise.key = _noise_key + % endif result = model_fn(state) observations = Bunch() % for obs_name in observation_names: @@ -1304,7 +1752,7 @@ def run_simulation( # Compute derived observations _all_obs = compute_all_observations(result, state, result_transient) -% for obs_name in derived_observation_names: +% for obs_name in sorted(derived_observation_names): observations.${obs_name} = _all_obs.${obs_name} % endfor @@ -1470,15 +1918,47 @@ else: from tvbo.templates.tvboptim.utils import toposort_observations sorted_observation_names = list(observation_names) -sorted_derived_obs_names = toposort_observations(list(derived_observation_names), derived_observations_dict, _all_observations) +sorted_derived_obs_names = toposort_observations(sorted(derived_observation_names), derived_observations_dict, _all_observations) %> -def compute_all_observations(result, state, result_transient=None): +def _obs_data(_o): + """Underlying array of an observation value. Monitor results wrap the array in + ``.data``; a bare array (numpy/jax β€” has ``.dtype``) is returned as-is, since its + own ``.data`` would be a raw buffer, not the array.""" + return _o if hasattr(_o, 'dtype') else getattr(_o, 'data', _o) + + +def _windowed_corr(_reduce, _ts, **_kw): + """Guard a windowed correlation reducer (e.g. compute_fc) against a degenerate + window. Pearson correlation is undefined over fewer than two retained + timepoints, where jnp.corrcoef collapses to a 0-d scalar that then crashes the + diagonal write. A window like this arises when a derived FC observation is + materialized on a short simulation (e.g. one BOLD sample) β€” the value is not + meaningful there, so return a NaN (n, n) matrix instead of aborting the whole + observation pipeline. Windows with >= 2 retained samples delegate to ``_reduce`` + unchanged, so full FC stays byte-identical.""" + if _ts.shape[0] - int(_kw.get('skip_t', 0)) < 2: + _n = _ts.shape[-1] + return jnp.full((_n, _n), jnp.nan).at[jnp.diag_indices(_n)].set(0) + return _reduce(_ts, **_kw) + + +def compute_all_observations(result, state, result_transient=None, only=None, network_obs=None): + # ``only`` (a set of observation names) restricts computation to those observations + # plus, by the caller's closure, whatever they derive from. Default None computes + # every declared observation (unchanged behaviour). The jitted per-grid-point + # observable passes it so non-recorded observations β€” e.g. a non-jittable + # ``solitary`` needed only by the base run β€” never execute inside the trace. obs = Bunch() - # Network observations (static data from BIDS) -% for obs_name in network_observation_names: - obs.${obs_name} = ${obs_name} # Module-level constant + # Network observations (empirical targets carried by the Network). A + # `network_obs` entry wins over the module-level constant, so a caller + # scoring against its own target β€” one subject of a batched cohort, whose + # target is a traced leaf rather than a process-wide value β€” is not + # silently scored against whatever `_bind_network_observations` last bound. + _no = network_obs or {} +% for obs_name in sorted(network_observation_names): + obs.${obs_name} = _no['${obs_name}'] if '${obs_name}' in _no else ${obs_name} % endfor # Simulated observations (computed from result) - these derive from simulation state @@ -1512,11 +1992,12 @@ def compute_all_observations(result, state, result_transient=None): pipeline_call = str(fname) if fname else None %> % if obs_name not in network_observation_names: - # ${obs_name}: observation derived from simulation state - _${obs_name}_monitor = ${obs_class}(history=result_transient) - _${obs_name}_result = _${obs_name}_monitor(result) - # Keep full result to preserve named outputs (e.g., .psd, .frequencies) - obs.${obs_name} = _${obs_name}_result + if only is None or '${obs_name}' in only: + # ${obs_name}: observation derived from simulation state + _${obs_name}_monitor = ${obs_class}(history=result_transient) + _${obs_name}_result = _${obs_name}_monitor(result) + # Keep full result to preserve named outputs (e.g., .psd, .frequencies) + obs.${obs_name} = _${obs_name}_result % endif % endfor @@ -1533,6 +2014,8 @@ def compute_all_observations(result, state, result_transient=None): # Get pipeline callable pipeline_call = None + pipeline_equation = None # equation-based derived obs (rhs over other observations) + pipeline_equation_params = {} # local equation constants pipeline_args = [] positional_args = [] # Track positional args from source_observations if dobs.pipeline: @@ -1550,9 +2033,17 @@ def compute_all_observations(result, state, result_transient=None): _fn = getattr(first_stage, 'function', None) if _fn is not None: pipeline_call = str(_fn) if not hasattr(_fn, 'name') else str(_fn.name) - # Extract arguments from pipeline stage - # Handle explicit argument values with proper observation reference resolution - if hasattr(first_stage, 'arguments') and first_stage.arguments: + if pipeline_call is None: + # equation-based derived observation: an `equation` over other + # observations (no callable/function). Rendered inline below via + # render_expression, with each source observation bound to a local. + _eq = getattr(first_stage, 'equation', None) + if _eq is not None: + pipeline_equation = getattr(_eq, 'rhs', None) + pipeline_equation_params = dict(iter_parameter_values(getattr(_eq, 'parameters', None))) + # Extract arguments from pipeline stage (callable/function path only; the + # equation path binds its source observations directly at emit time below). + if pipeline_call and hasattr(first_stage, 'arguments') and first_stage.arguments: for arg_name, arg in first_stage.arguments.items(): arg_value = getattr(arg, 'value', None) # Only include arguments that have explicit values (not just names/descriptions) @@ -1560,11 +2051,28 @@ def compute_all_observations(result, state, result_transient=None): val_str = str(arg_value) # Check if value is an observation reference vs a literal if val_str in src_obs_list or val_str in observation_names or val_str in derived_observation_names: - # Simple observation reference - add as positional - positional_args.append(f"obs.{val_str}") + # Simple observation reference β†’ its data array. Observations are stored + # as the full monitor result (a NativeSolution, to keep named outputs like + # .psd); a plain positional reference wants the underlying array, so unwrap + # `.data` (no-op when it is already a bare array). Dotted references below + # keep the named-output attribute instead. + positional_args.append(f"_obs_data(obs.{val_str})") elif val_str.replace('.', '').replace('-', '').isdigit(): # Numeric literal - use as keyword arg pipeline_args.append(f"{arg_name}={val_str}") + elif val_str.startswith('network.') and (_edge_lab := edge_label(val_str)): + # network.weight(s)/length(s) or network.edges.<label> β†’ the + # connectome matrix embedded as a module constant by the included + # observation template (utils.collect_network_edge_arrays), NOT a + # string literal. Keeps derived observations (source = another + # observation) consistent with the non-derived source path. + pipeline_args.append(f"{arg_name}={edge_const(_edge_lab)}") + elif val_str.startswith('network.') and (_node_lab := node_label(val_str)): + # network.positions/instrength β†’ the per-node vector embedded as a + # module constant by the included observation template + # (utils.collect_network_node_arrays), the node-level analogue of + # the edge-matrix branch above. + pipeline_args.append(f"{arg_name}={node_const(_node_lab)}") elif '.' in val_str: prefix = val_str.split('.')[0] if prefix in (src_obs_list + list(observation_names) + list(derived_observation_names)): @@ -1577,16 +2085,36 @@ def compute_all_observations(result, state, result_transient=None): # String literal or other - use as keyword arg pipeline_args.append(f"{arg_name}='{val_str}'" if isinstance(arg_value, str) else f"{arg_name}={val_str}") # If no explicit args were parsed, use source_observations positionally - if not positional_args and not pipeline_args: - positional_args = [f"obs.{s}" for s in src_obs_list] + if pipeline_call and not positional_args and not pipeline_args: + positional_args = [f"_obs_data(obs.{s})" for s in src_obs_list] # Build final args: positional first, then keyword all_args = positional_args + pipeline_args + _args = ', '.join(all_args) + # A windowed correlation reducer is undefined over a <2-sample window; route it + # through _windowed_corr so a degenerate window (e.g. a derived FC materialized on + # a single-BOLD-sample simulation) returns NaN instead of crashing. The FC-family + # set is the streaming-reducer registry (shared with the streaming path), not a + # hand-maintained list. Every other reducer emits a plain call, byte-identical. + from tvbo.codegen.streaming_reducers import is_windowed_reducer + _reduce_mod, _, _reduce_name = pipeline_call.rpartition('.') if pipeline_call else ('', '', '') + _pipeline_emit = ( + f"_windowed_corr({pipeline_call}, {_args})" + if pipeline_call and is_windowed_reducer(_reduce_mod or None, _reduce_name) + else f"{pipeline_call}({_args})" + ) %> % if pipeline_call and src_obs_list: # ${dobs_name}: derived from ${', '.join(src_obs_list)} - if all(hasattr(obs, _src) for _src in [${', '.join(f"'{s}'" for s in src_obs_list)}]): - obs.${dobs_name} = ${pipeline_call}(${', '.join(all_args)}) + if (only is None or '${dobs_name}' in only) and all(hasattr(obs, _src) for _src in [${', '.join(f"'{s}'" for s in src_obs_list)}]): + obs.${dobs_name} = ${_pipeline_emit} +% elif pipeline_equation and src_obs_list: + # ${dobs_name}: equation over ${', '.join(src_obs_list)} + if (only is None or '${dobs_name}' in only) and all(hasattr(obs, _src) for _src in [${', '.join(f"'{s}'" for s in src_obs_list)}]): +% for _src in src_obs_list: + ${_src} = _obs_data(obs.${_src}) +% endfor + obs.${dobs_name} = ${jaxcode(pipeline_equation, pipeline_equation_params)} % endif % endfor @@ -1594,6 +2122,10 @@ def compute_all_observations(result, state, result_transient=None): % if analysis_observations_dict: +% if has_lyapunov: +${lyap.benettin_function()} + +% endif def compute_analysis_observations(state, network, result_transient=None): """Compute the declarative ``analysis`` observations β€” diagnostics that ANALYZE the solve/loss (Lyapunov spectrum, autodiff and finite-difference gradients) rather than @@ -1602,7 +2134,27 @@ def compute_analysis_observations(state, network, result_transient=None): diagnostics fully metadata-derived. Analysis solves use a plain solver β€” the truncation window is an optimization knob, not part of these diagnostics.""" obs = Bunch() -${render_analysis_observations(analysis_observations_dict, coupling_keys, solver_class, transient_time, t1_default, dt)} +<% + # A tuning algorithm with an activity-target objective (Deco FIC) defines the operating point by + # a CONSTRAINT: the objective's target_variable = target_value, with the update rule's + # target_parameter free. For the LINEAR-RESPONSE analysis obs (which linearise around the + # deterministic fixed point), solve that constraint deterministically β€” the paper's fsolve on the + # steady state β€” rather than the stochastic tuning loop. `None` => plain noise-off settle. The + # stochastic algorithm itself is untouched (still used for the actual BOLD/rate simulations). + _op_constraint = None + for _alg in (experiment.algorithms.values() if experiment.algorithms else []): + _obj = getattr(_alg, 'objective', None) + _rules = list(getattr(_alg, 'update_rules', None) or []) + if _obj is not None and getattr(_obj, 'target_variable', None) is not None and getattr(_obj, 'target_value', None) is not None and _rules: + _tp = _rules[0].target_parameter + _op_constraint = { + 'constraint_variable': str(_obj.target_variable), + 'target': float(_obj.target_value), + 'free_parameter': str(getattr(_tp, 'name', _tp)), + } + break +%> +${render_analysis_observations(analysis_observations_dict, coupling_keys, solver_class, transient_time, t1_default, dt, solver_kwargs_str, model=model, time_si_factor=time_si_factor, events=(dict(experiment.events) if experiment.events else {}), op_constraint=_op_constraint)} return obs % endif @@ -1725,6 +2277,7 @@ def run_stage_${stage_name}( loss_fn, optimizer="${stage_algorithm}", learning_rate=learning_rate, + max_steps=max_steps, **opt_kwargs ) fitted_params, fitting_data = opt.run(marked_state, max_steps=max_steps, mode="${opt_mode}") @@ -1773,10 +2326,10 @@ def create_optimizer( if save_every is None: save_every = _smart_interval(max_steps) - # Default callback: print + save loss + save state at smart intervals + # Default callback: log progress + save loss + save state at smart intervals if callback is None: callback = MultiCallback([ - DefaultPrintCallback(every=print_every), + LoggingProgressCallback(every=print_every, total=max_steps), SavingLossCallback(every=save_every), SavingParametersCallback(every=save_every), ]) @@ -1812,14 +2365,14 @@ def run_optimization( <% total_points = 1 for ax in expl['axes']: - total_points *= ax['n'] + total_points *= (ax.get('n') or 1) # builder axes have a runtime-only size (unknown here) has_axes = len(expl['axes']) > 0 obs_type = expl.get('observable_type', 'observation') obs_func = expl.get('observable_func', '') obs_args = expl.get('observable_args', []) obs_name = expl.get('observable', '') output_key = expl.get('output_key') - grid_desc = ' x '.join([f"{ax['name']}[{ax['n']}]" for ax in expl['axes']]) if has_axes else f"{expl.get('n_trials', 1)} trials" + grid_desc = ' x '.join([f"{ax['name']}[{ax.get('n', '?')}]" for ax in expl['axes']]) if has_axes else f"{expl.get('n_trials', 1)} trials" # When the YAML declares observations, the JIT'd observable_fn returns # only the reduced observation values (no trajectory). This supersedes # the legacy model-output extraction path (which would have returned a @@ -1830,10 +2383,83 @@ def run_optimization( and not obs_name and bool(observation_names or derived_observation_names) ) + # Streaming-reduction fast path: when every recorded (non-analysis) observable is an + # Observation.dynamics observer, fold each into the integrator carry via + # prepare(reduce=...) so the trajectory is never materialized (peak memory drops from + # O(batchΒ·n_timeΒ·n_node) to O(batchΒ·blockΒ·n_node)). This IS the memory win for the + # trial-ensemble sweeps: the streaming observable is the base that the IC-trial vmap + # maps over, so each of the N trials streams instead of materializing its trajectory. + # A transient is handled inside the stream (skip=n_transient over the full window), so + # no trim wrapper is needed. Element-slot axes, stochastic noise injection, and wired + # algorithms still need the trajectory model_fn, so any of them forces the post-scan path. + _rec_stream = [r for r in expl['record'] if r not in analysis_observation_names] + _all_recorded_streaming = bool(_rec_stream) and all( + resolve_reduction(_all_observations.get(r)) is not None for r in _rec_stream + ) + _element_axes_present = any(ax.get('element_idx') is not None for ax in expl['axes']) + _seed_axis_present = any(ax.get('is_seed') for ax in expl['axes']) + _use_stream = ( + bundles_observations + and _all_recorded_streaming + and not stochastic_param_info + and not _element_axes_present + and not _seed_axis_present + and not expl.get('algorithms') + ) + _stream_names = _rec_stream + _stream_bs = expl.get('block_size') or 1000 + _stream_skip = int(round(transient_time / dt)) if has_transient else 0 + _stream_t1 = (transient_time + t1_default) if has_transient else t1_default + # Network-scope axes (e.g. `network.conduction_speed`): the base graph is a + # DenseLengthGraph, so the axis sweeps its live `speed` leaf directly. _v_min + # (the slowest swept speed) sizes the max_delay_bound history buffer. + _network_axes = [ax for ax in expl['axes'] if ax.get('is_network')] + _has_network_axis = bool(_network_axes) + _v_min = None + if _network_axes: + _vvals = [] + for _nax in _network_axes: + _vvals.extend(_nax['values'] if 'values' in _nax else [_nax['lo']]) + _v_min = min(_vvals) %> -def ${expl['name']}(state, model_fn, result_transient=None, n_pmap: int = ${n_workers}, **kwargs): +def ${expl['name']}(state, model_fn, result_transient=None, **kwargs): """${expl['label']} - ${grid_desc}.""" _network = kwargs.get('network') +% if _has_network_axis: + if _network is not None: + # Network-scope conduction_speed axis: swap the delay graph for a + # DenseLengthGraph so `speed` is a live, sweepable pytree leaf + # (delays = lengths / speed, recomputed each forward pass). Built once + # here, outside jit/vmap, so the one-time Network reconstruction never + # traces. max_delay_bound sizes the history buffer for the slowest swept + # speed (its largest delay), giving the sweep headroom without a re-prepare. + _v_build = ${conduction_speed} + _base_delays = _network.graph.delays + _lengths = _base_delays * _v_build + _length_graph = DenseLengthGraph( + _network.graph.weights, _lengths, speed=_v_build, + region_labels=_network.graph.region_labels, + # Buffer sized for the slowest speed used at build OR sweep time (its + # largest delay); min() guards a sweep whose speeds are all faster than + # the build speed, where the build-speed delay is the binding one. + max_delay_bound=float(jnp.max(_lengths)) / min(_v_build, ${_v_min}), + ) + _network = type(_network)( + _network.dynamics, _network.coupling, _length_graph, noise=_network.noise, + ) +% endif +% if any(ax.get('builder_expr') for ax in expl['axes']): + # Builder-axis support: resolve a base-sim observation named in a builder argument. + # `base_observations` is the Bunch of observations the main run computed before this + # exploration; `_bov(name)` returns one (unwrapping a monitor result's `.data`). + _base_obs = kwargs.get('base_observations') or Bunch() + def _bov(_name): + assert _name in _base_obs, ( + f"builder for '${expl['name']}' references base observation '{_name}', which the " + "main run did not compute (run mode='all' so base observations are available)") + _o = _base_obs[_name] + return _o.data if hasattr(_o, 'data') else _o +% endif if _network is not None: _solver = get_solver() % if has_transient: @@ -1844,6 +2470,9 @@ def ${expl['name']}(state, model_fn, result_transient=None, n_pmap: int = ${n_wo _n_transient = int(_t_transient / ${dt}) _expl_model_fn_raw, _expl_state = prepare(_network, _solver, t0=0.0, t1=_t_total, dt=${dt}) _expl_state = copy.deepcopy(_expl_state) # isolate from shared network params + # Same IC construction as the main run: declared per-node overrides, then an + # optional from_experiment operating-point seed (else the sweep cold-starts). + _expl_state = _apply_seed_params(_apply_seed_dynamics(_apply_node_overrides(_expl_state))) % if stochastic_param_info: _inject_stochastic_trajectories(_expl_state, _t_total, ${dt}, key=jax.random.key(${list(stochastic_param_info.values())[0]['seed']})) % endif @@ -1863,6 +2492,9 @@ def ${expl['name']}(state, model_fn, result_transient=None, n_pmap: int = ${n_wo % else: _expl_model_fn, _expl_state = prepare(_network, _solver, t0=0.0, t1=${t1_default}, dt=${dt}) _expl_state = copy.deepcopy(_expl_state) # isolate from shared network params + # Same IC construction as the main run: declared per-node overrides, then an + # optional from_experiment operating-point seed (else the sweep cold-starts). + _expl_state = _apply_seed_params(_apply_seed_dynamics(_apply_node_overrides(_expl_state))) % if stochastic_param_info: _inject_stochastic_trajectories(_expl_state, ${t1_default}, ${dt}, key=jax.random.key(${list(stochastic_param_info.values())[0]['seed']})) % endif @@ -1872,13 +2504,35 @@ def ${expl['name']}(state, model_fn, result_transient=None, n_pmap: int = ${n_wo _expl_state = state % if expl['strategy'] == 'nsga2': ${search.nsga2_body(expl)}\ -% elif expl['strategy'] == 'adiabatic_scan': -${render_adiabatic_scan_body(expl, solver_class, dt)} +% elif expl.get('branch_seed'): +${sweep.branch_analysis_body(expl, solver_class, dt, warmstart_solver_kwargs)}\ +% elif expl['sweep_seeding'] == 'from_previous': +${sweep.warmstart_sweep_body(expl, solver_class, dt, warmstart_solver_kwargs)}\ % else: % if has_axes: grid_state = copy.deepcopy(_expl_state) % for ax in expl['axes']: - % if ax.get('element_idx') is not None: + % if ax.get('builder_expr'): + ## Builder axis: materialize the sweep values from a callable, then sweep as a DataAxis. + ## Values may be whole per-node vectors (array-valued axis). Product mode meshgrids the + ## axes, which is 1-D only, so an array-valued axis is given a singleton group: Space's + ## grouped path index-gathers it, carrying one whole vector per cell. Scalar axes (1-D + ## values) stay ungrouped, so their behaviour is unchanged. + _axisvals_${ax['name']} = jnp.asarray(${ax['builder_expr']}) + _grp_${ax['name']} = "${ax['name']}" if _axisvals_${ax['name']}.ndim > 1 else None + % if ax.get('is_coupling'): + grid_state.coupling.${ax['coupling_key']}.${ax['name']} = DataAxis(_axisvals_${ax['name']}, group=_grp_${ax['name']}) + % elif ax.get('is_network'): + grid_state.graph.${ax['graph_leaf']} = DataAxis(_axisvals_${ax['name']}, group=_grp_${ax['name']}) + % else: + grid_state.dynamics.${ax['name']} = DataAxis(_axisvals_${ax['name']}, group=_grp_${ax['name']}) + % endif + % elif ax.get('is_seed'): + ## Noise-seed axis: a dummy scalar slot Space sweeps; the wrapper below turns + ## each cell's integer seed into config.noise.key, so every cell/trial draws an + ## independent noise realization (a real per-trial ensemble, not a no-op). + grid_state.dynamics._noise_seed = DataAxis(jnp.asarray(${ax['values']}, dtype=jnp.uint32)) + % elif ax.get('element_idx') is not None: ## Element-indexed parameter: create dummy scalar slot for Space discovery ## e.g., K[0] β†’ grid_state.dynamics._K_el0 = GridAxis(...) % if 'values' in ax: @@ -1892,6 +2546,17 @@ ${render_adiabatic_scan_body(expl, solver_class, dt)} % else: grid_state.coupling.${ax['coupling_key']}.${ax['name']} = GridAxis(low=${ax['lo']}, high=${ax['hi']}, n=kwargs.get('n_${ax['name']}', ${ax['n']})) % endif + % elif ax.get('is_network'): + ## Network-scope axis: sweep the graph's live `${ax['graph_leaf']}` leaf + ## directly (resolved from the declared path by network_axis_leaf). Every + ## dependent quantity is recomputed each forward pass β€” delays = lengths / + ## speed, couplings from weights β€” so there is no per-cell graph or Network + ## rebuild, and the leaf stays a differentiable pytree leaf. + % if 'values' in ax: + grid_state.graph.${ax['graph_leaf']} = DataAxis(${ax['values']}) + % else: + grid_state.graph.${ax['graph_leaf']} = GridAxis(low=${ax['lo']}, high=${ax['hi']}, n=kwargs.get('n_${ax['name']}', ${ax['n']})) + % endif % else: % if 'values' in ax: grid_state.dynamics.${ax['name']} = DataAxis(${ax['values']}) @@ -1912,13 +2577,79 @@ ${render_adiabatic_scan_body(expl, solver_class, dt)} % endif # Create observation monitors ONCE with history baked in (optimized pattern) -% if expl.get('record'): +% if _use_stream: + # Streaming reductions: every recorded observable is an Observation.dynamics observer, + # so fold each into the integrator carry via prepare(reduce=...). The trajectory is + # never materialized β€” peak memory is O(batchΒ·blockΒ·n_node), which is what lets the + # whole grid vmap on one device. Falls back to the post-scan path when the network is + # not rebuildable (a passed-in model_fn) so the value is still produced. + if _network is not None: + # Stream over the FULL window [0, transient + observable]; the reducer's + # skip=${_stream_skip} folds only the post-transient samples, so no trim wrapper + # and no separate settle pass is needed β€” the settle happens inside the scan. + _stream_model_fn, _ = prepare( + _network, get_solver(block_size=${_stream_bs}), + t0=0.0, t1=${_stream_t1}, dt=${dt}, + reduce=_compose_reducers(*[ + _STREAMING_REDUCERS[_n][0](_STREAMING_REDUCERS[_n][1], ${dt}, skip=${_stream_skip}) + for _n in ${repr(_stream_names)} + ]), + ) + @jax.jit + def observable_fn(s): + _vals = _stream_model_fn(s) + return Bunch(**{_n: _v for _n, _v in zip(${repr(_stream_names)}, _vals)}) + else: + @jax.jit + def observable_fn(s): + result = _expl_model_fn(s) + return compute_all_observations(result, s, result_transient, only=${repr(set(_stream_names))}) +% elif expl.get('record'): +<% + # Closure of observations the jitted per-cell observable must compute: the recorded + # (non-analysis) ones plus every observation they transitively depend on β€” through + # `source` AND through pipeline-argument references (e.g. solitary's `omega_profile` + # arg). Anything else β€” e.g. a non-jittable `solitary` the base run/builder needs but + # this sweep does not record β€” is skipped so it never traces inside the observable. + _all_obs_names = set(_all_observations.keys()) + def _obs_deps(_o): + _deps = set() + for _s in (getattr(_o, 'source', None) or []): + _sn = str(_s) if not hasattr(_s, 'name') else str(_s.name) + if _sn in _all_obs_names: + _deps.add(_sn) + for _st in (getattr(_o, 'pipeline', None) or []): + for _an, _arg in ((getattr(_st, 'arguments', None) or {}).items()): + _av = getattr(_arg, 'value', None) + if _av is None: + continue + _avs = str(_av) + _base = _avs.split('.', 1)[0] # bare name or dotted named-output ref + if _avs in _all_obs_names: + _deps.add(_avs) + elif _base in _all_obs_names: + _deps.add(_base) + return _deps + _need = set() + _stack = [r for r in expl['record'] if r not in analysis_observation_names] + while _stack: + _n = _stack.pop() + if _n in _need: + continue + _need.add(_n) + _od = _all_observations.get(_n) + if _od is not None: + for _sn in _obs_deps(_od): + if _sn not in _need: + _stack.append(_sn) + _only_list = sorted(_need) +%> # Record a declared list of observations per grid point (derived via # compute_all_observations, `analysis` diagnostics via compute_analysis_observations), # stacked over the sweep into one array per name. @jax.jit def observable_fn(s): -${render_recorded_observable(expl['record'], derived_observation_names, network_observation_names, list(analysis_observations_dict.keys()))} +${render_recorded_observable(expl['record'], derived_observation_names, network_observation_names, list(analysis_observations_dict.keys()), only_obs=_only_list)} % elif obs_type == 'function_call': <% # Collect unique observations used - categorize by type @@ -2061,6 +2792,17 @@ ${render_recorded_observable(expl['record'], derived_observation_names, network_ return _element_base_fn(s) % endif +% if has_noise and any(ax.get('is_seed') for ax in expl['axes']): + ## Per-cell noise reseeding: turn each cell's swept integer seed into + ## config.noise.key so every cell/trial draws an independent noise realization. + ## config.noise.key is a live runtime PRNG leaf (tvboptim's solve reads it per + ## call), so varying it per cell needs no re-prepare β€” it composes with the vmap. + _seed_base_fn = observable_fn + def observable_fn(s): + s.noise.key = jax.random.key(jnp.asarray(s.dynamics._noise_seed, dtype=jnp.uint32)) + return _seed_base_fn(s) +% endif + % if expl.get('n_trials', 1) > 1 and stochastic_param_info: <% _sp_names = list(stochastic_param_info.keys()) @@ -2200,6 +2942,14 @@ ${render_recorded_observable(expl['record'], derived_observation_names, network_ n_iterations=${_algo['n_iterations']}, % for _hp_name, _hp_val in _algo['hyperparams'].items(): ${_hp_name}=${_hp_val}, +% endfor +## External inputs the run-func requires (data-source files from kwargs; network/ +## dataset targets from their module-level globals) β€” mirrors the flat call site. +% for _inp_name in _algo.get('input_names', []): + ${_inp_name}=kwargs.get('${_inp_name}'), +% endfor +% for _net_obs_name in _algo.get('network_obs_inputs', []): + ${_net_obs_name}=${_net_obs_name}, % endfor history=result_transient, verbose=False, ) @@ -2215,7 +2965,15 @@ ${render_recorded_observable(expl['record'], derived_observation_names, network_ % endif % else: % if has_axes: - exec_runner = ParallelExecution(observable_fn, grid, n_pmap=n_pmap) + import jax as _jax + # Stream "grid batch i/N" through the tvbo.run logger from inside the jitted + # lax.map (JAX-native jax.debug.callback, fires once per n_vmap batch) so a long + # grid does not go silent after "STEP 2 > ...". Identity wrap when INFO is off. + _n_batches = max(1, -(-grid.N // ${expl['n_parallel']})) + exec_runner = ParallelExecution( + progress_ticker(_n_batches, label="grid batch")(observable_fn), + grid, n_pmap=_jax.device_count(), n_vmap=${expl['n_parallel']}, + ) _grid_outputs = list(exec_runner.run()) % else: # Trial-only exploration β€” no parameter grid @@ -2240,7 +2998,11 @@ ${render_recorded_observable(expl['record'], derived_observation_names, network_ % else: name='${ax.get('label', ax['name'])}', % endif -% if 'values' in ax: +% if ax.get('builder_expr'): + ## Builder axis: values are runtime whole-vectors; the coordinate is the point index. + explored_values=jnp.arange(len(_axisvals_${ax['name']})), + n=len(_axisvals_${ax['name']}), +% elif 'values' in ax: explored_values=jnp.array(${ax['values']}), n=${ax['n']}, % else: @@ -2255,6 +3017,9 @@ ${render_recorded_observable(expl['record'], derived_observation_names, network_ % endif % if ax.get('element_idx') is not None: element_idx=${ax['element_idx']}, +% endif +% if ax.get('reduce'): + reduce='${ax['reduce']}', % endif ), % endfor @@ -2271,12 +3036,21 @@ ${render_recorded_observable(expl['record'], derived_observation_names, network_ _shard = kwargs.get('shard') if _shard is not None: _df = grid.to_dataframe() - _bare_to_label = {} + _bare_to_label, _network_label = {}, None for _a in _axes_info: _bare_to_label.setdefault(str(_a.name).rsplit('.', 1)[-1], str(_a.name)) + if str(_a.name).startswith('network.'): + _network_label = str(_a.name) # network-scope axis (e.g. conduction_speed) _cell_coords, _used = {}, set() for _col in _df.columns: - _label = _bare_to_label.get(str(_col).rsplit('.', 1)[-1], str(_col)) + _label = _bare_to_label.get(str(_col).rsplit('.', 1)[-1], None) + if _label is None and _network_label is not None and str(_col).startswith('graph.'): + # The network.conduction_speed axis sweeps the DenseLengthGraph's `speed` + # leaf, which flattens to a keypath like "graph.2" whose bare name ("2") + # does not match the axis label β€” restore the friendly network name. + _label = _network_label + if _label is None: + _label = str(_col) if _label in _used: _label = str(_col) # disambiguate a bare-name collision with the keypath _used.add(_label) @@ -2345,26 +3119,45 @@ def run_experiment( mode: str = "all", stage: str = None, state: Bunch = None, + seed_dynamics=None, + seed_params=None, + branch_seed=None, % if network_observation_names: network_observations: Dict[str, Any] = None, % endif **kwargs, ) -> Dict[str, Any]: - """Run complete experiment workflow. Mode: simulation, optimization, exploration, algorithms, or all.""" + """Run complete experiment workflow. Mode: simulation, optimization, exploration, algorithms, or all. + + seed_dynamics: optional {state_var_name: (n_nodes,)} operating point (InitialState. + from_experiment) that overrides the sampled IC at every construction site. + seed_params: optional {param_name: (n_nodes,)} per-node model parameters + (InitialState.seed_parameters) loaded from the source run, e.g. a control mask. + branch_seed: optional whole recorded branch (InitialState.from_experiment, + source_point='branch') a branch-restart exploration replays per cell. + """ + global _SEED_DYNAMICS, _SEED_PARAMS, _BRANCH_SEED + _SEED_DYNAMICS = seed_dynamics + _BRANCH_SEED = branch_seed + _SEED_PARAMS = seed_params weights = jnp.array(weights) - # quiet=True silences the structural progress prints (run(..., quiet=True)). + # Progress flows through the ``tvbo.run`` logger; ``quiet=True`` forces + # silence for this call regardless of the configured level (back-compat with + # ``run(..., quiet=True)``), otherwise ``TVBO_LOG_LEVEL`` / the tvbo logger + # level decides what is shown. _quiet = kwargs.pop("quiet", False) - _log = (lambda *a, **k: None) if _quiet else print + + def _log(msg): + if not _quiet: + logger.info(msg) % if network_observation_names: # Materialize network-observation constants (empirical targets) from the # supplied matrices, keyed by observation name (e.g. {'fc_target': FC}). _bind_network_observations(network_observations) % endif - _log("\n" + "=" * 60) _log("STEP 1: Running simulation...") - _log("=" * 60) % if has_delay: if delays is None: @@ -2381,7 +3174,7 @@ def run_experiment( run_main = mode in ('simulation', 'all', None) # Run simulation to get model_fn and state (includes transient settling if configured) - sim_result = run_simulation(network, t1=${t1_default}, dt=${dt}, t_transient=${transient_time}, run_main=run_main) + sim_result = run_simulation(network, t1=${t1_default}, dt=${dt}, t_transient=${transient_time}, run_main=run_main, random_seed=kwargs.get('random_seed')) model_fn = sim_result.model_fn default_state = sim_result.state # Raw transient result for observation monitors (HRF warmup) @@ -2447,7 +3240,7 @@ def run_experiment( % endfor _all_obs = compute_all_observations(result, state, transient) -% for obs_name in derived_observation_names: +% for obs_name in sorted(derived_observation_names): observations.${obs_name} = _all_obs.${obs_name} % endfor @@ -2509,9 +3302,7 @@ def run_experiment( % if has_explorations: if mode in ('exploration', 'all'): - _log("\n" + "=" * 60) _log("STEP 2: Running explorations...") - _log("=" * 60) exploration_result = Bunch() % for expl in explorations: @@ -2520,6 +3311,7 @@ def run_experiment( state, model_fn, result_transient=transient, network=network, + base_observations=observations, # base-sim observations for builder-axis arguments **kwargs, # Pass runtime kwargs (e.g., target data for correlation-based observables) ) % endfor @@ -2530,9 +3322,7 @@ def run_experiment( % if has_algorithms: if mode in ('algorithm', 'algorithms', 'all'): - print("\n" + "=" * 60) - print("STEP 3: Running algorithms...") - print("=" * 60) + _log("STEP 3: Running algorithms...") # Determine if running all algorithms or just one algorithm_name = kwargs.get('name', kwargs.get('algorithm_name', None)) run_all_algorithms = (mode in ('algorithms', 'all')) or (algorithm_name is None and mode == 'algorithm') @@ -2646,7 +3436,7 @@ def run_experiment( if run_all_algorithms: # All algorithms run in dependency order (topological sort) algorithms_to_run = [${', '.join(f"'{n}'" for n in sorted_algo_names)}] - print(f" Algorithms to run (dependency order): {algorithms_to_run}") + _log(f" Algorithms to run (dependency order): {algorithms_to_run}") else: algorithms_to_run = [algorithm_name] @@ -2659,7 +3449,7 @@ def run_experiment( _algo_seed = default_algo_seed algo_key = jax.random.key(_algo_seed) # Use newer key() API for consistency if algo_verbose: - print(f"\\n>>> Running algorithm: {algorithm_name} (seed={_algo_seed})") + _log(f"\\n>>> Running algorithm: {algorithm_name} (seed={_algo_seed})") algo_result = None % for algo in algorithms_list: @@ -2721,7 +3511,13 @@ def run_experiment( _src = _src[0] if _src else None if _src is not None and hasattr(_src, 'name'): _src = _src.name - if _src and str(_src).startswith('network.observations.'): + # `network.observations.*` (materialized from the Network/BIDS) and + # `dataset.subject.*` (a per-subject target injected at run time via + # run(active_subject=...)) are BOTH bound as module-level network- + # observation globals by _bind_network_observations, so both must be + # forwarded to the algorithm run-func as external inputs. + if _src and (str(_src).startswith('network.observations.') + or str(_src).startswith('dataset.subject')): network_obs_inputs.append(obs_name) # Get dependencies for this algorithm @@ -2745,11 +3541,11 @@ def run_experiment( if _dep_name in algorithms_results and hasattr(algorithms_results[_dep_name], 'state'): _source_state = algorithms_results[_dep_name].state if algo_verbose: - print(f" (using state from dependency: {_dep_name})") + _log(f" (using state from dependency: {_dep_name})") else: _source_state = initial_state if algo_verbose: - print(f" (dependency {_dep_name} not yet run, using initial state)") + _log(f" (dependency {_dep_name} not yet run, using initial state)") % else: # No dependencies - use initial state _source_state = initial_state @@ -2835,7 +3631,7 @@ def run_experiment( _stage_conv = [] # per-stage convergence Bunch (working-point trajectory) for _si, _sd in enumerate(_stage_defs): if algo_verbose: - print(f" [{algorithm_name} stage {_si+1}/{len(_stage_defs)}] {_sd}") + _log(f" [{algorithm_name} stage {_si+1}/{len(_stage_defs)}] {_sd}") algo_result = run_${algo_name}( state=_stage_state, model_fn=algo_model_fn, @@ -2857,6 +3653,7 @@ def run_experiment( % for src_obs in algo_source_obs_needed: ${src_obs}_buffer=_stage_${src_obs}_buffer, % endfor + resync_every=kwargs.get('${algo_name}_resync_every', kwargs.get('resync_every', None)), % endif monitors=_stage_monitors, run_post_tuning=True, # validate after EACH stage (r-trajectory) @@ -2917,6 +3714,7 @@ def run_experiment( ${src_obs}_buffer=kwargs.get('${src_obs}_buffer', None), # Optional: pass from previous algorithm % endif % endfor + resync_every=kwargs.get('${algo_name}_resync_every', kwargs.get('resync_every', None)), % endif % if has_deps: # Pass monitors from dependency for hemodynamic continuity @@ -2954,21 +3752,30 @@ def run_experiment( results[_alg_name] = _alg_result # Use last algorithm's result as the "main" result last_algo_name = algorithms_to_run[-1] - print("\n" + "=" * 60) - print(f" Algorithms complete. Results: {list(algorithms_results.keys())}") - print("=" * 60) + _log(f" Algorithms complete. Results: {list(algorithms_results.keys())}") else: # Running single: expose result at top level results['algorithms'] = {algorithm_name: algo_result} results[algorithm_name] = algo_result results['algorithm'] = Bunch(name=algorithm_name) +% if analysis_observations_dict: + + # Re-evaluate the operating-point analysis observations at the TUNED state. A tuning + # algorithm (e.g. FIC) moves the operating point, so the base-run diagnostics β€” computed + # at the pre-tuning state β€” are stale. Write onto main_result.observations (the Bunch that + # result.observations exposes; SimulationResult may hold its own copy) so it reflects the + # operating point the experiment actually settled to. The exploration path already observes + # the tuned state. + if main_result is not None and getattr(main_result, 'observations', None) is not None \ + and algo_result is not None and getattr(algo_result, 'state', None) is not None: + for _an_name, _an_val in compute_analysis_observations(algo_result.state, network, transient).items(): + main_result.observations[_an_name] = _an_val +% endif % endif % if has_optimization: if mode in ('optimization', 'all'): - print("\n" + "=" * 60) - print("STEP 4: Running optimization...") - print("=" * 60) + _log("STEP 4: Running optimization...") _missing_inputs = [] % for kwarg_name in sorted(runtime_kwargs_needed) if runtime_kwargs_needed else []: if '${kwarg_name}' not in kwargs: @@ -2979,7 +3786,7 @@ def run_experiment( raise ValueError(f"Optimization requires these inputs via kwargs: {_missing_inputs}") else: # mode='all' - skip optimization if missing inputs - print(f" Skipping optimization (missing: {_missing_inputs})") + _log(f" Skipping optimization (missing: {_missing_inputs})") else: # Stage results storage (use Bunch for dot-notation access) stage_results = Bunch() @@ -2993,7 +3800,7 @@ def run_experiment( % if opt_has_custom_integration: # Prepare fresh model_fn and state for optimization # Optimization has custom integration settings: ${opt_solver_class} dt=${opt_dt} t1=${opt_t1} - print(f" Preparing optimization model (t1=${opt_t1}ms, dt=${opt_dt}ms, solver=${opt_solver_class})") + _log(f" Preparing optimization model (t1=${opt_t1}ms, dt=${opt_dt}ms, solver=${opt_solver_class})") % if opt_depends_on: # Use existing network (with history updated from algorithms) opt_model_fn, opt_state = prepare(network, get_solver(), t1=${opt_t1}, dt=${opt_dt}) @@ -3044,6 +3851,11 @@ def run_experiment( def loss_fn(state): _obs = compute_all_observations(_opt_model_fn(state), state, _opt_transient) <% + _recon_idx = context.get('dataset_reconcile_indices') or {} + # A by_label empirical target in this loss carries a keyed gather; the simulated + # observables it is compared against are gathered onto the same shared nodes. + _recon_target = next((a['obs_name'] for a in _lf_args + if a['type'] == 'observation' and a['obs_name'] in _recon_idx), None) loss_arg_exprs = [] for a in _lf_args: if a['type'] == 'observation': @@ -3056,6 +3868,9 @@ def run_experiment( if obs_name_arg in network_observation_names: # Empirical target: allow a runtime override, else the loaded constant. loss_arg_exprs.append(f"kwargs.get('{obs_name_arg}', {_acc})") + elif _recon_target is not None: + # Simulated observable: gather onto the target's shared nodes (keyed). + loss_arg_exprs.append(f"_gather2d({_acc}, _DATASET_RECON_IDX['{_recon_target}'])") else: loss_arg_exprs.append(_acc) elif a['type'] == 'constant': @@ -3080,7 +3895,7 @@ ${search.refine_body(refine_info)}\ for _rk in list(stage_results.keys()): if not str(_rk).startswith('_'): results[_rk] = stage_results[_rk] - print(f" Refinement complete: {list(stage_results.keys())}") + _log(f" Refinement complete: {list(stage_results.keys())}") % else: % if len(optimization_stages) > 1: # Multi-stage optimization with optional stage filtering @@ -3090,10 +3905,10 @@ ${search.refine_body(refine_info)}\ if stage not in all_stage_names: raise ValueError(f"Unknown stage '{stage}'. Available stages: {all_stage_names}") stages_to_run = [stage] - print(f" Running single stage: {stage}") + _log(f" Running single stage: {stage}") else: stages_to_run = all_stage_names - print(f" Multi-stage optimization: ${len(optimization_stages)} stages") + _log(f" Multi-stage optimization: ${len(optimization_stages)} stages") % for stage_idx, stage in enumerate(optimization_stages): <% @@ -3104,20 +3919,20 @@ stage_lr = stage['learning_rate'] %> # Stage ${stage_idx + 1}: ${stage_name} if '${stage_name}' in stages_to_run: - print(f"\n>>> Stage ${stage_idx + 1}/${len(optimization_stages)}: ${stage_name}") - print(f" Free parameters: ${', '.join(p['name'] for p in stage['free_parameters'])}") + _log(f"\n>>> Stage ${stage_idx + 1}/${len(optimization_stages)}: ${stage_name}") + _log(f" Free parameters: ${', '.join(p['name'] for p in stage['free_parameters'])}") % if stage_warmup_from: - print(f" Warmup from: ${stage_warmup_from}") + _log(f" Warmup from: ${stage_warmup_from}") # Use fitted_params from warmup_from stage (or from kwargs if running single stage) if '${stage_warmup_from}' in stage_results: current_state = stage_results['${stage_warmup_from}'].fitted_params elif 'warmup_state' in kwargs: # Allow passing in state from previous run current_state = kwargs['warmup_state'] - print(f" Using warmup_state from kwargs") + _log(f" Using warmup_state from kwargs") elif stage is not None: # Running single stage without warmup - use initial state with warning - print(f" WARNING: warmup_from='${stage_warmup_from}' not available, using initial state") + _log(f" WARNING: warmup_from='${stage_warmup_from}' not available, using initial state") else: raise ValueError(f"warmup_from stage '${stage_warmup_from}' not found in completed stages: {list(stage_results.keys())}") % endif @@ -3150,9 +3965,7 @@ stage_lr = stage['learning_rate'] % endfor if stage is None: - print("\n" + "=" * 60) - print(" Multi-stage optimization complete") - print("=" * 60) + _log(" Multi-stage optimization complete") # Final results: last stage's fitted_params + per-stage access via dot notation results['fitted_params'] = current_state @@ -3204,25 +4017,21 @@ stage_lr = stage['learning_rate'] # Store under results.optimizations.{name} for consistent structure results['optimizations'] = Bunch(**{_opt_name: _opt_result}) results[_opt_name] = _opt_result # Also at top level for convenience - print(" Optimization complete.") + _log(" Optimization complete.") % endif % endif % endif % if has_inference: if mode in ('inference', 'all'): - print("\n" + "=" * 60) - print("STEP 5: Running Bayesian inference (MCMC)...") - print("=" * 60) + _log("STEP 5: Running Bayesian inference (MCMC)...") % for _inf in inference_list: ${render_inference(_inf, coupling_keys, external_input_keys, set(derived_observation_names), set(network_observation_names))} % endfor - print(f" Inference complete. Posteriors: {list(results.get('inferences', Bunch()).keys())}") + _log(f" Inference complete. Posteriors: {list(results.get('inferences', Bunch()).keys())}") % endif - _log("\n" + "=" * 60) _log("Experiment complete.") - _log("=" * 60) return results @@ -3251,15 +4060,18 @@ if __name__ == "__main__": import pickle from pathlib import Path from tvbo.data.types import ExperimentResult + from tvbo.log import configure_logging - print("=" * 60) - print("${dynamics_class} Experiment - Standalone Execution") - print("=" * 60) + # Standalone run: surface progress on stderr, controlled by TVBO_LOG_LEVEL + # (default INFO) β€” the same switch as ``tvbo run`` and ``exp.run(...)``. + configure_logging() + + logger.info("${dynamics_class} Experiment - Standalone Execution") % if has_bids: # Load network from BIDS (BEP017) from tvbo import Network as TVBONetwork - print("Loading network from BIDS: ${bids_dir}") + logger.info("Loading network from BIDS: ${bids_dir}") _network = TVBONetwork.from_bids( "${bids_dir}", % if structural_measures: @@ -3276,12 +4088,14 @@ if __name__ == "__main__": region_labels = list(_network.labels.keys()) if _network.labels else None except (AttributeError, TypeError): region_labels = None - print(f" Loaded network with {weights.shape[0]} nodes") + logger.info(" Loaded network with %d nodes", weights.shape[0]) % else: # No BIDS directory configured - check if weights available if 'weights' not in dir() or weights is None: - print("ERROR: Network weights not defined.") - print("Either configure network.bids_dir in YAML or call run_experiment() with weights.") + logger.error( + "Network weights not defined. Either configure network.bids_dir in " + "YAML or call run_experiment() with weights." + ) import sys sys.exit(1) distances = distances if 'distances' in dir() else None @@ -3317,16 +4131,14 @@ if __name__ == "__main__": output_path = Path(__file__).parent / "${safe_name(experiment.label or 'experiment')}_results.pkl" with open(output_path, 'wb') as f: pickle.dump(results, f) - print(f"\nResults saved to: {output_path}") + logger.info("Results saved to: %s", output_path) # Export BIDS-compatible output bids_output = Path(__file__).parent / "derivatives" results.export(bids_output, description="${safe_name(experiment.label or 'tvbsim')}") - print(f"BIDS output: {bids_output}") + logger.info("BIDS output: %s", bids_output) - # Summary - print("\n" + "=" * 60) - print("Results Summary") - print("=" * 60) + # Summary β€” the results object itself is the script's stdout payload. + logger.info("Results summary:") print(results) diff --git a/tvbo/templates/tvboptim/tvbo-tvboptim-exploration.py.mako b/tvbo/templates/tvboptim/tvbo-tvboptim-exploration.py.mako index 533c8251b..73c95d813 100644 --- a/tvbo/templates/tvboptim/tvbo-tvboptim-exploration.py.mako +++ b/tvbo/templates/tvboptim/tvbo-tvboptim-exploration.py.mako @@ -35,7 +35,8 @@ for expl in exploration_list: 'name': getattr(expl, 'name', 'exploration'), 'label': getattr(expl, 'label', ''), 'mode': getattr(expl, 'mode', 'product'), - 'n_parallel': getattr(expl, 'n_parallel', 8), + # n_parallel = backend-agnostic batch size β†’ tvboptim n_vmap. + 'n_parallel': getattr(expl, 'n_parallel', 1), 'axes': [], } axes_list = as_list(getattr(expl, 'space', None)) @@ -84,10 +85,13 @@ def setup_${expl['name']}_grid(state): return Space(grid_state, mode="${expl['mode']}") -def run_${expl['name']}_exploration(state, observable_fn, n_pmap: int = ${expl['n_parallel']}): +def run_${expl['name']}_exploration(state, observable_fn): """Run ${expl['name']} parameter exploration.""" grid = setup_${expl['name']}_grid(state) - exec = ParallelExecution(observable_fn, grid, n_pmap=n_pmap) + import jax as _jax + _n_devices = _jax.device_count() + _n_vmap = ${expl['n_parallel']} # schema: n_parallel = cells per vectorised chunk + exec = ParallelExecution(observable_fn, grid, n_pmap=_n_devices, n_vmap=_n_vmap) results = exec.run() return grid, jnp.stack(results) diff --git a/tvbo/templates/tvboptim/tvbo-tvboptim-lyapunov.py.mako b/tvbo/templates/tvboptim/tvbo-tvboptim-lyapunov.py.mako new file mode 100644 index 000000000..57ed00308 --- /dev/null +++ b/tvbo/templates/tvboptim/tvbo-tvboptim-lyapunov.py.mako @@ -0,0 +1,52 @@ +## Benettin-with-Q Lyapunov analysis, emitted into the experiment script when an +## observation declares `analysis.type: lyapunov`. The code STRUCTURE lives in this +## <%def> partial (driven by the resolved analysis metadata) rather than a hardcoded +## tvbo runtime helper, so the generated script stays self-contained. The adapter +## (render_analysis_observations) resolves the metadata and emits only the call. +<%def name="benettin_function()">\ +def benettin_spectrum_and_vectors(solve_fn, config, t, n=10, k=None): + """Benettin QR Lyapunov spectrum + leading Lyapunov vector profile. + + Tangent-space propagation (``jax.linearize``) with QR renormalisation every + segment β€” as in tvboptim's ``_lyapunov_spectrum_jvp`` β€” additionally keeping + the time-averaged per-node norm of the orthonormalised leading tangent vector, + ``xi_i`` (Taher et al. 2019): the per-node energy the most-unstable direction + carries. tvboptim's own routine forms the identical Q frame and discards it. + + Args: + solve_fn, config: a one-segment ``prepare(...)`` pair; the flow is re-seeded + from ``config.initial_state.dynamics`` each segment. + t: segment duration (integration time between renormalisations). + n: number of rescaling segments (total tangent time = ``n * t``). + k: number of exponents/vectors to track (``None`` for the full 2N spectrum). + + Returns: + exponents (jnp.ndarray, (k,)): Lyapunov exponents, descending. + xi (jnp.ndarray, (n_nodes,)): time-averaged per-node leading-vector norm. + """ + u0 = config.initial_state.dynamics # (n_states, n_nodes) + n_states, n_nodes = u0.shape + D = u0.size + if k is None: + k = D + + def _flow(u_flat): + u = u_flat.reshape(n_states, n_nodes) + cfg = Bunch({**config, "initial_state": Bunch({**config.initial_state, "dynamics": u})}) + return solve_fn(cfg).ys[-1].reshape(-1) + + def _step(carry, _): + u_flat, Q, log_sum, xi_sum = carry + new_u, jvp = jax.linearize(_flow, u_flat) # linearise the flow at u + tangents = jax.vmap(jvp)(Q.T) # propagate Q columns -> (k, D) + Q_new, R = jnp.linalg.qr(tangents.T) # renormalise -> (D, k), (k, k) + log_sum = log_sum + jnp.log(jnp.abs(jnp.diag(R))) + lead = Q_new[:, 0].reshape(n_states, n_nodes) # unit leading tangent vector + xi_sum = xi_sum + jnp.sqrt(jnp.sum(lead ** 2, axis=0)) # per-node norm + return (new_u, Q_new, log_sum, xi_sum), None + + init = (u0.reshape(-1), jnp.eye(D)[:, :k], jnp.zeros(k), jnp.zeros(n_nodes)) + (_, _, log_sum, xi_sum), _ = jax.lax.scan(_step, init, None, length=n) + exponents = jnp.sort(log_sum / (n * t))[::-1] + return exponents, xi_sum / n +</%def> diff --git a/tvbo/templates/tvboptim/tvbo-tvboptim-observation.py.mako b/tvbo/templates/tvboptim/tvbo-tvboptim-observation.py.mako index d34567b37..5559b696f 100644 --- a/tvbo/templates/tvboptim/tvbo-tvboptim-observation.py.mako +++ b/tvbo/templates/tvboptim/tvbo-tvboptim-observation.py.mako @@ -4,7 +4,9 @@ from tvbo.codegen import render_expression from tvbo.templates.tvboptim.utils import ( get_attr, to_numeric, get_recorded_variable_names, - adapt_class_reference_for_tvboptim, + adapt_class_reference_for_tvboptim, resolve_reduction, iter_parameter_values, + edge_label as _edge_label, edge_const as _edge_const, collect_network_edge_arrays, + node_label as _node_label, node_const as _node_const, collect_network_node_arrays, ) model = experiment.dynamics @@ -32,7 +34,7 @@ def resolve_var_index(source, label: str) -> int: for item in candidates: s = item.name if hasattr(item, 'name') else item s = str(s) - if s.startswith('network.'): + if s.startswith('network.') or s.startswith('dataset.'): return 0 if s in var_names: return var_names.index(s) @@ -114,6 +116,19 @@ def ref_to_code(ref_type, ref_val, state_idx=None): if ref_val.startswith('observations.'): obs_key = ref_val.split('.', 1)[1] return f"_network_observations['{obs_key}']" + # network.weight(s)/length(s), or the explicit network.edges.<label>, β†’ the + # connectivity matrix embedded once as a module constant (network_edge_arrays + # below), so a callable can receive the connectome (connectogram, betweenness, + # moments, ...). + _label = _edge_label(ref_val) + if _label: + return _edge_const(_label) + # network.positions/instrength β†’ the per-node vector embedded once as a module + # constant (network_node_arrays below), mirroring the edge-matrix path, so a + # callable or observer parameter can receive region centroids / in-strength. + _nlabel = _node_label(ref_val) + if _nlabel: + return _node_const(_nlabel) # For other network properties, use kwargs return f"kwargs.get('{ref_val}')" if ref_type == 'integration': @@ -458,6 +473,13 @@ for obs_name, obs in observations.items(): 'period': get_attr(obs, 'period'), # Sampling period (ms) for time computation 'tail_samples': get_attr(obs, 'tail_samples'), # Last N samples before aggregation 'aggregation': get_attr(obs, 'aggregation'), # Aggregation type (mean, last, first, etc.) + # Aggregation knobs, resolved once from the observation's generic + # `parameters` slot so any parametric aggregation (e.g. first_passage's + # crossing `threshold`) reads its values by name. + 'agg_params': dict(iter_parameter_values(get_attr(obs, 'parameters'))), + # An Observation.dynamics observer resolves to a streaming reducer (init, update, + # finalize). None when the observation has no dynamics β€” the pipeline path applies. + 'reduction': resolve_reduction(obs, experiment), } # Check for class_reference first (takes precedence over pipeline) @@ -567,18 +589,17 @@ for obs in obs_list: key = str(src).split('network.observations.')[1] network_obs_keys.add(key) -# Identify observations that reference network.edges.* and extract matrix data -network_edge_data = {} # {edge_label: list} β€” embedded at codegen time -for obs in obs_list: - src = obs.get('source') - if src and str(src).startswith('network.edges.'): - edge_label = str(src).split('network.edges.')[1] - if edge_label not in network_edge_data: - _net = get_attr(experiment, 'network', None) - if _net: - _matrix = _net.matrix(edge_label) - if _matrix is not None: - network_edge_data[edge_label] = _matrix.tolist() +# Embed connectome matrices referenced by observations (source or callable argument, +# via the network.weight(s)/length(s) shortcut or the explicit network.edges.<label> +# form) as module constants. Covers derived and non-derived observations, so the same +# constant serves both the source path here and the derived resolver in the experiment +# template (which includes this module). See utils.collect_network_edge_arrays. +network_edge_arrays = collect_network_edge_arrays(experiment) + +# Embed per-node vectors referenced by observations (network.positions/instrength) as +# module constants, the node-level analogue of the connectome matrices above. See +# utils.collect_network_node_arrays. +network_node_arrays = collect_network_node_arrays(experiment) # Get BIDS directory from experiment network (resolve to absolute path) bids_dir = None @@ -599,7 +620,124 @@ if network_obs_keys: # Fallback: resolve relative to cwd _bids_path = (Path.cwd() / _bids_dir_raw).resolve() bids_dir = str(_bids_path) -%> +%>\ +## Emit a tvboptim reducer (init, update, finalize) from a resolved Observation.dynamics +## observer (utils.resolve_reduction). The observer's per-step recurrence runs as an inner +## scan over each block β€” accumulators commit only after a global-step warmup (`_gstep > +## skip`), so the block trajectory is never held. `skip` skips leading samples from the +## reduction: `skip=0` reproduces the plain "no accumulate on the first step" behaviour +## (the first phase increment needs a previous sample); `skip=n_transient` streams a run +## whose transient has NOT been trimmed, folding only the post-transient window. Memory +## states (e.g. the previous phase) advance every step so the boundary increment is exact. +## Every expression is a sympy Expr rendered via render_expression β€” backend-independent. +<%def name="render_reduction(red, name, s_idx, dt)">\ +<% + from tvbo.codegen import render_expression + from tvbo.templates.tvboptim.utils import render_jax_default + _is_median = red.get('statistic', 'mean') == 'median' + _snames = [s['name'] for s in red['states']] + _mem = [s for s in red['states'] if not s['is_accumulator']] # memory-only states + _mnames = [s['name'] for s in _mem] + _src = red['source'] + _rpars = red.get('parameters') or {} # observer constants, bound by name below + _derived = red.get('derived', []) # per-step derived-variable chain (sympy Exprs) + # Non-output DVs are computed per step (they feed states / the median's per-step sample); + # the output DV itself stays inlined at finalize, so it is excluded here. Inert (empty) + # for a simple observer whose only DV IS its output. + _step_dvs = [d for d in _derived if d['name'] != red.get('output_name')] + _rparams = _snames + [d['name'] for d in _derived] + list(_rpars) + [_src, 'dt', 'count'] + _rufuncs = {f: f for f in red['functions']} + _jc = lambda e, ps=_rparams: render_expression(e, format='jax', user_functions=_rufuncs, parameters=ps) + _h = red.get('histogram') # guaranteed present for median (resolve_reduction requires it) + _mem_pre = "".join("%s, " % _n for _n in _mnames) # "s_prev, " + _mem_new = "".join("_new_%s, " % _n for _n in _mnames) # "_new_s_prev, " + _mem_ini = "".join("jnp.full((n,), %r), " % s['init'] for s in _mem) +%>\ +def _reduction_${name}(s_var=${s_idx}, dt=${repr(dt)}, skip=0): +% if _rpars: + # Observer constants (Dynamics.parameters), bound by name in the closure the + # init/update/finalize triple shares. A literal inlines; a sourced/produced operator + # was materialised to a companion at codegen and is read once here (a large array + # never enters this source), becoming a captured constant for the traced reduction. +% for _pname, _pdef in _rpars.items(): +% if _pdef.get('lazy'): + ${_pname} = _load_constant(${repr(_pdef['lazy'][0])}, ${repr(_pdef['lazy'][1])}) +% elif 'value' in _pdef: + ${_pname} = ${render_jax_default(_pdef['value'])} +% else: +<% raise ValueError("observer constant %r reached render unmaterialised; call resolve_reduction(obs, experiment) so a sourced/produced constant is written before emission" % _pname) %> +% endif +% endfor +% endif +% for _fname, _fdef in red['functions'].items(): + def ${_fname}(${", ".join(_fdef['args'])}): + return ${_jc(_fdef['expr'], _fdef['args'])} +% endfor +% if _is_median: + # Streaming median: fold a per-node histogram of the per-step output into the carry + # (O(bins) memory, no trajectory) and read the 0.5 quantile at finalize β€” the robust + # statistic a running sum cannot give. Memory states advance every step; the histogram + # only accumulates after the warmup (_gstep > skip). + _hlo, _hhi, _hbins = ${_h['lo']}, ${_h['hi']}, ${_h['bins']} + _hbw = (_hhi - _hlo) / _hbins + def _init(template, n_steps): + n = template.shape[-1] + return (${_mem_ini}jnp.zeros((_hbins, n)), jnp.array(0)) + def _update(acc, block): + def _step(carry, s_row): + ${_mem_pre}_counts, _gstep = carry + ${_src} = s_row[s_var] + _accumulate = _gstep > skip +% for _d in _step_dvs: + ${_d['name']} = ${_jc(_d['expr'])} +% endfor + _q_step = ${_jc(red['output'])} + _b = jnp.clip(((_q_step - _hlo) / _hbw).astype(jnp.int32), 0, _hbins - 1) + _counts = _counts.at[_b, jnp.arange(_counts.shape[1])].add(jnp.where(_accumulate, 1.0, 0.0)) +% for s in _mem: + _new_${s['name']} = ${_jc(s['update'])} +% endfor + return (${_mem_new}_counts, _gstep + 1), None + return jax.lax.scan(_step, acc, block)[0] + def _finalize(acc): + ${_mem_pre}_counts, _gstep = acc + _total = _counts.sum(0) + _cum = jnp.cumsum(_counts, 0) + _target = _total * 0.5 # median = 0.5 quantile + _bi = jnp.clip(jnp.sum(_cum < _target[None, :], axis=0), 0, _hbins - 1) + _cb = jnp.where(_bi > 0, jnp.take_along_axis(_cum, jnp.maximum(_bi - 1, 0)[None, :], 0)[0], 0.0) + _frac = (_target - _cb) / jnp.maximum(jnp.take_along_axis(_counts, _bi[None, :], 0)[0], 1.0) + return _hlo + (_bi + _frac) * _hbw + return (_init, _update, _finalize) +% else: + def _init(template, n_steps): + n = template.shape[-1] + return (${", ".join("jnp.full((n,), %r)" % s['init'] for s in red['states'])}, jnp.array(0), jnp.array(0)) + def _update(acc, block): + def _step(carry, s_row): + ${", ".join(_snames)}, _count, _gstep = carry + ${_src} = s_row[s_var] + _accumulate = _gstep > skip +% for _d in _step_dvs: + ${_d['name']} = ${_jc(_d['expr'])} +% endfor +% for s in red['states']: + _new_${s['name']} = ${_jc(s['update'])} +% endfor +% for s in red['states']: +% if s['is_accumulator']: + _new_${s['name']} = jnp.where(_accumulate, _new_${s['name']}, ${s['name']}) +% endif +% endfor + _count = _count + jnp.where(_accumulate, 1, 0) + return (${", ".join("_new_%s" % _n for _n in _snames)}, _count, _gstep + 1), None + return jax.lax.scan(_step, acc, block)[0] + def _finalize(acc): + ${", ".join(_snames)}, count, _gstep = acc + return ${_jc(red['output'])} + return (_init, _update, _finalize) +% endif +</%def>\ """Observation classes derived from AbstractMonitor for tvboptim.""" import math @@ -612,12 +750,39 @@ from tvboptim.experimental.network_dynamics.result import NativeSolution from tvboptim.observations.tvb_monitors.downsampling import AbstractMonitor from tvbo.data.types import ObservationResult + +def _load_constant(path, key): + """Load a lazily-stored observer constant (a sourced/produced operator too large to + inline) as a jax array. Read once when the reducer is built, so it is captured as a + concrete constant in the traced update β€” never re-read per step. Reuses tvbo's + array store, so an h5 or zarr companion is read the same way the network is.""" + from pathlib import Path + from tvbo.data.matrix_io import LazyArrayStore + return jnp.asarray(LazyArrayStore(Path(path), {}).read_dataset(key)) + + % if network_obs_keys and bids_dir: from tvbo.classes.network import Network as _TvboNetwork _bids_network = _TvboNetwork.from_bids('${bids_dir}', observational_measures=${list(network_obs_keys)}) % endif +% if network_edge_arrays: +# Connectome matrices referenced by observations via network.weight(s)/length(s) or +# network.edges.<label> (embedded once; shared by observation sources and callable args). +% for _label in sorted(network_edge_arrays): +${_edge_const(_label)} = jnp.array(${repr(network_edge_arrays[_label])}) +% endfor +% endif + +% if network_node_arrays: +# Per-node vectors referenced by observations via network.positions/instrength +# (embedded once; shared by observation sources, callable args, and observer parameters). +% for _label in sorted(network_node_arrays): +${_node_const(_label)} = jnp.array(${repr(network_node_arrays[_label])}) +% endfor +% endif + % for module in sorted(callable_imports.keys()): % if module not in ('jax', 'numpy', 'np', 'jnp', 'equinox', 'eqx'): import ${module} @@ -643,20 +808,48 @@ from ${module} import ${class_name} as _Ext${class_name} is_network_observation = obs_source and str(obs_source).startswith('network.observations.') network_obs_key = str(obs_source).split('network.observations.')[1] if is_network_observation else None - # Check if source is from network.edges (edge matrix data) - is_network_edge = obs_source and str(obs_source).startswith('network.edges.') - network_edge_label = str(obs_source).split('network.edges.')[1] if is_network_edge else None + # Check if source is a connectome matrix β€” bare network.weight(s)/length(s) + # shortcut or explicit network.edges.<label>; resolves to the shared embedded + # constant (network_edge_arrays / _edge_const). Only short-circuits to the raw + # matrix when there is NO pipeline; a source matrix WITH a pipeline (e.g. + # betweenness_centrality(sc=network.weight)) falls through to the pipeline path, + # where the matrix reaches the callable as an argument via ref_to_code. + _src_type, _src_val = parse_reference(obs_source) if obs_source else (None, None) + network_edge_label = _edge_label(_src_val) if _src_type == 'network' else None + is_network_edge = network_edge_label is not None and not pipeline + + # A per-subject dataset target (dataset.subject.<measure>) is materialized as a + # module-level constant and bound at run_experiment time by + # _bind_network_observations, so this template emits no monitor for it. + is_dataset_target = obs_source and str(obs_source).startswith('dataset.subject.') # Resolve source to its column in the recorded variable layout (states + recorded aux). - # Returns 0 for network/external/empty sources (back-compat for external monitor paths). + # Returns 0 for network/dataset/external/empty sources (back-compat for external monitors). state_idx = resolve_var_index(obs_source, obs_name) %> -% if is_network_edge and network_edge_label in network_edge_data: +% if obs['reduction'] is not None: ## ============================================================================= -## Static Network Edge Data (embedded from network edge matrix) +## Streaming reducer for the Observation.dynamics observer `${obs_name}`. +## The (init, update, finalize) triple serves both paths: the host/base run passes +## the whole trajectory as one block (update scans it β†’ post-scan value), while the +## exploration grid passes it to prepare(reduce=...) to fold the value in-carry with +## no trajectory held. `_reduction_${obs_name}(s_var, dt)` builds a fresh triple. +## ============================================================================= +${render_reduction(obs['reduction'], obs_name, state_idx, dt)} +% endif +% if is_dataset_target: +## ============================================================================= +## Per-subject dataset target β€” bound at run_experiment time (see +## _bind_network_observations); no monitor emitted here. +## ============================================================================= +# ${obs['label'] or obs_name} <- dataset.subject.${str(obs_source).split('.')[-1]} (runtime-bound) + +% elif is_network_edge and network_edge_label in network_edge_arrays: +## ============================================================================= +## Static Network Edge Data (embedded connectome matrix β€” shared constant) ## ============================================================================= # ${obs['label'] or obs_name} - edge data from network -${obs_name} = jnp.array(${repr(network_edge_data[network_edge_label])}) +${obs_name} = ${_edge_const(network_edge_label)} % elif is_network_observation and bids_dir: ## ============================================================================= @@ -731,6 +924,31 @@ class ${class_name}(eqx.Module): """Process simulation result using external class.""" return self._monitor(result) +% elif obs['reduction'] is not None: +## ============================================================================= +## Dynamics-observer Observation `${obs_name}` β€” host monitor backed by the +## streaming reducer `_reduction_${obs_name}`. The host/base run folds the reducer +## over the whole trajectory as a single block, which equals the in-carry value the +## exploration grid streams via prepare(reduce=...). There is no pipeline: the +## Observation.dynamics observer *is* the definition, one source of truth for both. +## ============================================================================= +class ${class_name}(AbstractMonitor): + """${obs['label'] or obs_name} observation (dynamics observer).""" + dt: float = eqx.field(static=True, default=${dt}) + + def __init__(self, history=None, voi: int = ${state_idx}, period: float = None, dt: float = ${dt}, **kwargs): + self.voi = voi + self.period = period if period is not None else dt + self.dt = dt + + def __call__(self, result): + # One big block over the whole trajectory == the post-scan reduction. + _init, _update, _finalize = _reduction_${obs_name}(s_var=${state_idx}, dt=self.dt) + _data = result.data if hasattr(result, 'data') else result + _acc = _init(_data[0], _data.shape[0]) + _acc = _update(_acc, _data) + return _finalize(_acc) + % else: ## ============================================================================= ## Pipeline-based Observation (existing implementation) @@ -868,7 +1086,13 @@ class ${class_name}(AbstractMonitor): % for ref_obs in referenced_observations: _${ref_obs}_result = self._${ref_obs}_monitor(result) % endfor -% if obs_source: +% if network_edge_label: + # Source is a connectome matrix (network.${obs_source}); the embedded constant + # is the pipeline input, not a simulation trajectory. An argument naming the + # source (e.g. sc=network.weight) is bound to `_data` below. + _data = ${_edge_const(network_edge_label)} + _time = result.time +% elif obs_source: _data = result.data[:, self.voi, :] _time = result.time % else: @@ -913,12 +1137,19 @@ class ${class_name}(AbstractMonitor): <% full_call = step_callable['full_call'] args = step.get('arguments', {}) + # This observation's source state variable(s): an argument value naming one of + # them refers to the source time series (bound above as `_data`), not a string. + _src_vars = [str(s) for s in (obs_source if isinstance(obs_source, (list, tuple)) else [obs_source])] if obs_source else [] # Build call arguments call_parts = [] for arg_name, arg_val in args.items(): if isinstance(arg_val, str): - if arg_val in step_names or arg_val == 'data': + if arg_val in _src_vars: + # Reference to this observation's SOURCE state variable β†’ its data slice + # (result.data[:, self.voi, :], bound above as `_data`). + call_parts.append(f"{arg_name}=_data") + elif arg_val in step_names or arg_val == 'data': # Reference to previous step output if arg_val == 'data': call_parts.append(f"{arg_name}={input_var}") @@ -1055,6 +1286,28 @@ class ${class_name}(AbstractMonitor): # Declarative: mean over time axis (aggregation: mean) ${decl_input} = jnp.mean(${decl_input}, axis=0) _aggregated = True +% elif str(aggregation) == 'variance': + # Declarative: variance over time axis (aggregation: variance) + ${decl_input} = jnp.var(${decl_input}, axis=0) + _aggregated = True +% elif str(aggregation) == 'std': + # Declarative: standard deviation over time axis (aggregation: std) + ${decl_input} = jnp.std(${decl_input}, axis=0) + _aggregated = True +% elif str(aggregation) == 'first_passage': +<% + _fp_thr = (obs.get('agg_params') or {}).get('threshold') + if _fp_thr is None: + raise ValueError(f"Observation '{obs.get('name')}' uses aggregation: first_passage " + f"but has no parameters.threshold to cross.") +%> + # Declarative: first-passage index over the time axis β€” the first sample + # where the source crosses the threshold (>=), or the sample count if it + # never crosses. Backend-independent (argmax of the threshold-crossing). + _fp_cross = ${decl_input} >= ${_fp_thr} + ${decl_input} = jnp.where(jnp.any(_fp_cross, axis=0), + jnp.argmax(_fp_cross, axis=0), _fp_cross.shape[0]) + _aggregated = True % elif str(aggregation) == 'last': ${decl_input} = ${decl_input}[-1] _aggregated = True @@ -1131,3 +1384,33 @@ class ${class_name}(AbstractMonitor): % endif % endfor +<% + # Registry of every Observation.dynamics observer: name -> (reducer_factory, source + # column index). The exploration grid uses it to stream recorded observables via + # prepare(reduce=...) with no trajectory held (see the experiment template). + _streaming = [(o['name'], resolve_var_index(o['source'], o['name'])) + for o in obs_list if o.get('reduction') is not None] +%> +% if _streaming: + + +def _compose_reducers(*reducers): + """Fuse several (init, update, finalize) triples into one whose carry is the tuple + of per-reducer carries; finalize returns the tuple of per-reducer values. Each + reducer scans the block independently β€” no cross-talk, order matches ``reducers``.""" + def _init(template, n_steps): + return tuple(_r[0](template, n_steps) for _r in reducers) + def _update(accs, block): + return tuple(_r[1](_a, block) for _r, _a in zip(reducers, accs)) + def _finalize(accs): + return tuple(_r[2](_a) for _r, _a in zip(reducers, accs)) + return (_init, _update, _finalize) + + +# name -> (reducer_factory, source column index) for every Observation.dynamics observer. +_STREAMING_REDUCERS = { +% for _sname, _sidx in _streaming: + ${repr(_sname)}: (_reduction_${_sname}, ${_sidx}), +% endfor +} +% endif diff --git a/tvbo/templates/tvboptim/tvbo-tvboptim-optim.py.mako b/tvbo/templates/tvboptim/tvbo-tvboptim-optim.py.mako index 203aa17f1..2c71ecfcb 100644 --- a/tvbo/templates/tvboptim/tvbo-tvboptim-optim.py.mako +++ b/tvbo/templates/tvboptim/tvbo-tvboptim-optim.py.mako @@ -91,7 +91,8 @@ import jax.numpy as jnp from tvboptim.types import Parameter from tvboptim.optim.optax import OptaxOptimizer -from tvboptim.optim.callbacks import MultiCallback, DefaultPrintCallback +from tvboptim.optim.callbacks import MultiCallback +from tvbo.templates.tvboptim.callbacks import LoggingProgressCallback def mark_parameters_optimizable(state, n_nodes: int = ${n_nodes}): @@ -174,7 +175,7 @@ def create_optimizer( "sgd": optax.sgd, } opt_fn = optimizers.get(optimizer.lower(), optax.adam) - callback = MultiCallback([DefaultPrintCallback(every=print_every)]) + callback = MultiCallback([LoggingProgressCallback(every=print_every)]) return OptaxOptimizer(loss_fn, opt_fn(learning_rate), callback=callback, has_aux=has_aux) diff --git a/tvbo/templates/tvboptim/tvbo-tvboptim-search.py.mako b/tvbo/templates/tvboptim/tvbo-tvboptim-search.py.mako index 889d7d54c..c4d085729 100644 --- a/tvbo/templates/tvboptim/tvbo-tvboptim-search.py.mako +++ b/tvbo/templates/tvboptim/tvbo-tvboptim-search.py.mako @@ -57,7 +57,7 @@ def axis_value(expr, transform, col): def _obj_fn(_s): _oa = compute_all_observations(model_fn(_s), _s, result_transient) return Bunch(${obj_bunch}) - _results = list(ParallelExecution(_obj_fn, _space, n_pmap=n_pmap).run()) + _results = list(ParallelExecution(_obj_fn, _space, n_pmap=${expl['n_workers']}).run()) _F = _np.empty((len(_results), ${len(objs)})) for _i, _r in enumerate(_results): _F[_i] = [float(_np.asarray(getattr(_r, _n))) for _n in _obj_names] diff --git a/tvbo/templates/tvboptim/tvbo-tvboptim-sim.py.mako b/tvbo/templates/tvboptim/tvbo-tvboptim-sim.py.mako index 1e88a8d89..b9af779b6 100644 --- a/tvbo/templates/tvboptim/tvbo-tvboptim-sim.py.mako +++ b/tvbo/templates/tvboptim/tvbo-tvboptim-sim.py.mako @@ -177,17 +177,18 @@ def create_network( ) -> Network: """Create configured Network instance. - ``max_delay`` (delayed coupling only) sets a static history-buffer length, - decoupled from the ``delays`` values. Pass it when ``delays`` are JAX tracers - (e.g. ``delays = tract_lengths / v`` with conduction speed ``v`` optimised by - gradient): the buffer stays a fixed shape while per-edge delays vary - differentiably. When None it is derived from ``delays`` (concrete) as usual. + ``max_delay`` (delayed coupling only) is the ``max_delay_bound``: a static + history-buffer length decoupled from the ``delays`` values. Pass it when + ``delays`` are JAX tracers (e.g. ``delays = tract_lengths / v`` with conduction + speed ``v`` optimised by gradient): the buffer stays a fixed shape while + per-edge delays vary differentiably. When None it is derived from ``delays`` + (concrete) as usual. """ % if has_delay: if delays is None: delays = jnp.zeros_like(weights) % if interpolate_delays: - graph = DenseDelayGraph(weights, delays, region_labels=region_labels, max_delay=max_delay) + graph = DenseDelayGraph(weights, delays, region_labels=region_labels, max_delay_bound=max_delay) % else: graph = DenseDelayGraph(weights, delays, region_labels=region_labels) % endif diff --git a/tvbo/templates/tvboptim/tvbo-tvboptim-solver.py.mako b/tvbo/templates/tvboptim/tvbo-tvboptim-solver.py.mako index 1ff0f7234..d0f887bc7 100644 --- a/tvbo/templates/tvboptim/tvbo-tvboptim-solver.py.mako +++ b/tvbo/templates/tvboptim/tvbo-tvboptim-solver.py.mako @@ -66,10 +66,15 @@ from tvboptim.experimental.network_dynamics.solvers import ${solver_class}, Boun % endif -def get_solver(): +def get_solver(block_size=None): """Get configured solver instance. Returns the solver specified in integration metadata. + + ``block_size`` (native solvers only) sets the nested-block-scan granularity so a + streaming reduction (``prepare(reduce=...)``) folds the observable in-carry instead + of materializing the trajectory; ``None`` keeps the default single scan. Ignored by + Diffrax solvers, which have no such knob. % if has_state_bounds: Wrapped in BoundedSolver to enforce state variable domain constraints: % for i, sv_name in enumerate(model.state_variables.keys()): @@ -86,7 +91,10 @@ def get_solver(): base_solver = DiffraxSolver(diffrax.Dopri5()) % endif % else: - base_solver = ${solver_class}(${solver_kwargs_str}) + _solver_kwargs = dict(${solver_kwargs_str}) + if block_size is not None: + _solver_kwargs['block_size'] = block_size + base_solver = ${solver_class}(**_solver_kwargs) % endif % if has_state_bounds: # Wrap solver with BoundedSolver to enforce state variable domain constraints diff --git a/tvbo/templates/tvboptim/tvbo-tvboptim-sweep.py.mako b/tvbo/templates/tvboptim/tvbo-tvboptim-sweep.py.mako new file mode 100644 index 000000000..376445bfa --- /dev/null +++ b/tvbo/templates/tvboptim/tvbo-tvboptim-sweep.py.mako @@ -0,0 +1,192 @@ +<%doc> +Warm-started sweep codegen partials (tvboptim backend) +====================================================== + +Reusable Mako `<%def>`s for the warm-started Exploration path +(`sweep_seeding == 'from_previous'`) β€” a quasi-static parameter sweep that carries +each settled state forward into the next value. Inserted only when a warm-started +exploration is present: + + <%namespace name="sweep" file="tvbo-tvboptim-sweep.py.mako"/> + ... + % elif expl['sweep_seeding'] == 'from_previous': + ${sweep.warmstart_sweep_body(expl, solver_class, dt)} + +Both variants delegate to the ONE tvboptim primitive `_adiabatic_scan` (ramp the swept +parameter, carrying the settled state; reduce each rollout via observe/statistics): + +- **envelope preset** (`expl['adiabatic']`, from `strategy: adiabatic_scan`): the + oscillation envelope of a signal β†’ `env_lo`/`env_hi`/`env_mean`. +- **record path** (`expl['warmstart_records']`): the exploration's declared + trajectory-reduction observations, each recorded as a statistic on its source state + variable's settled rollout. + +Resolution (axisβ†’state-path, envelope signal β†’ observe code, record β†’ callable + source +var index, segment/transient times, up/down/bidirectional β†’ bothways) is done in the +experiment template's context blocks; these defs only lay out code from that clean +metadata. `_adiabatic_scan` is imported once at module top, gated by `has_warmstart`; +`ExplorationResult`/`Bunch`/`jnp` are already in scope. +</%doc>\ +## +<%def name="warmstart_sweep_body(expl, solver_class, dt, solver_kwargs='')">\ +<% + a = expl.get('adiabatic') + axis = a['axis'] if a else expl['axes'][0] + name = axis['name'] + label = axis.get('label', name) # dotted axis name for the ExplorationResult (== space key) + path = ("coupling.%s.%s" % (axis['coupling_key'], name)) if axis.get('is_coupling') \ + else ("dynamics.%s" % name) + bothways = expl['sweep_direction'] == 'bidirectional' +%>\ +% if a: + # -- Adiabatic bifurcation scan (delegates to tvboptim adiabatic_scan) -- + # Ramp the swept parameter up then back down, carrying the settled state; record the + # oscillation envelope (per-node temporal min/max averaged across nodes, plus the mean) + # of the observed signal at each value. The up/down branches expose any hysteresis. + def _adia_observe(_r): + return ${a['signal_code']} + _adia_stats = {"mean": lambda _a: _a.mean(), "lo": lambda _a: _a.min(axis=0).mean(), "hi": lambda _a: _a.max(axis=0).mean()} + _adia_res = _adiabatic_scan( + _network, ${solver_class}(${solver_kwargs}), + accessor=lambda _c: _c.${path}, + low=${axis['lo']}, high=${axis['hi']}, n=kwargs.get('n_${name}', ${axis['n']}), + t=${a['segment_time']}, skip=${a['skip']}, dt=${dt}, bothways=${bothways}, + observe=_adia_observe, statistics=_adia_stats, + ) + _adia_p = jnp.asarray(_adia_res.p) + return ExplorationResult( + name='${expl['name']}', + axes=[Bunch(name='${label}', explored_values=_adia_p, n=int(_adia_p.shape[0]), is_coupling=${bool(axis.get('is_coupling'))}, coupling_key=${repr(axis.get('coupling_key'))})], + observations={'env_lo': jnp.asarray(_adia_res.stats['lo']), 'env_hi': jnp.asarray(_adia_res.stats['hi']), 'env_mean': jnp.asarray(_adia_res.stats['mean'])}, + observable='adiabatic', dt=${dt}, n_up=int(_adia_res.n_up), strategy='adiabatic_scan', + ) +% else: +<% + ws_analysis = [a for a in (expl.get('warmstart_analysis') or []) if a['type'] == 'lyapunov'] + obs_pairs = ["'%s': jnp.asarray(_ws_res.stats['%s'])" % (r['name'], r['name']) for r in expl['warmstart_records']] + for a in ws_analysis: + obs_pairs += ["'%s': %s_lam" % (a['name'], a['name']), "'%s_xi': %s_xi" % (a['name'], a['name'])] +%>\ + # -- Warm-started record sweep (delegates to tvboptim adiabatic_scan) -- + # Ramp the swept parameter, carrying each settled state into the next value; at every + # value record the declared trajectory-reduction observations of the settled rollout. + # bidirectional (up then back down) exposes hysteresis / multistability. + def _ws_observe(_r): + return _r.ys + _ws_stats = { +% for r in expl['warmstart_records']: + '${r['name']}': (lambda _a, _f=${r['call']}, _i=${r['var_idx']}: _f(_a[:, _i, :])), +% endfor +% if ws_analysis: + # Capture the settled (n_states, n_nodes) state at each value β€” the same carry the + # scan feeds to the next value β€” to seed the post-scan analysis pass below. + '_seed_state': (lambda _a: _a[-1]), +% endif + } + _ws_res = _adiabatic_scan( + _network, ${solver_class}(${solver_kwargs}), + accessor=lambda _c: _c.${path}, + low=${axis['lo']}, high=${axis['hi']}, n=kwargs.get('n_${name}', ${axis['n']}), + t=${expl['warmstart_segment']}, skip=${expl['warmstart_skip']}, dt=${dt}, bothways=${bothways}, + observe=_ws_observe, statistics=_ws_stats, + ) + _ws_p = jnp.asarray(_ws_res.p) +% if ws_analysis: + # -- Per-value analysis on the warm-start branch (seeded from the carried state) -- + # Independent per value β†’ a memory-bounded lax.map (one analysis run per point). + _ws_seed_states = jnp.asarray(_ws_res.stats['_seed_state']) # (n_values, n_states, n_nodes) +% for a in ws_analysis: +${lyapunov_map(a, path, dt, solver_class, solver_kwargs, '_ws_p', '_ws_seed_states')}\ +% endfor +% endif + return ExplorationResult( + name='${expl['name']}', + axes=[Bunch(name='${label}', explored_values=_ws_p, n=int(_ws_p.shape[0]), is_coupling=${bool(axis.get('is_coupling'))}, coupling_key=${repr(axis.get('coupling_key'))})], + observations={${', '.join(obs_pairs)}}, + observable='warmstart', dt=${dt}, n_up=int(_ws_res.n_up), strategy='warmstart', + ) +% endif +</%def>\ +## +<%def name="lyapunov_map(a, path, dt, solver_class, solver_kwargs, values_expr, seeds_expr)">\ + # ${a['name']}: Benettin QR lambda_1 / xi_i at each swept value, re-seeded from that + # value's settled state so it tracks the continued branch, not a cold start. Independent + # per value β†’ a memory-bounded lax.map (one analysis run per point); slicing the paired + # (value, seed) arrays is all an HPC shard needs. ``${values_expr}`` are the swept values + # (n_cells,); ``${seeds_expr}`` the matching settled states (n_cells, n_states, n_nodes). + _le_solve_${a['name']}, _le_cfg_${a['name']} = prepare(_network, ${solver_class}(${solver_kwargs}), t0=0.0, t1=${a['segment_time']}, dt=${dt}) + def _lyap_at_${a['name']}(_carry): + _val, _seed = _carry + _cfg = eqx.tree_at(lambda _c: _c.${path}, _le_cfg_${a['name']}, _val) + _cfg = eqx.tree_at(lambda _c: _c.initial_state.dynamics, _cfg, _seed) + return benettin_spectrum_and_vectors(_le_solve_${a['name']}, _cfg, t=${a['segment_time']}, n=${a['n_steps']}, k=${a['n_exponents']}) + _lyap_pairs_${a['name']} = (${values_expr}, ${seeds_expr}) + # Stream "<name> i/N" as each independent Lyapunov point completes (JAX-native + # jax.debug.callback per lax.map step) so a long branch does not go silent. + _exps_${a['name']}, ${a['name']}_xi = jax.lax.map( + progress_ticker(len(_lyap_pairs_${a['name']}[0]), label="${a['name']}")(_lyap_at_${a['name']}), + _lyap_pairs_${a['name']}) + ${a['name']}_lam = _exps_${a['name']}[:, 0] # leading exponent lambda_1(value) +</%def>\ +## +<%doc> +Branch-restart analysis body (from_experiment, source_point='branch') +==================================================================== +An independent exploration that restarts a per-point analysis over another experiment's +recorded branch. Each cell replays one branch point β€” its swept-parameter value and settled +state, loaded at runtime as `_BRANCH_SEED` β€” and records the analysis (Lyapunov λ₁ / ΞΎ_i). +Because the cells are independent (unlike the sequential scan that produced the branch), HPC +array tasks shard it by slicing the paired (value, seed) arrays: `shard=(i, N)` keeps cells j +where j % N == i. Reuses the exact per-point Lyapunov map (`lyapunov_map`) as the warm-start +scan's post-scan pass β€” one renderer, one runtime primitive β€” just sourcing the pairs from +the loaded branch instead of an in-process scan. +</%doc>\ +<%def name="branch_analysis_body(expl, solver_class, dt, solver_kwargs='')">\ +<% + axis = expl['axes'][0] + name = axis['name'] + label = axis.get('label', name) + path = ("coupling.%s.%s" % (axis['coupling_key'], name)) if axis.get('is_coupling') \ + else ("dynamics.%s" % name) + analyses = expl.get('warmstart_analysis') or [] + obs_pairs = [] + for a in analyses: + obs_pairs += ["'%s': %s_lam" % (a['name'], a['name']), "'%s_xi': %s_xi" % (a['name'], a['name'])] +%>\ + # -- Analysis restart over a sibling experiment's recorded branch (from_experiment: branch) -- + assert _BRANCH_SEED is not None, ( + "exploration '${expl['name']}' needs a from_experiment branch seed; run its " + "source_experiment first so its recorded branch is available") + _branch_p = jnp.asarray(_BRANCH_SEED['axis_values']) # (n_cells,) swept values + # Place each state variable's per-cell settled state into its canonical row β†’ IC batch. + # Keyed by name (never positional): sort the loaded states by their model row index. + _branch_seeds = _BRANCH_SEED['seeds'] + _rows = sorted(_branch_seeds, key=lambda _s: _STATE_INDEX[_s]) + _branch_ic = jnp.stack([jnp.asarray(_branch_seeds[_s]) for _s in _rows], axis=1) # (n_cells, n_states, n_nodes) + # Original branch position of each cell β€” preserved through sharding so the reassembled + # result reorders to the source traversal (up then down). A bidirectional branch repeats + # its swept values, so the position index (not the value) is what keeps the two hysteresis + # branches separable across shards. + _branch_idx = jnp.arange(_branch_p.shape[0]) + # HPC shard: keep this array task's slice of the branch (cells j where j % N == i). + _shard = kwargs.get('shard') + if _shard is not None: + _si, _sN = _shard + _branch_p = _branch_p[_si::_sN] + _branch_ic = _branch_ic[_si::_sN] + _branch_idx = _branch_idx[_si::_sN] +% for a in analyses: +${lyapunov_map(a, path, dt, solver_class, solver_kwargs, '_branch_p', '_branch_ic')}\ +% endfor + return ExplorationResult( + name='${expl['name']}', + # The restarted branch is a flat, ordered sequence of points, not a rectangular grid: + # index it by branch position so shard files reassemble (concat + sort by branch_point) + # losslessly even where the swept value repeats (bidirectional). cell_coords marks the + # flat 'point' layout β€” the same result whether run whole or fanned across array tasks. + axes=[Bunch(name='branch_point', explored_values=_branch_idx, n=int(_branch_idx.shape[0]))], + observations={${', '.join(obs_pairs)}}, + cell_coords={'branch_point': _branch_idx}, + observable='branch', dt=${dt}, strategy='branch', + ) +</%def>\ diff --git a/tvbo/templates/tvboptim/utils.py b/tvbo/templates/tvboptim/utils.py index bdcbfb2f0..d3d4e2f4b 100644 --- a/tvbo/templates/tvboptim/utils.py +++ b/tvbo/templates/tvboptim/utils.py @@ -23,6 +23,7 @@ """ import ast +from pathlib import Path from typing import Any, Dict, List, Optional, Set, Tuple, Union from tvbo.utils import as_list @@ -80,12 +81,14 @@ def get_param_info(parameters: dict) -> Tuple[List[str], Dict[str, float], Dict[ if isinstance(p.value, (list, tuple)): # Array-valued constant (e.g. a mode-coupling matrix): keep the nested # list; the codegen wraps it as a jnp.array, not a scalar default. - val = list(p.value) + param_defaults[p.name] = list(p.value) elif p.value is not None: - val = float(p.value) - else: - val = 1.0 - param_defaults[p.name] = val + param_defaults[p.name] = float(p.value) + # A parameter with no literal `value` is simply ABSENT from the defaults: it + # may be free, or sourced/produced (resolved from storage, never inlined). + # Emission sites supply their own fallback via `.get(name, 1.0)`; inventing one + # here instead would erase the difference between "undeclared" and "1.0" and let + # a resolved operator silently emit as a scalar. shape = getattr(p, "shape", None) if shape: param_shapes[p.name] = str(shape) @@ -321,7 +324,7 @@ def resolve_coupling_spec(coupling, coupling_key, model, coupling_inputs_info, f class_name = coupling_key.replace(" ", "").replace("-", "") base_class = "DelayedCoupling" if has_delay else "InstantaneousCoupling" - interp_kw = "interpolate_delays=True, " if (has_delay and bool(getattr(coupling, "interpolate_delays", False))) else "" + interp_kw = "history_interpolation='linear', " if (has_delay and bool(getattr(coupling, "interpolate_delays", False))) else "" # Target-state aliases (theta_i) referenced in post_expression. post_aliases_i = [] @@ -676,6 +679,278 @@ def time_argument_ms(argument: Any, default: float) -> float: return value +def _reduction_init_value(sv: Any) -> float: + """Initial scalar for an observer state (its declared value, else 0.0). + + Accumulators start at their reduction identity (0.0 for a sum); a memory state's + init is irrelevant (it is overwritten on the first step), so 0.0 is a safe default. + """ + for holder in (sv, get_attr(sv, "domain"), get_attr(sv, "distribution")): + v = get_attr(holder, "value") if holder is not None else None + if v is not None: + try: + return float(to_numeric(v)) + except Exception: + pass + return 0.0 + + +def resolve_reduction(obs: Any, experiment: Any = None) -> Optional[Dict[str, Any]]: + """Lift an observation's auxiliary ``dynamics`` into a backend-agnostic reduction. + + An observation may declare a co-integrated auxiliary ``Dynamics`` (the observer) + that computes it online as a time recurrence, instead of a post-scan ``pipeline``. + This resolves that Dynamics into clean context for the reduction partial: the + source state variable read, and for each observer state its ``init`` value, its + discrete update RHS (``equation.rhs`` with ``equation_type: recurrence``), and + whether it is an *accumulator* β€” its update references its own symbol, so its + commit is gated on the first step while its memory input is still unset (a memory + state, which does not reference itself, updates every step). The readout is the + observer ``output`` (a derived variable's RHS, or a bare final state), and any + user ``functions`` (e.g. ``wrap``) are surfaced for the printer. Returns ``None`` + when the observation declares no ``dynamics`` (the post-scan path runs). + + Every RHS is parsed to a **sympy** expression against the observer's symbolic + vocabulary (its states, its ``parameters``, the source, and the framework scalars + ``dt``/``count``; user functions become undefined ``Function``s). An observer + parameter is a named constant exactly as a model Dynamics' parameters are, scalar + or array-valued (a mesh operator, a template matrix), and binds by name in the + rendered update. That makes the analysis symbolic, + not string-based: accumulator classification is ``state_symbol in expr.free_symbols``, + and an unknown symbol (a typo) is caught here rather than surfacing as a codegen + error. The context carries sympy ``Expr`` objects; the partial renders them per + backend via ``render_expression`` (which accepts sympy directly). Returns ``None`` + when the observation declares no ``dynamics`` (the post-scan path runs). + """ + import sympy as sp + + dyn = get_attr(obs, "dynamics") + if dyn is None: + return None + src = as_list(get_attr(obs, "source")) + source = str(src[0]) if src else None + + svs = get_attr(dyn, "state_variables") + sv_pairs = list(svs.items()) if hasattr(svs, "items") else [] + sv_names = [str(n) for n, _ in sv_pairs] + + # Derived variables (per-step intermediates). Their names join the symbolic vocabulary + # so a richer observer's DV can reference an earlier DV (a detector chain, e.g. + # ``pgn = pg / nrm``); a simple observer has none and this is inert. + dvs = get_attr(dyn, "derived_variables") + dv_map = dict(dvs.items()) if hasattr(dvs, "items") else {} + dv_names = [str(n) for n in dv_map] + + # Named constants the observer's expressions bind by name β€” resolved exactly as a + # model Dynamics' parameters are (same helper), so a scalar and an array-valued + # constant (e.g. a mesh operator) declare identically and need no observer-specific + # provenance path. + from tvbo.data import param_io + + param_map = get_attr(dyn, "parameters") or {} + param_objs = (dict(param_map.items()) if hasattr(param_map, "items") + else {str(get_attr(p, "name")): p for p in param_map}) + param_names, param_values, param_shapes = get_param_info(param_map) + + # Resolve each constant to what the template emits: a literal binds inline; a + # sourced/produced one is materialised (codegen-time) to a content-addressed artifact + # and emitted as a lazy (file, key) the backend reads at run time, so a large operator + # never enters the generated source. The spec dir grounds a relative source path + # exactly as bids_dir is grounded. + # + # Materialisation runs the producer and writes to disk, so it happens ONLY when an + # experiment is supplied β€” i.e. at genuine emission. resolve_reduction is also called + # bare (no experiment) as a cheap "is this a streaming reducer?" predicate; that path + # must stay side-effect-free, so a lazy constant is left deferred (never materialised + # just to answer a boolean, and never triggering an igl precompute as a side effect). + src_file = get_attr(experiment, "_source_file", None) if experiment is not None else None + src_dir = Path(src_file).parent if src_file else None + parameters: Dict[str, Any] = {} + for n in param_names: + if n in param_values: + parameters[n] = {"value": param_values[n], "shape": param_shapes.get(n)} + elif experiment is None: + parameters[n] = {"lazy": None, "shape": param_shapes.get(n)} # deferred + else: + path, key = param_io.materialise( + param_objs[n], source_dir=src_dir, context=experiment + ) + parameters[n] = {"lazy": (str(path), key), "shape": param_shapes.get(n)} + # One symbol cannot denote both a per-step state and a fixed constant: the update + # would read whichever the renderer bound last, silently. + shadowed = sorted(set(param_names) & set(sv_names)) + if shadowed: + raise ValueError( + f"Observation reduction observer declares {shadowed} as both a state " + f"variable and a parameter; a symbol must denote one or the other." + ) + + # Symbolic vocabulary: observer states + parameters + source + framework scalars are + # Symbols; the observer's user functions are undefined Functions. Parse every RHS + # against it. + allowed = (set(sv_names) | set(param_names) | set(dv_names) + | ({source} if source else set()) | {"dt", "count"}) + loc: Dict[str, Any] = {n: sp.Symbol(n) for n in allowed} + loc["pi"] = sp.pi + funcs = get_attr(dyn, "functions") + functions: Dict[str, Any] = {} + for fname, fn in (funcs.items() if hasattr(funcs, "items") else []): + feq = get_attr(fn, "equation") + fargs = [str(get_attr(a, "name", a)) for a in as_list(get_attr(fn, "arguments"))] + frhs = get_attr(feq, "rhs") if feq is not None else None + loc[str(fname)] = sp.Function(str(fname)) + fexpr = (sp.sympify(str(frhs), locals={**{a: sp.Symbol(a) for a in fargs}, "pi": sp.pi}) + if frhs is not None else None) + functions[str(fname)] = {"args": fargs, "expr": fexpr} + + def _parse(rhs_str: str, where: str): + expr = sp.sympify(rhs_str, locals=loc) + unknown = {str(s) for s in expr.free_symbols} - allowed + if unknown: + raise ValueError( + f"Observation reduction {where}: unknown symbol(s) {sorted(unknown)}; " + f"available are the observer states {sv_names}, its parameters " + f"{param_names}, the source {source!r}, and dt/count." + ) + return expr + + states: List[Dict[str, Any]] = [] + windowed = False + for name, sv in sv_pairs: + name = str(name) + eq = get_attr(sv, "equation") + rhs = get_attr(eq, "rhs") if eq is not None else None + if rhs is None: + continue + expr = _parse(str(rhs), f"state {name!r}") + # Optional reverse recurrence: the per-step downdate removing the sample leaving a + # sliding window (the inverse of ``update``, which folds an arriving one in). Parsed + # against the same vocabulary β€” ``source`` denotes the sample being folded/removed. + # Its presence marks the observer a *windowed* reduction (add + evict + resync) + # rather than a cumulative accumulator; absent -> cumulative, unchanged. + eeq = get_attr(sv, "evict_equation") + erhs = get_attr(eeq, "rhs") if eeq is not None else None + evict = _parse(str(erhs), f"evict of state {name!r}") if erhs is not None else None + windowed = windowed or evict is not None + states.append({ + "name": name, + "init": _reduction_init_value(sv), + "update": expr, # sympy Expr β€” the printer renders it + "evict": evict, # sympy Expr (sliding-window downdate) or None + "is_accumulator": sp.Symbol(name) in expr.free_symbols, + }) + + # The derived-variable chain, resolved as sympy exprs in declaration order (a DV may + # reference earlier DVs, the source, states, and parameters). A simple observer has an + # empty chain and reads its value straight from ``output`` below; a detector observer + # computes this chain per step and the renderer emits it as sequential assignments. + derived = [] + for dname, dvobj in dv_map.items(): + deq = get_attr(dvobj, "equation") + drhs = get_attr(deq, "rhs") if deq is not None else None + if drhs is None: + continue + derived.append({"name": str(dname), "expr": _parse(str(drhs), f"derived variable {dname!r}")}) + + # Permutation-significance surrogates: a derived variable may declare a `surrogate` + # (re-evaluate a named statistic DV under permutations of a field, report the exceedance + # p-value). Resolve each to the statistic EXPANDED for its permute symbol β€” DVs that + # depend on the permuted symbol are inlined so the statistic becomes a self-contained + # function of it, while DVs that don't (a captured observed value, e.g. U w.r.t. an + # in-strength permutation) stay as symbols the renderer binds in-step. General; the wave + # detector is one consumer. + dv_expr = {d["name"]: d["expr"] for d in derived} + + def _dv_deps(expr, target, seen=frozenset()): + for s in (str(x) for x in expr.free_symbols): + if s == target: + return True + if s in dv_expr and s not in seen and _dv_deps(dv_expr[s], target, seen | {s}): + return True + return False + + def _expand_stat(stat_name, permute): + expr = dv_expr[stat_name] + for _ in range(100): + pend = {n for n in ({str(s) for s in expr.free_symbols} & set(dv_expr)) + if _dv_deps(dv_expr[n], permute)} + if not pend: + return expr + expr = expr.subs({sp.Symbol(n): dv_expr[n] for n in pend}) + raise ValueError(f"surrogate statistic {stat_name!r} expansion did not converge (cyclic derived variables?)") + + surrogates = [] + for dname, dvobj in dv_map.items(): + surr = get_attr(dvobj, "surrogate") + if surr is None: + continue + stat_name = str(get_attr(surr, "statistic")) + if stat_name not in dv_expr: + raise ValueError( + f"surrogate on derived variable {str(dname)!r} names statistic {stat_name!r}, " + f"which is not a derived variable with an equation ({sorted(dv_expr)})." + ) + permute = str(get_attr(surr, "permute")) + direction = str(get_attr(surr, "direction") or "greater_equal") + surrogates.append({ + "name": str(dname), + "expr": _expand_stat(stat_name, permute), # statistic as a function of `permute` + "permute": permute, + "perms": str(get_attr(surr, "permutations")), + "compare": ">=" if direction == "greater_equal" else "<=", + }) + + outs = as_list(get_attr(dyn, "output")) + output = None + output_name = str(outs[0]) if outs else None + if outs: + out_name = str(outs[0]) + dv = dv_map.get(out_name) + oeq = get_attr(dv, "equation") if dv is not None else None + output = (_parse(str(get_attr(oeq, "rhs")), f"output {out_name!r}") + if oeq is not None else sp.Symbol(out_name)) + + # Time-reduction statistic (Observation.aggregation). Default (anything but 'median') + # folds a running sum (the accumulator state above) and divides by count. 'median' folds + # a per-node HISTOGRAM of the per-step output (bins from Observation.histogram) into the + # carry (O(bins) memory, no trajectory) and reads the 0.5 quantile at finalize β€” the + # streaming-safe way to get the robust median instantaneous frequency Koller uses, which + # a running sum cannot compute. + statistic = "median" if str(get_attr(obs, "aggregation", None) or "mean").lower() == "median" else "mean" + hist = get_attr(obs, "histogram", None) + histogram = None + if hist is not None: + _bins = get_attr(hist, "n", None) + histogram = { + "lo": float(get_attr(hist, "lo", -5.0)), + "hi": float(get_attr(hist, "hi", 55.0)), + "bins": int(_bins) if _bins is not None else 512, + } + # A streaming median needs explicit bins spanning the reduced quantity's range; + # silently assuming a default window would clip out-of-range samples and pin the + # result to an edge. Require the histogram slot rather than guess. + if statistic == "median" and histogram is None: + raise ValueError( + f"Observation {get_attr(obs, 'name', None)!r} sets aggregation: median but declares no " + "`histogram` slot; a streaming median needs explicit bins (lo/hi/n) spanning the " + "reduced quantity's range." + ) + + return { + "source": source, + "states": states, + "derived": derived, # per-step DV chain (sympy Exprs, declaration order); [] for a simple observer + "surrogates": surrogates, # permutation-significance tests {name, expr(function of permute), permute, perms, compare}; [] if none + "output_name": output_name, # the output DV's name (stays inlined at finalize; excluded from the per-step chain) + "parameters": parameters, # {name: {value (scalar|nested list), shape}} β€” named constants + "output": output, + "functions": functions, + "statistic": statistic, # 'mean' | 'median' + "histogram": histogram, + "windowed": windowed, # True if any state declares an evict_equation (sliding window) + } + + def _literal_code(value: Any) -> str: """Render a literal constructor value as generated Python code.""" return repr(value) @@ -802,19 +1077,45 @@ def resolve_solver_kwargs(integration: Any, dt: float, is_diffrax: bool = False) Shared by the experiment and solver templates so the mapping lives in one place rather than being duplicated in both mako blocks. """ - diff = getattr(integration, "differentiation", None) if integration else None - if diff is None or is_diffrax: + if integration is None or is_diffrax: return "" kwargs = [] - tw = getattr(diff, "truncation_window", None) - if tw is not None: - kwargs.append(f"grad_horizon={int(round(float(tw) / dt))}") - ci = getattr(diff, "checkpoint_interval", None) - if ci is not None: - kwargs.append(f"block_size={int(round(float(ci) / dt))}") + # Coupling evaluation across integrator stages (backend-neutral -> native flag): + # per_stage recomputes the coupling every solver stage (accurate); per_step (the + # native default) holds it constant across stages. Only emit the non-default. + ce = getattr(integration, "coupling_evaluation", None) + if ce is not None and str(ce) == "per_stage": + kwargs.append("recompute_coupling_per_stage=True") + diff = getattr(integration, "differentiation", None) + if diff is not None: + tw = getattr(diff, "truncation_window", None) + if tw is not None: + kwargs.append(f"grad_horizon={int(round(float(tw) / dt))}") + ci = getattr(diff, "checkpoint_interval", None) + if ci is not None: + kwargs.append(f"block_size={int(round(float(ci) / dt))}") return ", ".join(kwargs) +def _analysis_solver_kwargs(solver_kwargs: str) -> str: + """Drop the differentiation-truncation kwargs from a solver-kwargs string. + + ``grad_horizon`` / ``block_size`` are truncated-BPTT knobs for the optimization + forward/backward pass; they are not part of an analysis diagnostic and break a + tangent-space (JVP) Lyapunov spectrum β€” the truncation ``stop_gradient``s the + early segment, so the initial-state perturbation never reaches the segment end + and the leading exponent collapses to ``log(0) = -inf``. The reference analysis + solves build a plain solver for the same reason. Coupling-evaluation config + (``recompute_coupling_per_stage``) is kept so the diagnostic characterises the + same trajectory as the main sim. + """ + kept = [ + tok for tok in (t.strip() for t in solver_kwargs.split(",")) if tok + and not tok.startswith(("grad_horizon=", "block_size=")) + ] + return ", ".join(kept) + + def resolve_optimizer_mode(integration: Any) -> str: """Map the backend-neutral ``integration.differentiation.mode`` onto the native optimizer differentiation mode. @@ -859,6 +1160,55 @@ def _analysis_wrt_access(wrt: List[str], coupling_keys: Set[str]) -> Optional[st return resolve_config_access(wrt[0], coupling_keys) if wrt else None +def _lr_analysis_spec(lr_obs, model, events, op_constraint, time_si_factor): + """Resolve the linear-response analysis observations (covariance / psd / fisher) into the spec + the ``lr_analysis_block`` Mako orchestrator emits β€” resolution only, no code strings. Provides + the operating-point symbol layout (:func:`linear_response_context`), each observable's + parameters, the Fisher stimulus (event β†’ per-node target ``nodes`` + a heterogeneous-variable + linearisation context), and β€” for a constraint-defined (Deco FIC) operating point β€” the + unfolded constraint expression. The template owns the structure and orchestration. + """ + from tvbo.analysis.linear_response import linear_response_context, constraint_expr + + ctx = linear_response_context(model) + obs_specs: List[Dict[str, Any]] = [] + for name, aobs in lr_obs.items(): + an = aobs.analysis + atype = str(an.type) + p = {str(k): (v.value if hasattr(v, "value") else v) + for k, v in (getattr(an, "parameters", None) or {}).items()} + if atype == "covariance": + obs_specs.append({"type": "covariance", "name": name, + "sigma": float(p.get("sigma", 0.01)), + "return": str(p.get("return", "covariance"))}) + elif atype == "psd": + obs_specs.append({"type": "psd", "name": name, + "sigma": float(p.get("sigma", 0.01)), + "f_lo": float(p.get("f_lo", 0.1)), "f_hi": float(p.get("f_hi", 50.0)), + "n_freq": int(p.get("n_freq", 128))}) + elif atype == "fisher": + _target = str(getattr(an, "target", "") or "") + ev = (events or {}).get(_target) + if ev is None: + raise ValueError( + f"fisher analysis observation '{name}' targets stimulus event '{_target}', " + f"which is not defined on this experiment (available: {sorted((events or {}).keys())}). " + f"Declare a stimulus event with that key (event_type: stimulus, target_variable, " + f"target_regions)." + ) + stim_var = str(getattr(ev, "name", None) or getattr(ev, "target_variable", None)) + obs_specs.append({"type": "fisher", "name": name, + "fisher_ctx": {**ctx, "pernode": set(ctx["pernode"]) | {stim_var}}, + "stim_var": stim_var, + "nodes": [int(x) for x in (getattr(ev, "nodes", None) or [])], + "sigma": float(p.get("sigma", 0.01)), + "dI_lo": float(p.get("dI_lo", 0.02)), "dI_hi": float(p.get("dI_hi", 0.1)), + "dI_step": float(p.get("dI_step", 0.006))}) + cexpr = constraint_expr(model, str(op_constraint["constraint_variable"])) if op_constraint else None + return {"ctx": ctx, "op_constraint": op_constraint, "constraint_expr": cexpr, + "time_scale": time_si_factor, "obs": obs_specs} + + def render_analysis_observations( analysis_obs: Dict[str, Any], coupling_keys: Set[str], @@ -866,6 +1216,11 @@ def render_analysis_observations( transient_time: float, t1_default: float, dt: float, + solver_kwargs: str = "", + model: Any = None, + time_si_factor: float = 1.0e-3, + events: Optional[Dict[str, Any]] = None, + op_constraint: Optional[Dict[str, Any]] = None, ) -> str: """Render the body of the generated ``compute_analysis_observations()`` function. @@ -874,14 +1229,37 @@ def render_analysis_observations( emitted from its declarative ``analysis`` metadata (type + target + wrt + parameters). This lives in the adapter/Python layer β€” NOT the mako template β€” so the per-type branching can be deduped/harmonized and reused across backends; - the template only interpolates the returned block. Analysis solves use a plain - ``solver_class()`` (the truncation window is an optimization knob, not part of - these diagnostics). Returns a string whose lines are indented for a function body - (4 spaces), empty string if there are no analysis observations. + the template only interpolates the returned block. Analysis solves drop the + differentiation-truncation window (an optimization knob, not part of these + diagnostics β€” see :func:`_analysis_solver_kwargs`) while keeping the coupling- + evaluation config. ``time_si_factor`` is seconds per model time unit (ms -> 1e-3); the + linear-response operating point rescales the Jacobian A to per-second with it, so every + downstream quantity (covariance, PSD in Hz, Fisher) is physical. Returns a string whose + lines are indented for a function body (4 spaces), empty string if there are no analysis + observations. """ window = f"t0=0.0 + {transient_time}, t1={transient_time} + {t1_default}, dt={dt}" + solver_kwargs = _analysis_solver_kwargs(solver_kwargs) lines: List[str] = [] + # Linear-response analysis (covariance / psd / fisher): all share ONE deterministic operating + # point, so the whole block β€” vector field, Jacobian, operating point (a noise-off settle, or a + # constraint solve for a Deco-FIC-style tuned parameter), and each observable's linear algebra β€” + # is emitted by ONE Mako orchestrator (``lr_analysis_block``): the template owns the structure + # AND its orchestration (partial choice, ordering, per-observable loop). Python only RESOLVES + # the spec (``_lr_analysis_spec``) β€” no Python string-emit of code bodies. + _LR_TYPES = {"covariance", "psd", "fisher"} + _lr_obs = {n: a for n, a in analysis_obs.items() + if str(getattr(a.analysis, "type", "") or "") in _LR_TYPES} + if _lr_obs and model is None: + lines += [f"# {n}: {str(a.analysis.type)} analysis needs the model threaded β€” skipped." + for n, a in _lr_obs.items()] + elif _lr_obs: + from tvbo import templates as _templates + _lr_tpl = _templates.lookup.get_template("_linear_response.py.mako") + _spec = _lr_analysis_spec(_lr_obs, model, events, op_constraint, time_si_factor) + lines += _lr_tpl.get_def("lr_analysis_block").render(spec=_spec).strip("\n").split("\n") + # Finite-difference observations that share the exact same per-seed computation # (same target, wrt, delta, seeds, seed_base) reuse ONE ``jax.lax.map`` β€” matching the # reference, which derives fd_mean and fd_sem from a single map β€” rather than @@ -906,6 +1284,8 @@ def _fd_signature(aobs): for name, aobs in analysis_obs.items(): an = aobs.analysis atype = str(getattr(an, "type", "") or "") + if atype in _LR_TYPES: + continue # linear-response types are emitted together by lr_analysis_block (above) params = { str(k): (v.value if hasattr(v, "value") else v) for k, v in (getattr(an, "parameters", None) or {}).items() @@ -915,24 +1295,28 @@ def _fd_signature(aobs): access = _analysis_wrt_access(wrt, coupling_keys) if atype == "lyapunov": seg = float(params["segment_time"]) - n = int(params.get("n", 10)) - k = int(params["k"]) if "k" in params else None + # Accept the declarative names (n_steps / n_exponents) and the short + # aliases (n / k). n_exponents defaults to 1 (the leading exponent). + n = int(params.get("n_steps", params.get("n", 10))) + k = int(params.get("n_exponents", params.get("k", 1))) lines += [ - "from tvboptim.experimental.network_dynamics.analysis.lyapunov import _lyapunov_spectrum_jvp", - f"# {name}: Lyapunov spectrum on a short segment solve at the current parameters", - f"_le_solve, _le_cfg = prepare(network, {solver_class}(), t0=0.0, t1={seg}, dt={dt})", + f"# {name}: Benettin QR spectrum + leading Lyapunov vector on a segment solve.", + f"# Same integrator config as the main sim (coupling_evaluation) so lambda_1", + f"# matches the trajectory it characterises. Emits the exponents and the", + f"# per-node leading-vector profile ({name}_xi, paper's xi_i).", + f"_le_solve, _le_cfg = prepare(network, {solver_class}({solver_kwargs}), t0=0.0, t1={seg}, dt={dt})", ] # Evaluate at the current operating point: sync `wrt` (e.g. the swept coupling) - # into the segment config so a G-sweep reports lambda_max(G), not lambda_max at - # the network's fixed parameters. Optional β€” omit `wrt` for a static Lyapunov. + # into the segment config so a K-sweep reports lambda_1(K), not at the network's + # fixed parameters. Optional β€” omit `wrt` for a static Lyapunov. if access: lines.append(f"_le_cfg = eqx.tree_at(lambda _c: _c.{access}, _le_cfg, state.{access})") - lines.append(f"obs.{name} = _lyapunov_spectrum_jvp(_le_solve, _le_cfg, t={seg}, n={n}, k={k})") + lines.append(f"obs.{name}, obs.{name}_xi = benettin_spectrum_and_vectors(_le_solve, _le_cfg, t={seg}, n={n}, k={k})") elif atype == "gradient": mode = params.get("mode", "reverse") lines += [ f"# {name}: full (untruncated) {mode}-mode gradient of '{target}' wrt {wrt[0]}", - f"_asolve_{name}, _ = prepare(network, {solver_class}(), {window})", + f"_asolve_{name}, _ = prepare(network, {solver_class}({solver_kwargs}), {window})", f"def _grad_of_{name}(_p):", f" _gs = eqx.tree_at(lambda _s: _s.{access}, state, _p)", f" return compute_all_observations(_asolve_{name}(_gs), _gs, result_transient).{target}", @@ -953,7 +1337,7 @@ def _fd_signature(aobs): if sig not in fd_emitted: lines += [ f"# per-seed central differences of '{target}' wrt {wrt[0]} (shared across its reductions)", - f"_asolve_{gid}, _ = prepare(network, {solver_class}(), {window})", + f"_asolve_{gid}, _ = prepare(network, {solver_class}({solver_kwargs}), {window})", f"_delta_{gid} = {delta}", f"_keys_{gid} = jax.random.split(jax.random.key({seed_base}), {seeds})", f"_g0_{gid} = state.{access}", @@ -996,52 +1380,6 @@ def render_adiabatic_signal(signal_expr: str, var_names: List[str]) -> str: return pattern.sub(lambda m: f"_r.ys[:, {index[m.group(0)]}, :]", str(signal_expr)) -def render_adiabatic_scan_body(expl: Dict[str, Any], solver_class: str, dt: float) -> str: - """Render the body of an ``adiabatic_scan`` exploration (``strategy == 'adiabatic_scan'``). - - Delegates to tvboptim's ``adiabatic_scan``: ramp the single swept parameter up then back - down, carrying the settled state between values, and record the oscillation envelope of an - observed signal (per-node temporal min/max averaged across the network, plus the mean) at - each value. The up/down branches expose hysteresis. Emitted as a Python string β€” like the - analysis diagnostics β€” so the per-strategy layout lives in one place; the result is an - ``ExplorationResult`` with one swept axis, ``env_lo``/``env_hi``/``env_mean`` observations - (the signal-agnostic envelope), and ``n_up`` (the up-branch length) so a consumer can split - the up/down branches. The swept-axis point count honours the same - ``kwargs.get('n_<axis>', ...)`` runtime override as a grid sweep. Returns 4-space-indented - lines (an exploration-function body). - """ - a = expl["adiabatic"] - axis = a["axis"] - name = axis["name"] - _label = axis.get("label", name) # dotted axis name for the ExplorationResult (== space key) - path = f"coupling.{axis['coupling_key']}.{name}" if axis.get("is_coupling") else f"dynamics.{name}" - lines = [ - "# -- Adiabatic bifurcation scan (delegates to tvboptim adiabatic_scan) --", - "# Ramp the swept parameter up then back down, carrying the settled state; record the", - "# oscillation envelope (per-node temporal min/max averaged across nodes, plus the mean)", - "# of the observed signal at each value. The up/down branches expose any hysteresis.", - "def _adia_observe(_r):", - f" return {a['signal_code']}", - '_adia_stats = {"mean": lambda _a: _a.mean(), "lo": lambda _a: _a.min(axis=0).mean(), ' - '"hi": lambda _a: _a.max(axis=0).mean()}', - "_adia_res = _adiabatic_scan(", - f" _network, {solver_class}(),", - f" accessor=lambda _c: _c.{path},", - f" low={axis['lo']}, high={axis['hi']}, n=kwargs.get('n_{name}', {axis['n']}),", - f" t={a['segment_time']}, skip={a['skip']}, dt={dt}, bothways={a['bothways']},", - " observe=_adia_observe, statistics=_adia_stats,", - ")", - "_adia_p = jnp.asarray(_adia_res.p)", - "return ExplorationResult(", - f" name='{expl['name']}',", - f" axes=[Bunch(name='{_label}', explored_values=_adia_p, n=int(_adia_p.shape[0]), " - f"is_coupling={bool(axis.get('is_coupling'))}, coupling_key={axis.get('coupling_key')!r})],", - " observations={'env_lo': jnp.asarray(_adia_res.stats['lo']), " - "'env_hi': jnp.asarray(_adia_res.stats['hi']), 'env_mean': jnp.asarray(_adia_res.stats['mean'])},", - f" observable='adiabatic', dt={dt}, n_up=int(_adia_res.n_up), strategy='adiabatic_scan',", - ")", - ] - return "\n".join(f" {ln}" for ln in lines) def render_recorded_observable( @@ -1049,6 +1387,7 @@ def render_recorded_observable( derived_names: List[str], network_obs_names: List[str], analysis_names: List[str], + only_obs: Optional[List[str]] = None, ) -> str: """Render the body of an exploration ``observable_fn`` that records a `record:` list. @@ -1063,7 +1402,14 @@ def render_recorded_observable( analysis_set = set(analysis_names) lines = ["result = _expl_model_fn(s)"] if any(n not in analysis_set for n in record_names): - lines.append("_all_obs = compute_all_observations(result, s, result_transient)") + # Restrict the per-cell computation to the recorded observations and their + # closure (passed by the caller), so non-recorded β€” possibly non-jittable β€” + # observations never execute inside this jitted observable. + if only_obs is not None: + _only_lit = "{%s}" % ", ".join(repr(n) for n in sorted(only_obs)) + lines.append(f"_all_obs = compute_all_observations(result, s, result_transient, only={_only_lit})") + else: + lines.append("_all_obs = compute_all_observations(result, s, result_transient)") if any(n in analysis_set for n in record_names): lines.append("_an_obs = compute_analysis_observations(s, _network, result_transient)") entries = [] @@ -1276,11 +1622,14 @@ def format_bounds_array(bounds: List, format: str = "jax") -> str: def is_network_observation(obs: Any) -> bool: - """Check if observation is a network observation (static data from network). - - Network observations have source starting with 'network.observations' or 'network.edges'. - The slot is multivalued; for raw network observations there is exactly - one entry. Accept both scalar and list forms. + """Check if observation is bound from data rather than the simulation state. + + True when the source starts with ``network.observations``, ``network.edges`` + (data carried by the model network), or ``dataset.subject`` (a per-subject + empirical target resolved from the dataset). All three are materialized into + a module-level constant and bound at ``run_experiment`` time via + ``_bind_network_observations``, not recorded from the solver. The slot is + multivalued; accept both scalar and list forms. """ if not obs: return False @@ -1294,7 +1643,8 @@ def is_network_observation(obs: Any) -> bool: for item in items: name = item.name if hasattr(item, "name") else item s = str(name) - if s.startswith("network.observations") or s.startswith("network.edges"): + if (s.startswith("network.observations") or s.startswith("network.edges") + or s.startswith("dataset.subject")): return True return False @@ -1812,6 +2162,13 @@ def parse_exploration(expl: Any, all_couplings: Dict, get_pipeline_output_key_fn is_coupling_param = prefix in all_couplings source_key = prefix + # ExplorationAxis.reduce: collapse this axis by a statistic in the result + # container instead of keeping it as a grid dim (statistic defaults to mean). + _reduce = getattr(axis, "reduce", None) + _reduce_stat = ( + str(getattr(_reduce, "statistic", None) or "mean") if _reduce is not None else None + ) + exp_info["axes"].append( { "name": pname, @@ -1821,6 +2178,7 @@ def parse_exploration(expl: Any, all_couplings: Dict, get_pipeline_output_key_fn "is_coupling": is_coupling_param, "coupling_key": source_key if is_coupling_param else None, "dynamics_key": source_key if not is_coupling_param and source_key else None, + "reduce": _reduce_stat, } ) @@ -1949,3 +2307,217 @@ def get_all_hyperparams(algo: Any, algorithms_dict: Dict) -> Dict: all_hp[str(getattr(hp, "name", ""))] = getattr(hp, "value", None) return all_hp + + +# --------------------------------------------------------------------------- +# Network edge references (network.weight(s)/length(s) β†’ connectome matrices) +# --------------------------------------------------------------------------- +# `weight`/`weights`/`length`/`lengths` are ergonomic shortcuts for the canonical +# `network.edges.<label>`; both resolve to a connectome matrix via Network.matrix(). +_NETWORK_EDGE_ALIASES = {"weight": "weight", "weights": "weight", + "length": "length", "lengths": "length"} + + +def edge_label(ref: Any) -> Optional[str]: + """Canonical ``Network.matrix()`` label for a network reference, else None. + + Accepts the fully-qualified form (``network.weight``, ``network.edges.length``), + the explicit ``edges.<label>`` form (any label), and the bare + ``weight(s)``/``length(s)`` shortcut. Returns None for anything that is not a + connectome-matrix reference (state variables, ``network.observations.*``, ...), + which callers route through their normal path. + """ + if not isinstance(ref, str): + return None + r = ref[len("network."):] if ref.startswith("network.") else ref + if r.startswith("edges."): + return r.split("edges.", 1)[1] or None + return _NETWORK_EDGE_ALIASES.get(r) + + +def edge_const(label: str) -> str: + """Module-constant identifier holding the embedded matrix for ``label``.""" + import re + return "_network_edge_" + re.sub(r"\W", "_", label) + + +# --------------------------------------------------------------------------- +# `network.`-scoped exploration axes sweep a live leaf of the backend graph, so +# every cell sees its own value without a Network or graph rebuild. Each entry +# below names the graph leaf carrying an attribute; adding a sweepable edge +# attribute is one entry here plus a graph leaf that holds it. +_NETWORK_EDGE_GRAPH_LEAVES = {"weight": "weights", "length": "lengths"} +_NETWORK_SCALAR_GRAPH_LEAVES = {"conduction_speed": "speed"} + + +def network_axis_leaf(ref: Any) -> Optional[str]: + """Graph leaf swept by a ``network.``-scoped exploration axis, else None. + + Accepts the canonical ``network.edges.<label>`` form and the + ``network.weight(s)``/``network.length(s)`` shortcuts (both via + ``edge_label``, so axes and observations resolve a matrix identically), plus + the network's own scalars (``network.conduction_speed``). Returns None for a + reference outside the ``network.`` scope, which callers route through the + dynamics/coupling path. + + Raises: + ValueError: the reference is ``network.``-scoped but names an attribute + with no live graph leaf to sweep β€” failing at codegen rather than + silently writing the axis into the wrong scope. + """ + if not isinstance(ref, str) or not ref.startswith("network."): + return None + attr = ref[len("network."):] + label = edge_label(ref) + if label is not None: + leaf = _NETWORK_EDGE_GRAPH_LEAVES.get(label) + if leaf is None: + raise ValueError( + f"exploration axis '{ref}': edge attribute '{label}' has no graph " + f"leaf to sweep (sweepable: " + f"{', '.join('network.edges.' + k for k in sorted(_NETWORK_EDGE_GRAPH_LEAVES))}). " + f"An edge attribute without a leaf can be referenced by an " + f"observation, but cannot be swept." + ) + return leaf + leaf = _NETWORK_SCALAR_GRAPH_LEAVES.get(attr) + if leaf is None: + raise ValueError( + f"exploration axis '{ref}': unknown network attribute '{attr}' " + f"(sweepable: " + f"{', '.join('network.' + k for k in sorted(_NETWORK_SCALAR_GRAPH_LEAVES))}, " + f"{', '.join('network.edges.' + k for k in sorted(_NETWORK_EDGE_GRAPH_LEAVES))})." + ) + return leaf + + +def collect_network_edge_arrays(experiment: Any) -> Dict[str, list]: + """Embed connectome matrices referenced by observations as ``{label: nested list}``. + + Scans every observation's ``source`` and every pipeline-step argument for a + fully-qualified ``network.weight(s)``/``length(s)`` shortcut or explicit + ``network.edges.<label>`` reference, resolving each to a dense matrix via + ``Network.matrix()``. Covers derived and non-derived observations alike so the + emitted constant serves both the observation-module source path and the + experiment-module derived resolver. Raises if a referenced matrix is absent. + """ + import numpy as np + net = get_attr(experiment, "network", None) + obs_map = get_attr(experiment, "observations", None) or {} + obs_iter = obs_map.values() if hasattr(obs_map, "values") else obs_map + arrays: Dict[str, list] = {} + + def add(val: Any) -> None: + name = val if isinstance(val, str) else get_attr(val, "name", None) + # Only fully-qualified `network.*` references embed a matrix; a bare `weight` + # would be a state variable, not the connectome. + if not isinstance(name, str) or not name.startswith("network."): + return + lab = edge_label(name) + if not lab or lab in arrays: + return + mat = net.matrix(lab) if net is not None else None + if mat is None: + raise ValueError( + f"An observation references {name} but the network has no {lab!r} " + f"matrix to embed (Network.matrix({lab!r}) is None)." + ) + arrays[lab] = np.asarray(mat, dtype=float).tolist() + + for obs in obs_iter: + for src in (get_attr(obs, "source", None) or []): + add(src) + for stage in (get_attr(obs, "pipeline", None) or []): + stage_args = get_attr(stage, "arguments", None) or {} + for arg in (stage_args.values() if hasattr(stage_args, "values") else stage_args): + add(get_attr(arg, "value", None)) + return arrays + + +# --------------------------------------------------------------------------- +# Network node references (network.positions/instrength β†’ per-node vectors) +# --------------------------------------------------------------------------- +# Node-level analogue of the edge-matrix refs above: a callable argument or an +# observer (Observation.dynamics) parameter may reference a per-node vector derived +# from the network β€” its region centroids (for mesh building) or its in-strength +# (weighted in-degree). Both embed once as a module constant, exactly like a +# connectome matrix, so any backend consumes them without a live Network object. +_NETWORK_NODE_MEASURES = ("positions", "instrength") + + +def node_label(ref: Any) -> Optional[str]: + """Canonical per-node vector name for a ``network.<measure>`` reference, else None. + + Recognises ``network.positions`` (region centroids, ``(n_nodes, 3)``) and + ``network.instrength`` (weighted in-degree, ``(n_nodes,)``). Accepts BOTH the + fully-qualified ``network.positions`` form (observation source / collect scan) + and the bare ``positions`` key that ``parse_reference`` hands ``ref_to_code`` + (it splits ``network.X`` into ``('network', 'X')``) β€” mirroring ``edge_label``, + so the emitted constant name and the resolved reference cannot disagree. + Returns None for everything else (edge matrices, state variables, + ``network.observations.*``), which callers route through their normal path. + """ + if not isinstance(ref, str): + return None + measure = ref[len("network."):] if ref.startswith("network.") else ref + return measure if measure in _NETWORK_NODE_MEASURES else None + + +def node_const(label: str) -> str: + """Module-constant identifier holding the embedded per-node vector for ``label``.""" + import re + return "_network_node_" + re.sub(r"\W", "_", label) + + +def collect_network_node_arrays(experiment: Any) -> Dict[str, list]: + """Embed per-node vectors referenced by observations as ``{measure: nested list}``. + + Scans every observation's ``source``, its pipeline-step arguments, AND its + observer (``dynamics``) parameters for a ``network.positions`` / + ``network.instrength`` reference, resolving each once against the network: + ``positions`` β†’ ``Network.node_positions()``; ``instrength`` β†’ the weighted + in-degree ``matrix('weight').sum(axis=1)`` (row sum = incoming, the TVB/Koller + convention, ``koller2024_networks.instrength_normalize``). Raises if a + referenced vector cannot be built. + """ + import numpy as np + net = get_attr(experiment, "network", None) + obs_map = get_attr(experiment, "observations", None) or {} + obs_iter = obs_map.values() if hasattr(obs_map, "values") else obs_map + arrays: Dict[str, list] = {} + + def _resolve(measure: str): + if net is None: + return None + if measure == "positions": + return np.asarray(net.node_positions(), dtype=float) + if measure == "instrength": + w = net.matrix("weight") + return np.asarray(w, dtype=float).sum(axis=1) if w is not None else None + return None + + def add(val: Any) -> None: + name = val if isinstance(val, str) else get_attr(val, "name", None) + lab = node_label(name) + if not lab or lab in arrays: + return + vec = _resolve(lab) + if vec is None: + raise ValueError( + f"An observation references network.{lab} but it cannot be built from " + f"the network (node positions absent, or Network.matrix('weight') is None)." + ) + arrays[lab] = vec.tolist() + + for obs in obs_iter: + for src in (get_attr(obs, "source", None) or []): + add(src) + for stage in (get_attr(obs, "pipeline", None) or []): + stage_args = get_attr(stage, "arguments", None) or {} + for arg in (stage_args.values() if hasattr(stage_args, "values") else stage_args): + add(get_attr(arg, "value", None)) + dyn = get_attr(obs, "dynamics", None) + pmap = (get_attr(dyn, "parameters", None) or {}) if dyn is not None else {} + for p in (pmap.values() if hasattr(pmap, "values") else pmap): + add(get_attr(p, "source", None)) + return arrays diff --git a/tvbo/templates/workflow/nextflow/main.nf.mako b/tvbo/templates/workflow/nextflow/main.nf.mako index 601895c24..417c1b7a5 100644 --- a/tvbo/templates/workflow/nextflow/main.nf.mako +++ b/tvbo/templates/workflow/nextflow/main.nf.mako @@ -23,6 +23,10 @@ process.executor = '${block["executor"]}' % if block.get("queue"): process.queue = '${block["queue"]}' % endif +## Passthrough: each option is a Nextflow process directive (e.g. clusterOptions). +% for _opt in (block.get("options") or []): +process.${_opt["name"]} = '${_opt["value"]}' +% endfor process tvbo_run { tag "${plan.experiment_key}" @@ -38,6 +42,10 @@ process tvbo_run { script: """ +## env is exported ahead of the task command (values shell-quoted in the plan). +% for _e in (block.get("env") or []): + export ${_e['name']}=${_e['value']} +% endfor % if script_relpath: python ${'${baseDir}/'}${script_relpath} \\ % for ax in axes: diff --git a/tvbo/templates/workflow/slurm/finalize.sbatch.mako b/tvbo/templates/workflow/slurm/finalize.sbatch.mako new file mode 100644 index 000000000..aa92c569b --- /dev/null +++ b/tvbo/templates/workflow/slurm/finalize.sbatch.mako @@ -0,0 +1,39 @@ +## Gather job generated by `tvbo workflow slurm`. Runs once, after the array +## completes (submitted with --dependency=afterok), reassembling the shard +## outputs into one result per experiment β€” identical to a local run. +## Inputs: plan (WorkflowPlan), block (dict = engine block), now (str). +<% +sb = block +prefix = ("singularity exec " + plan.container + " ") if plan.container else "" +%>\ +#!/bin/bash +#SBATCH --job-name=${plan.study_key}-${plan.experiment_key}-finalize +#SBATCH --ntasks=1 +#SBATCH --cpus-per-task=2 +% if sb.get("mem"): +#SBATCH --mem=${sb["mem"]} +% endif +% if sb.get("partition"): +#SBATCH --partition=${sb["partition"]} +% endif +% if sb.get("account"): +#SBATCH --account=${sb["account"]} +% endif +#SBATCH --time=02:00:00 +#SBATCH --output=logs/%x-%j.out +#SBATCH --error=logs/%x-%j.err + +set -euo pipefail +mkdir -p logs + +% for mod in (sb.get("modules") or []): +module load ${mod} +% endfor +% if sb.get("venv"): +source ${sb["venv"]}/bin/activate +% endif + +## TVBO_SHARD_DIR is exported by `tvbo workflow run` and points at this run's +## shard tree (results/<array-job-id>); fall back to scanning results/. +exec ${prefix}tvbo workflow finalize "${'${TVBO_SHARD_DIR:-results}'}" -o results \ + --stem ${result_stem} --spec spec/${plan.experiment_key}.yaml diff --git a/tvbo/templates/workflow/slurm/run.sbatch.mako b/tvbo/templates/workflow/slurm/run.sbatch.mako index c79d6c52f..9d86207e6 100644 --- a/tvbo/templates/workflow/slurm/run.sbatch.mako +++ b/tvbo/templates/workflow/slurm/run.sbatch.mako @@ -31,6 +31,10 @@ sb = block % if sb.get("mail_user"): #SBATCH --mail-user=${sb["mail_user"]} % endif +## Passthrough for any scheduler directive the typed fields don't name. +% for _opt in (sb.get("options") or []): +#SBATCH --${_opt["name"]}=${_opt["value"]} +% endfor #SBATCH --output=logs/%x-%A_%a.out #SBATCH --error=logs/%x-%A_%a.err @@ -59,12 +63,73 @@ module load ${mod} % if sb.get("venv"): source ${sb["venv"]}/bin/activate % endif +## workflow.<engine>.setup β€” verbatim shell lines for env setup the typed fields +## don't cover (e.g. `conda activate <env>`). Runs after module/venv activation. +% for _line in (sb.get("setup") or []): +${_line} +% endfor +## env is normalized to a shell-quoted [{name, value}] list in the plan builder +## (tvbo.cli._workflow._normalize_env), so values are emitted verbatim. +% for _e in (sb.get("env") or []): +export ${_e["name"]}=${_e["value"]} +% endfor +% if bundled_code: +## The recipe's custom callable/builder modules were bundled into ./code; put it +## on the path so the frozen spec's `module:` references resolve on the node. +## ${'$'}{PYTHONPATH:-} escapes the Mako ${} so bash sees a literal ${PYTHONPATH:-}, +## which keeps an unset PYTHONPATH from tripping `set -u` above. +export PYTHONPATH="code:${'$'}{PYTHONPATH:-}" +% endif <% - out_pat = plan.out_dir + "/$SLURM_ARRAY_JOB_ID/$SLURM_ARRAY_TASK_ID" + # A per-subject dataset fan-out lowers to a Slurm array indexed BY SUBJECT: each + # task resolves one subject's empirical target via `tvbo run --subject <id>` + # (mirrors the Snakemake emitter's _run_flags, which maps a dataset.active_subject + # wildcard to --subject). The generic --shard path (else branch) still serves a + # backend-vectorized sweep with no workflow-fanned axis: there each task slices + # 1/N of the vmap/pmap-ed sweep in-process, and multiple tasks each write a shard + # subdir for finalize to reassemble. A single task IS the whole run β€” write + # straight to the canonical results dir (no gather); per-subject tasks likewise + # write there, since each produces an independent sub-<id>_…_result.h5. + subject_axis = next((ax for ax in plan.workflow_axes if ax.kind == "subjects"), None) + single_task = plan.n_array_tasks == 1 + out_pat = plan.out_dir if (single_task or subject_axis) else plan.out_dir + "/$SLURM_ARRAY_JOB_ID/$SLURM_ARRAY_TASK_ID" prefix = ("singularity exec " + plan.container + " ") if plan.container else "" run_target = spec_relpath if spec_relpath else plan.run_spec %>\ +% if subject_axis: +## Per-subject dataset fan-out: one array task per subject. $SLURM_ARRAY_TASK_ID +## indexes SUBJECTS; `tvbo run --subject <id>` resolves that subject's empirical +## target (e.g. their FC) before the fit. Independent per-subject results β€” no gather. +SUBJECTS=(${" ".join(str(v) for v in subject_axis.values)}) +SUBJECT=${'$'}{SUBJECTS[$SLURM_ARRAY_TASK_ID]} +## The frozen spec's dataset.bids_root is machine-specific (the per-subject data +## tree). Override it from $TVBO_BIDS_ROOT when set, else keep the frozen value β€” +## so this kit ports to another cluster with no hand-edit: `export TVBO_BIDS_ROOT=…`. +## ${'$'}{arr[@]+"${'$'}{arr[@]}"} expands to nothing (not an error) under `set -u` +## when the array is empty. +bids_root_override=() +if [ -n "${'$'}{TVBO_BIDS_ROOT:-}" ]; then + bids_root_override=(--set "dataset.bids_root=${'$'}{TVBO_BIDS_ROOT}") +fi +## If this experiment warm-starts (initial_state.from_experiment), its source run's +## result is searched under --results-root. Point it at the source run's output via +## $TVBO_RESULTS_ROOT (e.g. the group-fit results for a per-subject warm-start); unset +## β†’ defaults to the output dir's parent. +results_root_override=() +if [ -n "${'$'}{TVBO_RESULTS_ROOT:-}" ]; then + results_root_override=(--results-root "${'$'}{TVBO_RESULTS_ROOT}") +fi +exec ${prefix}tvbo run ${run_target} \ + --backend=${plan.backend.name} \ +% if plan.experiment_selector and not spec_relpath: + --experiment="${plan.experiment_selector}" \ +% endif + ${'$'}{bids_root_override[@]+"${'$'}{bids_root_override[@]}"} \ + ${'$'}{results_root_override[@]+"${'$'}{results_root_override[@]}"} \ + --subject="${'$'}{SUBJECT}" \ + -o ${out_pat} +% else: ## Each array task runs 1/N of the sweep cells; the backend vmap/pmap-s its share. ## Prefer the self-contained frozen spec (spec/…yaml); fall back to the source recipe. exec ${prefix}tvbo run ${run_target} \ @@ -72,5 +137,6 @@ exec ${prefix}tvbo run ${run_target} \ % if plan.experiment_selector and not spec_relpath: --experiment="${plan.experiment_selector}" \ % endif - --slurm-chunk=$SLURM_ARRAY_TASK_ID/${plan.n_array_tasks} \ + --shard=$SLURM_ARRAY_TASK_ID/${plan.n_array_tasks} \ -o ${out_pat} +% endif diff --git a/tvbo/templates/workflow/snakemake/study.smk.mako b/tvbo/templates/workflow/snakemake/study.smk.mako index bee8cb6ac..bed0eb29d 100644 --- a/tvbo/templates/workflow/snakemake/study.smk.mako +++ b/tvbo/templates/workflow/snakemake/study.smk.mako @@ -1,80 +1,172 @@ ## Snakefile generated by `tvbo workflow snakemake`. -## Inputs: plan (tvbo.cli._workflow.WorkflowPlan), block (dict), now (str). +## Inputs: exp_plans (list of dicts, one per experiment), block (dict), now (str). +## Each exp_plan: {key, rule_name, spec_relpath, backend, out_dir, result_stem, +## axes (list of {name, parameter, values}), container}. <% -def _wildcard_glob(name): +def _wildcard(name): return "{" + name + "}" -def _values_for(ax): - return ", ".join(repr(v) for v in ax.values) +def _values(vals): + return ", ".join(repr(v) for v in vals) -axes = plan.workflow_axes +def _cell_out(ep): + """Per-cell output basename = exactly the file `tvbo run` writes for this cell.""" + axes = ep["axes"] + is_subject_only = len(axes) == 1 and axes[0]["parameter"] == "dataset.active_subject" + if is_subject_only: + return "sub-" + _wildcard("subject") + "_" + ep["result_stem"] + ".h5" + if axes: + return "/".join("%s=%s" % (a["name"], _wildcard(a["name"])) for a in axes) + "/" + ep["result_stem"] + ".h5" + return ep["result_stem"] + ".h5" + +def _run_flags(ep): + """Per-cell `tvbo run` flags: --subject for the dataset fan-out, --set for others. + Shell directives reference wildcards as ``{wildcards.<name>}``.""" + out = [] + for a in ep["axes"]: + wc = "{wildcards.%s}" % a["name"] + if a["parameter"] == "dataset.active_subject": + out.append("--subject=" + wc) + else: + out.append("--set=%s=%s" % (a["parameter"], wc)) + return out + +# key -> plan, so a from_experiment dependency can reference the source's output. +_ep_by_key = {ep["key"]: ep for ep in exp_plans} + +def _expand_kwargs(ep): + return ", ".join("%s=%s" % (a["name"], ep["rule_name"].upper() + "_" + a["name"].upper()) + for a in ep["axes"]) + +def _mem_mb(mem): + """'8G'/'8GB'/'512M'/'2000' -> integer megabytes (Snakemake mem_mb).""" + if not mem: + return None + s = str(mem).strip().upper().rstrip("B") + try: + if s.endswith("G"): return int(float(s[:-1]) * 1000) + if s.endswith("M"): return int(float(s[:-1])) + if s.endswith("K"): return max(1, int(float(s[:-1]) / 1000)) + return int(float(s)) + except ValueError: + return None + +def _runtime_min(t): + """'08:00:00' (HH:MM:SS) or '480' -> integer minutes (Snakemake runtime).""" + if not t: + return None + s = str(t).strip() + try: + if ":" in s: + p = [int(x) for x in s.split(":")] + if len(p) == 3: return p[0] * 60 + p[1] + (1 if p[2] else 0) + if len(p) == 2: return p[0] + (1 if p[1] else 0) + return int(float(s)) + except ValueError: + return None + +def _rule_resources(block): + """Intrinsic per-rule resources for the Snakemake job β†’ dict of {key: python-literal}. + The SLURM executor reads cpus_per_task/mem_mb/runtime; partition/account live in the + shipped profile. options[] passes through any extra resources verbatim.""" + r = {} + if block.get("cpus_per_task"): + r["cpus_per_task"] = int(block["cpus_per_task"]) + mb = _mem_mb(block.get("mem")) + if mb: + r["mem_mb"] = mb + rt = _runtime_min(block.get("time")) + if rt: + r["runtime"] = rt + for opt in (block.get("options") or []): + v = str(opt["value"]) + # numeric -> bare int; plain string -> "quoted"; anything with a quote -> repr (safely escaped) + r[opt["name"]] = int(v) if v.lstrip("-").isdigit() else ('"%s"' % v if '"' not in v else repr(v)) + return r %>\ # ------------------------------------------------------------------ # Snakefile generated by tvbo workflow snakemake β€” ${now} -# study : ${plan.study_key} -# experiment : ${plan.experiment_key} -# backend : ${plan.backend.name} -# workflow wildcards : ${plan.wildcards} -# vectorized inside backend: ${[ax.name for ax in plan.vectorize_axes]} -% if plan.overrides: -# CLI overrides applied: -% for ov in plan.overrides: -# - ${ov} -% endfor -% endif +# experiments : ${", ".join(ep["key"] for ep in exp_plans)} +# Each experiment is one rule; experiments with a dataset fan out per subject, +# explorations fan/vectorize per sweep cell, group runs are a single job. # ------------------------------------------------------------------ -% if plan.container: -container: "${plan.container}" +% if exp_plans and exp_plans[0].get("container"): +container: "${exp_plans[0]['container']}" % endif -# Sweep grids (workflow-fanned axes) --------------------------------------- -% for ax in axes: -${ax.name.upper()}_VALUES = [${_values_for(ax)}] +# Per-experiment fan-out value lists --------------------------------------- +% for ep in exp_plans: +% for ax in ep["axes"]: +${ep["rule_name"].upper()}_${ax["name"].upper()} = [${_values(ax["values"])}] +% endfor % endfor -OUT_DIR = "${plan.out_dir}".format(study="${plan.study_key}", experiment="${plan.experiment_key}") +OUT_DIR = "${exp_plans[0]['out_dir'] if exp_plans else 'results'}" rule all: input: +% for ep in exp_plans: +<% axes = ep["axes"] %>\ % if axes: expand( - f"{OUT_DIR}/${'/'.join('%s=%s' % (ax.name, _wildcard_glob(ax.name)) for ax in axes)}/result.h5", -% for ax in axes: - ${ax.name}=${ax.name.upper()}_VALUES${"," if not loop.last else ""} -% endfor - ) + f"{OUT_DIR}/${ep['key']}/${_cell_out(ep)}", +% for ax in axes: + ${ax["name"]}=${ep["rule_name"].upper()}_${ax["name"].upper()}${"," if not loop.last else ""} +% endfor + ), % else: - f"{OUT_DIR}/result.h5" + f"{OUT_DIR}/${ep['key']}/${_cell_out(ep)}", % endif +% endfor -rule ${plan.experiment_key.replace("-", "_")}: +% for ep in exp_plans: +rule ${ep["rule_name"]}: +% if ep.get("depends_on"): + # initial_state.from_experiment: the source experiment's result must exist first, + # so Snakemake orders it before this rule (its operating point seeds this run). + input: +% for _dep in ep["depends_on"]: +<% _dep_ep = _ep_by_key.get(_dep) %>\ +% if _dep_ep and _dep_ep["axes"]: + expand(f"{OUT_DIR}/${_dep}/${_cell_out(_dep_ep)}", ${_expand_kwargs(_dep_ep)}), +% elif _dep_ep: + f"{OUT_DIR}/${_dep}/${_cell_out(_dep_ep)}", +% endif +% endfor +% endif output: -% if axes: - f"{OUT_DIR}/${'/'.join('%s=%s' % (ax.name, _wildcard_glob(ax.name)) for ax in axes)}/result.h5" -% else: - f"{OUT_DIR}/result.h5" + f"{OUT_DIR}/${ep['key']}/${_cell_out(ep)}" + threads: ${block.get("cpus_per_task") or block.get("cores") or 1} +<% _res = _rule_resources(block) %>\ +% if _res: + # Intrinsic resources; the SLURM executor (via the shipped profile) turns these + # into --cpus-per-task / --mem / --time on each submitted job. + resources: +% for _k, _v in _res.items(): + ${_k}=${_v}${"" if loop.last else ","} +% endfor % endif - threads: ${block.get("cores") or 1} - retries: ${plan.retries} shell: -% if script_relpath: - "python ${script_relpath} " -% for ax in axes: - "--override=${ax.parameter}=${'{wildcards.' + ax.name + '}'} " -% endfor -% for ax in plan.vectorize_axes: - "--sweep=${ax.parameter}=${','.join(repr(v) for v in ax.values)} " +% for _line in (block.get("setup") or []): + ${repr(_line + " && ")} % endfor - "-o $(dirname {output})" -% else: - "tvbo run experiment:${plan.experiment_key} " - "--backend=${plan.backend.name} " -% for ax in axes: - "--override=${ax.parameter}=${'{wildcards.' + ax.name + '}'} " +% if context.get("bundled_code"): + ## Snakemake .format()s the shell string, so the ${PYTHONPATH:-} braces must be + ## doubled to survive as a literal (single braces are wildcard fields, e.g. {output}). + "export PYTHONPATH=code:${'$'}{{PYTHONPATH:-}} && " +% endif +% for _e in (block.get("env") or []): + "export ${_e['name']}=${_e['value']} && " % endfor -% for ax in plan.vectorize_axes: - "--sweep=${ax.parameter}=${','.join(repr(v) for v in ax.values)} " + "tvbo run ${ep['spec_relpath']} " + "--backend=${ep['backend']} " +% if ep.get("select"): + "--experiment=${ep['select']} " +% endif +% for _flag in _run_flags(ep): + "${_flag} " % endfor "-o $(dirname {output})" -% endif + +% endfor diff --git a/tvbo/templates/workflow/snakemake/tvbo-figure-rule.smk.mako b/tvbo/templates/workflow/snakemake/tvbo-figure-rule.smk.mako new file mode 100644 index 000000000..2de6a81ed --- /dev/null +++ b/tvbo/templates/workflow/snakemake/tvbo-figure-rule.smk.mako @@ -0,0 +1,71 @@ +## Figure render rules generated by tvbo.adapters.figure_workflow.emit_figure_rules. +## +## Structure only β€” all resolution (used->inputs, workflow_overrides->resources, +## mem/time unit conversion) happens in figure_workflow.py; this template just +## emits the rule skeleton from a clean context (the house codegen rule). +## +## Context: +## figures list[dict] β€” one per Figure, see keys below. +## now str β€” emit timestamp. +## include_all bool β€” prepend an aggregate `all_figures` target rule. +## +## Each figure dict: {name, rule_name, inputs (list[str], absolute container paths), +## output (str), figures_dir (str), script (str), threads (int), +## resources (dict[str, python-literal-str]), container (str|None), +## setup (list[str]), env (list[{name, value}])}. +<% +def _q(p): + """A path/string emitted as a Snakemake (python) string literal.""" + return repr(str(p)) +%>\ +# ------------------------------------------------------------------ +# Figure render rules β€” generated by tvbo workflow (figures) ${now} +# figures : ${", ".join(f["name"] for f in figures)} +# A figure's PROV `used` containers ARE its workflow inputs: each render +# rule declares the experiment result containers its layers bind to, so the +# engine schedules it after those experiments' rules (used-edge == dep-edge). +# ------------------------------------------------------------------ +% if include_all: + +rule all_figures: + input: +% for f in figures: + ${_q(f["output"])}${"," if not loop.last else ""} +% endfor +% endif + +% for f in figures: +rule ${f["rule_name"]}: +% if f["inputs"]: + # PROV used -> workflow input: the containers this figure's layers read. + input: +% for _in in f["inputs"]: + ${_q(_in)}${"," if not loop.last else ""} +% endfor +% endif + output: + ${_q(f["output"])} +% if f.get("container"): + container: + ${_q(f["container"])} +% endif + threads: ${f["threads"]} +% if f.get("resources"): + # Merged from figure.workflow_overrides over the study-level workflow; the + # SLURM executor turns these into --cpus-per-task / --mem / --time / etc. + resources: +% for _k, _v in f["resources"].items(): + ${_k}=${_v}${"" if loop.last else ","} +% endfor +% endif + shell: +% for _line in (f.get("setup") or []): + ${repr(_line + " && ")} +% endfor +% for _e in (f.get("env") or []): + "export ${_e['name']}=${_e['value']} && " +% endfor + "mkdir -p ${f['figures_dir']} && " + "python ${f['script']}" + +% endfor diff --git a/tvbo/utils/__init__.py b/tvbo/utils/__init__.py index cdfa0180f..27f1b59d3 100644 --- a/tvbo/utils/__init__.py +++ b/tvbo/utils/__init__.py @@ -47,6 +47,114 @@ def domain_enforcement(domain) -> str: return str(enf).rsplit(".", 1)[-1] +def register_recipe_code_paths(source_file, code_source=None) -> list: + """Make a recipe's callable code importable β€” the ``code/`` convention, or a + declared :class:`CodeSource` (a local directory or a git repository). + + A recipe references custom builders and analysis callables by bare module + name (e.g. ``module: taher2019_analysis``); their directory must be on + ``sys.path`` for ``import`` to resolve them. Resolution: + + 1. **Explicit ``code_source``** (a ``CodeSource`` or dict on the study) β€” + decouples the specification from where its code lives: + * ``path`` β€” a directory (relative to the recipe YAML, or absolute); or + * ``git`` β€” a repository shallow-cloned and cached under + ``~/.cache/tvbo/code_sources/<url+ref hash>``, checked out at ``ref``. + An optional ``subdir`` narrows which directory of the source is used. + 2. **Convention** (no ``code_source``) β€” the ``code/`` subdir beside the + recipe YAML. + + Registering at load time, once and left in place (callables resolve lazily + during a run), lets ``tvbo run`` / ``tvbo workflow`` and notebooks load a + recipe without a ``PYTHONPATH`` prefix. The dir goes to the front of + ``sys.path`` (matching ``PYTHONPATH``) and is skipped when already present. + Returns the paths newly inserted. + """ + import sys + from pathlib import Path + + entries = [] + if code_source is not None: + resolved = _resolve_code_source(code_source, source_file) + if resolved: + entries = [str(resolved)] + if not entries and source_file: # no (or empty) code_source -> code/ convention + code_dir = Path(source_file).resolve().parent / "code" + if code_dir.is_dir(): + entries = [str(code_dir)] + + inserted = [] + for entry in entries: + if entry not in sys.path: + sys.path.insert(0, entry) + inserted.append(entry) + return inserted + + +def _resolve_code_source(code_source, source_file): + """Resolve a ``CodeSource`` (local ``path`` or ``git`` repo) to a directory on + disk, applying an optional ``subdir``. ``path``/``git`` are mutually exclusive. + """ + from pathlib import Path + + get = code_source.get if isinstance(code_source, dict) else (lambda k: getattr(code_source, k, None)) + path, git, ref, subdir = get("path"), get("git"), get("ref"), get("subdir") + if path and git: + raise ValueError("CodeSource: 'path' and 'git' are mutually exclusive") + if git: + base = _fetch_git_code_source(git, ref) + elif path: + base = Path(path) + if not base.is_absolute(): + if not source_file: + raise ValueError(f"CodeSource: relative path {path!r} needs a recipe file to anchor to") + base = Path(source_file).resolve().parent / base + else: + return None + resolved = (Path(base) / subdir if subdir else Path(base)).resolve() + if not resolved.is_dir(): + raise FileNotFoundError(f"CodeSource resolved to a non-directory: {resolved}") + return resolved + + +def _fetch_git_code_source(url, ref=None): + """Shallow-clone (and cache) a git code source; return the local clone dir. + + Cached by ``sha1(url@ref)`` under ``$TVBO_CACHE`` (default ``~/.cache/tvbo``) + so a re-run reuses the clone. A branch/tag uses ``--branch``; a bare commit + (which ``--branch`` rejects) falls back to a full clone + ``checkout``. The + cache is never refreshed, so a **mutable ref (branch) is pinned to its + first-clone state** β€” pin a tag or commit for reproducibility, or delete the + cache dir to re-fetch. + """ + import hashlib, os, shutil, subprocess + from pathlib import Path + + key = hashlib.sha1(f"{url}@{ref or 'HEAD'}".encode(), usedforsecurity=False).hexdigest()[:16] + cache = Path(os.environ.get("TVBO_CACHE", Path.home() / ".cache" / "tvbo")) / "code_sources" / key + if (cache / ".git").is_dir(): + return cache + shutil.rmtree(cache, ignore_errors=True) # clear any partial/corrupt leftover + cache.parent.mkdir(parents=True, exist_ok=True) + cmd = ["git", "clone", "--depth", "1"] + (["--branch", ref] if ref else []) + [url, str(cache)] + try: + subprocess.run(cmd, check=True, capture_output=True, text=True) + return cache + except FileNotFoundError as e: + raise RuntimeError(f"CodeSource git fetch needs `git` on PATH ({url})") from e + except subprocess.CalledProcessError as e: + shutil.rmtree(cache, ignore_errors=True) + if not ref: + raise RuntimeError(f"CodeSource git fetch failed ({url}): {e.stderr}") from e + try: # ref may be a bare commit β€” clone then checkout + subprocess.run(["git", "clone", url, str(cache)], check=True, capture_output=True, text=True) + subprocess.run(["git", "-C", str(cache), "checkout", ref], check=True, capture_output=True, text=True) + return cache + except subprocess.CalledProcessError as e2: + shutil.rmtree(cache, ignore_errors=True) + raise RuntimeError(f"CodeSource git fetch failed ({url}@{ref}): {e2.stderr}") from e2 + + def as_list(obj) -> list: """Normalize a keyed-dict-or-list collection to a list of its members. @@ -61,6 +169,12 @@ def as_list(obj) -> list: return list(obj) +def sanitize_name(name) -> str: + """Sanitise a name into a filesystem- and rule-safe token (keep alnum, ``_``, ``-``).""" + import re + return re.sub(r"[^0-9A-Za-z_-]+", "_", str(name)) + + def is_array_valued(value) -> bool: """Return True if a parameter value is an array constant rather than a scalar. diff --git a/tvbo/utils/report.py b/tvbo/utils/report.py index e2bb787f7..159fa75a1 100644 --- a/tvbo/utils/report.py +++ b/tvbo/utils/report.py @@ -19,6 +19,7 @@ """ import operator +import re from typing import Any, Sequence import pandas as pd @@ -27,20 +28,45 @@ _EMPTY_MARKERS = {"", "β€”", "-", "None", "nan"} +_MATHRM_RE = re.compile(r"\\mathrm\{([^}]*)\}") +_CMD_RE = re.compile(r"\\[a-zA-Z]+") +_MARKUP_RE = re.compile(r"[{}\\_^$]") + + +def _visual_width(cell: Any) -> int: + """Approximate the *rendered* character width of a markdown/LaTeX cell. + + A cell like ``$\\mathrm{s}$`` renders as a single ``s``, so its raw source + length badly over-states how wide it is on the page. This strips the math + delimiters, ``\\mathrm`` wrappers and control sequences so column sizing + tracks what the reader sees, not the LaTeX source length. + """ + s = _MATHRM_RE.sub(r"\1", str(cell)) + s = _CMD_RE.sub("x", s) + s = _MARKUP_RE.sub("", s) + return max(len(s.strip()), 1) + def md_table( headers: Sequence[str], rows: Sequence[Sequence[Any]], aligns: Sequence[str] | None = None, - empty: str = "β€”", + empty: str = "", + col_cap: int = 44, ) -> str: """Render a GitHub-markdown table, omitting columns with no data. A column is dropped when every one of its data cells is empty (blank, ``None``, or one of the placeholder markers). Kept columns render their - empty cells as ``empty``. This keeps auto-generated report tables narrow: - a parameter set with no ``default``/``domain``/``flags`` values shows only - the columns that carry information. + empty cells as ``empty`` (blank by default β€” no ``β€”`` placeholder). This + keeps auto-generated report tables narrow: a parameter set with no + ``default``/``domain``/``flags`` values shows only the columns that carry + information. + + When only a single column survives the drop, the result is **not** a table + but a plain-text comma-separated list of that column's values β€” a lone + ``| Term |`` / ``| c_grid |`` table reads as clutter, so it collapses to + ``c_grid``. The caller's section header supplies the context. Args: headers: Column titles. @@ -49,7 +75,8 @@ def md_table( empty: Placeholder rendered for an empty cell in a kept column. Returns: - The markdown table as a string (header, rule, and body rows). + The markdown table as a string (header, rule, and body rows), or a + plain-text list when a single column remains. """ n = len(headers) norm = [[("" if c is None else str(c)).strip() for c in row] for row in rows] @@ -58,11 +85,31 @@ def _blank(cell: str) -> bool: return cell in _EMPTY_MARKERS keep = [j for j in range(n) if any(not _blank(r[j]) for r in norm)] if norm else list(range(n)) + + # A single surviving column is a list, not a table: emit plain text. + if norm and len(keep) == 1: + j = keep[0] + return ", ".join(r[j] for r in norm if not _blank(r[j])) + aligns = list(aligns) if aligns else ["l"] * n - rule = {"l": ":---", "r": "---:", "c": ":--:"} + + # Size each kept column's separator to its (capped) rendered content width, so + # pandoc/LaTeX allocates PDF column widths *proportional to content* instead of + # equally: a lone name column no longer hogs space while a long description is + # squished. Columns under `col_cap` keep their natural width (headers/short cells + # never wrap); only over-long cells are capped so they can't starve the rest. + def _sep(j): + widths = [_visual_width(headers[j])] + [_visual_width(r[j]) for r in norm] + width = max(3, min(max(widths), col_cap)) + a = aligns[j] if j < len(aligns) else "l" + if a == "r": + return "-" * (width - 1) + ":" + if a == "c": + return ":" + "-" * (width - 2) + ":" + return ":" + "-" * (width - 1) head = "| " + " | ".join(headers[j] for j in keep) + " |" - sep = "|" + "|".join(rule.get(aligns[j], ":---") for j in keep) + "|" + sep = "|" + "|".join(_sep(j) for j in keep) + "|" body = "\n".join( "| " + " | ".join((r[j] if not _blank(r[j]) else empty) for j in keep) + " |" for r in norm @@ -85,6 +132,32 @@ def present(value): return value not in (None, "", [], {}) +def format_number(value, decimals=4): + """APA-style numeric formatting for report-table cells. + + Rounds to at most ``decimals`` decimal places and strips trailing zeros, so raw + floats render publication-clean β€” ``0.8333333333`` β†’ ``0.8333``, + ``314.1592653589793`` β†’ ``314.1593``, ``40000.0`` β†’ ``40000``, ``0.0`` β†’ ``0`` β€” + while very large or very small magnitudes fall back to scientific notation + (``1e-06``). Non-numeric values (strings, symbolic expressions, arrays) and + booleans pass through unchanged. + """ + if isinstance(value, bool): + return value + try: + x = float(value) + except (TypeError, ValueError): + return value + if x != x or x in (float("inf"), float("-inf")): # nan / inf + return value + if x == 0: + return "0" + if abs(x) >= 1e6 or abs(x) < 10.0 ** (-decimals): + mant, _, exp = f"{x:.{decimals}e}".partition("e") + return f"{mant.rstrip('0').rstrip('.')}e{int(exp):+d}" + return f"{x:.{decimals}f}".rstrip("0").rstrip(".") + + def name_items(collection): """Yield ``(name, obj)`` pairs from a name-keyed dict, list, or ``None``.""" if not collection: @@ -100,7 +173,7 @@ def unit_text(unit): from tvbo.utils.units import unit_to_latex unit_ltx = unit_to_latex(unit) if unit else "" - return "$" + unit_ltx + "$" if unit_ltx else "β€”" + return "$" + unit_ltx + "$" if unit_ltx else "" def range_text(range_obj): @@ -109,15 +182,15 @@ def range_text(range_obj): return "" values = slot(range_obj, "explored_values", None) if values: - values = [str(v) for v in values] + values = [str(format_number(v)) for v in values] return "{" + ", ".join(values[:8]) + ("..." if len(values) > 8 else "") + "}" lo, hi = slot(range_obj, "lo"), slot(range_obj, "hi") step, n_points = slot(range_obj, "step"), slot(range_obj, "n") parts = [] if lo is not None or hi is not None: - parts.append(f"[{lo if lo is not None else '-inf'}, {hi if hi is not None else 'inf'}]") + parts.append(f"[{format_number(lo) if lo is not None else '-inf'}, {format_number(hi) if hi is not None else 'inf'}]") if step is not None: - parts.append(f"step={step}") + parts.append(f"step={format_number(step)}") if n_points is not None: parts.append(f"n={n_points}") if slot(range_obj, "log_scale", False): @@ -154,7 +227,7 @@ def metadata_text(obj): bits.append(f"enforce={enf}") if present(slot(obj, "distribution")): bits.append(distribution_text(slot(obj, "distribution"))) - return "; ".join(bit for bit in bits if bit) or "β€”" + return "; ".join(bit for bit in bits if bit) or "" def flag_text(obj, flags=None): @@ -168,14 +241,14 @@ def flag_text(obj, flags=None): """ flags = _PARAM_FLAGS if flags is None else flags labels = [label for name, label in flags if slot(obj, name, False)] - for attr, key in (("shape", "shape"), ("dataset_path", "data"), ("reported_optimum", "optimum")): + for attr, key in (("shape", "shape"), ("source", "data"), ("reported_optimum", "optimum")): val = slot(obj, attr) if val is None or val == "": continue if attr == "shape" and not any(ch.isdigit() for ch in str(val)): continue labels.append(f"{key}={val}") - return ", ".join(labels) or "β€”" + return ", ".join(labels) or "" _STATE_VAR_FLAGS = [("coupling_variable", "coupling"), ("stimulation_variable", "stimulation"), ("record", "recorded")] @@ -187,7 +260,7 @@ def state_variable_table(svars): from sympy import Symbol, latex rows = [ - [f"${latex(Symbol(name))}$", slot(sv, "initial_value", ""), unit_text(slot(sv, "unit")), + [f"${latex(Symbol(name))}$", format_number(slot(sv, "initial_value", "")), unit_text(slot(sv, "unit")), f"{slot(sv, 'equation_type', 'differential')} (order {slot(sv, 'equation_order', 1)})", metadata_text(sv), flag_text(sv, _STATE_VAR_FLAGS), slot(sv, "description", "") or slot(sv, "definition", "") or ""] @@ -219,7 +292,7 @@ def _name(name): return f"${latex(Symbol(name))}$" if symbolic else str(name) rows = [ - [_name(name), slot(p, "value", ""), slot(p, "default", ""), unit_text(slot(p, "unit")), + [_name(name), format_number(slot(p, "value", "")), format_number(slot(p, "default", "")), unit_text(slot(p, "unit")), metadata_text(p), flag_text(p, flags), slot(p, "description", "") or slot(p, "definition", "") or ""] for name, p in name_items(collection) @@ -233,6 +306,58 @@ def parameter_table(params): return param_table(params, name_header="Parameter") +def model_delta(model, baseline): + """Names of what *model* adds or changes relative to *baseline*. + + Compares two related models (e.g. a controlled variant against its + uncontrolled base) and returns the subsets that are new or redefined, so a + report can render only the **delta** instead of repeating every shared state + variable, parameter, derived variable and coupling input. + + Returns a :class:`~types.SimpleNamespace` with: + + - ``eq_svars`` β€” state variables whose *equation* is new or changed (shown + in *State Equations*). + - ``new_svars`` β€” state variables absent from the baseline (shown in the + *State Variables* table; a merely re-tuned equation is not a new variable). + - ``dvars`` β€” derived variables that are new or redefined. + - ``params`` β€” parameters that are new or whose value/equation changed. + - ``coupling_inputs`` β€” coupling inputs absent from the baseline. + - ``base_label`` β€” a human label for the baseline, for the "relative to" note. + """ + from types import SimpleNamespace + + def _keyed(coll): + if not coll: + return {} + if hasattr(coll, "items"): + return dict(coll.items()) + return {slot(v, "name", i): v for i, v in enumerate(coll)} + + b_eqs, m_eqs = baseline.get_equations(), model.get_equations() + + def _rhs(eqs, key): + eq = eqs.get(key) + return str(getattr(eq, "rhs", eq)) + + def _psig(p): + return (str(slot(p, "value", "")), str(slot(slot(p, "equation"), "rhs", ""))) + + b_sv, m_sv = _keyed(slot(baseline, "state_variables", {})), _keyed(slot(model, "state_variables", {})) + b_dv, m_dv = _keyed(slot(baseline, "derived_variables", {})), _keyed(slot(model, "derived_variables", {})) + b_p, m_p = _keyed(slot(baseline, "parameters", {})), _keyed(slot(model, "parameters", {})) + b_ci = set(_keyed(slot(baseline, "coupling_inputs", {}))) + + return SimpleNamespace( + eq_svars={k for k in m_sv if k not in b_sv or _rhs(m_eqs, k) != _rhs(b_eqs, k)}, + new_svars={k for k in m_sv if k not in b_sv}, + dvars={k for k in m_dv if k not in b_dv or _rhs(m_eqs, k) != _rhs(b_eqs, k)}, + params={k for k, p in m_p.items() if k not in b_p or _psig(p) != _psig(b_p[k])}, + coupling_inputs={k for k in _keyed(slot(model, "coupling_inputs", {})) if k not in b_ci}, + base_label=slot(baseline, "label", None) or slot(baseline, "name", "the base model"), + ) + + def parameter_report(param_setting, decimals=3, format="latex", **kwargs): """ Generate a report of parameter settings. diff --git a/uv.lock b/uv.lock index 68cc034f8..524ad6a26 100644 --- a/uv.lock +++ b/uv.lock @@ -1648,6 +1648,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, ] +[[package]] +name = "h5netcdf" +version = "1.8.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ef/03/92d6cc02c0055158167255980461155d6e17f1c4143c03f8bcc18d3e3f3a/h5netcdf-1.8.1.tar.gz", hash = "sha256:9b396a4cc346050fc1a4df8523bc1853681ec3544e0449027ae397cb953c7a16", size = 78679, upload-time = "2026-01-23T07:35:31.233Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b1/8b/88f16936a8e8070a83d36239555227ecd91728f9ef222c5382cda07e0fd6/h5netcdf-1.8.1-py3-none-any.whl", hash = "sha256:a76ed7cfc9b8a8908ea7057c4e57e27307acff1049b7f5ed52db6c2247636879", size = 62915, upload-time = "2026-01-23T07:35:30.195Z" }, +] + [[package]] name = "h5py" version = "3.15.1" @@ -6241,6 +6254,7 @@ dependencies = [ { name = "black" }, { name = "bsplot" }, { name = "equinox" }, + { name = "h5netcdf" }, { name = "h5py" }, { name = "jax" }, { name = "jsonschema" }, @@ -6371,6 +6385,7 @@ requires-dist = [ { name = "fuzzywuzzy", marker = "extra == 'knowledge'", specifier = ">=0.18.0" }, { name = "goatools", marker = "extra == 'all'", specifier = ">=1.4.12" }, { name = "goatools", marker = "extra == 'knowledge'", specifier = ">=1.4.12" }, + { name = "h5netcdf", specifier = ">=1.3" }, { name = "h5py", specifier = ">=3.12.1" }, { name = "jax", specifier = ">=0.4.28" }, { name = "jsonschema", specifier = ">=4.0.0" },