Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
113 commits
Select commit Hold shift + click to select a range
0b529dd
Port scale-aware inference and LOT batch correction to modular-viscy-…
Soorya19Pradeep May 14, 2026
5e6407a
Add visualization script for TripletDataModule scale-aware rescaling
Soorya19Pradeep May 14, 2026
378a4ac
fix(viscy-data): handle nested timepoint_statistics in _collate_norm_…
edyoshikun Jun 29, 2026
19a3301
feat(viscy-data): add Z-reduction and focus-centered z_range to Tripl…
edyoshikun Jun 29, 2026
365fc42
docs(dynaclr): triplet inference DAG + sample 2D-from-3D predict config
edyoshikun Jun 29, 2026
dc39073
docs(dynaclr): add triplet z-projection dataloader inspection script
edyoshikun Jun 29, 2026
a14a0ac
Potential fix for pull request finding
edyoshikun Jun 29, 2026
52c72a1
Potential fix for pull request finding
edyoshikun Jun 29, 2026
6d320ae
Potential fix for pull request finding
edyoshikun Jun 29, 2026
2a1b327
Potential fix for pull request finding
edyoshikun Jun 29, 2026
dbe22f2
Potential fix for pull request finding
edyoshikun Jun 29, 2026
4a2de14
Potential fix for pull request finding
edyoshikun Jun 29, 2026
5b81c2c
fix(viscy-data): address triplet z-reduction/rescaling review findings
edyoshikun Jun 30, 2026
c7f8a16
CLI to split ann data by a column to group by
edyoshikun Jul 6, 2026
b39205f
perf(viscy-utils): GPU-accelerate MMD via PyTorch
Soorya19Pradeep Jul 10, 2026
f85cc7e
feat(viscy-utils): add MMD witness function
Soorya19Pradeep Jul 10, 2026
fa09832
feat(dynaclr): add MMD-witness weak-label source for linear classifiers
edyoshikun Jul 14, 2026
c9d67ec
test(dynaclr): cover MMD-witness weak labeling for linear classifiers
edyoshikun Jul 14, 2026
c643e95
config(dynaclr): add witness-labeled LC recipe for infectomics
edyoshikun Jul 14, 2026
bfc1936
docs(dynaclr): witness-score LC DAG with flow diagrams and mock plots
edyoshikun Jul 14, 2026
361a8a5
fix(dynaclr): evaluate witness LC against ground-truth annotations
edyoshikun Jul 14, 2026
1d8bffa
config(dynaclr): add eval_against to witness LC recipe
edyoshikun Jul 14, 2026
1af4f03
docs(dynaclr): reflect annotation-based eval in witness DAG + visuals
edyoshikun Jul 14, 2026
faf741d
feat(dynaclr): add witness gating diagnostic page to LC summary PDF
edyoshikun Jul 15, 2026
0a17c20
feat(dynaclr): filter-based witness references + annotation-scored eval
edyoshikun Jul 15, 2026
b6015a9
fix(dynaclr): witness ROC/F1 plots use annotation-scored eval, not wi…
edyoshikun Jul 15, 2026
401a38a
feat(dynaclr): per-marker eval target for witness classifiers
edyoshikun Jul 15, 2026
b769bc0
feat(dynaclr): witness-GMM annotations replace the witness label source
edyoshikun Jul 17, 2026
d01e749
chore(dynaclr): untrack mock DAG visuals
edyoshikun Jul 17, 2026
68f3543
refactor(mmd): debloat MMD utilities
edyoshikun Jul 17, 2026
a3d7a5f
fix(triplet): reject non-positive pixel size in rescaling
edyoshikun Jul 17, 2026
9b0a114
fix(data): clear error when batch mixes FOV timepoint stats
edyoshikun Jul 17, 2026
4c6aa9f
fix(triplet): pre-resolve timepoint_statistics norm_meta to sample t
edyoshikun Jul 17, 2026
4a28b20
refactor(triplet): lazy-import viscy_transforms in rescale/z_reduction
edyoshikun Jul 17, 2026
7fa02de
feat(dynaclr): per-marker embedding-consistency QC (MMD + correlation…
edyoshikun Jul 22, 2026
10bea7b
docs(dynaclr): gate-free witness reference default + rationale
edyoshikun Jul 22, 2026
6306aa3
chore(ruff): ignore D and E501 under scripts/
edyoshikun Jul 22, 2026
06f6655
feat(dynaclr): occlusion-attribution report script for classifier eval
edyoshikun Jul 22, 2026
8549598
feat(dynaclr): add clustering PoP eval configs (infection/remodel/vel…
edyoshikun Jul 22, 2026
5b18944
feat(dynaclr): add embedding clustering proof-of-principle scripts
edyoshikun Jul 22, 2026
7cf6674
feat(dynaclr): MMD significance gate before witness-GMM labeling
edyoshikun Jul 22, 2026
f86b9e5
feat(dynaclr): add canonical per-marker prediction paths
edyoshikun Jul 22, 2026
b28e38a
feat(dynaclr): evaluate reusable dataset-scoped embeddings
edyoshikun Jul 22, 2026
85374c6
feat(dynaclr): add train-predict-eval model matrix launcher
edyoshikun Jul 22, 2026
cd03f60
config(dynaclr): add organelle-box remodeling matrix
edyoshikun Jul 22, 2026
1650293
feat(data): support parquet focus planes and cell-level splits
edyoshikun Jul 22, 2026
576c124
config(dynaclr): add Zuben gut preparation and training recipes
edyoshikun Jul 22, 2026
8192d75
docs(dynaclr): document run-once eval-many pipeline
edyoshikun Jul 22, 2026
111af49
feat(dynaclr): Benjamini-Yekutieli FDR control for the MMD significan…
edyoshikun Jul 22, 2026
87763f9
feat(viscy-utils): model-agnostic visualization module (occlusion + P…
edyoshikun Jul 22, 2026
1ac6b49
feat(dynaclr): expose occluder fill in occlusion report CONFIG
edyoshikun Jul 22, 2026
32bf4f0
Revert "config(dynaclr): add Zuben gut preparation and training recipes"
edyoshikun Jul 23, 2026
a405e30
Revert "feat(data): support parquet focus planes and cell-level splits"
edyoshikun Jul 23, 2026
6ac217e
qc for the embeddings via pearson and mmd
edyoshikun Jul 23, 2026
1897b8f
plotting for mmd
edyoshikun Jul 23, 2026
214b398
markdown cleanup
edyoshikun Jul 23, 2026
0396452
cleanp the markdowns dags
edyoshikun Jul 23, 2026
55b559d
feat(dynaclr): witness-GMM label provenance + diagnostic hardening
edyoshikun Jul 23, 2026
7fe82c1
remove eval matrix from gitignore
edyoshikun Jul 24, 2026
7498c50
feat(dynaclr): time-matched MMD-vs-HPI diagnostic for witness-GMM
edyoshikun Jul 24, 2026
f6018f9
feat(dynaclr): control-anchored gate for weak-channel witness labels
edyoshikun Jul 24, 2026
a63d374
fix(dynaclr): make LOT MMD comparisons consistent
edyoshikun Jul 24, 2026
13bb401
fix(dynaclr): repeat marker options in batch prediction
edyoshikun Jul 24, 2026
c854754
fix(dynaclr): forward matrix prediction settings
edyoshikun Jul 24, 2026
7f3ceca
fix(viscy-data): resize rescaled patches exactly
edyoshikun Jul 27, 2026
b9952de
fix(dynaclr): make LOT output replacement safe
edyoshikun Jul 27, 2026
89c17a0
refactor(viscy-utils): unify LC train/val split behind one helper
edyoshikun Jul 27, 2026
eb970dc
feat(dynaclr): witness-GMM phase-classifier configs + driver
edyoshikun Jul 27, 2026
5ff2c28
feat(dynaclr): witness-GMM diagnostic plots (AUROC, prob grids, %-rem…
edyoshikun Jul 27, 2026
7b03e1b
fix(data): normalize MIP depth across z sampling
edyoshikun Jul 28, 2026
d89f9ed
feat(dynaclr): nest embedding zarrs under {ckpt}/embeddings/
edyoshikun Jul 28, 2026
37e3312
feat(dynaclr): predict-triplet foundation models, focus-centered Z, o…
edyoshikun Jul 28, 2026
1fd4def
feat(dynaclr): matrix foundation rows + skip-existing progressive col…
edyoshikun Jul 28, 2026
1c6455d
feat(dynaclr): organelle_remodeling collection + DynaCLR/MorphEm matrix
edyoshikun Jul 28, 2026
f676a9a
docs(dynaclr): un-defer 04_21 in organelle_remodeling collection desc…
edyoshikun Jul 28, 2026
655a18f
feat(qc): audit_focus_slice — flag suspect focus detections (Z-aware)
edyoshikun Jul 28, 2026
3f2a500
fix(dynaclr): iter_embeddings glob missing embeddings/ segment
edyoshikun Jul 31, 2026
3ec6934
feat(dynaclr): embedding-consistency-qc v1/v2 split, Fréchet, HPI poo…
edyoshikun Jul 31, 2026
7aa2c3d
feat(dynaclr): microscope field + mock→uninfected on organelle collec…
edyoshikun Jul 31, 2026
e3fd8f7
fix(dynaclr): fixed Pearson-r heatmap scale (vmin=0.8) across markers
edyoshikun Jul 31, 2026
d3af40e
feat(viscy-utils): per-plate HPI-binned control-reference normalization
edyoshikun Aug 3, 2026
13d0547
docs(viscy-utils): when to use control-reference normalization
edyoshikun Aug 4, 2026
8ea80b7
feat(dynaclr): optional control-reference normalization in linear cla…
edyoshikun Aug 4, 2026
79a2634
Revert "docs(viscy-utils): when to use control-reference normalization"
edyoshikun Aug 4, 2026
f719022
feat(dynaclr): expand organelle remodeling matrix
edyoshikun Aug 7, 2026
2abcc52
feat(dynaclr): normalize biological MMD representations
edyoshikun Aug 12, 2026
2150116
feat(dynaclr): persist normalized PCA representations
edyoshikun Aug 12, 2026
c7c889d
docs(dynaclr): clarify pooled PCA balancing
edyoshikun Aug 13, 2026
d719a66
feat(dynaclr): promote pooled witness TCN stack
edyoshikun Aug 13, 2026
3c17cb9
feat(dynaclr): normalize embeddings in model matrix
edyoshikun Aug 13, 2026
57b9616
feat(dynaclr): expand organelle matrix evaluation
edyoshikun Aug 18, 2026
b8beff7
feat(dynaclr): add systematic infection controls
edyoshikun Aug 19, 2026
242466d
research(protocol): test CELL-DINO RoPE history shortcuts
edyoshikun Aug 28, 2026
7f77932
research(eval): add RoPE history shortcut interventions
edyoshikun Aug 28, 2026
5a62aaa
fix(eval): tolerate FP32 RoPE replay drift
edyoshikun Aug 28, 2026
03ca826
feat(dynaclr): add CP-DINO cell phenotyping pipeline
edyoshikun Oct 7, 2026
8a5d6fa
research(dynaclr): add pooled ZIKV pAL17 witness/GMM teacher
edyoshikun Oct 14, 2026
5653477
research(dynaclr): add direct-pAL lineage onset alignment
edyoshikun Oct 14, 2026
f966ca8
research(dynaclr): add pAL alignment QC and per-dataset audit
edyoshikun Oct 14, 2026
0647928
research(dynaclr): add pAL-aligned pseudotime figure scripts
edyoshikun Oct 14, 2026
bbb5c31
feat(dynaclr): add temporal forecast and DynaFormer evaluation pipeline
edyoshikun Oct 14, 2026
8978893
fix(dynaclr): accept untracked and concave nuclei in track-label check
edyoshikun Oct 15, 2026
1d53957
feat(dynaclr): add side-by-side cell-mask comparison for phenotyping …
edyoshikun Oct 15, 2026
77113ba
research(dynaclr): add TOMM20 set-classifier analysis of cell cycle v…
edyoshikun Oct 20, 2026
09ef516
research(dynaclr): require TCN and sensor agreement in TOMM20 set cla…
edyoshikun Oct 20, 2026
9c05825
feat(viscy-data): flag blank patches during triplet prediction
edyoshikun Nov 2, 2026
8d62ae9
feat(dynaclr): add Katamari predict and eligibility filtering to pred…
edyoshikun Nov 2, 2026
40185c2
feat(dynaclr): persist pooled normalized representations for matrix e…
edyoshikun Nov 2, 2026
15ecd6d
feat(dynaclr): add phenotyping-batch planner and AI-readiness audit
edyoshikun Nov 2, 2026
41753e5
feat(dynaclr): wire eligibility, phenotyping, and temporal forecast i…
edyoshikun Nov 2, 2026
e0c423d
feat(dynaclr): add DINOv3, Katamari, and PCNA rows to the organelle-r…
edyoshikun Nov 2, 2026
9dd7013
chore: stop tracking .ed_planning protocol
edyoshikun Nov 2, 2026
ed6f6ff
fix(dynaclr): forward eligibility and Katamari options through predic…
edyoshikun Nov 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .claude/skills/airtable-build-collection/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ Key fields in the Datasets table:
| `channel_0_marker` .. `channel_N_marker` | Protein marker for each channel |
| `t_shape`, `c_shape`, `z_shape`, `y_shape`, `x_shape` | Array dimensions |
| `pixel_size_xy_um`, `pixel_size_z_um` | Physical pixel sizes |
| `microscope` | Acquisition platform (e.g. `mantis_v1`, `mantis_v2`); derive from pixel size if absent |

## Usage

Expand Down Expand Up @@ -155,13 +156,18 @@ experiments:
moi: <moi or 0.0>
pixel_size_xy_um: <from airtable>
pixel_size_z_um: <from airtable>
microscope: <from airtable microscope field; else derive: mantis_v1 / mantis_v2>
```

Key notes:
- `data_path` should be the zarr store root (up to `.zarr`), NOT the FOV-level path from Airtable
- `perturbation_wells` uses `uninfected` / `<perturbation>` keys inferred from the `perturbation` field
- `channels` lists only the channels needed for training (not all channels in the zarr)
- `marker` at the experiment level is the primary marker for this experiment entry
- `microscope` labels the acquisition platform — always populate it. Use the Airtable microscope
field when present; otherwise derive from acquisition grid: `pixel_size_xy_um == 0.1494` →
`mantis_v1`, `0.1133` → `mantis_v2`. Downstream QC (embedding-consistency-qc) partitions
datasets by `obs["microscope"]`, so a missing/empty value silently collapses the v1/v2 split.

### Step 7: Save and Validate

Expand Down
5 changes: 2 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ __pycache__/

# Virtual environments
.venv/
.venv-phenotyping/
.phenotyping-batch/
venv/
ENV/

Expand Down Expand Up @@ -73,6 +75,3 @@ lightning_logs/
checkpoints/

plot_related/

# Local-only planning docs (not for upstream)
applications/dynaclr/docs/DAGs/evaluation_matrix.md
21 changes: 21 additions & 0 deletions applications/dynaclr/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,18 @@ uv run --package dynaclr viscy predict -c examples/configs/predict.yml
sbatch examples/configs/fit_slurm.sh
```

### End-to-end pipeline (new dataset → embeddings → eval)

For the full "dataset → per-marker embeddings → downstream evals" workflow — including the
one-call `dynaclr predict-triplet` (writes the dataset-centric tree
`<dataset>/2-phenotyping/predictions/{model}/{run}/{ckpt}/{marker}.zarr`), the decoupled
Nextflow `eval_from_embeddings` entry, and the **model matrix** for running many models through
train → predict → eval in parallel — see:

- [`docs/DAGs/end_to_end.md`](docs/DAGs/end_to_end.md) — the pipeline overview + Quickstart runbook
- [`nextflow/README.md`](nextflow/README.md) — the two Nextflow eval entries
- [`tools/README.md`](tools/README.md) — the model matrix (`dynaclr run-matrix`) + launchers

The YAML config determines which model and data module to use via `class_path`:

```yaml
Expand Down Expand Up @@ -78,12 +90,21 @@ DynaCLR also provides evaluation-specific commands via `dynaclr <command>`:

| Command | Description |
|---------|-------------|
| `predict-triplet` | One-call per-marker embedding inference from a collection + checkpoint → dataset-centric tree |
| `predict-batch` | Run `predict-triplet` for one model with AI-readiness preflight |
| `eval` | Evaluate frozen embeddings selected by model/run/checkpoint |
| `run-matrix` | Chain train → predict → eval for many models through SLURM dependencies |
| `split-embeddings` | Split a combined embeddings zarr per experiment/marker (`--route-by-dataset` → the dataset tree) |
| `embedding-consistency-qc` | Build per-marker cross-dataset MMD² and correlation matrices |
| `run-linear-classifiers` | Train linear classifiers on embeddings (batch, CSV metrics) |
| `append-annotations` / `append-predictions` | Join annotation / predicted-label columns onto per-experiment zarrs |
| `train-linear-classifier` | Train a linear classifier on cell embeddings |
| `apply-linear-classifier` | Apply a trained linear classifier to new embeddings |
| `append-obs` | Append columns from a CSV to an AnnData zarr obs (with optional prefix, e.g. `annotated_`, `feature_`) |
| `reduce-dimensionality` | Compute PCA, UMAP, and/or PHATE on saved embeddings |
| `evaluate-smoothness` | Evaluate temporal smoothness of embedding models |
| `compare-models` | Compare previously saved smoothness results |
| `compute-mmd` | MMD between perturbation / experiment groups (cross-experiment consistency) |
| `info` | Print summary of an AnnData zarr store |

```bash
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: organelle-box-2024_11_07_A549_SEC61_DENV
description: "Profiling/handoff collection: 2024_11_07 A549 SEC61 DENV (single-marker
organelle box). Channels embedded as bag-of-channels samples: SEC61B (GFP),
viral_sensor (mCherry), Phase3D. Prepared zarr on VAST with timepoint_statistics +
focus_slice. Sourced from Airtable base app8vqaoWyOwa0sB5 (dataset
'2024_11_07_A549_SEC61_DENV'). FOV C/1/000000 exists in the zarr but has no tracking
CSV and is excluded at build time."
datasets_root: /hpc/projects/organelle_phenotyping/datasets

provenance:
airtable_base_id: app8vqaoWyOwa0sB5
airtable_query: "{dataset}=\"2024_11_07_A549_SEC61_DENV\""
created_by: "eduardo.hirata"

experiments:
- name: 2024_11_07_A549_SEC61_DENV
data_path: ${datasets_root}/2024_11_07_A549_SEC61_DENV/2024_11_07_A549_SEC61_DENV.zarr
tracks_path: ${datasets_root}/2024_11_07_A549_SEC61_DENV/tracking.zarr
channels:
- name: raw GFP EX488 EM525-45
marker: SEC61B
- name: raw mCherry EX561 EM600-37
marker: viral_sensor
- name: Phase3D
marker: Phase3D
perturbation_wells:
uninfected:
- B/1
- B/3
DENV:
- B/2
- C/2
exclude_fovs:
- C/1/000000
interval_minutes: 10.0
start_hpi: 4.0
marker: SEC61B
organelle: endoplasmic_reticulum
moi: 5.0
pixel_size_xy_um: 0.1494
pixel_size_z_um: 0.174
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: organelle-box-2026_04_08_A549_G3BP1_ZIKV
description: "Embed-only collection: 2026_04_08 A549 G3BP1 ZIKV (single-marker organelle box).
Channels embedded as bag-of-channels samples: G3BP1 (GFP), viral_sensor (mCherry), Phase3D.
Prepared zarr on VAST with timepoint_statistics + focus_slice. No annotations."
datasets_root: /hpc/projects/organelle_phenotyping/datasets

provenance:
airtable_base_id: app8vqaoWyOwa0sB5
airtable_query: "SEARCH(\"2026_04_08_A549_G3BP1_ZIKV\", {dataset})"
created_by: "eduardo.hirata"

experiments:
- name: 2026_04_08_A549_G3BP1_ZIKV
data_path: ${datasets_root}/2026_04_08_A549_G3BP1_ZIKV/2026_04_08_A549_G3BP1_ZIKV.zarr
tracks_path: ${datasets_root}/2026_04_08_A549_G3BP1_ZIKV/tracking.zarr
channels:
- name: raw GFP EX488 EM525-45
marker: G3BP1
- name: raw mCherry EX561 EM600-37
marker: viral_sensor
- name: Phase3D
marker: Phase3D
perturbation_wells:
uninfected:
- D/6
ZIKV:
- B/5
- B/6
- C/5
- C/6
- D/5
interval_minutes: 30.0
start_hpi: 3.0
marker: G3BP1
organelle: stress_granules
moi: 5.0
pixel_size_xy_um: 0.1133
pixel_size_z_um: 0.16995
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: organelle-box-2026_04_10_A549_TOMM20_ZIKV
description: "Embed-only collection: 2026_04_10 A549 TOMM20 ZIKV (single-marker organelle box).
Channels embedded as bag-of-channels samples: TOMM20 (GFP), viral_sensor (mCherry), Phase3D.
Prepared zarr on VAST with timepoint_statistics + focus_slice. No annotations."
datasets_root: /hpc/projects/organelle_phenotyping/datasets

provenance:
airtable_base_id: app8vqaoWyOwa0sB5
airtable_query: "SEARCH(\"2026_04_10_A549_TOMM20_ZIKV\", {dataset})"
created_by: "eduardo.hirata"

experiments:
- name: 2026_04_10_A549_TOMM20_ZIKV
data_path: ${datasets_root}/2026_04_10_A549_TOMM20_ZIKV/2026_04_10_A549_TOMM20_ZIKV.zarr
tracks_path: ${datasets_root}/2026_04_10_A549_TOMM20_ZIKV/tracking.zarr
channels:
- name: raw GFP EX488 EM525-45
marker: TOMM20
- name: raw mCherry EX561 EM600-37
marker: viral_sensor
- name: Phase3D
marker: Phase3D
perturbation_wells:
uninfected:
- A/2
ZIKV:
- A/3
- A/4
- B/2
- B/3
- B/4
interval_minutes: 30.0
start_hpi: 5.0
marker: TOMM20
organelle: mitochondria
moi: 5.0
pixel_size_xy_um: 0.1133
pixel_size_z_um: 0.16995
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: organelle-box-2026_04_14_A549_SEC61B_DENV
description: "Embed-only collection: 2026_04_14 A549 SEC61B DENV (single-marker organelle box).
Channels embedded as bag-of-channels samples: SEC61B (GFP), viral_sensor (mCherry), Phase3D.
Prepared zarr on VAST with timepoint_statistics + focus_slice. No annotations."
datasets_root: /hpc/projects/organelle_phenotyping/datasets

provenance:
airtable_base_id: app8vqaoWyOwa0sB5
airtable_query: "SEARCH(\"2026_04_14_A549_SEC61B_DENV\", {dataset})"
created_by: "eduardo.hirata"

experiments:
- name: 2026_04_14_A549_SEC61B_DENV
data_path: ${datasets_root}/2026_04_14_A549_SEC61B_DENV/2026_04_14_A549_SEC61B_DENV.zarr
tracks_path: ${datasets_root}/2026_04_14_A549_SEC61B_DENV/tracking.zarr
channels:
- name: raw GFP EX488 EM525-45
marker: SEC61B
- name: raw mCherry EX561 EM600-37
marker: viral_sensor
- name: Phase3D
marker: Phase3D
perturbation_wells:
uninfected:
- C/2
DENV:
- C/3
- C/4
- D/2
- D/3
- D/4
interval_minutes: 30.0
start_hpi: 3.0
marker: SEC61B
organelle: endoplasmic_reticulum
moi: 5.0
pixel_size_xy_um: 0.1133
pixel_size_z_um: 0.16995
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: organelle-box-2026_04_21_A549_G3BP1_DENV
description: "Embed-only collection: 2026_04_21 A549 G3BP1 DENV (single-marker organelle box).
Channels embedded as bag-of-channels samples: G3BP1 (GFP), viral_sensor (mCherry), Phase3D.
Source zarrs are the intracellular_dashboard preprocess outputs (5-assemble data +
4-track ultrack labels); no prepared VAST copy exists. Predict uses fov_statistics
normalization, so timepoint_statistics is not required. Annotations exist (infection,
organelle, cell_division, cell_death)."
datasets_root: /hpc/projects/intracellular_dashboard/organelle_dynamics

provenance:
airtable_base_id: app8vqaoWyOwa0sB5
airtable_query: "SEARCH(\"2026_04_21_A549_G3BP1_DENV\", {dataset})"
created_by: "eduardo.hirata"

experiments:
- name: 2026_04_21_A549_G3BP1_DENV
data_path: ${datasets_root}/2026_04_21_A549_G3BP1_DENV/1-preprocess/5-assemble/2026_04_21_G3BP1_DENV.zarr
tracks_path: ${datasets_root}/2026_04_21_A549_G3BP1_DENV/1-preprocess/4-track/2026_04_21_G3BP1_DENV.zarr
channels:
- name: raw GFP EX488 EM525-45
marker: G3BP1
- name: raw mCherry EX561 EM600-37
marker: viral_sensor
- name: Phase3D
marker: Phase3D
perturbation_wells:
uninfected:
- A/1
DENV:
- A/2
- A/3
- B/1
- B/2
- B/3
interval_minutes: 30.0
start_hpi: 3.0
marker: G3BP1
organelle: stress_granules
moi: 5.0
pixel_size_xy_um: 0.1133
pixel_size_z_um: 0.16995
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: organelle-box-2026_04_28_A549_SEC61B_DENV
description: "Embed-only collection: 2026_04_28 A549 SEC61B DENV (single-marker organelle box).
Channels embedded as bag-of-channels samples: SEC61B (GFP), viral_sensor (mCherry), Phase3D.
Prepared zarr on VAST with timepoint_statistics + focus_slice. No annotations."
datasets_root: /hpc/projects/organelle_phenotyping/datasets

provenance:
airtable_base_id: app8vqaoWyOwa0sB5
airtable_query: "SEARCH(\"2026_04_28_A549_SEC61B_DENV\", {dataset})"
created_by: "eduardo.hirata"

experiments:
- name: 2026_04_28_A549_SEC61B_DENV
data_path: ${datasets_root}/2026_04_28_A549_SEC61B_DENV/2026_04_28_A549_SEC61B_DENV.zarr
tracks_path: ${datasets_root}/2026_04_28_A549_SEC61B_DENV/tracking.zarr
channels:
- name: raw GFP EX488 EM525-45
marker: SEC61B
- name: raw mCherry EX561 EM600-37
marker: viral_sensor
- name: Phase3D
marker: Phase3D
perturbation_wells:
uninfected:
- A/2
DENV:
- A/3
- A/4
- B/2
- B/3
- B/4
interval_minutes: 30.0
start_hpi: 3.0
marker: SEC61B
organelle: endoplasmic_reticulum
moi: 5.0
pixel_size_xy_um: 0.1133
pixel_size_z_um: 0.16995
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: organelle-box-2026_04_30_A549_TOMM20_DENV
description: "Embed-only collection: 2026_04_30 A549 TOMM20 DENV (single-marker organelle box).
Channels embedded as bag-of-channels samples: TOMM20 (GFP), viral_sensor (mCherry), Phase3D.
Prepared zarr on VAST with timepoint_statistics + focus_slice. No annotations."
datasets_root: /hpc/projects/organelle_phenotyping/datasets

provenance:
airtable_base_id: app8vqaoWyOwa0sB5
airtable_query: "SEARCH(\"2026_04_30_A549_TOMM20_DENV\", {dataset})"
created_by: "eduardo.hirata"

experiments:
- name: 2026_04_30_A549_TOMM20_DENV
data_path: ${datasets_root}/2026_04_30_A549_TOMM20_DENV/2026_04_30_A549_TOMM20_DENV.zarr
tracks_path: ${datasets_root}/2026_04_30_A549_TOMM20_DENV/tracking.zarr
channels:
- name: raw GFP EX488 EM525-45
marker: TOMM20
- name: raw mCherry EX561 EM600-37
marker: viral_sensor
- name: Phase3D
marker: Phase3D
perturbation_wells:
uninfected:
- A/2
DENV:
- A/3
- A/4
- B/2
- B/3
- B/4
interval_minutes: 30.0
start_hpi: 4.0
marker: TOMM20
organelle: mitochondria
moi: 5.0
pixel_size_xy_um: 0.1133
pixel_size_z_um: 0.16995
Loading
Loading