SIDISH 死亡细胞识别

SKILL研究检索
研究检索 未标注权限 许可证不明确
安装这个技能

Chat2Research Al科研工作台:Use when identifying dying/damaged cells with SIDISH. Couples scRNA-seq with bulk RNA-seq + survival to label High-Risk (poor-outcome) cells, then perturbs genes in silico.(Skill由Chat2Research Al科研工作台:https://icell.abiosciences.cn/?source=20e0489c 提供,登录平台可享免费算力和Token及更多分析组学Skills)

一句话选型结论

按资料字段整理

SIDISH 死亡细胞识别是研究检索类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类研究检索 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_7ece4fea/sidish-cell-death-analysis
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

研究检索
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_7ece4fea仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791624995
正文体量24.4 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
查资料并整理出处

让模型按主题查资料,并把引用来源整理成清单。

网页与文献要点提炼

把长文、论文、网页压成能直接看的要点。

竞品与行业汇总

按关键词汇总竞品动态与行业信息。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在研究检索场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
SIDISH 死亡细胞识别当前 未标注权限 未标注 未标注 未标注 有
寻找技能 浏览器控制 GitHub 仓库 3120.0 万 Codex、Claude、Cursor 有
自我改进 Agent 接触敏感数据 ClawHub 市场 1646.4 万 OpenClaw 有
灵魂追踪 联网访问 GitHub 仓库 758.9 万 Codex、Claude、Cursor 有
自我完善 联网访问 ClawHub 市场 682.9 万 OpenClaw 有
微软代工厂 调用外部服务 GitHub 仓库 661.4 万 Codex、Claude、Cursor 有

SKILL.md 全文

24.4 KB
模型实际读到的说明书原文,来自技能仓库

SIDISH — Cell-Death / High-Risk Cell Identification

Overview

What it does. SIDISH (Semi-supervised Iterative Deep Learning for Identifying Single-cell High-Risk Populations) integrates three data types — scRNA-seq, bulk RNA-seq and patient survival — into one iterative deep-learning loop:

  • Phase 1 trains a VAE on the single-cell expression matrix.
  • Phase 2 trains a Deep Cox survival model on bulk RNA-seq, using the VAE latent space to score cells with the patient-level hazard model.
  • Between iterations, cell weights and patient weights are updated (SHAP-based feature selection + a Weibull/fitted hazard distribution), and cells above the chosen hazard percentile are relabelled High-Risk (h) vs Background (b).

Its downstream module performs in-silico perturbation: knock a gene (or a gene pair) out, re-run the hazard model, and count how many High-Risk cells flip back to Background. That gives a ranked list of candidate targets.

When to use it.
- You have scRNA-seq (or spatial) plus a bulk RNA-seq cohort with survival data (duration + event), and you want cell populations whose transcriptional state tracks the worst clinical outcome.
- You want a therapeutic-target shortlist from perturbation scoring, or a risk-associated cell-state marker-gene list to test on the bulk cohort (Kaplan-Meier).

When NOT to use it.
- No survival data / no bulk cohort → the whole Phase 2 signal is missing; use a death-signature or apoptosis-scoring approach instead.
- You literally need dead/dying cells (Annexin V, Caspase, cell-cycle arrest, pct MT): SIDISH has no cell-death score in its objective. It labels cells that are survival-linked high-risk; interpreting them as "dying/damaged cells" is a biological interpretation that must be validated (see Pitfalls).

Upstream.
- Repo: https://github.com/mcgilldinglab/SIDISH (verified HTTP 200)
- Docs/API: https://sidish.readthedocs.io/en/latest/api.html (verified HTTP 200)
- PyPI: SIDISH==1.0.0 (https://pypi.org/pypi/SIDISH/json verified 200, only release 1.0.0)
- Paper-style description and tutorials (4 notebooks) live in the repo tutorials/.

This skill's script. scripts/sidish_cell_death.py is a single command-line wrapper that reproduces the reference notebook chain (script/SIDISH.ipynb in the user's copy, equivalent to upstream tutorials/tutorial_0..3) with every path as a CLI flag and no hardcoded directories.

Inputs

Verified against the reference dataset shipped with the local copy of the tool (LUAD / TCGA-LUAD):

File Shape / size (observed) Required content
adata.h5ad (raw) 4102 cells × 1208 genes, X = dense float32 ndarray expression matrix; var_names must be HGNC gene symbols
bulk.csv 55402 genes × 572 TCGA samples, 282 MB genes are rows, samples are columns → the notebook reads it with pd.read_csv(...).T
sample_info.csv 572 samples index = sample IDs (TCGA.97.7938.01A); columns Overall_survival_days, Sample_Status (1=dead, 0=alive)
inter.csv 2 columns list of genes shared by bulk and scRNA-seq (advisory)
PPI/9606.protein.info.v11.5.txt 6.0 MB STRING v11.5 protein → gene-symbol map. Fetched separately — the GitHub repo does not ship it.
PPI/9606.protein.links.v11.5.txt 549 MB STRING v11.5 interactions
PPI/hippie_current.txt 9.5 KB in the local copy HIPPIE interactions (the local copy is an HTML error page, not data — see Pitfalls)
trained model dir vae_transfer (8.0 MB), deepCox (2.8 MB), W_matrix_{0..4}.csv (~26 MB each), adata_SIDISH.h5ad (2.1 MB), adata_SIDISH_embedding.h5ad (4.3 MB) written by training; consumed by reload/perturbation

Single-cell .obs columns the pipeline reads or writes: cells, n_genes, scissors, scAB, degas, SIDISH_value, risk_value, SIDISH (labels h/b). preprocess(processed=True) optionally renames a cell-type column to celltype_major; the reference data has no cell-type column, so celltype_name is a no-op there. var columns: gene_ids, n_cells — preprocess() prefers var['gene_ids'] over var_names when intersecting with bulk genes.

Data you must bring for a new project: (1) an .h5ad whose var_names (or var['gene_ids']) are gene symbols, (2) a bulk matrix of the same gene space, (3) sample-level survival with 1/0 status whose sample IDs match the bulk columns (the notebook normalises TCGA.97.7938.01A → TCGA-97-7938-01A by replacing . with -).

Steps

Script: scripts/sidish_cell_death.py (all flags, no hardcoded paths). Run with the SIDISH environment's python on a GPU machine.

  1. Check the data contract first (cheap, CPU, no torch needed) — this is the only stage that works in a CPU-only container:
python3 scripts/sidish_cell_death.py --stage dry-run \
    --input-h5ad data/adata.h5ad --bulk-csv data/bulk.csv \
    --survival-csv data/sample_info.csv --ppi-dir data/PPI \
    --output-dir out

Exit 0 = compatible; exit 2 = contract violation (it reports gene/sample overlap, event-value validity, PPI completeness). Writes out/Stat/dry_run_report.json.

  1. Prepare (notebook Step 0) — SIDISH.SIDISH.preprocess(processed=True) intersects sc/bulk genes, merges survival (duration, event), writes the two files the trainer reads:
python3 scripts/sidish_cell_death.py --stage prepare --input-h5ad data/adata.h5ad \
    --bulk-csv data/bulk.csv --survival-csv data/sample_info.csv --output-dir out
# -> out/Rdata/processed_adata.h5ad (4102 x 1208)
# -> out/Stat/processed_bulk.csv (572 x [duration,event,1208 genes])

Use --no-processed to make SIDISH do its own QC/normalisation/HVG selection, and --batch-correction + --batch-key <obs col> for Harmony (sc) / ComBat (bulk).

  1. Train (notebook Step 1) — VAE (Phase 1) + Deep Cox (Phase 2), iterations outer rounds, checkpoints into --model-dir:
python3 scripts/sidish_cell_death.py --stage train --device cuda \
    --processed-h5ad out/Rdata/processed_adata.h5ad \
    --processed-bulk-csv out/Stat/processed_bulk.csv \
    --output-dir out --model-dir out/Rdata/model
# library API used: sidish(adata, bulk, "cuda", seed=0)
#   .init_Phase1(225, 20, 32, [512,128], 256, "Adam", 1e-4, 1e-4, 0)
#   .init_Phase2(500, 128, 1e-4, 0, 0.2, 256)
#   .train(5, 0.95, 30, model_dir, 0, True, "fitted")
# -> out/Rdata/model/{vae_transfer, deepCox, W_matrix_{i}.csv, adata_SIDISH.h5ad}
  1. Reload + visualise + markers + KM (notebook Step 2):
python3 scripts/sidish_cell_death.py --stage infer --device cuda \
    --processed-h5ad out/Rdata/model/adata_SIDISH.h5ad \
    --processed-bulk-csv out/Stat/processed_bulk.csv \
    --output-dir out --model-dir out/Rdata/model --distribution-fit fitted
# reload(model_dir); get_percentille(0.95)
# plot_CellType_UMAP(resolution=0.8, celltype=False); plot_HighRisk_UMAP(resolution=0.08, celltype=False)
# get_MarkerGenes(logfc_threshold=1); plot_KM(penalizer=10)

The UMAP calls write adata_SIDISH_embedding.h5ad with obsm['latent'], obsm['X_umap'], obs['leiden'], obs['SIDISH_'], obs['SIDISH__'].

  1. In-silico perturbation (notebook Step 3) — needs the PPI network; --ppi-dir is staged via a symlink so the library's '../PPI/...' lookups resolve (see Pitfalls):
python3 scripts/sidish_cell_death.py --stage perturb --device cuda \
    --processed-bulk-csv out/Stat/processed_bulk.csv --ppi-dir data/PPI \
    --output-dir out --model-dir out/Rdata/model \
    --perturb-genes AGRN CEBPB RHOB CDK2
# get_percentille(0.95); run_Perturbation(n_jobs=4)
# plot_top_perturbed_genes(percent_change/delta_change, top_n=30)
# run_double_Perturbation(top 20 genes, threshold=0.8)
  1. --stage all chains prepare → train → infer → perturb in one process (same SIDISH object, so p_flip/percent_change are available to the double-perturbation step). --smoke shrinks every numeric setting (epochs=1, iterations=1, small layers, ≤64-cell batches) for a best-effort CPU sanity run — never verified to converge (see Pitfalls).

Parameters

Notebook values are what script/SIDISH.ipynb actually passes; the script's defaults equal them.

Script flag Meaning Notebook value Script default
--stage dry-run / prepare / train / infer / perturb / all manual cell order all
--input-h5ad raw scRNA-seq .h5ad data/adata.h5ad none (required for prepare/dry-run)
--bulk-csv bulk matrix, genes × samples data/bulk.csv none
--survival-csv survival table data/sample_info.csv none
--output-dir output root; creates Img/, Stat/, Rdata/ (hardcoded data/, data/LUNG/) ./sidish_out
--model-dir checkpoint dir, lives under Rdata/ (trailing / added for you) data/LUNG/ <output-dir>/Rdata/model
--processed-h5ad, --processed-bulk-csv processed inputs processed_adata.h5ad, processed_bulk.csv <output-dir>/Rdata/processed_adata.h5ad, <output-dir>/Stat/processed_bulk.csv
--ppi-dir dir with the 3 PPI txt files data/PPI auto-probe ./PPI, <input dir>/PPI, …
--label-key obs column holding the h/b labels to export SIDISH SIDISH
--batch-key obs column for Harmony/ComBat Sample (as patient_id) None → falls back to --patient-key
--patient-key patient_id for batch correction Sample Sample
--celltype-key celltype_name (renamed to celltype_major) celltype_major celltype_major
--survival-col, --status-col survival_, status args of preprocess Overall_survival_days, Sample_Status same
--processed / --no-processed skip / run QC+normalise+HVG True True
--batch-correction Harmony + ComBat off off
--no-fix-sample-names stop replacing .→- in survival index replacement is applied applied
--epochs / --i-epochs VAE epochs (iter. 1 / later iters) 225 / 20 225 / 20
--latent-size, --layer-dims VAE latent dim, hidden dims 32, [512,128] same
--batch-size VAE batch size 256 (c30 uses 512) 256
--optimizer, --lr, --lr3, --dropout Phase-1 optimiser settings Adam, 1e-4, 1e-4, 0 same
--phase2-epochs, --phase2-hidden Deep Cox epochs / hidden 500, 128 same
--phase2-lr, --phase2-dropout, --test-size, --batch-size-bulk Phase-2 settings 1e-4, 0, 0.2, 256 same
--iterations, --percentile, --steepness train() args 5, 0.95, 30 same
--distribution-fit hazard distribution: fixed Weibull vs AIC/BIC/KS/R² model selection fitted fitted
--seed seed/ite 0 0
--device cpu or cuda cuda cpu (validated against torch.cuda.is_available())
--leiden-resolution, --highrisk-resolution Leiden res for the two UMAPs 0.8, 0.08 same
--logfc-threshold, --pval-threshold get_MarkerGenes cutoffs 1 (logfc), 0.05 same
--km-penalizer plot_KM CoxPH penaliser 10 10
--top-n, --double-top-n barplot depth / gene-pair depth 30, 20 same
--ppi-threshold load_network(threshold) 0.8 (0.7 inside run_Perturbation) 0.8
--n-jobs parallelism for perturbation 4 4 (see Pitfalls — currently ignored upstream)
--perturb-genes genes drawn in the perturbation UMAP panels AGRN CEBPB RHOB CDK2 none (skip)
--perturbation-differential, --no-double-perturbation, --skip-umap, --smoke optional extras — off

Outputs

--output-dir is a root, not a flat folder: the script creates three sub-directories on start-up (idempotently) and writes every artifact into the one that matches its type — <out>/Img/ figures, <out>/Stat/ tables & text, <out>/Rdata/ objects & binaries. A run ends by printing the contents of all three.

File Content
<out>/Stat/dry_run_report.json stage dry-run: cell/gene counts, existing h/b counts, sample & gene overlap, PPI completeness
<out>/Stat/run_config.json every resolved argument of the run (including the resolved --model-dir / processed-input paths)
<out>/Rdata/processed_adata.h5ad, <out>/Stat/processed_bulk.csv stage prepare: HVG-aligned AnnData + bulk with duration, event first
<out>/Rdata/model/vae_transfer, <out>/Rdata/model/deepCox, <out>/Rdata/model/W_matrix_{i}.csv, <out>/Rdata/model/adata_SIDISH.h5ad stage train (written by the library itself)
<out>/Rdata/model/adata_SIDISH_embedding.h5ad stage infer: + obsm['latent'], obsm['X_umap'], obs['leiden'], obs['SIDISH_'], obs['SIDISH__']
<out>/Stat/results_cells.csv one row per cell: SIDISH (h/b), SIDISH_value (0/1), risk_value (continuous hazard), leiden, n_genes, (celltype_*)
<out>/Stat/results_upregulated_genes.csv, <out>/Stat/results_downregulated_genes.csv Wilcoxon markers of High-Risk vs Background with logfc > threshold, pval < threshold
<out>/Stat/results_perturbation_{percent_change,delta_change,p_flip,p_score}.csv per-gene perturbation scores, sorted descending
<out>/Stat/results_double_perturbation_percent_change.csv, <out>/Stat/results_double_perturbation_pvalue.csv gene pairs keyed GENE1+GENE2
<out>/Img/umap_leiden.{pdf,png}, <out>/Img/umap_high_risk.{pdf,png}, <out>/Img/km_high_risk_vs_background.{pdf,png}, <out>/Img/top_perturbed_genes_binary.{pdf,png}, <out>/Img/top_perturbed_genes_continuous.{pdf,png}, <out>/Img/perturbation_umap_*.{pdf,png}, <out>/Img/double_perturbation_heatmap.{pdf,png} figures (SIDISH calls plt.show(); the script runs the Agg backend and saves the open figure)
<out>/.sidish_work/ scratch dir (PPI symlink + CWD for the perturbation calls) — internal, not a deliverable

--model-dir (default <out>/Rdata/model) and --processed-h5ad / --processed-bulk-csv (defaults <out>/Rdata/processed_adata.h5ad, <out>/Stat/processed_bulk.csv) are the only knobs that move files out of the layout; an explicit value always wins, and a --model-dir outside the root keeps its Rdata/-style checkpoint files wherever you point it.

Reading the results: risk_value is the Deep Cox output per cell (higher = worse predicted survival); SIDISH == 'h' ⇔ risk_value >= percentile_cells where percentile_cells is the --percentile quantile of the fitted hazard distribution (default 95th → ~5 % High-Risk cells; the local tutorial model gives 228/4102 = 5.6 % h). In perturbation tables, positive percent_change = knocking that gene pushes High-Risk cells back to Background (a candidate vulnerability); negative = the knockout increases risk. p_flip is a one-sided sign test on the flips, p_score tests the continuous shift.

Pitfalls

  • GPU is effectively mandatory. Upstream README (local copy) states 环境:(需要GPU). Phase 1 runs 225 epochs and the full loop repeats the VAE + 500-epoch Deep Cox model --iterations times, plus one forward pass per cell per gene in the perturbation step. Treat "hours on a GPU box" as the realistic budget; there is no published CPU timing.
  • This container cannot run SIDISH. No torch, no SIDISH package, no GPU here (verified: import torch → ModuleNotFoundError, import SIDISH → ModuleNotFoundError, /opt/conda/bin/python3 3.12.14). Only --stage dry-run is runnable locally; every other stage exits 3 with an install hint. Do not promise training results from this container. --smoke exists for a GPU-less sanity run but its convergence is UNVERIFIED.
  • --model-dir must end with /. The library builds checkpoint paths by string formatting ("{}vae_transfer".format(self.path) with no os.path.join); the script appends the separator for you, but hand-written calls must do the same.
  • SIDISH reads '../PPI/*.txt' relative to the process CWD. ppi_network_handler.py does os.path.dirname('../data/') → '..', so the network is looked up in the parent of the working directory. The notebook comment ("脚本和data一定要放在平行文件夹") refers to this. The script copies the pattern by symlinking <output-dir>/.sidish_work/PPI -> --ppi-dir and chdir-ing into .sidish_work/run/ for perturbation calls.
  • PPI files are not in the repo. The GitHub tree (checked) has no PPI/ directory and PyPI only ships the package. 9606.protein.links.v11.5.txt must come from STRING (https://stringdb-downloads.org/download/protein.links.v11.5/9606.protein.links.v11.5.txt.gz, verified 200) and the info file from the matching protein.info.v11.5 URL (verified 200). HIPPIE: http://cbdm-01.zdv.uni-mainz.de/~mschaefer/hippie/hippie_current.txt (301 → 200, 138 MB).
  • The local hippie_current.txt is a broken download. It is 9,557 bytes and starts with &lt;!DOCTYPE html … — an HTML error page, not the 138 MB HIPPIE table. load_network() splits on tabs and silently skips lines with <5 fields, so nothing crashes: you just lose the HIPPIE contribution and keep STRING. Verify the file's first bytes before trusting a perturbation run.
  • load_network() loads the whole 549 MB STRING file into RAM (f.readlines()[1:]) and builds a Python dict of interactions; and plot_perturbation_UMAP_default/differential call load_network() once per gene inside the loop (line ~982 / ~1069). On a 4-gene panel that is 4× the I/O. Budget tens of GB of RAM for the STRING step, and prefer running it once per process.
  • Gene symbols are required. load_network() maps STRING proteins to gene symbols and keeps only pairs whose symbol is in adata.var.index. An .h5ad indexed by Ensembl IDs gives an empty network → every "knockout" silently degrades to a plain single-gene zeroing, and the perturbation scores become meaningless. Check var_names[:5] first.
  • get_percentille() always fits a Weibull, regardless of --distribution-fit: Utils.get_threshold calls weibull_min.fit/ppf directly, while train() may have selected Weibull/Gamma/Exponential by AIC/BIC/KS/R². So the reload-side threshold can differ in family from the training-side labelling — keep --distribution-fit consistent between train and infer, and expect the h/b counts to shift slightly.
  • get_MarkerGenes() mutates the AnnData in place (normalize_total + log1p on self.adata). Call it after the embeddings are saved (the script does), and don't reuse the object expecting raw counts — in --stage all the script deliberately re-reads adata_SIDISH.h5ad before the perturbation step so the hazard percentile is computed on the un-normalised matrix.
  • run_Perturbation() re-reads &lt;model-dir&gt;/adata_SIDISH.h5ad and overwrites self.adata, so it ignores anything you did in memory; the script re-reads the file and recomputes get_percentille() before it (as the notebook does). plot_perturbation_UMAP_* and run_double_Perturbation also re-read that file internally.
  • --n-jobs is currently ignored: run_Perturbation(n_jobs=…) then hardcodes run_parallel_processing(self.adata, n_jobs=4) upstream; the PPI threshold inside that call is likewise hardcoded to 0.7 while the UMAP panels use 0.8. Reported here because it silently changes what you think you configured.
  • plot_double_Perturbation_Heatmap() is broken upstream — it evaluates self.percent_change[gene][id] (builtin id) → TypeError. The reference notebook replaces it with plain matplotlib, and the script reproduces that fallback (Img/double_perturbation_heatmap.*). Note the double-perturbation keys are strings &quot;GENE1+GENE2&quot;.
  • plot_CellType_UMAP/plot_HighRisk_UMAP raise ValueError if celltype=True and a resolution is passed, and each call recomputes latent → neighbours → UMAP → Leiden (two calls = twice the work). plot_CellType_UMAP colours by the leiden column, so it only works after clustering; --skip-umap avoids the cost.
  • Notebook inconsistency: init_Phase1 uses batch_size=256 in the training cell but 512 in the reload cells. Only architecture-defining arguments (--latent-size, --layer-dims) must match across train/reload; a mismatch there makes load_state_dict fail.
  • The tutorial .h5ad already carries SIDISH, SIDISH_value, risk_value columns (168 h / 3934 b in data/adata.h5ad) — leftovers from an earlier run. Training overwrites them; don't read them as ground truth. --label-key only selects which obs column the script exports/compares.
  • Event status is validated strictly: map_event_column accepts only dead/alive/1/0 and raises ValueError otherwise (e.g. censored, 2, NaN). The --stage dry-run check flags this before you allocate a GPU.
  • bulk.csv orientation: genes are rows and samples are columns (55,402 × 572 here); the notebook's .T is what makes preprocess()'s "columns are genes" assumption true. A transposed input file silently yields 0 overlapping genes.
  • Memory model: adata.X is a dense float32 array and init_Phase1 allocates W_matrix = np.ones(adata.X.shape). Large cohorts (10⁵ cells × 2 000 genes) mean ~800 MB per dense copy — subset cells rather than hoping.

Environment

This container (verified):

Item Value
Python /opt/conda/bin/python3 → 3.12.14 (stdlib + /opt/user_python_base/lib/python3.12/site-packages)
Installed & usable scanpy 1.12.1, anndata 0.12.16, pandas, numpy — enough for --stage dry-run
Not installed SIDISH (ModuleNotFoundError), torch (ModuleNotFoundError), lifelines, shap, pyro-ppl
GPU none — --device cuda will fail the preflight check
Verified working here python3 -m py_compile scripts/sidish_cell_death.py (exit 0); --help (exit 0); --stage dry-run on the tutorial data (exit 0: 4102×1208 cells/genes, 1208/1208 gene overlap, 572/572 sample overlap, PPI complete) with the three output sub-directories Img/, Stat/, Rdata/ created and Stat/dry_run_report.json written
Not verified here prepare / train / infer / perturb (need torch + SIDISH + GPU) — treat their library calls as read-from-source, not executed

Upstream installation (per README, verified URLs):

conda create --name sidish_env python=3.12 &amp;&amp; conda activate sidish_env
# install the PyTorch build matching your GPU first (https://pytorch.org/get-started/locally/)
git clone https://github.com/mcgilldinglab/SIDISH.git &amp;&amp; cd SIDISH
pip install -e .            # or: pip install .      /   pip install SIDISH==1.0.0
pip install -r requirements.txt

requirements.txt (upstream) pins: anndata 0.11.1, scanpy 1.10.4, numpy 1.26.4, pandas 2.2.3, scipy 1.14.1, scikit-learn 1.5.2, matplotlib 3.9.2, seaborn 0.13.2, shap 0.46.0, statsmodels 0.14.4, lifelines 0.30.0, pyro-ppl 1.9.1, leidenalg 0.10.2, python-igraph 0.11.8, imbalanced-learn 0.12.4, h5py 3.12.1, numba 0.60.0, torchvision 0.21.0, tqdm 4.67.1, umap-learn 0.5.7, bioinfokit 2.1.3.

Environment the reference notebook was produced in (a dedicated conda env, per the project README, which states 环境:(需要GPU)): python 3.12 with torch 2.6.0, scanpy 1.10.4, anndata 0.11.1, lifelines 0.30.0, shap 0.46.0, pyro-ppl 1.9.1, torch-geometric 2.7.0, matplotlib 3.9.2 (versions read from that environment's site-packages). Run the script with that interpreter (or an equivalent GPU env) for the training stages.

UNVERIFIED: no end-to-end SIDISH training was executed while writing this skill, so absolute runtimes, memory peaks and whether --smoke converges are unmeasured.

常见问题

5 问
答案由本站依据条目字段整理
SIDISH 死亡细胞识别怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_7ece4fea/sidish-cell-death-analysis。安装方式为未标注。装完刷新技能列表或重开客户端。

SIDISH 死亡细胞识别支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

SIDISH 死亡细胞识别权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

SIDISH 死亡细胞识别收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

SIDISH 死亡细胞识别用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。