From 7287113f06c35bcd94fbfb11f0ae961483589144 Mon Sep 17 00:00:00 2001 From: Alexandr Kalinin Date: Wed, 4 Nov 2026 12:07:51 -0800 Subject: [PATCH 1/6] docs(dynacell): point code links and the clone step at main The DynaCell application is on main since #534, so the README clone instruction drops --branch dynacell-models, and the README, the two Hugging Face cards and the Space README link to tree/main/applications/dynacell instead of the frozen branch or the repository root. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_015kuht3npKtb2o5E6h19xbA --- applications/dynacell/README.md | 4 ++-- .../dynacell/examples/hf_demo/cards/checkpoints_README.md | 4 ++-- .../dynacell/examples/hf_demo/cards/demo_data_README.md | 2 +- applications/dynacell/examples/hf_demo/hf_space/README.md | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/applications/dynacell/README.md b/applications/dynacell/README.md index 75c7ec8e0..53e953bad 100644 --- a/applications/dynacell/README.md +++ b/applications/dynacell/README.md @@ -56,7 +56,7 @@ must be installed with `uv`. Install uv first if you don't have it (`curl -LsSf https://astral.sh/uv/install.sh | sh`), then: ```bash -git clone --branch dynacell-models https://github.com/mehta-lab/VisCy.git +git clone https://github.com/mehta-lab/VisCy.git cd VisCy uv venv -p 3.13 source .venv/bin/activate @@ -216,7 +216,7 @@ a bare invocation writes **and** submits. ## Data and code availability -- **Code** — BSD-3-Clause, [github.com/mehta-lab/VisCy](https://github.com/mehta-lab/VisCy/tree/dynacell-models). +- **Code** — BSD-3-Clause, [github.com/mehta-lab/VisCy](https://github.com/mehta-lab/VisCy/tree/main/applications/dynacell). - **Data** — OME-Zarr stores hosted on AWS Open Data. The DynaCell A549 dataset is released under CC-BY-4.0; the reprocessed iPSC subset under the Allen Institute Terms of Use. diff --git a/applications/dynacell/examples/hf_demo/cards/checkpoints_README.md b/applications/dynacell/examples/hf_demo/cards/checkpoints_README.md index 594f81fca..ee9870f55 100644 --- a/applications/dynacell/examples/hf_demo/cards/checkpoints_README.md +++ b/applications/dynacell/examples/hf_demo/cards/checkpoints_README.md @@ -16,7 +16,7 @@ tags: Model checkpoints for the **DynaCell** virtual-staining demo: predict fluorescence channels (membrane, nuclei, ER, mitochondria) from label-free **phase-contrast** 3-D microscopy of live A549 cells. Trained and run with -[VisCy](https://github.com/mehta-lab/VisCy). +[VisCy](https://github.com/mehta-lab/VisCy/tree/main/applications/dynacell). Live demo: [`biohub/dynacell`](https://huggingface.co/spaces/biohub/dynacell) @@ -66,7 +66,7 @@ ckpt = hf_hub_download("biohub/dynacell-checkpoints", "vscyto3d_caax.ckpt") Input data must be an OME-Zarr HCS store with `Phase3D` as the source channel. See the [demo Space](https://huggingface.co/spaces/biohub/dynacell) and -[VisCy](https://github.com/mehta-lab/VisCy) for the full prediction config. +[VisCy](https://github.com/mehta-lab/VisCy/tree/main/applications/dynacell) for the full prediction config. ## Training data diff --git a/applications/dynacell/examples/hf_demo/cards/demo_data_README.md b/applications/dynacell/examples/hf_demo/cards/demo_data_README.md index e1ddb12bf..b49495e91 100644 --- a/applications/dynacell/examples/hf_demo/cards/demo_data_README.md +++ b/applications/dynacell/examples/hf_demo/cards/demo_data_README.md @@ -39,7 +39,7 @@ Each store is a crop of `fov0006` from the DynaCell v1 **test** split, (5–21 hpi), the central 32 of 48 Z slices, and the central 512×512 of the 640×960 field of view. The crop is recorded in each position's `dynacell_demo` attributes and is rebuilt by `build_demo_data.py` in -[VisCy](https://github.com/mehta-lab/VisCy/tree/dynacell-models/applications/dynacell/examples/hf_demo). +[VisCy](https://github.com/mehta-lab/VisCy/tree/main/applications/dynacell/examples/hf_demo). ER and mitochondria targets are raw (not deconvolved) fluorescence, as used for training and evaluation. diff --git a/applications/dynacell/examples/hf_demo/hf_space/README.md b/applications/dynacell/examples/hf_demo/hf_space/README.md index 9956ff77c..b58c013ad 100644 --- a/applications/dynacell/examples/hf_demo/hf_space/README.md +++ b/applications/dynacell/examples/hf_demo/hf_space/README.md @@ -41,4 +41,4 @@ is one held-out test field of view per marker, cropped from the DynaCell v1 rele ([`biohub/dynacell-checkpoints`](https://huggingface.co/biohub/dynacell-checkpoints)) are the released A549-trained models (`s3://dynacell/v1/models/a549/`). -Code: [VisCy `applications/dynacell`](https://github.com/mehta-lab/VisCy/tree/dynacell-models/applications/dynacell). +Code: [VisCy `applications/dynacell`](https://github.com/mehta-lab/VisCy/tree/main/applications/dynacell). From e2f400f8c016a563aecff2870c920f337c18d95c Mon Sep 17 00:00:00 2001 From: Alexandr Kalinin Date: Wed, 4 Nov 2026 12:07:53 -0800 Subject: [PATCH 2/6] fix(dynacell): point the Croissant code FileObject at main contentUrl still named modular-viscy-staging, a branch the release never shipped from. It now names tree/main/applications/dynacell, the same URL the paper, datasheet and S3 Croissant use. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_015kuht3npKtb2o5E6h19xbA --- applications/dynacell/src/dynacell/croissant/builder.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/applications/dynacell/src/dynacell/croissant/builder.py b/applications/dynacell/src/dynacell/croissant/builder.py index 01bf74552..415de44f0 100644 --- a/applications/dynacell/src/dynacell/croissant/builder.py +++ b/applications/dynacell/src/dynacell/croissant/builder.py @@ -246,7 +246,7 @@ def build_croissant_from_release( "@id": "dynacell-code-repo", "name": "VisCy — DynaCell application code", "description": ("Training, prediction, evaluation, and reporting pipelines. BSD-3-Clause license."), - "contentUrl": "https://github.com/mehta-lab/VisCy/tree/modular-viscy-staging/applications/dynacell", + "contentUrl": "https://github.com/mehta-lab/VisCy/tree/main/applications/dynacell", "encodingFormat": "application/x-git", "license": "https://opensource.org/licenses/BSD-3-Clause", "sha256": "", From abf5a5e554e86e30b468f63d16a12214d9c527cf Mon Sep 17 00:00:00 2001 From: Alexandr Kalinin Date: Wed, 4 Nov 2026 12:44:51 -0800 Subject: [PATCH 3/6] docs(dynacell): point the demo-data card's iohub link at Biohub iohub moved from czbiohub-sf to the Biohub organisation. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_015kuht3npKtb2o5E6h19xbA --- .../dynacell/examples/hf_demo/cards/demo_data_README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/applications/dynacell/examples/hf_demo/cards/demo_data_README.md b/applications/dynacell/examples/hf_demo/cards/demo_data_README.md index b49495e91..107434bc7 100644 --- a/applications/dynacell/examples/hf_demo/cards/demo_data_README.md +++ b/applications/dynacell/examples/hf_demo/cards/demo_data_README.md @@ -64,7 +64,7 @@ zip_path = hf_hub_download( # unzip → open with iohub.ngff.open_ome_zarr ``` -Read the stores with [iohub](https://github.com/czbiohub-sf/iohub). The demo Space +Read the stores with [iohub](https://github.com/Biohub/iohub). The demo Space loads these automatically via its "Load Demo Data" button. ## License From 5b0811949cfb9f8cf0c192c63d1e457e20f7d9a0 Mon Sep 17 00:00:00 2001 From: Alexandr Kalinin Date: Thu, 5 Nov 2026 20:59:53 -0800 Subject: [PATCH 4/6] docs(dynacell): point code links at github.com/Biohub/VisCy VisCy moved from mehta-lab to Biohub on GitHub. The rest of the repository moves in a separate PR; these five files are the ones this PR already edits. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_015kuht3npKtb2o5E6h19xbA --- applications/dynacell/README.md | 4 ++-- .../dynacell/examples/hf_demo/cards/checkpoints_README.md | 4 ++-- .../dynacell/examples/hf_demo/cards/demo_data_README.md | 2 +- applications/dynacell/examples/hf_demo/hf_space/README.md | 2 +- applications/dynacell/src/dynacell/croissant/builder.py | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/applications/dynacell/README.md b/applications/dynacell/README.md index 53e953bad..908298a4e 100644 --- a/applications/dynacell/README.md +++ b/applications/dynacell/README.md @@ -56,7 +56,7 @@ must be installed with `uv`. Install uv first if you don't have it (`curl -LsSf https://astral.sh/uv/install.sh | sh`), then: ```bash -git clone https://github.com/mehta-lab/VisCy.git +git clone https://github.com/Biohub/VisCy.git cd VisCy uv venv -p 3.13 source .venv/bin/activate @@ -216,7 +216,7 @@ a bare invocation writes **and** submits. ## Data and code availability -- **Code** — BSD-3-Clause, [github.com/mehta-lab/VisCy](https://github.com/mehta-lab/VisCy/tree/main/applications/dynacell). +- **Code** — BSD-3-Clause, [github.com/Biohub/VisCy](https://github.com/Biohub/VisCy/tree/main/applications/dynacell). - **Data** — OME-Zarr stores hosted on AWS Open Data. The DynaCell A549 dataset is released under CC-BY-4.0; the reprocessed iPSC subset under the Allen Institute Terms of Use. diff --git a/applications/dynacell/examples/hf_demo/cards/checkpoints_README.md b/applications/dynacell/examples/hf_demo/cards/checkpoints_README.md index ee9870f55..b7264fbf7 100644 --- a/applications/dynacell/examples/hf_demo/cards/checkpoints_README.md +++ b/applications/dynacell/examples/hf_demo/cards/checkpoints_README.md @@ -16,7 +16,7 @@ tags: Model checkpoints for the **DynaCell** virtual-staining demo: predict fluorescence channels (membrane, nuclei, ER, mitochondria) from label-free **phase-contrast** 3-D microscopy of live A549 cells. Trained and run with -[VisCy](https://github.com/mehta-lab/VisCy/tree/main/applications/dynacell). +[VisCy](https://github.com/Biohub/VisCy/tree/main/applications/dynacell). Live demo: [`biohub/dynacell`](https://huggingface.co/spaces/biohub/dynacell) @@ -66,7 +66,7 @@ ckpt = hf_hub_download("biohub/dynacell-checkpoints", "vscyto3d_caax.ckpt") Input data must be an OME-Zarr HCS store with `Phase3D` as the source channel. See the [demo Space](https://huggingface.co/spaces/biohub/dynacell) and -[VisCy](https://github.com/mehta-lab/VisCy/tree/main/applications/dynacell) for the full prediction config. +[VisCy](https://github.com/Biohub/VisCy/tree/main/applications/dynacell) for the full prediction config. ## Training data diff --git a/applications/dynacell/examples/hf_demo/cards/demo_data_README.md b/applications/dynacell/examples/hf_demo/cards/demo_data_README.md index 107434bc7..46046c492 100644 --- a/applications/dynacell/examples/hf_demo/cards/demo_data_README.md +++ b/applications/dynacell/examples/hf_demo/cards/demo_data_README.md @@ -39,7 +39,7 @@ Each store is a crop of `fov0006` from the DynaCell v1 **test** split, (5–21 hpi), the central 32 of 48 Z slices, and the central 512×512 of the 640×960 field of view. The crop is recorded in each position's `dynacell_demo` attributes and is rebuilt by `build_demo_data.py` in -[VisCy](https://github.com/mehta-lab/VisCy/tree/main/applications/dynacell/examples/hf_demo). +[VisCy](https://github.com/Biohub/VisCy/tree/main/applications/dynacell/examples/hf_demo). ER and mitochondria targets are raw (not deconvolved) fluorescence, as used for training and evaluation. diff --git a/applications/dynacell/examples/hf_demo/hf_space/README.md b/applications/dynacell/examples/hf_demo/hf_space/README.md index b58c013ad..dd3bd0ed0 100644 --- a/applications/dynacell/examples/hf_demo/hf_space/README.md +++ b/applications/dynacell/examples/hf_demo/hf_space/README.md @@ -41,4 +41,4 @@ is one held-out test field of view per marker, cropped from the DynaCell v1 rele ([`biohub/dynacell-checkpoints`](https://huggingface.co/biohub/dynacell-checkpoints)) are the released A549-trained models (`s3://dynacell/v1/models/a549/`). -Code: [VisCy `applications/dynacell`](https://github.com/mehta-lab/VisCy/tree/main/applications/dynacell). +Code: [VisCy `applications/dynacell`](https://github.com/Biohub/VisCy/tree/main/applications/dynacell). diff --git a/applications/dynacell/src/dynacell/croissant/builder.py b/applications/dynacell/src/dynacell/croissant/builder.py index 415de44f0..57e6c2132 100644 --- a/applications/dynacell/src/dynacell/croissant/builder.py +++ b/applications/dynacell/src/dynacell/croissant/builder.py @@ -246,7 +246,7 @@ def build_croissant_from_release( "@id": "dynacell-code-repo", "name": "VisCy — DynaCell application code", "description": ("Training, prediction, evaluation, and reporting pipelines. BSD-3-Clause license."), - "contentUrl": "https://github.com/mehta-lab/VisCy/tree/main/applications/dynacell", + "contentUrl": "https://github.com/Biohub/VisCy/tree/main/applications/dynacell", "encodingFormat": "application/x-git", "license": "https://opensource.org/licenses/BSD-3-Clause", "sha256": "", From 3ca3f60e02f345933a95cd262fb033ade2bedb20 Mon Sep 17 00:00:00 2001 From: Alexandr Kalinin Date: Fri, 6 Nov 2026 14:36:00 -0800 Subject: [PATCH 5/6] docs(dynacell): call the Croissant demo zip a demo subsample "Reviewer-accessible sample" was review-phase wording; the release and the paper now call it a demo subsample. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_015kuht3npKtb2o5E6h19xbA --- applications/dynacell/src/dynacell/croissant/builder.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/applications/dynacell/src/dynacell/croissant/builder.py b/applications/dynacell/src/dynacell/croissant/builder.py index 57e6c2132..b67081fce 100644 --- a/applications/dynacell/src/dynacell/croissant/builder.py +++ b/applications/dynacell/src/dynacell/croissant/builder.py @@ -258,9 +258,9 @@ def build_croissant_from_release( { "@type": "cr:FileObject", "@id": "dynacell-demo-sample", - "name": "DynaCell reviewer-accessible sample", + "name": "DynaCell demo subsample", "description": ( - "Reviewer-accessible sample (<4 GB) with a reduced number of " + "Demo subsample (<4 GB) with a reduced number of " "FOVs and timepoints, intended for quick inspection without " "downloading the full release." ), From 78f989d900f1226ea787602a59c78ba57cee07fb Mon Sep 17 00:00:00 2001 From: Alexandr Kalinin Date: Fri, 6 Nov 2026 14:48:32 -0800 Subject: [PATCH 6/6] fix(dynacell): make the Croissant RAI text match the dataset and paper - dataUseCases: virtual staining is the intended task; representation learning moves to "possible but not validated", the use cases list what the paper validates, and the unsupported "organelle classification benchmarks" and "PCC, SSIM, and FID" claims go. - iPSC nucleus and membrane are the Allen DNA and membrane dye channels (ChannelNumber405 / ChannelNumber638 in the conversion), not H2B and CAAX; only SEC61B and TOMM20 are endogenous tags. - iPSC training split is 500 FOVs for nucleus, membrane and mitochondria and 423 for ER. - No A549 perturbation is held out; training includes ZIKV and DENV. - Phase is reconstructed from brightfield volumes, not multi-angle transmitted light. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_015kuht3npKtb2o5E6h19xbA --- .../dynacell/src/dynacell/croissant/cli.py | 97 ++++++++++--------- 1 file changed, 52 insertions(+), 45 deletions(-) diff --git a/applications/dynacell/src/dynacell/croissant/cli.py b/applications/dynacell/src/dynacell/croissant/cli.py index 6d40b73b4..ca709a2c7 100644 --- a/applications/dynacell/src/dynacell/croissant/cli.py +++ b/applications/dynacell/src/dynacell/croissant/cli.py @@ -258,7 +258,8 @@ def _a549_static_fields(): "were cultured and imaged under three conditions: mock-infected, " "Zika virus-infected, and Dengue virus-infected (both BSL-2). " "Each field of view is a paired 3D time-lapse acquisition combining " - "label-free transmitted-light channels (multi-angle phase) and a " + "a label-free brightfield channel, from which quantitative phase " + "is reconstructed, and a " "single fluorescence target marker per store (H2B / nucleus, CAAX / " "membrane, SEC61B / endoplasmic reticulum, or TOMM20 / mitochondria). " "Plates were imaged at native cadences of 10, 30, or 120 minutes " @@ -286,20 +287,23 @@ def _a549_static_fields(): "single fluorescence target marker." ), rai_data_use_cases=( - "The dataset is intended for two tasks: (1) virtual staining — " - "predicting fluorescent organelle channels from label-free " - "transmitted-light volumes; (2) representation learning of " - "organelle morphology and dynamics in 3D live cells. Validated use " - "cases (paired test set, see accompanying paper): zero-shot and " - "fine-tuned virtual staining of nuclear (H2B), membrane (CAAX), " - "endoplasmic reticulum (SEC61B), and mitochondrial (TOMM20) " - "targets in A549 cells under mock, ZIKV, and DENV conditions, " - "evaluated with PCC, SSIM, and FID. Not validated for: clinical " - "or diagnostic decision support; automated drug discovery without " - "independent wet-lab validation; cross-cell-line, cross-organism, " - "or cross-microscope generalization without retraining or " - "recalibration; segmentation of structures other than the four " - "targets above." + "The dataset is intended for benchmarking 3D virtual staining, " + "i.e., predicting fluorescence images of four organelle markers " + "(H2B / nucleus, CAAX / membrane, SEC61B / endoplasmic reticulum, " + "TOMM20 / mitochondria) from label-free phase volumes, evaluated " + "for pixel fidelity, segmentation utility, and single-cell " + "phenotype similarity. Validated use cases (see accompanying " + "paper): training and evaluating regression, adversarial, and " + "generative models on A549, iPSC, or both datasets and testing " + "them on both cell types under mock, ZIKV, and DENV conditions; " + "assessing whether predictions preserve infection responses and " + "remain consistent over time. Possible but not validated: " + "self-supervised representation learning of organelle morphology " + "and dynamics. Not validated for: clinical or diagnostic decision " + "support; automated drug discovery without independent wet-lab " + "validation; cell types, perturbations, or microscopes not " + "represented in the dataset; segmentation of structures other " + "than the four targets above." ), rai_data_social_impact=( "Positive impact: virtual staining reduces phototoxicity and " @@ -314,8 +318,8 @@ def _a549_static_fields(): "faithful proxies for biological ground truth in quantitative " "measurements where small intensity errors matter (e.g., kinetic " "flux, single-molecule counting). Mitigations: the dataset is " - "released as an evaluation benchmark with frozen test splits and " - "held-out perturbations; full data limitations and bias " + "released as an evaluation benchmark with frozen test splits; " + "full data limitations and bias " "statements are published alongside the data; benchmark code, " "splits, and metric implementations are open-source so claims " "can be reproduced and audited." @@ -365,8 +369,8 @@ def _a549_static_fields(): "@type": "prov:Activity", "prov:label": "DynaCell preprocessing", "description": ( - "Phase reconstruction from multi-angle transmitted-" - "light volumes via the open-source waveorder " + "Phase reconstruction from brightfield volumes via " + "the open-source waveorder " "pipeline; co-registration of label-free and " "fluorescence channels; per-FOV deskewing and stage-" "position metadata correction; channel-wise " @@ -432,13 +436,15 @@ def _aics_hipsc_static_fields(): "paired brightfield and 3D confocal fluorescence volumes of " "WTC-11 human induced pluripotent stem cells (single donor, " "gene-edited line) on a spinning-disk confocal microscope, " - "with endogenous fluorescent tags marking organelle-specific " - "proteins. DynaCell selects four targets — H2B / nucleus, " - "CAAX / cell membrane, SEC61B / endoplasmic reticulum, and " - "TOMM20 / mitochondria — and reconstructs the corresponding " - "3D phase channel from the brightfield input via the open-" - "source waveorder pipeline. 500 FOVs per organelle in the " - "training split, 100 in the held-out evaluation split." + "with a DNA dye, a cell-membrane dye, and one endogenously " + "mEGFP-tagged protein per line. DynaCell selects four targets — " + "the DNA dye (Hoechst) for nucleus, the membrane dye (CellMask) " + "for cell membrane, SEC61B for endoplasmic reticulum, and TOMM20 " + "for mitochondria — and reconstructs the corresponding 3D phase " + "channel from the brightfield input via the open-source waveorder " + "pipeline. The training split has 500 FOVs each for nucleus, " + "membrane, and mitochondria and 423 for ER; the held-out " + "evaluation split has 100 FOVs per organelle." ), rai_data_biases=( "The dataset covers a single human induced pluripotent stem " @@ -446,10 +452,10 @@ def _aics_hipsc_static_fields(): "Institute spinning-disk confocal). Models trained on this " "data may not generalize to other iPSC lines, differentiated " "cell types, primary cells, organisms, or microscope " - "platforms without additional validation. The endogenous-" - "tagging strategy targets specific protein loci within each " - "organelle and may not capture morphological variation " - "visible with alternative markers." + "platforms without additional validation. ER and mitochondria are " + "marked by single endogenously tagged proteins (SEC61B, TOMM20) " + "and nucleus and membrane by dyes (Hoechst, CellMask); other " + "markers may reveal different morphological variation." ), rai_annotations_per_item=( "Each FOV provides paired label-free (brightfield + " @@ -477,18 +483,17 @@ def _aics_hipsc_static_fields(): "pipeline; reconstruction quality is bounded by that pipeline." ), rai_data_use_cases=( - "The dataset is intended for two tasks: (1) virtual staining " - "— predicting fluorescent organelle channels (nucleus, " - "membrane, ER, mitochondria) from label-free transmitted-" - "light volumes; (2) representation learning of organelle " - "morphology in 3D iPSCs. Validated use cases (held-out 100-" - "FOV evaluation split, see accompanying paper): zero-shot " - "and fine-tuned virtual staining of the four targets above, " - "evaluated with PCC, SSIM, and FID; representation learning " - "evaluated against organelle classification benchmarks. Not " - "validated for: clinical or diagnostic decision support; " - "cross-cell-line, cross-organism, or cross-microscope " - "generalization without retraining." + "The dataset is intended for benchmarking 3D virtual staining of " + "the same four organelles (Hoechst / nucleus, CellMask / " + "membrane, SEC61B / ER, TOMM20 / mitochondria) from phase volumes " + "reconstructed from brightfield, and as a second cell type and " + "microscope for testing cross-dataset generalization. Validated " + "use cases (see accompanying paper): training and evaluating " + "models on iPSC, A549, or both datasets with the held-out test " + "split of 100 FOVs per organelle. Possible but not validated: " + "self-supervised representation learning of organelle morphology. " + "Not validated for: clinical or diagnostic decision support; cell " + "types or microscopes not represented in the dataset." ), rai_data_social_impact=( "Positive impact: virtual staining reduces phototoxicity and " @@ -543,8 +548,8 @@ def _aics_hipsc_static_fields(): "3D paired brightfield + confocal fluorescence " "acquisition of WTC-11 hiPSC lines on the Allen " "Institute spinning-disk confocal microscope. " - "Endogenous fluorescent tags marked organelle-" - "specific proteins." + "Each FOV includes a DNA dye, a cell-membrane dye, " + "and one endogenously mEGFP-tagged protein." ), "prov:wasAttributedTo": [ { @@ -569,7 +574,9 @@ def _aics_hipsc_static_fields(): "via the open-source waveorder pipeline; per-FOV " "channel-wise normalization statistics computed and " "stored as zarr attributes; train/test split frozen " - "at FOV level (500 train, 100 test per organelle)." + "at FOV level (500 training FOVs each for nucleus, " + "membrane, and mitochondria and 423 for ER; 100 test " + "FOVs per organelle)." ), "prov:wasAttributedTo": [ {