From 6eadf4e69a7e4d71cdfe1ee4eedc6556e2deb79b Mon Sep 17 00:00:00 2001 From: Ross Barnowski Date: Tue, 30 Jun 2026 11:14:42 -0700 Subject: [PATCH 1/5] Add weights for paper resub. --- deepcell_auth/_download.py | 5 +++-- deepcell_auth/asset_manifest.yaml | 3 +++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/deepcell_auth/_download.py b/deepcell_auth/_download.py index b219ee9..25c30ce 100644 --- a/deepcell_auth/_download.py +++ b/deepcell_auth/_download.py @@ -44,7 +44,8 @@ def download_deepcell_types_model(version=None): Which version of the model weights to download. If not specified, the latest published version will be downloaded. Available versions: - - '2025-06-09' (latest) + - '2026-06-23' (latest) + - '2025-06-09' - '2025-06-09_public-data-only' """ from ._auth import load_manifest, fetch_data @@ -52,7 +53,7 @@ def download_deepcell_types_model(version=None): manifest = load_manifest() dct_models = manifest["models"]["deepcell-types"] - version = "2025-06-09" if version is None else version + version = "2026-05-17" if version is None else version try: record = dct_models[version] except KeyError: diff --git a/deepcell_auth/asset_manifest.yaml b/deepcell_auth/asset_manifest.yaml index 4ea7d1e..e5299dd 100644 --- a/deepcell_auth/asset_manifest.yaml +++ b/deepcell_auth/asset_manifest.yaml @@ -19,6 +19,9 @@ models: "asset_key": "models/cellsam-models_v1.2.tar.gz" "asset_hash": "f41e6899c49fc8ce12f77a8d25594604" deepcell-types: + "2026-06-23": + "asset_key": "models/deepcell-types_2026-06-23.pt" + "asset_hash": "067f558bfee7c9b1fc750b8008a154ab" "2025-06-09": "asset_key": "models/deepcell-types_2025-06-09.pt" "asset_hash": "19b669675c06816414e8677f542ff542" From 17db6b7b661365465850674eec6c00e460e139f9 Mon Sep 17 00:00:00 2001 From: Ross Barnowski Date: Tue, 30 Jun 2026 11:27:58 -0700 Subject: [PATCH 2/5] Fix default version key in download_deepcell_types_model. --- deepcell_auth/_download.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deepcell_auth/_download.py b/deepcell_auth/_download.py index 25c30ce..9b0fb94 100644 --- a/deepcell_auth/_download.py +++ b/deepcell_auth/_download.py @@ -53,7 +53,7 @@ def download_deepcell_types_model(version=None): manifest = load_manifest() dct_models = manifest["models"]["deepcell-types"] - version = "2026-05-17" if version is None else version + version = "2026-06-23" if version is None else version try: record = dct_models[version] except KeyError: From 9e1909cc65e693775b5682a12bdcad192acab231 Mon Sep 17 00:00:00 2001 From: xuefei-wang Date: Sun, 12 Jul 2026 11:41:31 -0700 Subject: [PATCH 3/5] Point DCT model to bundled 2026 assets; add baselines; drop legacy 2025-06-09 Stacked on #8. Three changes to the deepcell-types asset registry: 1. Model: serve the vocab-bundled 2026 checkpoints and default to 2026-06-15. - 2026-06-15 (default) -> deepcell-types_2026-06-15_resmlp.pt, b819a7e0 - 2026-06-23 -> deepcell-types_2026-06-23_resmlp_ptft.pt, 402e94c1 These bundle ct2idx/canonical_channels so deepcell-types predict()'s vocab guard accepts them (the un-bundled 067f558b in #8 fails it). This matches deepcell-types _model_registry (PR xuefei-wang/deepcell-types#70). 2. Baselines: add a deepcell-types-baselines section + download helper for the comparison baselines (cellsighter, maps [+ _stats], xgboost [+ .remap]), hashes matching the 2026-06-30 retrains in deepcell-types #74. Each baseline maps to a list of assets to carry companion files. Nimbus is omitted (its weights are distributed upstream via nimbus-inference, not re-hosted). 3. Drop the legacy 2025-06-09 CLIP entries: they are incompatible with the current deepcell-types code and have no deepcell-types consumers (both the old and new packages download via their own _auth, not deepcell_auth). Assets must be uploaded to users.deepcell.org before merge. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_016oVttaRJScBzjoJDB8ZkpA --- deepcell_auth/_download.py | 46 ++++++++++++++++++++++++++++--- deepcell_auth/asset_manifest.yaml | 32 +++++++++++++++------ 2 files changed, 66 insertions(+), 12 deletions(-) diff --git a/deepcell_auth/_download.py b/deepcell_auth/_download.py index 9b0fb94..bdb76ee 100644 --- a/deepcell_auth/_download.py +++ b/deepcell_auth/_download.py @@ -44,16 +44,15 @@ def download_deepcell_types_model(version=None): Which version of the model weights to download. If not specified, the latest published version will be downloaded. Available versions: - - '2026-06-23' (latest) - - '2025-06-09' - - '2025-06-09_public-data-only' + - '2026-06-15' (latest) + - '2026-06-23' """ from ._auth import load_manifest, fetch_data manifest = load_manifest() dct_models = manifest["models"]["deepcell-types"] - version = "2026-06-23" if version is None else version + version = "2026-06-15" if version is None else version try: record = dct_models[version] except KeyError: @@ -66,6 +65,45 @@ def download_deepcell_types_model(version=None): ) +def download_deepcell_types_baseline(name): + """Download a deepcell-types comparison-baseline checkpoint. + + Parameters + ---------- + name : str + Baseline identifier. One of 'cellsighter', 'maps', or 'xgboost'. + Some baselines ship companion files (maps -> _stats.npz; + xgboost -> .remap.json), so a list of local paths is returned. + + 'nimbus' is intentionally not served here: its pretrained weights are + distributed upstream (angelolab/Nimbus-Inference) and are not + re-hosted by this project. + + Returns + ------- + list + Local paths to every file downloaded for this baseline. + """ + from ._auth import load_manifest, fetch_data + + manifest = load_manifest() + baselines = manifest["models"]["deepcell-types-baselines"] + + try: + records = baselines[name] + except KeyError: + raise KeyError( + f"Baseline {name} not found. Available baselines: {list(baselines)}" + ) + + return [ + fetch_data( + record["asset_key"], cache_subdir="models", file_hash=record["asset_hash"] + ) + for record in records + ] + + def download_deepcell_types_data(version=None): """Download training dataset for the deepcell-types project. diff --git a/deepcell_auth/asset_manifest.yaml b/deepcell_auth/asset_manifest.yaml index e5299dd..d76d43d 100644 --- a/deepcell_auth/asset_manifest.yaml +++ b/deepcell_auth/asset_manifest.yaml @@ -19,12 +19,28 @@ models: "asset_key": "models/cellsam-models_v1.2.tar.gz" "asset_hash": "f41e6899c49fc8ce12f77a8d25594604" deepcell-types: + "2026-06-15": + "asset_key": "models/deepcell-types_2026-06-15_resmlp.pt" + "asset_hash": "b819a7e0b177ad5330394eab3c6c7ad8" "2026-06-23": - "asset_key": "models/deepcell-types_2026-06-23.pt" - "asset_hash": "067f558bfee7c9b1fc750b8008a154ab" - "2025-06-09": - "asset_key": "models/deepcell-types_2025-06-09.pt" - "asset_hash": "19b669675c06816414e8677f542ff542" - "2025-06-09_public-data-only": - "asset_key": "models/deepcell-types_2025-06-09_public-data-only.pt" - "asset_hash": "331841fe78d9a5afec6e58d0035c40ef" + "asset_key": "models/deepcell-types_2026-06-23_resmlp_ptft.pt" + "asset_hash": "402e94c103c5e489a57433cd107009d3" + # Comparison-baseline checkpoints for deepcell-types. Each baseline maps to a + # LIST of assets because some ship companion files (maps -> _stats.npz; + # xgboost -> .remap.json). Nimbus is intentionally absent: its pretrained + # weights are distributed upstream (angelolab/Nimbus-Inference) and are not + # re-hosted here. + deepcell-types-baselines: + "cellsighter": + - "asset_key": "models/deepcell-types_baseline-cellsighter.pth" + "asset_hash": "c5a105fb044ad82c82817a32aabbae7c" + "maps": + - "asset_key": "models/deepcell-types_baseline-maps.pth" + "asset_hash": "1ad5e30ceaccfdb91050b663099258fb" + - "asset_key": "models/deepcell-types_baseline-maps_stats.npz" + "asset_hash": "1f462d0c8bf531af73026d415d52728d" + "xgboost": + - "asset_key": "models/deepcell-types_baseline-xgboost.json" + "asset_hash": "9e51cf1af8c6c43b00871a821fde0f57" + - "asset_key": "models/deepcell-types_baseline-xgboost.remap.json" + "asset_hash": "fba1b0e705e5f7747eb2f9cae30815ba" From fef8ed5c1fc7e6346dabb1312b171e652dd70179 Mon Sep 17 00:00:00 2001 From: xuefei-wang Date: Mon, 13 Jul 2026 17:00:16 -0700 Subject: [PATCH 4/5] Restore legacy 2025-06-09 deepcell-types entries MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Per Ross's review: previous model versions must not be removed — they're needed for reproducibility. Restores the two legacy 2025-06-09 CLIP checkpoints (2025-06-09 and 2025-06-09_public-data-only) to the manifest and the download_deepcell_types_model docstring. Users pair these with the matching historical deepcell-types commit. Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_0178visUmEvakMZfFV3Aa33P --- deepcell_auth/_download.py | 2 ++ deepcell_auth/asset_manifest.yaml | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/deepcell_auth/_download.py b/deepcell_auth/_download.py index 8505980..4e3c4e7 100644 --- a/deepcell_auth/_download.py +++ b/deepcell_auth/_download.py @@ -77,6 +77,8 @@ def download_deepcell_types_model(version=None): - '2026-06-15' (latest) - '2026-06-23' + - '2025-06-09' (legacy; use with matching historical commit) + - '2025-06-09_public-data-only' (legacy) """ from ._auth import load_manifest, fetch_data diff --git a/deepcell_auth/asset_manifest.yaml b/deepcell_auth/asset_manifest.yaml index a7249b3..db54f9b 100644 --- a/deepcell_auth/asset_manifest.yaml +++ b/deepcell_auth/asset_manifest.yaml @@ -25,6 +25,14 @@ models: "2026-06-23": "asset_key": "models/deepcell-types_2026-06-23_resmlp_ptft.pt" "asset_hash": "402e94c103c5e489a57433cd107009d3" + # Legacy CLIP checkpoints. Incompatible with current deepcell-types code; + # retained for reproducibility (use with the matching historical commit). + "2025-06-09": + "asset_key": "models/deepcell-types_2025-06-09.pt" + "asset_hash": "19b669675c06816414e8677f542ff542" + "2025-06-09_public-data-only": + "asset_key": "models/deepcell-types_2025-06-09_public-data-only.pt" + "asset_hash": "331841fe78d9a5afec6e58d0035c40ef" # Comparison-baseline checkpoints for deepcell-types. Each baseline maps to a # LIST of assets because some ship companion files (maps -> _stats.npz; # xgboost -> .remap.json). Nimbus is intentionally absent: its pretrained From 75812973d614389027e4ba3874ccaf4b078cb87f Mon Sep 17 00:00:00 2001 From: xuefei-wang Date: Mon, 13 Jul 2026 17:04:15 -0700 Subject: [PATCH 5/5] Rename deepcell-types 2026-06-23 version key to 2026-06-23-ptft The version identifier now reflects the pretrain-finetune (ptft) arm. Asset filename unchanged (already deepcell-types_2026-06-23_resmlp_ptft.pt). Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_0178visUmEvakMZfFV3Aa33P --- deepcell_auth/_download.py | 2 +- deepcell_auth/asset_manifest.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/deepcell_auth/_download.py b/deepcell_auth/_download.py index 4e3c4e7..f180f0f 100644 --- a/deepcell_auth/_download.py +++ b/deepcell_auth/_download.py @@ -76,7 +76,7 @@ def download_deepcell_types_model(version=None): published version will be downloaded. Available versions: - '2026-06-15' (latest) - - '2026-06-23' + - '2026-06-23-ptft' - '2025-06-09' (legacy; use with matching historical commit) - '2025-06-09_public-data-only' (legacy) """ diff --git a/deepcell_auth/asset_manifest.yaml b/deepcell_auth/asset_manifest.yaml index db54f9b..4be23e3 100644 --- a/deepcell_auth/asset_manifest.yaml +++ b/deepcell_auth/asset_manifest.yaml @@ -22,7 +22,7 @@ models: "2026-06-15": "asset_key": "models/deepcell-types_2026-06-15_resmlp.pt" "asset_hash": "b819a7e0b177ad5330394eab3c6c7ad8" - "2026-06-23": + "2026-06-23-ptft": "asset_key": "models/deepcell-types_2026-06-23_resmlp_ptft.pt" "asset_hash": "402e94c103c5e489a57433cd107009d3" # Legacy CLIP checkpoints. Incompatible with current deepcell-types code;